串行口通信实验 单片机实验报告_第1页
串行口通信实验 单片机实验报告_第2页
串行口通信实验 单片机实验报告_第3页
串行口通信实验 单片机实验报告_第4页
串行口通信实验 单片机实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验六串行口通信实验一、实验内容实验板上有RS-232接口,将该接口与PC机的串口连接,可以实现单片机与PC机的串行通信,进行双向数据传输。本实验要求当PC机向实验板发送的数字在实验板上显示,按实验板键盘输入的数字在PC机上显示,并用串口助手工具软件进行调试。二、实验目的掌握单片机串行口工作原理,单片机串行口与PC机的通信工作原理及编程方法。三、实验原理51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通信。进行串行通讯信要满足一定的条件,比如电脑的串口是RS232电平(-5~-15V为1,+5~+15V为0),而单片机的串口是TTL电平(大于+2.4V为1,小于-0.7V为0),两者之间必须有一个电平转换电路实现RS232电平与TTL电平的相互转换。为了能够在PC机上看到单片机发出的数据,我们必须借助一个Windows软件进行观察,这里我们可以使用免费的串口调试程序SSCOM32或Windows的超级终端。单片机串行接口有两个控制寄存器:SCON和PCON。串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端用于输出移位同步时钟信号,其波特率固定为振荡频率的1/12。由软件置位串行控制寄存器(SCON)的REN位后才能启动,串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的T1位置1,必须由软件清零。单片机与PC机通信时,其硬件接口技术主要是电平转换、控制接口设计和远近通信接口的不同处理技术。在DOS操作环境下,要实现单片机与微机的通信,只要直接对微机接口的通信芯片8250进行口地址操作即可。WINDOWS的环境下,由于系统硬件的无关性,不再允许用户直接操作串口地址。如果用户要进行串行通信,可以调用WINDOWS的API应用程序接口函数,但其使用较为复杂,可以使用KEILC的通信控件解决这一问题。四、实验电路[参考学习板说明书P27]五、连线方法用串口线把单片机通过MAX232电平转换芯片与PC机相连,芯片的R2out和T2in分别与单片机的RXDP3.0和TXDP3.1连接。六、参考程序程序一:/***************************************************************功能:首先LED显示串口接收的数据,然后将该数据发送给上位机作者:txl时间:2009-04版本:V1.0***************************************************************/#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitwei1=P2^0;sbitwei2=P2^1;ucharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳数码管码表ucharidatabuffer[32];ucharnum,l_datatemp,l_data;//函数声明voidinit(void);voidsend_char_com(unsignedcharch);voiddelay(uintz);main(){ucharl_data1,l_data2;num=0;//rxd_num=0;l_datatemp=0;//用于存储新接收的数据l_data=0;//用于存储显示的数据init();while(1){if(l_data!=l_datatemp)//若接收的数据与原来显示的数据不一致,更新原来显示的数据{l_data=l_datatemp;send_char_com(l_data);}l_data1=l_data&0xf0;//取高四位显示l_data1=l_data1>>4; wei1=0;P0=table[l_data1];delay(5);wei1=1;l_data2=l_data&0x0f;//取低四位显示 wei2=0;P0=table[l_data2];delay(5);wei2=1;}}/*-------------------------------------------------------功能:串口初始化,波特率2400方式18UART-------------------------------------------------------*/voidinit(void)//串口初始化{TMOD=0x20;PCON=0x00;SCON=0x50; TH1=0xF3;TL1=0xF3; TR1=1;//启动定时器/计数器,还与GATE位状态有关 ES=1;//允许串行中断 EA=1;//总中断开}//查询方式向串口发送一个字符voidsend_char_com(unsignedcharch){SBUF=ch;while(TI==0);TI=0;}/*//向串口发送一个字符串,strlen为该字符串长度voidsend_string_com(unsignedchar*str,unsignedintstrlen){unsignedintk=0;do{send_char_com(*(str+k));k++;}while(k<strlen);}*///中断方式从串口接收字符voidreceive(void)interrupt4using3{if(RI){if(TI)//处理发送中断{TI=0; }RI=0;l_datatemp=SBUF;}}voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}程序二、#include<REG51.H>#defineU8unsignedchar#definekey_portP1codeU8tab[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0xff};U8buf[4]={10,10,10,0};//显示缓冲区,开机先显示"0"U8cnt=0; //扫描计数U8scn=0x7F; //送P2口控制LED显示位,最左边LED先亮U8rc;codeU8kcode[]={0xb7,0xbe,0xde,0xee,0xbd,0xdd,0xed,0xbb,0xdb,0xeb,0xd7,0xe7};//反转码对应键值0123456789ABvoiddelay_ms(U8ms){ U8i,j; for(i=0;i<100;i++) {for(j=0;j<ms;j++);};}U8key(void){ U8a,r; delay_ms(20); //延时20毫秒,消除按键抖动 if(key_port==0xf0)gotorn; a=key_port; key_port=a|0x0f; delay_ms(20); a=key_port; for(r=0;r<=11;r++) {if(a==kcode[r])break;}; if(r>11)r=0xff;//0xff表示无效rn: key_port=0xf0; returnr;}voidsend(unsignedcharc)//发送一字节数据{ SBUF=c; while(TI==0);//等待发送完毕 TI=0;}voidmain(void){ EA=1; //允许中断 TMOD=0x21;//定时器0方式1,定时器1方式2(作波特率发生器用) ET0=1; //允许定时器0中断 TH0=0xEE; //晶振11.0592MHz,5mS TL0=0; PCON=0; //波特率不倍增 SCON=0x50; //串口工作方式1,REN=1(允许接收)TH1=0xFD; //(11.0592MHz晶振,9600B/S)TL1=0xFD; TR0=1; //开始计数 TR1=1; ET1=0; //禁止定时器1中断 key_port=0xf0; while(1) {if(RI==1) {rc=SBUF;RI=0; if((rc<='9')&&(rc>='0'))buf[3]=rc-'0'; }; if(key_port!=0xf0) { send(key()%10+'0'); while(key_port!=0xf0); delay_ms(20); while(key_port!=0xf0);} }}voidtimeint(void)interrupt1//定时器0中断服务程序{ unsignedchari,s; TH0=0xEE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论