历史上的今天
今天是:2024年10月12日(星期六)
2019年10月12日 | PIC8位单片机源程序的组成
2019-10-12 来源:eefocus
PIC系列单片机的源程序是指PIC的助记符指令编写的程序(汇编语言程序)。这里将对PIC源程序的格式要求和其源程序的建立或书写作简要的介绍。
一般来说对PIC单片机的源程序格式并没有要求统一的编写形式,用户可以根据习惯来编写,当然编写时应遵守汇编的一些规范。下面以PIC16F84芯片点亮一支发光二极管的汇编程序实例,介绍一种源程序编写的方法(格式),以供实际应用时参考。
源程序清单
1File TURNON.ASM
2Assembly code for PIC16F84 microcontroller
3Turns on an LED connected to B0
4Uses RC oscillator,about 100kHz
5CPU configuration
6(it’s a 16F84,RC oscillator
7watchdog timer off,power-up timer on)
8processor 16F84
9include
10_config_RC_OSC&_WDT_OFF&_PWRTE_ON
11Program
12org 0;start at address 0
13At startup,all ports are inputs
14Set Port B to all outputs
15movlw B‘00000000’;w=binary 00000000
16tris Portb ;copy w to port B control reg
17Put a 1 in the lowest bit of port B
18movlw B‘00000001’;w=binary 00000001
19movwf portb ;copy w to port B itself
20Stop by going into an endless loop
21fin:goto fin
22end ;program ends here
现对源程序清单逐行加以说明。
第1行为文件(File)名,这里取名TURNONASM。TURNON意指一个接通(即接通LED)程序。ASM是源程序的扩展名。
第2行说明是由适用于PIC16F84微控制器的汇编码编写的源程序。
第3行说明程序用途是接通PIC16F84 PORTB的B0位LED。
第4行说明由RC振荡器供给时钟,频率约为100kHz。
第5、6、7行说明对16F84 CPU的结构设置(用RC振荡器,看门狗定时器即watchdog timer关,上电power-up定时器开,关于16F84的结构设置,后面将详谈)。
第8、9、10行为伪指令。这是用来向汇编程序提供有关如何完成汇编的控制命令信息,它既是汇编过程的控制指令,也是汇编程序的操作指令。在这里8、9、10行还向汇编程序说明,单片机用的是16F84,用RC振荡器、看门狗定时器关断不用,但上电定时器接通使用。对照5、6行,可见二者内容相同,但一个是注释,专门为用户说明,另一个是伪指令,是为PC机的汇编程序提供命令信息。
第11行又是注释,说明程序主体由此开始。
第12行说明程序存放在由地址0开始的16F84单片机中的程序存贮器中,也是一条伪指令。
第13、14两行为注释,说明后续的一段指令(两句)的作用,即在启动时,所有端口为输入,随即将B口设定为全输出(即各位均为输出)。
第15行是汇编语言编写的第一条指令,即对二进制(B)数“00000000”存入工作寄存器W。
第16行将W寄存器的内容(即00000000)传送到B口控制寄存器,使B口成为输出口。15、16行均带有注释。 第17行为注释,说明下面的二条指令是使B口的最低位为1。
第18行的指令将二进制数00000001送入工作寄存器W,第19行指令则将W寄存器的内容复制到B口,则B口的最低位B0为高电平,其余各位则为低电平,使接到B0位的LED发光。
第20行又是注释。说明下面的指令将使B0位为高的状态继续下去。
第21行的指令为无限循环语句,维持B1口输出为高不变。
第22行是伪指令END,表明程序到此结束。
将清单所列程序在PC机上用一种名为MPASM的汇编软件进行汇编后,如无错误,即可获得扩展名为HEX的相应机器码文件,借助编程器将该文件的相应内容烧入PIC16F84单片机的程序存储器内,并将编程好的芯片插入前述的电路板中,再加上电源,即可点亮16F84 B0位的LED。
下一篇:PIC单片机的C语言使用(一)
史海拾趣
|
1 引言 随着电力电子技术的告诉发展,电力电子设备与人们的工作、生活的关系日益密切,而电子设备都离不开可靠的电源,进入80年代计算机电源全面实现了开关电源化,率先完成计算机的电源换代,进入90年代开关电源相继进入各种电子、电器设备 ...… 查看全部问答> |
|
号外号外,潜水的用户请快快浮出水面.eeworld论坛要改版啦!近期会新增加一个聚合页面.目前正在紧张内测中.先截个图给大家看看。新页面集中了大家可能会比较关注的发贴排行、本周热点、最新评论、会员空间等列表模块。大家有什么意见?请指正!不 ...… 查看全部问答> |
|
我是一个嵌入式开发的新手,目前想用VS2005(C#)做一个SQLite应用程序,在WINCE平台上运行,是不是只下载一个 System.Data.Sqlite 安装之后,在C#里面添加引用就可以了?谁能给我说一下开发的详细的步骤啊?… 查看全部问答> |
|
LM1117系列有没有能够提供负压的? 请教几个问题:1,1117系列是否属于LDO? 2,LM1117系列有没有能够提供负压的?对于LDO了解不多 3,对于LDO了解不多,是不是象有LM317和LM337那样的分类形式分别提供正负电压的?或是通用的?… 查看全部问答> |
|
转自:http://forum.powersystems.eet-cn.com/BLOG_ARTICLE_6743.HTM?click_from=8800073982,9523571682,2011-03-04,PSCOL,FORUM_ALERT&click_from==etsd 1.一般情况下,同功率的开关电源与线性电源相比,_____。 A, 体积大,效率高   ...… 查看全部问答> |
|
现在要对0-25V的直流电压进行隔离采样,精度要求1%,由于霍尔电压传感器的价格 较高,希望能换其他的隔离采样方式! 本来用线性光耦HCNR201大概能实现,但是这个光耦前后级各需一个运放,这样前后 运放就必须各自接不同的电源和地才行 ...… 查看全部问答> |




