1、目录第一章摘要2第二章总体设计31)设计要求:32)设计方案:3第三章设计原理31)单片机串行通信的概述 32)单片机最小系统 4(1) AT89C-52单片4(2)晶振电路5(3)复位电路52)硬件设计73)软件设计9主程序设计9延时中断设计10初始值设定10程序流程图11第四章 系统的仿真与实现 12Proteus 软件介绍12Keil软件介绍12仿真过程13仿真结果13第五章设计小结14第六章参考文献14第七章附录151#机c程序152#机c程序17第一章摘要本次设计采用MCS-52单片机。是这样的,MCS 52系列单片机芯片比51芯片多了个定 时寄存器,芯片的内存也比 51大点,其他功
2、能相同。串行通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统, 实现双片单片机串行通信。通信的结果是用数码管、发光二极管进行显示,数码管采用查表 方式显示。两个单片机之间采用 TTL接口电路进行双机通信。在通信过程中,使用通信协议 单工进行通信。关键词:52单片机,串行通信,接口,通信协议。第二章总体设计1)设计要求:1#机2#机之间实现串行通信,1#机上接一个按键、一个八段数码管,2#机上接一个按键、2个LED),用1#机上的按键控制 2#机上的2个LED循环点亮,用2#机上的按键控制 1# 机上的数码管循环显示 0-9。2)设计方案:本次设计,对于两片 89C52,采
3、用TTL电路进行双机通信。发送方的数据由串行口TXD段输出,经过传输线将信号传送到接收端。信号到达接收方串行口的接收端。接受方接收后,在数码管上显示接收的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔 离。本系统利用单片机的串行口,由软件和硬件两部分协调实现两单片机的串行数据传输。硬件电路以AT89C52单片机为核心,外围电路包括按键电路(数据的输入),显示电路(数 据的输出),复位电路。工作在硬件电路基础上的软件主要完成数据输入,存储,显示,发 送和接收。由于两单片机相距很近,可以直接将其串行口相连,这样也可以简化设计难度。软件部分,通过通信协议进行发送接收,当1#机按键按下,
4、2刑两个灯开始循环点亮。当2刑按键按下后,首先把设定好的程序给单片机检验,完毕1#机开始接受并显示在 8段数码管上。第三章设计原理1)单片机串行通信的概述在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机 分布式应用系统的发展,通信的功能越来越重要通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输, 也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。使用串口通信时
5、,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为 1或者为0。在串行通信中,把通信接口只能发送或接收的单 传送办法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。 在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收, 任一时该,只能发或者只能收信息。51系列单片机有一个可编程的全双工串行通信接口,它可作异步接收发送器用,也可做同步移位寄存器用,其帧格式可有8位、10位或11位,并能设置各种波特率,给使用带来很大的灵活性。51系列单片机有两个物理上独立的接收、发送缓冲器SBUF它们只占用同一地址 99H,可同时发送、接送数据。发送
6、缓冲器只能写入,不能读出,接收缓冲器只能读出、不能写入。串行发送接收的速率与波特率发生器产生的移位脉冲同频。51系列单片机用定时器 T1或直接用CPU寸钟作为通信波特率发生器的输入,在串行接口的不同工作方式中,波特率发生器从两个输入信号中选择一个分频,产生移位脉冲来同步串口的接收和发送,移位脉冲的速率即是波特率。接收器是双缓冲结构,在前一个字节被从接收缓冲器SBUF读出之前,第二字节即开始被收。但是,若在第二个字节接收完毕后,前一个字节还未被CPU卖取的话,第二个字就会覆盖第一个字节,造成第一个字节的丢失。接收器是武汉理工大学单片机原理与应用课程设计说明书2双缓冲结构,串行口的发送和接U都是以
7、特殊功能寄存器SBUF的名义进行或写的。8051串行口可设置四种工作方式,可有 8位,10位和11位帧格式。方式0以8 位据为一帧,不设起始位和停止位,先发送最低位。方式1以10位为一帧传输,设有 1个起位“ 0”,8个数据位和1 一个停止位“ 1”。方式23以11位为1帧传输,设有1个起始 “0”,8个数据位,1个附加第九位和1个停止们“ 1”,附加第九位由软件置 1或清0。常一詈章圣詈著片机ROM/EPROM的单片只要将单片机接上时可。 MCS-51 单片的功能强、速度快系列产品,是当前工发送时在TB8中,接收时送入RB8中。2)单片机最小系统(1) AT89C-52 单AT89C51/5
8、2 是片内有机,用其构成最小应用系统时,钟电路和复位电路即机系列是 Intel公司推出的8位高档单片微型计算机业测试系统中较理想的一种,内部有一个可编程的全双工的串行通信口,即串行通信和发送缓冲器 (SBUF),这两个在物理上是独立的接收发送器,既可以发送数据,也可以接收数据。全双工的串行通信只需要一根输出线(发送数据TXD)和一根输入线 (接收数据RXD串行通信中主要有两种技术问题,一个是数据传送,另一个是数据转换。具体说,在发送端, 要把并行数据转换为串行数据;而在接收端,则要把接收到的串行数据转换为并行数据。串行数据传送是将构成字符的每个二进制数据按一定的顺序进行传送的方式,串行通信协议
9、规定字符数据的传送格式,每个串行数据由起始位、数据位、奇偶校检位和停止位组成。本系统就是利用单片机的串行口,以串行通信方式,实现两单片机之间的数据交换,信息共享。(2)晶振电路AT89C51/52单片机的时钟信号通常有两种形式:一种是内部时钟方式,另外一种是外部时钟方式。内部时钟方式是在单片机的XTALI和XTAL2引脚外接石英晶体,就构成了自激(3)复位电路当在AT89C51/52 单片机的RST引脚引入高电平并保持两个机器周期时,单片机内部就执行复位操作。在实际应用中,复位操作有两个基本形式:一种是上电复位,另一种是上电与按键均有效的复位。 本系统采用上电按 键都有效的复位。按键按下,RS
10、T弓I脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。另外在 单片机运行期间,还可以利用按键完成复位 操作。2)硬件设计计算机与外界的信息交换称为通信,常用的通信方式有两种: 并行通信和串行通信。 单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。51/2单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行
11、接口的结构如下:(1)数据缓冲器(SBUH接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。(2)串行控制寄存器(PCONSCONI于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式选择位,这两位组合成00, 01, 10, 11对应于工作方式 0、1、2、3。串行接口工作方式特点见下表SM0SM1工作方式功能波特率0008位同步移位寄存器(用于I/O扩展)f orC1201110位异步串
12、行通信(UART可变(T1溢出率*2 SMOD32 )10211位异步串行通信(UARTf orC64 或 foRd3211311位异步串行通信(UART可变(T1溢出率*2 /32 )SM2多机通信控制位。REN接收允许控制位。软件置 1允许接收;软件置 0禁止接收。TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。RB9在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第 9位数据TB8,使 从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中
13、断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器 T1作为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定 义为每秒钟传送的数据位数。(5)电源控制寄存器 PCONM最高位为SMOD(6)波特率计算当定时器T1工作在定时方式的时候,定时器 T1溢出率=(T1计数率)/ (产生溢出所需机 器周期)。由于是定时方式,T1计数率=f orC12。
14、产生溢出所需机器周期数 =模M-计数初值X。 驱动电路:4B U2 B -Pm巨, AUG 取ATfflDSZ cTEC11XTALZPlflTZP1.EB JJWHMl-Ttyf-1#机 proteus 设计总图 2#机3)软件设计通过通信协议进行收发数据,串行口工作于方式1;用定时器1产生9600bit/s的波特率,工作于方式2。通信协议:主机首先发送连络信号(按键),从机接收到之后开始接受数据。主程序设计主程序要完成的工作主要是系统的初始化设置系统状态显示及各开关量的状态检测判断。串行口工作于方式 1;用定时器1产生9600bit/s的波特率,工作于方式 2。通信协议:判断按键是否被按下
15、。串行口控制寄存器SCON勺设置串行口控制寄存器的基本情况在前面已经介绍,这里不再重复。根据我们所做的内容,我们采用了串行工作方式 1, RE置为“ 1”(允许接收),综上所述我们设 SCON勺初始值 为50H延时中断设计33 (45 (6189 72 void UARTinterr,jpt ( ) interrupt 4/ 中左7子程字“ (RI) 接受数据结束RI=0 /SBUE接受下个数据 tuiLpFBUF;初始值设定void (TART ()ATMOE-ax2O; /Ml-l,M0-0定时器1工作方式N 定时常数重装,5CON=0x50;/5MO=0, SM1=1, REN=1 串口
16、工作方式 1,允许接收THl=Oxfd;晶振工1.0592时,波特至TL1=TH1;TL1计数,溢日.后,理工值送入T二!EA=1;开总市断ES=1;允许串口中断TR1=1;程序流程图1#机2#机中断子程序第四章系统的仿真与实现Proteus软件介绍Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电 路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系 统。全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS- 232动态仿真、
17、1 C调试器、SPI调试器、键盘和 LCD系统仿真的功能;有各种虚拟仪器,如示 波器、逻辑分析仪、信号发生器等。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯 片。支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时, 关心的不再是某些语句执行时单片机寄存
18、器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。Keil软件介绍Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil即可看出。Keil提供了包括 C编译器、宏汇编、连接器、库管理和 一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。仿真过程操作如下:1)在Protues中画出系统电路图2)将程序在keil中编译并生成hex文件。3)把在keil中编译生成的 HEX文件载入AT89C
19、52芯片中;3)运行仿真。仿真结果FD.Ir 。口上偏 .ygwn纯H.lg F23A-D PZ3A1 RS-kMC 陞:&白口 ncAiii FZTU*3JWi= niEE nirra mjfinT*3.*rra ”STMMF kj.TiTTT3KBT:电rUDlADD n-mti2*P3 KXMH 2方咯 PC0AK RQTJ.*B?.API .JIBBTMm等 e 圭+T1T1-pm 3”,幅FE1L* FHW昌蛆 PUAtl 灯.国n FZJfAn R.SA* PZ.WAPIOiTZFi 1|T:P-12Pi 3P15FIOIKH1ErmTFE*3iTTTr3 4noP35mFIjGT
20、K小而f IJ第五章设计小结经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都 那么繁忙,但是在这忙碌的过程中却得到了许多的收获。经过课程设计,在查阅资料的过程中, 学习了基于单片机的 C语言程序设计,了解了单 片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协 议没有做好,导致数据不能正确的传输, 在解决问题的过程中, 对于通信协议的实现有了深 刻的认识。通过这次课程设计,锻炼了自己独立思考的能力。第六章参考文献2张迎新.单片机初级教程M.北京:北京航空航天大学出版社,19963谢
21、宜仁.单片机实用技术问答M.北京:人民邮电出版社,20034刘湘涛,江世明.单片机原理与应用M.西安:西安电子科技大学出版社,20035张毅刚,彭喜元 单片机原理及应用M.北京:高等教育出版社,20106高峰.单片微型计算机原理与接口技术M.北京:科学出版社,20077徐伟.C51单片机高效入门M.北京:机械工业出版社,20048何利J民.单片机应用系统设计M.北京:北京航空航天大学出版社,2006第七章附录1#机c程序#include头文件#define uchar unsigned char#define uint unsigned intuchar temp;/定义一个无符号字符ucha
22、r code tab尸0x3F,0x06,0x5B,0x4F,0x66,0x6D,0X7D,0x07,0x7F,0x6F;0-9字符void delay(uint ms)/延时子程序 uchar i;while(ms-)for(i=123;i0;i-);void UART(void)TMOD=0x20; /M1=1,M0=0 定时器1工作方式2 (定时常数重装, 8位)SCON=0x50; /SM0=0,SM1=1,REN=1 串口工作方式 1,允许接收TH1=0xfd; / 晶振 11.0592 时,波特率 9600TL1=TH1; /TL1 计数,溢出后,TH1值送入TL1EA=1;/开总
23、中断ES=1;/允许串口中断TR1=1;/启动定时器/计数器工作void display。uchar j;for(j=0;j10;j+)P0=tabj;P0口 写数据 0-9delay(1000);/延时void main()UART();while(1)大循环SBUF=P1;/接受数据while(TI=0);TI=0;/允许接受下一帧数据if(temp=0xfe)/ 判断按键是否按下display。;void UARTinterrupt( ) interrupt 4/中断子程序if(RI)/ 接受数据结束RI=0;/SBUF接受下个数据temp=SBUF;2#机c程序#include#def
24、ine uchar unsigned char#define uint unsigned intuchar temp;void delay(int ms)/延时子程序 uchar i;while(ms-)for(i=123;i0;i-)void UART()8位)TMOD=0x20; /M1=1,M0=0 定时器1工作方式2 (定时常数重装,SCON=0x50; /SM0=0,SM1=1,REN=1 串口工作方式 1,允许接收TH1=0xfd; / 晶振 11.0592 时,波特率 9600TL1=TH1; /TL1 计数,溢出后,TH1值送入TL1EA=1;/开总中断ES=1;/允许串口中断
25、TR1=1;void display。uchar j;for(j=0;j10;j+) 灯循环闪十次P0=0xFE;/只有第一个灯亮delay(500);/延时P0=0xFD;/只有第二个灯亮delay(500);/延时void main()UART();/设置单片机工作方式while(1)SBUF=P1; 取出 SBUF值名P1 口while(TI=0);/ 允许向SBUF写入下个数据TI=0;if(temp=0XFE)/ 判断 Pi0 状态display。;中断程序void UARTinterrupt() interrupt 4 /if(RI)/接受数据完成,申请中断RI=0;允许接受下个数据temp=SBUF; 赋值 SBUF