pic系列单片机程序设计基1

pic系列单片机程序设计基1

ID:19562474

大小:34.00 KB

页数:6页

时间:2018-10-03

pic系列单片机程序设计基1_第1页
pic系列单片机程序设计基1_第2页
pic系列单片机程序设计基1_第3页
pic系列单片机程序设计基1_第4页
pic系列单片机程序设计基1_第5页
资源描述:

《pic系列单片机程序设计基1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、PIC系列单片机程序设计基1本文由qingshui18110贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。PIC系列单片机程序设计基础1,PIC单片机程序的基本格式,先介绍二条伪指令:EQU——标号赋值伪指令ORG——地址定义伪指令PIC16C5X单片机在RESET后指令计算器PC被置为全"1",所以PIC16C5X几种型号芯片的复位地址为:PIC16C54/55:1FFHPIC16C56:3FFHPIC16C57/58:7FFH一般来说,PIC单片机的源程序并没有要求统

2、一的格式,大家可以根据自己的风格来编写.但这里我们推荐一种清晰明了的格式供参考.TITLEThisis……;程序标题;;名称定义和变量定义;F0RTCCPCSTATUSFSRRARBRCEQUEQUEQUEQUEQUEQUEQUEQU┋PIC16C54EQU1FFH;芯片复位地址PIC16C56EQU3FFHPIC16C57EQU7FFH;ORGPIC16C54GOTOMAINORG0;在复位地址处转入主程序;在0000H开始存放程序;;子程序区;DELAYMOVLW255┋RETLW0;;主程序区;MAINMO

3、VLWB'00000000'01234567TRISRB;RB已由伪指令定义为6,即B口┋LOOPBSFRB,7CALLDELAYBCFRB,7CALLDELAY┋GOTOLOOP;END;程序结束注:MAIN标号一定要处在0页面内.2,PIC单片机程序设计基础,1)设置I/O口的输入/输出方向PIC16C5X单片机的I/O口皆为双向可编程,即每一根I/O端线都可分别单独地由程序设置为输入或输出.这个过程由写I/O控制寄存器TRISf来实现,写入值为"1",则为输入;写入值为"0",则为输出.MOVLW0FH;0

4、0001111(0FH)输入输出TRIS6;将W中的0FH写入B口控制器,;B口高4位为输出,低4位为输入.MOVLW0C0H;11000000(0C0H)RB4,RB5输出0RB6,RB7输出12)检查寄存器是否为零如果要判断一个寄存器内容是否为零,很简单,现以寄存器F10为例:MOVF10,1;F10→F10,结果影响零标记状态位Z;F10为零则跳;Z=1即F10=0处理程序3)比较二个寄存器的大小要比较二个寄存器的大小,可以将它们做减法运算,然后根据状态位C来判断.注意,相减的结果放入W,则不会影响二寄存器

5、原有的值.例如F8和F9二个寄存器要比较大小:MOVF8,0SUBWF9,0BTFSCSTATUS,Z;F8→W;F9—W(F8)→W;判断F8=F9否;C=0则跳;Z=0即F10不为零转入标号NZ处程序BTFSSSTATUS,ZGOTONZ┋GOTOF8=F9BTFSCSTATUS,CGOTOF9>F8GOTOF9F8;C=0相减结果为负,F9

6、10;定义F10名称为COUNT(计数器)┋MOVLW8MOVWFCOUNTLOOPLOOP┋DECFSZCOUNT,1GOTOLOOP┋;循环体;COUNT减1,结果为零则跳;结果不为零,继续循环;结果为零,跳出循环5)"IF……THEN……"格式的程序下面以"IFX=YTHENGOTONEXT"格式为例.MOVFX,0SUBWFY,0BTFSCSTATUS,ZGOTONEXT┋;X→W;Y—W(X)→W;X=Y否;X≠Y;X=Y,跳到NEXT去执行.6)"FOR……NEXT"格式的程序"FOR……NEXT"程

7、序使循环在某个范围内进行.下例是"FORX=0TO5"格式的程序.F10放X的初值,F11放X的终值.STARTDAENDEQUEQU┋MOVLW0MOVWFSTART;MOVLW5MOVWFDAENDLOOP┋INCFSTART,1;START值加1;START=DAEND?(X=5否)BTFSSSTATUS,ZGOTOLOOP┋;X<5,继续循环;X=5,结束循环;5→DAEND(F11)0→START(F10)1011MOVFSTART,0SUBWFDAEND,07)"DOWHILE……END"格式的程序"

8、DOWHILE……END"程序是在符合条件下执行循环.下例是"DOWHILEX=1"格式的程序.F10放X的值.XEQU┋MOVLWMOVWFX1;1→X(F10),作为初值LOOP┋MOVLW1SUBWFX,0BTFSSSTATUS,ZGOTOLOOP;X=1否?;X=1继续循环10┋8)查表程序;X≠1跳出循环查表是程序中经常用到的一种操作.下例是将十进制0~9转换成

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。