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

下载本文档

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

文档简介

1、单片机课程设计 单片机双机串行通信 姓 名: B 英 厚 学 号: 20115401 专业班级: 生医1101 指导老师: 徐 锋 所在学院: 信息工程学院 2013年6月18日 系统总体方案设计要求:A.基本要求:1. 甲机通过按键经串口控制乙机的LED灯点亮与熄灭;2. 甲机通过按键控制串口向乙机发送按下的次数,按下的次数显示在乙机对应的1位数码管上,超过10次进入下一个循环;3. 乙机通过按键控制串口向甲机发送一数值,并从该数值开始进行倒计时,倒计时完成后通过蜂鸣器提示。 B.扩展部分:1. 乙机通过按键控制串口将预先存放在其对应的ROM中的0-9共10个字符发送到甲机的对应的ROM中,

2、并通过1位数码管进行循环显示。总体设计单片机主机(甲)中断按键复位电路晶振电路数码显示蜂鸣器两单片机之间链接:,单片机从机(乙)中断按键复位电路晶振电路数码显示LED显示 硬件设计本来本学期学习的单片机是恩智浦的P89V51RB2,但由于PROTEUS仿真软件上无法找到P89V51RB2,故本次单片机就选择了AT89C52AT89C52与MCS-51单片机产品兼容 、8k可反复擦写(大于1000次)Flash ROM、 时钟频率:0Hz24Hz 、 三级加密程序存储器 、 32个双向I/O口 、2个串行中断,可编程UART串行通道、3个16位可编程定时/计数器中断 、2个外部中断源,共8个中断

3、源、低功耗空闲和掉电模式、软件设置睡眠和唤醒功能、2个读写中断口线、3级加密位、看门狗定时器 、双数据指针。功能特性描述AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16

4、 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路,8 位微控制器 8K 字节在系统可编程 Flash ROM。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入端用。 在访问外部数据存储器或程序存储器时,P0口被分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。 在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个TTL

5、逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。 P1端口引脚号第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输

6、出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2 口输出P2 锁存器的内容。 Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3 口:P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出

7、电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。 P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 P3端口引脚第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1

8、(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该

9、位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

10、FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 引脚结构图如下所示:引脚结构图5 源程序代码主机(甲)源代码:#include reg52.hsbit KEY1=P32;sbit KEY2=P33;sbit BEEP=P20;unsigned char Receive=0;unsigned char Table10=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;unsigned int Num=0;unsigned char TIME=0;void KEY_Init(void)

11、IT0=1; /外部中断0触发类型选择,0为电平,1为边沿触发IT1=1;EX0=1;EX1=1;EA=1;void UART_Init(void)TMOD|=0x20; /设置波特率发生器为定时器2为8位自动重装载模式PCON = 0x00; /设置波特率不加倍(0x80加倍)SCON=0x50; /* 配置为8位UART,允许接收 */TH1=0xFd; /设置波特率9600TL1=0xFd;TR1=1; /开启定时器1ES=1;EA=1;void SendChar(unsigned char TempC)SBUF=TempC;while(!TI);TI=0;void TIM0_Init(

12、)TMOD|=0x01;TH0=0x4c;/50ms定时时间TL0=0x00;ET0=1;EA=1;TR0=0;TI=1;int main()P1=Table0;BEEP=0;KEY_Init();TIM0_Init();UART_Init();while(1);void KEY1Interrupt(void) interrupt 0if(KEY1=0)SendChar(a);void KEY2Interrupt(void) interrupt 2if(KEY2=0)SendChar(b);void UARTInterrupt(void) interrupt 4EA=0;if(RI=1)Rec

13、eive=SBUF;RI=0;if(Receive=0&Receive=A&ReceiveTIME*20)TR0=0;BEEP=1;Num=0;从机(乙)源代码:#include reg52.hsbit KEY1=P32;sbit KEY2=P33;sbit BEEP=P20;unsigned char Receive=0;unsigned char Table10=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;unsigned int Num=0;unsigned char TIME=0;void KEY_Init(void)IT0=1;

14、IT1=1;EX0=1;EX1=1;EA=1;void UART_Init(void)TMOD|=0x20;PCON = 0x00;SCON=0x50;TH1=0xFd;TL1=0xFd;TR1=1;ES=1;EA=1;void SendChar(unsigned char TempC)SBUF=TempC;while(!TI);TI=0;void TIM0_Init()TMOD|=0x01;TH0=0x4c;/50ms定时时间TL0=0x00;ET0=1;EA=1;TR0=1;TI=1;int main()P1=Table0;KEY_Init();UART_Init();BEEP=0;while(1);void KEY1Interrupt(void) interrupt 0if(KEY1=0)SendChar(C);void KEY2Interrupt(void) interrupt 2if(KEY2=0)SendChar(3);void UARTInterrupt(void) int

温馨提示

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

评论

0/150

提交评论