




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
45 a机通过串行端口控制b机LED/*名称:a机器传输控制命令字符说明:a微控制器向外部发送控制命令字符“a”、“b”、“c”,或者停止传输,b键根据收到的字符停止LED1闪烁、LED2闪烁、双闪烁或闪烁。*/#include#define uchar unsigned char#define uint unsigned intsbit led 1=P0 0 0;sbit led 2=P0 3;sbit k1=P1 0;/延迟Void DelayMS(uint ms)uchar I;while(ms-)for(I=0);I120I);/向串行端口发送字符Void Putc_to_SerialPort(uchar c)SBUF=c;while(TI=0);TI=0;/主程序Void main()uchar Operation _ No=0;SCON=0x40/串行模式1TMOD=0x20/T1操作模式2PCON=0x00/传输速度不会加倍TH1=0xfdTL1=0xfdTI=0;TR1=1;While(1)按If(K1=0)/K1时,选取工作代码0,1,2,3while(K1=0);Operation _ No=(Operation _ No 1)% 4;Switch(Operation_No)/根据作业代码发送A/B/C或停止传输Case 0:LED1=LED2=1BreakCase 1: putc _ to _ serial端口(a);LED1= LED1led 2=1;Breakcase 23360 putc _ to _ serial port(b);LED2= LED2LED1=1Breakcase : putc _ to _ serial port(C);LED1= LED1LED2=LED1BreakDelayMS(100);/*名称:b机器程序接收a机器发送字符并完成相应的动作说明:乙基接收到甲基发送的信号后,根据所述信号控制LED完成不同的闪烁动作。*/#include#define uchar unsigned char#define uint unsigned intsbit led 1=P0 0 0;sbit led 2=P0 3;/延迟Void DelayMS(uint ms)uchar I;while(ms-)for(I=0);I120I);/主程序Void main()SCON=0x50/串行模式1,允许接收TMOD=0x20/T1操作模式2PCON=0x00/传输速度不会加倍TH1=0xfd/波特率9600TL1=0xfdRI=0;TR1=1;le D1=le D2=1;While(1)如果If(RI)/接收,指示灯将闪烁RI=0;Switch(SBUF)/根据收到的命令字符完成不同的操作case a 3360 led 1= le D1;led 2=1;Break/LED1闪烁盘柜b : led 2= led 2LED1=1Break/LED2闪烁case c 3360 led 1= le D1;LED2=LED1/双闪烁Else LED1=LED2=1/关闭LEDDelayMS(100);46单片机之间的双向通信/*名称:a-机器串行程序说明:盔甲向乙机发送控制命令文字,甲机同时接收乙机发送的数字,并在数字管上显示。*/#include#define uchar unsigned char#define uint unsigned intsbit led 1=P1 0;sbit led 2=P1 3;sbit k1=P1 7;uchar Operation _ No=0;/作业代码/数码管代码Uchar code dsy _ code =0xx3f,0x06,0xx5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f/延迟Void DelayMS(uint ms)uchar I;while(ms-)for(I=0);I120I);/向串行端口发送字符Void Putc_to_SerialPort(uchar c)SBUF=c;while(TI=0);TI=0;/主程序Void main()le D1=le D2=1;P0=0x00SCON=0x50/串行模式1,允许接收TMOD=0x20/T1操作模式2PCON=0x00/传输速度不会加倍TH1=0xfdTL1=0xfdTI=RI=0;TR1=1;IE=0x90/允许串行端口中断While(1)DelayMS(100);按If(K1=0)/K1时,选取工作代码0,1,2,3while(K1=0);Operation _ No=(Operation _ No 1)% 4;Switch(Operation_No)/根据作业代码发送A/B/C或停止传输case 03360 putc _ to _ serial port(X);le D1=le D2=1;BreakCase 1: putc _ to _ serial端口(a);LED1= LED1led 2=1;Breakcase 23360 putc _ to _ serial port(b);LED2= LED2LED1=1Breakcase : putc _ to _ serial port(C);LED1= LED1LED2=LED1Break/a机器串行接收中断函数Void Serial_INT() interrupt4If(RI)RI=0;if(sbuf=0 sbuf=9)P0=dsy _ codesbuf;Else P0=0x00/*名称:b机器程序接收a机器发送字符并完成相应的动作说明:乙基接收到甲基发送的信号后,根据所述信号控制LED完成不同的闪烁动作。*/#include#define uchar unsigned char#define uint unsigned intsbit led 1=P1 0;sbit led 2=P1 3;sbit k2=P1 7;uchar NumX=-1;/延迟Void DelayMS(uint ms)uchar I;while(ms-)for(I=0);I120I);/主程序Void main()le D1=le D2=1;SCON=0x50/串行模式1,允许接收TMOD=0x20/T1操作模式2TH1=0xfd/波特率9600TL1=0xfdPCON=0x00/传输速度不会加倍RI=TI=0;TR1=1;IE=0x90While(1)DelayMS(100);If(K2=0)while(K2=0);Numx=numx/生成0到10范围内的数字。其中10表示关闭SBUF=NumXwhile(TI=0);TI=0;Void Serial_INT() interrupt 4If(RI)/接收时的指示灯行为RI=0;Switch(SBUF)/根据收到的命令字符完成不同的操作case x 3360 led 1=led 2=1;Break/完全关闭case a 3360 led 1=0;led 2=1;Break/LED1很亮case b 3360 led 2=0;LED1=1Break/LED2打开case c 3360 led 1=led 2=0;/全部亮47单芯片主机传输字符串/*名称:单芯片微型计算机向主机发送字符串说明:单片机以一定的间隔向主机发送字符串,发送内容显示在虚拟终端上。*/#include#define uchar unsigned char#define uint unsigned int/延迟Void DelayMS(uint ms)uchar I;while(ms-)for(I=0);I120I);/向串行端口发送字符Void Putc_to_SerialPort(uchar c)SBUF=c;while(TI=0);TI=0;/将字符串发送到串行端口Void puts _ to _ serial端口(uchar * s)While(*s!=0)putc _ to _ serial port(* s);s;DelayMS(5);/主程序Void main()uchar c=0;SCON=0x40/串行模式1TMOD=0x20/T1操作模式2TH1=0xfd/波特率9600TL1=0xfdPCON=0x00/传输速度不会加倍TI=0;TR1=1;DelayMS(200);/向主机发送数据puts _ to _ serial port( receiving from 8051). r n );Puts _ to _ serial端口(“-r n”);DelayMS(50);While(1)putc _ to _ serial port(c A);DelayMS(100);putc _ to _ serial port();DelayMS(100);If(c=25)/在每个输出后添加破折号Puts _ to _ serial端口(“ r n- r n”);DelayMS(100);C=(c 1)&If (c=0)/每次输出10个字符时换行puts _ to _ serial port( r n );DelayMS(100);48单片机与PC通信/*名称:单片机与PC通信说明:单芯片微型计算机可以接收PC发送的数字字符,按下单芯片K1键,单芯片微型计算机就可以向PC发送字符串。要在Proteus环境中完成此实验,必须安装Virtual Serial Port Driver和串行调试助手。本例缓冲100个数字字符,缓冲后,新数字从前面开始(环形缓冲区)。*/#include#define uchar unsigned char#define uint unsigned intuchar Receive _ Buffer101;/接收缓冲区uchar Buf _ Index=0;/缓冲区空间索引/数码管编码Uchar code dsy _ code =0x3f,0x06,0xx5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f/延迟Void DelayMS(uint ms)uchar I;while(ms-)for(I=0);I120I);/主程序Void main()uchar I;P0=0x00receive _ Buffer0=-1;SCON=0x50/串行模式1,允许接收TMOD=0x20/T1操作模式2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年冰箱维修试题及答案
- 2025重庆九洲智造科技有限公司招聘14人考试参考试题及答案解析
- 2025年安庆望江县部分城区学校、幼儿园公开选调教师备考练习题库及答案解析
- 后勤管理岗考试题及答案
- 2025合肥中考数学试卷及答案
- 2025年日照城投集团有限公司公开招聘工作人员(74人)备考练习题库及答案解析
- 2025山东鲁诚物业管理有限责任公司招聘2人备考练习题库及答案解析
- 2025南方医科大学珠江医院三水医院招聘肿瘤内科科研人员1人(广东)考试参考试题及答案解析
- 江西省井冈山应用科技学校兼课教师招聘备考练习题库及答案解析
- 2025浙江温州市平阳县红十字会招录编外人员1人备考练习题库及答案解析
- 轴承装配工标准化作业考核试卷及答案
- 2025至2030中国电动车仪表行业发展分析及前景趋势与投资报告
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第三季度招聘23人笔试备考试题及答案解析
- 2025年分步重复光刻机项目发展计划
- 2025年探伤工(二级)重点难点考试试卷
- (正式版)DB15∕T 385-2020 《行业用水定额》
- 村级财务业务知识培训课件
- 药品停产管理办法
- 2025年《临床输血技术规范》
- 2025年江苏无锡离婚协议书
- 人员管理办法格式范本
评论
0/150
提交评论