您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > PIC单片机驱动RT1602C程序 -
本文所属标签:
为本文创立个标签吧:

PIC单片机驱动RT1602C程序 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-08 

[导读]
PIC单片机驱动RT1602C程序RT1602C驱动UART串口输出,波特率为19200按键扫描: 键1控制LCD的显示状态,接收状态或是发送状态 键2循环控制UART将要输出的子串口AD转换功能UART串口接收中断TIME1定时器中断

PIC单片机驱动RT1602C程序

本文引用地址: http://www.21ic.com/app/mcu/201807/765483.htm

RT1602C驱动
UART串口输出,波特率为19200
按键扫描:
键1控制LCD的显示状态,接收状态或是发送状态
键2循环控制UART将要输出的子串口
AD转换功能
UART串口接收中断
TIME1定时器中断
具体请参考硬件连接图,(注意按键部分的硬件设计有些问题,请自行修改,但不影响软件功能)


你可以学到:

1.良好的程序书写习惯

2. 多任务程序设计基础

3. 模块化程序设计

同时,欢迎各路高手指教,谢谢!


非常抱歉的告诉大家,我的2007年度巨献中可能有一个宏BUG,该BUG是非常难以发现的,

但却存在BUG产生的可能:

在中断进入和退出的压栈和出栈的宏定义原来是这样定义的:

;-------Push special register---------
PUSH_REG MACRO
MOV WF WBUF
MOV F STATUS, W
MOV WF STATUSBUF
MOV F PCLATH, W
MOV WF PCLATHBUF
MOV F FSR, W
MOV WF FSRBUF
ENDM
;-------pop special register----------
POP_REG MACRO
MOV F FSRBUF, W
MOV WF FSR
MOV F PCLATHBUF, W
MOV WF PCLATH
MOV F STATUSBUF, W
MOV WF STATUS
MOV F WBUF, W
ENDM
;-------MACRO FOR interrupt push and pop special register end-------

好象在较早的PIC资料上也是这样建议的,但是这样存在一个BUG,

如果主程序刚好做完处理,对标志位Z进行判断前进入中断,那么中断后

的出栈Z位就可能已经被修改了,由语句 MOV F WBUF,W影响了,为了不影响

出栈后的Z位,只能采用麻烦一点的方式来传送WBUF了,出栈宏如下定义:

;-------Push special register---------
PUSH_REG MACRO
MOV WF WBUF
MOV F STATUS, W
MOV WF STATUSBUF
MOV F PCLATH, W
MOV WF PCLATHBUF
MOV F FSR, W
MOV WF FSRBUF
ENDM
;-------pop special register----------
POP_REG MACRO
MOV F FSRBUF, W
MOV WF FSR
MOV F PCLATHBUF, W
MOV WF PCLATH
MOV F STATUSBUF, W
MOV WF STATUS
SWAPF WBUF, D
SWAPF WBUF, W
ENDM




              查看评论 回复



 

"PIC单片机驱动RT1602C程序 -"的相关文章

网站地图

围观()