首页资源分类嵌入式处理器51内核 > 单片机毕业论文

单片机毕业论文

已有 445109个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:论文

    分    享:

    文档简介

    单片机课设论文以及毕业论文

    文档预览

     单片机与串口通信的实现 周泽宇 (华北理工大学轻工学院 ) 摘 要: 通过对 Visual C + + 与 RS -232 串口通信的若干方法的比较, 阐明了用串口类的优点. 并通 过简易的数字可存储示波器的制作, 详细说明了利用串口类实现 Visual C + + 与 51 单片机之间的通 信的全过程. 关键词: 串口类; Visual C + + ; 51 单片机; 数字示波器 Communication between VC and MCS51 by serialport class DAI Ming-jun, SUN Shi-you (Department of Automation and MechanicaI, Harbin Institute of Technoiogy Shenzhen Graduate School, Shenzhen 518055, China) Abstract:Through the comparison of muItipIe methods of seriaI communicatiOn between VisuaI C + + and RS -232,the advantage of seriaI cIass is clarified. And through the makingprocess of simple digital savable osillograph,the process of implementing the communicationbetween Visual C + + and MCS51 is particularly illuminated using serial cIass. Key words: serial class; Visual C + + ; MCS51; digital osillograph 2 MCS-51 串口介绍 MCS- 51单片机有一个全双工的串行通讯口UART,利用其 RXD和 TXD与外界进行通信, 其内部有 2 个物理上完全独立的接收、发送缓冲器SBUF, 可同时发送和接收数据。所以单片机和 PC机之间可以方便地进行串口通讯。单片机串口有 3条引线 : TXD( 发送数据)、RXD( 接收数据) 和 GND( 信号地 )。因此在通信距离较短时可采用零 MODE M 方式,简单三连线结构 。 IBM- PC机有两个标准的 RS- 232串行口 ,其电平采用的是 EI A 电平 , 而MCS- 51单片机的串行通信是由 TXD( 发送数据) 和RXD( 接收数据) 来进行全双工通信的, 它们的电平是 TTL电平 ; 为了 PC机与 MCS- 51机之间能可靠地进行串行通信, 需要用电平转换芯片 , 我们采用了MAXI M 公司生产的专用芯片 MAX232进行转换 2.1 串行接口数据缓冲器 (SBUF) SBUF 是两个在物理上独立的接收、 发送缓冲器, 可同时发送、接收数据。通过指令来区别读写的是接收缓冲器还是发送缓冲器。 串行口对外也有两条独立的收发信号线 RxD(P3.0)、 TxD (P3.1) , 可 以同时发送、 接收数据, 实现全双工。 2.2 串行口控制寄存器 (PCON) SCON 寄存器用来控制串行口的工作方式和状态,它可以按位 寻址。在复位时所有位被清零, 字节地址为 98H。各位含义如下: SM0, SM1:串行 接口 工 作 方 式 选 择 位 ,这 两 位 组 合 成00, 01, 10, 11 对应于工作方式 0、 1、 2、 3。串行接口工作方式特点见 下表 SM2: 多机通信控制位。 REN: 接收允许控制位。软件置 1 允许接收; 软件置 0 禁止接收。 TB8: 方式 2 或 3 时, TB8 为要发送的第 9 位数据, 根据需要由软件置 1 或清 0。 RB8: 在方式 2 或 3 时, RB8 位接收到的第 9 位数据, 实际为主 机发送的第 9 位数据 TB8, 使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。 TI: 发送中断标志。 用于指示一帧数据发送是否发送完毕。 在方式 0 时, 当串行发送第 8 位数据结束时, 或在其他方式, 串行发送停 止位的开始时, 由内部硬件使 TI 置 1, 向 CPU 发中断请求。在中断服务程序中, 必须用软件将其清 0, 取消此中断申请 RI: 接收中断标志。 用于指示一帧数据发送是否接收完毕接。 收完一帧数据后由硬件自动置 1,并申请中断。必须要软件清零后才能继续接收。 2.3 波特率发生器 波特率发生器用来控制串行通信的数据传输速率的, 51 系列单片机用定时器 T1 作为波特率发生器。 2.4 电源控制寄存器 PCON 其最高位为 SMOD, 当 SMOD=1 时, 波特率提高 1 倍。 2.5 波特率确定 在方式 1 下, 串行口波特率由定时器 T1 的溢出率决定, 通常为了计算方便, 定时器 T1 采用方式 2 (20H) , TH1 和 TL1 为 0FDH, 若晶振频率为 11.0592, 则波特率就是 9600。 3实现程序 #include #include #define uint8 unsigned char #define uint16 unsigned int uint8 orgnum[5]; uint8 X; void dectobin(uint16 n); void Init(void); void main(void) { uint8 i=0,m,j,k,p,q,w=1; char n; Init(); while(1) { if(F0) { ES=0;//关闭中断 orgnum[i]=X; i++; if(i==1) { j=orgnum[0]-48; SBUF=orgnum[0]; while(!TI); TI=0; m=rand()%4; if(m==0) { SBUF=43; while(!TI); TI=0; } if(m==1) { SBUF=45; while(!TI); TI=0; } if(m==2) { SBUF=42; while(!TI); TI=0; } if(m==3) { SBUF=47; while(!TI); TI=0; } } if(i==2) { k=orgnum[1]-48; SBUF=orgnum[1]; while(!TI); TI=0; SBUF=61; while(!TI); TI=0; if(k==0&&m==3) { SBUF=69; while(!TI); TI=0; SBUF=82; while(!TI); TI=0; w=0; } if(w) { switch(m) { case 0:n=j+k; break; case 1:n=j-k; break; case 2:n=j*k; break; case 3:n=j/k; break; } if(n>=0) { if(n>=10) { p=n/10; SBUF=p+48; while(!TI); TI=0; q=n%10; SBUF=q+48; while(!TI); TI=0; } if(n<10) { q=n%10; SBUF=q+48; while(!TI); TI=0; } } if(n<0) { SBUF=45; while(!TI); TI=0; if(n<=-10) { p=n/10; SBUF=-p+48; while(!TI); TI=0; q=n%10; SBUF=-q+48; while(!TI); TI=0; } if(n>-10) { q=n%10; SBUF=-q+48; while(!TI); TI=0; } } } SBUF=0; while(!TI); TI=0; w=1; i=0; } //SBUF=X; //while(!TI); //TI=0; ES=1;//开启中断 F0=0; } /* for(n=0;n<4;n++)//修改 { P2=LESD[n]; P0=Segment[two[n]]; Delayms(1); } */ } } void Init(void) { TMOD=0x20;//定时器一,工作方式2,8位自动重装载 TH1=0xf3; TL1=0xf3;//bde=2400 SCON=0X50;//串口方式1,允许接收 IE=0x90;//打开串口中断EA=1;ES=1; TR1=1; } void Serial_ISR(void) interrupt 4 { RI=0; X=SBUF; F0=1; } 参考文献 [1]曹增峰,刘浩,李雪.基于51单片机的串行通信协议的实现[D].江苏:中国矿业大学,2009. [2]钱震宇,肖昌汉,李志新.基于 51 单片机的 C A N 总线转串口通信卡的设计与实现[D].武汉:海军工程大学,2003. [3]代明军,刊士友.用串口类实现 VC 与 MCS51 单片机之间的通信[D].广东:哈尔滨工业大学,2006. [4]王晓东,刘春红,于 鑫. 单片机和计算机的串口通信[D].哈尔滨:哈尔滨工程大学,2003. [5]朱 振 亚.8051 单片机串口通信中的检错方法[D].成都:西南技术物理研究所,2011. [6]夏建芳, 赵世富.虚拟仪器与单片机串口通信的实现[D].湖南:中南大学,2006. [7]刘 鹏.基于 51 单片机串口通讯的多路采集系统[D].湖北:长江大学,2012. [8]席东河,马磊娟,杜娟.单片机串口通信的调试方法与技术[D].河南:河南工业职业技术学院,2010. [9]于艳,顾桓.MCS- 51单片机和 PC机间的串口通信[D].西安:西安理工大学印刷包装工程学院,2007. [10]赵晓东,张丽梅.51 单片机串口通信仿真的纯软件实现[D].上海:中北大学信息与通信工程学院,2001.

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。