- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计
题目四
双机通信系统设计
院 系: 自动化学院 专业班级: 小组成员: 日 期: 2010年6月7日-2010年6月18日
1.课程设计描述:设计一个双机通信系统,实现按键数据的互发及显示功能。
2.课程设计具体要求:利用两片STC89C52单片机作为通信双方(甲机和乙机)的主控制器,甲机的按键数据可通过串口发送至乙机,并通过乙机的数码管显示出来,反之,亦然。
3.主要元器件:STC89C52(2片)、电容(30PF*4、10UF*4)、数码管(共阳)、晶振(11.0592MHZ)小按键、发光二极管、电阻(8*100)、Keil uVsion2、Proteus 7 Professional、Win-tc软件。
4.基本原理阐述:串行通信方式分为同步串行通信方式和异步串行通信方式。本次实验双机通信可以采用RS-232电平和TTL电平的转换。由于本实验近距离通信,所以采用TTL电平转换方式。TTL方式只需要将两单片机的RXD、TXD引脚相连接即可。采用查询方式,故接收/发送程序中只需检查发送/接收的准备好状态是否置位,在准备好时就发送或接收一个字节。
接收数据流程
串口中断函数
甲机程序:
甲机向乙机发送控制命令字符,甲机同时可接收乙机发送的数字,所接收的数字显示在数码管上
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P1^0;
sbit LED2=P1^3;
sbit K1=P1^7;//位声明
uchar Operation_NO=0;
uchar code DSY_CODE[]={// 0xc0,/*0*/
0xf9,/*1*/
0xa4,/*2*/
0xb0,/*3*/
0x99,/*4*/
0x92,/*5*/
0x82,/*6*/
0xf8,/*7*/
0x80,/*8*/
0x90,/*9*/};//数码管共阳极编码
void Delay(uint x)
{
uchar i;
while(x--)for(i=0;i120;i++);
}//延时函数
void putc_to_SerialPort(uchar c)
{
SBUF=c//发送缓冲器;
while(TI==0);
TI=0;//发送中断标志
}
void main()
{
P0=0xc0;
SCON=0x50;// 串口工作在方式,允许接收
TMOD=0x20;//T1工作在模式2,8位自动装载
PCON=0x00;//波特率不倍增
TH1=0xFD;
TL1=0xFD;//波特率9600
TI=RI=0;//RI为接收中断标志
TR1=1;//启动定时器T1
IE=0X90;//允许串口中断
while(1)
{
Delay(100);
if(K1==0)
{
while(K1==0)
Operation_NO=(Operation_NO+1)%4;
switch (Operation_NO)
{case 0:putc_to_SerialPort(X);
LED1=LED2=1;
break;
case 1: putc_to_SerialPort(A);
LED1=0;
LED2=1;
break;
case 2: putc_to_SerialPort(B);
LED1=1;
LED2=0;
break;
case 3: putc_to_SerialPort(C);
LED1=0;
LED2=0;
break;
}
文档评论(0)