您现在所在的是:

单片机论坛

回帖:228个,阅读:33341 [上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] ... [23] [下一页]
1064
工控秀才
文章数:80
年度积分:50
历史总积分:1064
注册时间:2006/6/16
发站内信
09工控人生征文
08年优秀博客奖
发表于:2006/12/20 14:44:00
#0楼
程序内容包括如下:

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

  你可以学到:

1.良好的程序书写习惯

2. 多任务程序设计基础

3. 模块化程序设计

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


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

但却存在BUG产生的可能:

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

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

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

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

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

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

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

      这样处理,应该没有问题了的,各位高手可以发表点建议,谢谢!




[此贴子已经被作者于2007-7-16 11:41:24编辑过]
14PIN的单片MCU多核心时代已来临,  想在低容量的MCU系统跑多任务吗,欢迎登陆"http://gongkong.gkbk.com"我的博客 查看详情,谢谢!
1064
工控秀才
文章数:80
年度积分:50
历史总积分:1064
注册时间:2006/6/16
发站内信
09工控人生征文
08年优秀博客奖
发表于:2006/12/20 14:52:00
#1楼
[原创]PIC经典程序范例
上菜了
**内容隐藏回复可见**
14PIN的单片MCU多核心时代已来临,  想在低容量的MCU系统跑多任务吗,欢迎登陆"http://gongkong.gkbk.com"我的博客 查看详情,谢谢!
991
kingswel
文章数:21
年度积分:59
历史总积分:991
注册时间:2005/12/18
发站内信
发表于:2006/12/20 15:41:00
#2楼
kk
991
kingswel
文章数:21
年度积分:59
历史总积分:991
注册时间:2005/12/18
发站内信
发表于:2006/12/20 15:41:00
#3楼
dd
2113
fdauto1234
文章数:520
年度积分:44
历史总积分:2113
注册时间:2006/12/6
发站内信
发表于:2006/12/20 15:56:00
#4楼
看看```
福大门户在线  http://fdauto.cn
2113
fdauto1234
文章数:520
年度积分:44
历史总积分:2113
注册时间:2006/12/6
发站内信
发表于:2006/12/20 15:57:00
#5楼
嘻嘻```有帮助``在支持  ````
福大门户在线  http://fdauto.cn
991
liwen0823
文章数:53
年度积分:50
历史总积分:991
注册时间:2006/4/10
发站内信
发表于:2006/12/20 16:10:00
#6楼
kankan
19825
hpqian
文章数:4211
年度积分:1009
历史总积分:19825
注册时间:2005/3/31
发站内信
发表于:2006/12/20 16:13:00
#7楼
i see thanks!
一切都在努力中!!
4087
文章数:1254
年度积分:50
历史总积分:4087
注册时间:2005/8/22
发站内信
西门子接触器(人气)
发表于:2006/12/20 16:54:00
#8楼
kankan
路漫漫其修远兮,吾将上下而求索!!!
926
linlinhao
文章数:13
年度积分:50
历史总积分:926
注册时间:2006/12/20
发站内信
发表于:2006/12/21 20:00:00
#9楼
xuexue

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005