当前位置:文档之家› 双机通信课程设计报告

双机通信课程设计报告


temp=keypadscan(); for(i=0;i<16;i++) { if(temp==keycode[i]) return Number[i]; } return 'R'; } void DelayL() { uchar m,n; m=0xA0; n=0xFF; while(m--) while(n--); } void DelayS() { uchar ii; ii=0x1F; while(ii--); } void WriteCommand(uchar c) { DelayS(); LCDEN=0; LCDEN=1; RS=0; RW=0; P0=c; } void WriteData(uchar c) { DelayS(); LCDEN=0; LCDEN=1; RS=1;
EA=1; } void ES0(void) interrupt 4 { if(RI){ RI=0; rposition++; receivedata=SBUF;} else { TI=0; sposition++; } }
六、实验器材
4×3矩阵键盘 2个AT89C52 2个LCD 串口连接线
七、Байду номын сангаас结
一、实验内容
1、设计内容 1)用双全共数据传送法实现两机互相通信。 2)完成双机通信的设计制作及仿真。 2、设计要求 1)能本机显示按键的数值。 2)能向对方机发送按键的数。 3)能接收对方机发送的数并显示。 4)发送数及按键用中断实现。 5)用串行口的双全工方式通信。
二、实验原理
计算机与外界的信息交换称为通信,常用的通信方式有两种:并行 通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出 就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线 较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线
/*-----------------------------------------------------*/ /*---------------------主程序部分----------------------*/ /*-----------------------------------------------------*/ void main(void)
{ uchar u; EA=0; //关总中断; TMOD=0x20; //定时器1工作于方式2,8位自动重装; TH1=0xF8; TL1=0xF8; //波特率4800位/s; SCON=0x50; //串口工作于方式1(8位),波特率可变; PCON=0x00; //波特率不加倍; IT0=1; IP=0x11; //外部中断0和串口高优先级; TR1=1; //启动定时器1; EX0=1; //外部中断0允许; ES=1; //串口中断允许; EA=1; //开总中断; SP=0x50; InitLcd(); DelayL(); ShowString(0,str1); ShowString(1,str2); while(1) { P1=0xF0; DelayL(); if(sposition>15) { for(u=8;u<16;u++) ShowChar(u,' '); sposition=8;} if(sposition>7) ShowChar(sposition,senddata); if(rposition>31) { for(u=24;u<32;u++) ShowChar(u,' '); rposition=24;} if(rposition>23) ShowChar(rposition,receivedata); } } /*-----------------------------------------------------*/ /*----------------------中断子程序---------------------*/ /*-----------------------------------------------------*/ void INT00(void) interrupt 0 { EA=0; senddata=gotkey(); SBUF=senddata;
(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低, 传输的距离较远。 串行数据通信要解决两个关键问题,一个是数据传送,另一个是数 据转换。所谓数据传送就是指数据以什么形式进行传送。所谓数据转换 就是指单片机在接收数据时,如何把接收到的串行数据转化为并行数 据,单片机在发送数据时,如何把并行数据转换为串行数据进行发送。 单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接 收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为 单位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传 输线一帧一帧地接收。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用 异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行 接口的结构如下: (1)数据缓冲器(SBUF) 接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一 个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发 送;接收时用指令将SBUF中接收到的数据取出。 (2)串行控制寄存器(PCON) SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如 下: SM0 SM1 SM2 REN TB8 RB8 TI RI SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11 对应于工作方式0、1、2、3。串行接口工作方式特点见下表 SM0 0 0 SM1 工作方式 0 1 0 1 功能 波特率
uchar str2[16]={"RECVING:"}; /*-----------------------------------------------------*/ /*---------------------------子程序部分----------------*/ /*-----------------------------------------------------*/ code char keycode[16]= {0xEE,0xDE,0xBE,0x7E,0xED,0xDD,0xBD,0x7D,0xEB,0xDB,0xBB,0x7B,0xE7,0x code char Number[16]={'7','8','9','/','4','5','6','*','1','2','3','-','C','0','=','+'}; code char ksp[4]={0xFE,0xFD,0xFB,0xF7}; void delaykey(void) { uchar i,j; for(i=0;i<5;i++) for(j=0;j<200;j++) ; } uchar keypadscan() { char key,i; for(i=0;i<4;i++) { P1=ksp[i]; if(P1!=ksp[i]) { key=P1; if(key!=ksp[i]) { while(P1!=ksp[i]); return(key);break; } } } } char gotkey() { char temp,i;
经过一周的课程设计,我们小组终于完成了设计任务。虽然在这段 时间里有时很迷茫,但却得到了很多的收获。 经过课程设计,在查阅资料及老师的指导下,掌握了基于单片机的 C语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习 和工作都有很大的益处。 在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送 端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问 题的过程中,对于通信协议的实现有了深刻的认识。 通过这次课程设计,锻炼了我们的独立思考的能力,在设计过程中 培养了团结协作的精神。
8位同步移位寄存器(用于I/O fORC/12 扩展) 10位异步串行通信(UART) 可变(T1溢出率
*2SMOD/32) 1 1 0 1 2 3 11位异步串行通信(UART) 11位异步串行通信(UART) fORC/64或fORC/32 可变(T1溢出率 *2SMOD/32)
SM2:多机通信控制位。 REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。 TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1 或清0。 RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送 的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是 要传送的数据。 TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中 断。必须要软件清零后才能继续发送。 RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中 断。必须要软件清零后才能继续接收。 (3)输入移位寄存器 接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并 行送入接收SBUF中。 (4)波特率发生器 波特率发生器用来控制串行通信的数据传输速率的,51系列单片机 用定时器T1作为波特率发生器,T1设置在定时方式。波特率时用来表示 串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。 (5)电源控制寄存器PCON 其最高位为SMOD。 (6)波特率计算 当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数 率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率= fORC/12。产生溢出所需机器周期数=模M-计数初值X。
单片机课程设计报告 双机通信的设计与仿真
相关主题