导航:首页 > 操作系统 > pic单片机源代码

pic单片机源代码

发布时间:2022-06-19 22:17:54

Ⅰ PIC单片机,我有机器码,用什么软件能变成汇编

MPLAB应该就可以。
所谓的机器码应该就是二进制文件吧?MPLAB IDE 可以进行反汇编(相信它也是最准确最全的PIC反编译工具)。具体步骤如下:
1.启动MPLAB IDE 执行Configure菜单下的Select Device选择好芯片.
2. File菜单下Import导入要反编译的HEX文件.
3.View菜单下Program Memory 查看程序存储器的内容,在程序存储器内容显示窗口的左下角切换到Machine或Symbolic,在这个窗口上就可以看到每一个地址和HEX文件对应的ASM源程序.

“反编译”就是察看源代码,其实最佳的PIC“反编译”工具就是MPLAB-IDE,也具有察看源代码的功能。不过大家要注意,由于PIC采用分页技术,“反编译”后的源程序再次编译后一般是不正确的,需要手工处理。

FILE--> IMPORT-->IMPORT TO MEMORY -->调入.HEX文件(你的机器码应该是bin文件或者hex文件,都差不多了!)
然后再 WINDOW 中打开PROGRAM MEMORY窗口,就得到了源程序
注意所有未用的程序段反汇编后全部成了XORLW 0FFH

Ⅱ 请假单片机大神,pic16位的单片机有了解的吗, 8 位的程序可以直接用在16位的吗!!

你说的“程序”如果是编译后的机器码程序,则肯定不能直接应用的。
如果是“源程序”,即源码文件,通常至少需要调整编译目标环境才能应用。当然如果从8位的升级到16位时,C语言需要做的工作会少,如果是汇编代码,则可能需要更多的工作才能升级到16位。

Ⅲ 将PIC单片机的10位硬件PWM扩展到16位 求编译通过的源程序,最好C语言的。

思路如下:
通过定时来实现,牺牲2个来实现,T0一个做一个周期脉宽长度, (12MHz 65500us中断一次,也就是16位),T1做脉宽调制,定时数据(0-65500,也是采集或设置的数据)之间变化,然后在某个端口输出这个pwm 就可以了,最好推挽输出,不然输出不对.程序自己编吧,很简单,我就是这样弄的12位输出的,还很好(51的)
不过16位的载波会很很低的,主频最好还是要用24MHz 吧,也就是300Hz左右.

Ⅳ PIC单片机输出PWM波的C语言源程序

#ifndef __PWM__H__
#define __PWM__H__
void pwm_ccp1(unsigned char a,unsigned char b);
void pwm_ccp2(unsigned char a,unsigned char b);
#endif

void pwm_ccp1(unsigned char a,unsigned char b) //左边PWM
//CCP1 模块的 PWM 工作方式,周期为(b+1)*4*Tosc*(TMR2前分频值)=b+1 us //pwm高电平=a:CCP1CON(第四五位)Tosc*(TMR2前分频值)
//pwm高电平=a:CCP1CON(第四五位)Tosc*(TMR2前分频值)
{ //a>b时有最高转速
CCPR1L=a; //* 设置工作循环的高 8bit 为 a
CCP1CON=0X0C; //0000 1100 设置 CCP1 为 PWM 工作方式,且工作循环的低 bit2 为 11*/
CCP1IE=0;; //* 禁止总中断和外围中断 */
PR2=b; //* 设置 PWM 周期 */
TRISC2=0; //* 设置 RC2/CCP1 为输出 */
T2CON=0X04; //* 0000 1000前分频比为 1:1 ,后分频器1:2,打开 TMR2 ,同时输出 PWM 信号 */
}

void pwm_ccp2(unsigned char a,unsigned char b) //右边PWM
//CCP2 模块的 PWM 工作方式,周期为(b+1)*4*Tosc*(TMR2前分频值),
//pwm高电平=a:CCP2CON(第四五位)Tosc*(TMR2前分频值)
{
CCPR2L=a; //* 设置工作循环的高 8bit 为 a
CCP2CON=0X0C; //* 设置 CCP2 为 PWM 工作方式,且工作循环的低 bit2 为 11*/
CCP2IE=0; //* 中断屏蔽
PR2=b; //* 设置 PWM 周期 */
TRISC1=0; //* 设置 RC1/CCP2 为输出 */
T2CON=0X04; //* 前分频比为 1 ,打开 TMR2 ,同时输出 PWM 信号 */
}

Ⅳ 关于PIC单片机无法载入源文件

这个应该是你编译器路径问题,就譬如你选择的是C编译器添加的却是ASM汇编的文件,当然会存放在other film里面。
在Project/set language toolsuite选择编译器。在确定你编译器选择对了之后,到Project/set language tool location中设置编译器路径。

至于字体颜色大小的问题,在Edit/Porpertise/Text里面设置。在颜色中选择不同的关键字设置喜欢的颜色。

你打开工程才能设置编译器,向导中也不会提示编译器错误。譬如你编译器没装,只能在设置编译器的时候看到编译器***.exe前面有个红色的叉

Ⅵ 可以把PIC单片机里的源程序拷备出来吗

如果芯片烧写程序的时候没开代码保护,是可以读出来的,但是读出来的是机器码,不是源程序了,你是不可能看懂的。除非你变成黑客帝国里的尼奥了,呵呵。

Ⅶ 求PIC单片机使用片内RTCC模块源程序 最好是PIC18F24J11

//pic18f24j11
void setRTCCtime(void)
{
RTCCFG =0xa3;
RTCVALL=0x12; //year 0x
RTCVALH=0;
RTCVALL=0x28; //day
RTCVALH=0x09; //month
RTCVALL=0x13; //hour
RTCVALH=5; //weekday
RTCVALL=0x00; //second
RTCVALH=0x50; //min 0x
}

void setRTCCalarm(void)
{
ALRMCFG=0xcf;
ALRMVALL=0x12;
ALRMVALH=0;
ALRMVALL=0x28;
ALRMVALH=0x09;
ALRMVALL=0x13;
ALRMVALH=5;
ALRMVALL=0x15;
ALRMVALH=0x50;
}

void RTCC_Init(void)
{
_asm
movlb 0x0f
movlw 0x55
movwf EECON2,0
movlw 0xaa
movwf EECON2,0
bsf RTCCFG,5,1
_endasm

//TCCFGbits.RTCWREN = 1;
RTCCFGbits.RTCEN = 1;
// RTCCFGbits.RTCOE = 1;
ALRMCFG = 0xC8;
ALRMCFGbits.ALRMEN = 1;
setRTCCtime();
PIE3bits.RTCCIE = 1;
IPR3bits.RTCCIP = 1;
setRTCCalarm();
RTCCFGbits.RTCWREN = 0;
}

#pragma interrupt InterruptServiceHigh // "interrupt" pragma also for high priority
void InterruptServiceHigh(void)
{

if(PIR3bits.RTCCIF)
{
PIR3bits.RTCCIF = 0;
//程序
}
}

Ⅷ PIC单片机中的链接描述文件是什么文件一定有必要加吗里面的含义代表什么

链接描述文件说明PICmicro MCU的存储器架构。这使链接器可把代码在可用的ROM 空间,把变量放在可用的 RAM 空间。标记PROTECTED的区域不会被用于一般程序或数据的分配。只有在为代码段指定了一个绝对地址时,或在链接描述文件中使用SECTION 伪指令将该代码段分配给该区域时,代码或数据才被分配到这些区域。

逻辑代码段用于指定应将定义的存储器区域的哪一个区域用于一段源代码。要使用逻辑代码段,用 SECTION 伪指令在链接描述文件中定义代
码段,然后使用该语言内置机制在源文件中引用该名称 (如 MPLAB C18 的 #pragma section)。此代码段伪指令通过指定代码段的名称,

就是上面说的了 参考别人的说法,仅供参考!

Ⅸ pic单片机编译成功后,不运行

可能是你没有运行它,执行c++,需要两步,第一步编译(编译成功后生成执行文件),第二步,运行(运行编译生成的执行文件)。
编译器是将“一种语言”翻译为“另一种语言”的程序。编译器的主要工作流程是源代码→预处理器→编译器→目标代码→链接器→可执行程序。
PIC单片机的C编译器只有HI-TECH公司出品PICC编译器,和CCS公司的CCS编译器。还有PIC的生产商Microchip公司自行生产的只针对PIC18/PIC24/dsPIC/PIC32系列单片机的C语言编译器MCC(MCC18/MCC30/MCC32)。IAR软件不能编译PIC的C语言或汇编语言。

Ⅹ PIC单片机C源程序一般由几部分组成

预定义(头文件定义,宏定义,全局变量声明等)
配置位的设置,就是__CONFIG ,这个其实可以再MPLAB的configure菜单栏中配置。但如果程序里配置了,就不能在MPLAB里配置。
程序主函数 void main()
各种程序子函数 ……
中断子函数(PIC12、PIC16、PIC18等常用的8位PIC单片机只能有一个中断子函数,因为他们没有中断向量表;而PIC24、dsPIC系列则有中断向量表,可以有多个中断子函数)

阅读全文

与pic单片机源代码相关的资料

热点内容
php中怎么注释 浏览:992
adxl345与单片机 浏览:279
服务器世界第一是什么公司的 浏览:19
精通编程入门 浏览:16
99单片机原理 浏览:61
linuxssh互信 浏览:288
支持128加密的浏览器 浏览:292
程序员下载器 浏览:48
退出云服务器代码 浏览:900
军状如命令 浏览:263
如何安卓系统更新 浏览:74
linux命令在哪里输入 浏览:497
编程语言集合类怎么选 浏览:93
如何将pdf转化为word 浏览:11
迈克菲隔离区解压密码 浏览:785
怎么用伟福编译 浏览:867
计算机算法专家 浏览:501
什么app清理垃圾 浏览:643
android流媒体服务器 浏览:183
各种算法的时间复杂度是指 浏览:116