串口通信实验

串口通信实验

ID:47438943

大小:3.92 MB

页数:14页

时间:2020-01-11

串口通信实验_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《串口通信实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、计算机科学与技术系实验报告专业名称计算机科学与技术专业课程名称单片机应用设计项目名称串口通信实验班级学号姓名同组人员无实验日期2016年4月29日实验六串口通信实验一、实验目的掌握单片机串行口的工作原理,掌握串口通信程序设计方法,了解MAX232芯片的工作原理。二、实验内容1、利用PC机的串口调试助手(STC-ISP中有集成)通过串口向单片机发送一个数据(0-99)作为单片机倒计时的起始时间(秒),单片机收到该信号后启动倒计时程序,倒计时时间显示在LED数码管上,当倒计时完成后蜂鸣器响2-5s以起到提示作用,波特率自定。2、倒计时过程中如果收到串口新数据,应该结束当前倒计时计数,

2、以新数据重新开始计数。3、同时单片机外部中断0外接一位独立按键,统计独立按键的单击次数,将单击次数显示在数码管上,显示范围为0-99。并每隔一段时间将单击次数发送给PC机,通过串口助手观察结果。4、可以通过51汇编或C51编程实现。三原理图四、连线说明JP4(P3.0)——JP8(RX1)JP4(P3.1)——JP8(TX1)JP4(P1.0)——JP22JP2(P2.0)——JP26(STCP)JP2(P2.1)——JP26(SHCP)JP2(P2.2)——JP26(DS)J70——短路帽五、演示程序#includeunsignedcharcodewei[8]

3、={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};unsignedcharcodenum[]={0xc0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/};unsignedcharcodeshuzi[10]="0123456789";sbitSTCP=P3^7;sbitSHCP=P3^6;sbitDS=P3^5;sbitBee=P1^0;//蜂鸣器sbitkey=P0^7;intxx;unsignedc

4、hardat=0;//全局变量DATintcount=0;//倒计时的计数intcount_bee=0;intnumber=4;intflag=0;voiddelay(inti){while(i--);}voidBeeS()//蜂鸣器{inti;for(i=0;i<300;i++){Bee=~Bee;}}voidWR_595(unsignedcharx)//数码管输入{inti;for(i=0;i<8;i++){SHCP=0;DS=0x80&x;SHCP=1;x=x<<1;SHCP=0;}}voidOUT_595(unsignedcharposition,unsignedchar

5、num)//数码管输入{WR_595(position);WR_595(num);STCP=0;STCP=1;STCP=0;}voidDisPlay(unsignedintz,inta,intb)//数码管显示{intx;inty;x=z/10;//十位y=(z-x*10)%10;//个位OUT_595(wei[a],num[y]);OUT_595(0x00,0xff);OUT_595(wei[b],num[x]);OUT_595(0x00,0xff);}voidrecieve()interrupt4//数据接收{if(RI)//SBUF接受完数据时RI由硬件置为了1{count

6、_bee=0;//在接收到数据的同时把蜂鸣器的计时器置零dat=SBUF;xx=dat/16*10+dat%16;RI=0;//软件清零}}voidsend(unsignedcharx)//数据发送{SBUF=x;TI=0;while(!TI);//发送完硬件把TI置1TI=0;//软件把TI置0}voidclock()interrupt1//定时器0中断{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==20)//每1s进入一次{count=0;if(xx>0)//实现倒计时直到数字变成0{xx--;}s

7、end(xx/10*16+xx%10);//发送数据}if(xx==0&&count_bee<40)//在数字变成0的时候蜂鸣器开始响2S{count_bee++;flag=1;//蜂鸣器响的标志位}if(count_bee==40)//蜂鸣器在响了2S之后停止{flag=0;}TF0=0;}voidKey_in()interrupt0//外部中断0用于按键计数{delay(1000);for(KEY)number++;if(number==100)number=0;}voidm

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。