单片机
返回首页

PIC单片机驱动RT1602C程序

2017-12-07 来源:eefocus

PIC 单片机 驱动RT1602C程序

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


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章