正在初学51的中断,定时器,串口等等,遇到很多瓶颈比如串口怎么发送变量的数值啦(加一个0x30就好),分享这个程序给初学者们啦
功能:
1. 开机以后,LED0和LED1实现0.5秒间隔闪烁2次,蜂鸣器同时鸣叫2次。
2. 之后,串口等待接收到一个字符'R',开始进入主循环体。
3. 主循环体中,LED0和LED1实现1秒间隔闪烁。
4. 串口接收到字符'D',回复LED当前状态和系统当前处于运行还是暂停状态,如果运行状态,收到字符'R',如果暂停状态,收到字符'P'。
5. 串口接收到字符'T',回复主循环体开始运行的时间和系统当前处于运行还是暂停状态,时间单位为秒,最大计数值65535,以每一位的ASCII码字符发送,最后加换行符。
6. 串口接收到其他字符,回复字符'W',且蜂鸣器高频率鸣叫2次。
7. 主循环体运行每分钟,蜂鸣器低频率鸣叫1次。
8. 开启INT0中断,按下S_INT0,可以暂停目前的程序运行,再次按下,可以继续运行,之前的所有都保持继续运行的状态,计数值也继续累加。暂停状态下, 依然可以响应串口的'D'和'T'的应答回复,具体暂停还是运行状态的解释,详见第4条要求。
9. 所有定时, 用T0方式1中断实现。
10. 串行口配置为方式1,4800波特率,中断接收,查询发送。
PS:定时器的初值为了方便是用晶振12HZ算的哦,想要精确延时的朋友记得换成11.0592算一下啦
用的STC89C52REC的迷你单片机,原理图附在压缩包里啦
单片机源程序如下:
所有资料51hei提供下载:
totaltask.rar
(83.75 KB, 下载次数: 34)
|