




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
针对STC89C52RC单片机的一些程序基本串口通信程序:#include #define uint unsigned int#define uchar unsigned char #define SEND 0 #define RECEIVE 1 uchar flag_Serial = SEND;uchar Rx_Buf;sbit SMG = P17;/0 1 2 3 4 5 6 7 8 9 a b c d e fuchar code Show16=0x03,0x9f,0x25,0x0d,0x99,0x49, 0x41,0x1f,0x01,0x19,0x11, 0xc1,0x63,0x85,0x61,0x71;void Serial_Init();void Serial_send();void Display();void Delay_1ms(uchar z);/*/main function/*/void main() Serial_Init(); while(1) switch(flag_Serial) case SEND: flag_Serial = RECEIVE; Serial_send(); break; case RECEIVE: Display(); break; /*/serial initial/*/void Serial_Init() TMOD = 0X20; /work in mode 2 PCON = 0X00; SCON = 0X50; TH1 = 0XFD; /BRUD 9600 TL1 = 0XFD; TR1 = 1; /open interrupt 1 ES = 1; /open the serial EA = 1; /open the key interrupt flag_Serial = SEND; SMG = 0;/*/serial interrupt function/*/void Serial() interrupt 4 using 2 EA = 0; if(RI!=0&flag_Serial=RECEIVE) RI = 0;Rx_Buf = SBUF;flag_Serial = SEND; EA = 1;/*/mcu send data to serial/*/void Serial_send() SBUF = Rx_Buf; while(TI=0); TI=0;/*/display the data by SMG/*/void Display() P2 = ShowRx_Buf;Delay_1ms(3);/*/delay for z*1ms/*/void Delay_1ms(uchar z) uchar i,j; for(i=z;i0;i-) for(j=110;j0;j-);串口通信,按键加减#include#define uint unsigned int#define uchar unsigned char #define SEND 0 #define RECEIVE 1sbit KEY1 = P14;sbit KEY2 = P15;sbit LED1 = P10;sbit LED2 = P11;sbit SMG = P17;uchar flag_Serial = SEND;uchar Rx_Buf;uchar Smg_Buf;/0 1 2 3 4 5 6 7 8 9 a b c d e fuchar code Show16=0x03,0x9f,0x25,0x0d,0x99,0x49, 0x41,0x1f,0x01,0x19,0x11, 0xc1,0x63,0x85,0x61,0x71;void Serial_Init();void Serial_send();void Display();void Delay_1ms(uchar z);void Scan();/*/main function/*/void main() Serial_Init(); while(1) switch(flag_Serial) case SEND: flag_Serial = RECEIVE; Serial_send(); break; case RECEIVE: Display(); break; Scan(); /*/serial initial/*/void Serial_Init() TMOD = 0X20; /work in mode 2 PCON = 0X00; SCON = 0X50; TH1 = 0XFD; /BRUD 9600 TL1 = 0XFD; TR1 = 1; /open interrupt 1 ES = 1; /open the serial EA = 1; /open the key interrupt flag_Serial = SEND; SMG = 0;/*/serial interrupt function/*/void Serial() interrupt 4 using 2 EA = 0; if(RI!=0&flag_Serial=RECEIVE) RI = 0;Rx_Buf = SBUF;flag_Serial = SEND; EA = 1;/*/mcu send data to serial/*/void Serial_send() SBUF = Rx_Buf; while(TI=0); TI=0;/*/display the data by SMG/*/void Display() P2 = ShowRx_Buf;Delay_1ms(3);/*/delay for z*1ms/*/void Delay_1ms(uchar z) uchar i,j; for(i=z;i0;i-) for(j=110;j0;j-);/*/scan the keys/*/void Scan()if(KEY1=0)Delay_1ms(10);if(KEY1=0)LED1 = LED1;Rx_Buf+;if(Rx_Buf=16)Rx_Buf = 0;Display();while(KEY1=0);if(KEY2=0)Delay_1ms(10);if(KEY2=0)LED2 = LED2;if(Rx_Buf=0)Rx_Buf = 15;elseRx_Buf-;Display();while(KEY2=0);串口通信,按键加减提示音,(利用定时中断)快速加减提示音#include#define uint unsigned int#define uchar unsigned char #define SEND 0 #define RECEIVE 1#define NORMAL0#define INCREASE1#define DECREASE2sbit KEY1 = P14;sbit KEY2 = P15;sbit LED1 = P10;sbit LED2 = P11;sbit SMG = P17;sbit SPEAKER = P16;uchar flag_Serial = SEND;uchar Rx_Buf;uchar count_2s;uchar flag_KS;/0 1 2 3 4 5 6 7 8 9 a b c d e fuchar code Show16=0x03,0x9f,0x25,0x0d,0x99,0x49, 0x41,0x1f,0x01,0x19,0x11, 0xc1,0x63,0x85,0x61,0x71;void Serial_Init();void Serial_send();void Display();void Delay_1ms(uchar z);void Scan();/*/main function/*/void main() Serial_Init(); while(1) switch(flag_Serial) case SEND: flag_Serial = RECEIVE; Serial_send(); break; case RECEIVE: Display(); break; Scan(); /*/serial initial/*/void Serial_Init() TMOD = 0X21; /work in mode 2 PCON = 0X00; SCON = 0X50; TH1 = 0XFD; /BRUD 9600 TL1 = 0XFD; TR1 = 1; /open interrupt 1 ES = 1; /open the serial TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; ET0 = 1; TR0 = 0; EA = 1; /open the key interrupt flag_Serial = SEND; SMG = 0;/*/serial interrupt function/*/void Serial() interrupt 4 EA = 0; if(RI!=0&flag_Serial=RECEIVE) RI = 0;Rx_Buf = SBUF;flag_Serial = SEND; EA = 1;/*/interrupt zero function/*/void Timer0()interrupt 1TH0 = (65536-50000)/256;TL0 = (65536-50000)%256;count_2s+;if(count_2s=40)/50ms*40=2scount_2s=0;if(KEY1=0)flag_KS = INCREASE;elseflag_KS = DECREASE;/*/mcu send data to serial/*/void Serial_send() SBUF = Rx_Buf; while(TI=0); TI=0;/*/display the data by SMG/*/void Display() P2 = ShowRx_Buf;/*/delay for z*1ms/*/void Delay_1ms(uchar z) uchar i,j; for(i=z;i0;i-) for(j=110;j0;j-);/*/scan the keys/*/void Scan()if(KEY1=0)Delay_1ms(10);if(KEY1=0)LED1 = 0;SPEAKER = 0;Delay_1ms(250);SPEAKER = 1;Delay_1ms(250);LED1 = 1;flag_Serial = SEND;Rx_Buf+;if(Rx_Buf=16)Rx_Buf = 0;Display();while(KEY1=0)TR0 = 1;ES = 0;if(flag_KS=INCREASE & count_2s=4)count_2s=0;Rx_Buf+;if(Rx_Buf=16)Rx_Buf = 0;SPEAKER = 0 ;LED1 = 0 ;Delay_1ms(200);SPEAKER = 1 ;LED1 = 1 ;Delay_1ms(200);Display();flag_KS = NORMAL;ES = 1;TR0 = 0;if(KEY2=0)Delay_1ms(10);if(KEY2=0)LED2 = 0;SPEAKER = 0;Delay_1ms(125);SPEAKER = 1;Delay_1ms(250);LED2 = 1;flag_Serial = SEND;if(Rx_Buf=0)Rx_Bu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 造纸行业的品牌策略与价值传递考核试卷
- 谷物储存的粮食防潮技术考核试卷
- 神经科学与心理学研究出版考核试卷
- 茶叶栽培的农业知识与技术推广考核试卷
- 电机在电力工具中的应用评估考核试卷
- 聚己内酰胺纤维性能测试考核试卷
- 砼结构构件的施工材料管理考核试卷
- 拍卖行业网络安全防护考核试卷
- 罐头食品生产卫生管理考核试卷
- 服务机器人技术成果转化与应用考核试卷
- 医院行风建设教育
- 为家庭开销做预算(课件)四年级下册综合实践活动长春版
- DL∕T 1919-2018 发电企业应急能力建设评估规范
- 辽宁省沈阳市铁西区2023-2024学年七年级下学期期末数学试题
- 2024年紫金山科技产业发展集团招聘笔试冲刺题(带答案解析)
- 驾驶员心理健康教育培训
- 2024年四川二造《建设工程造价管理基础知识》考前强化练习题库300题(含解析)
- MOOC 音乐心理学-上海师范大学 中国大学慕课答案
- 乙结冗长症护理查房
- 2020年8月自考00158资产评估试题及答案含解析
- 财政预算监督培训课件
评论
0/150
提交评论