单片机原理及应用A实验四

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西南科技大学实验报告

课程名称:单片机原理及应用A

实验名称:UART串口通信及驱动程序设计姓名:张德蓉

学号: 5120141524

班级:生医1402

指导教师:雷华军

西南科技大学信息工程学院制

实验题目:

1、单片机点对点串口通信

要求:甲单片机外接一个3×3矩阵键盘和8个LED;乙单片机外接一个独立按键和一个数码管;甲乙两个单片机通过串口进行通信(即TXD和RXD引脚)。

按下甲单片机矩阵键盘的任意一个按键,将该键编号(编号自己设定)通过串口发送给乙单片机,乙单片机在数码管上显示出对应的按键号;

按下乙单片机的外接独立按键控制甲单片机的8个LED(按键之前8个LED灯均点亮),具体关系为:

(1)第1次按键,乙单片机向甲单片机通过串口发送命令字符A,甲收到该命令,使前4个LED灯亮,后4个不亮;

(2)第2次按键,乙单片机向甲单片机通过串口发送命令字符B,甲收到该命令,使前4个LED不亮,后4个亮;

(3)第3次按键,乙单片机向甲单片机通过串口发送命令字符C,甲收到该命令,使奇数个灯亮,偶数个灯不亮;

(4)第4次按键,乙单片机向甲单片机通过串口发送命令字符D,甲收到该命令,使偶数个灯亮,奇数个灯不亮;

(5)第5次按键,乙单片机向甲单片机通过串口发送命令字符E,甲收到该命令,使所有灯都不亮;

2、单片机与计算机串口通信

要求:设置单片机的串口为工作方式1,波特率设置为9600。计算机通过串口调试助手向单片机依次发送字符1、2、3、4,单片机收到每个字符后向计算机回复相应的内容

实验目的

1、理解串口通信原理

2、掌握串口调试

二、实验原理

1、矩阵键盘

按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V 电源上。无按键按下时,行线处于高电平的状态,而当有按键按下时,行线电平与此行线相连的列线电平决定。使行线为编程的输入线,列线是输出线,拉低所有的列线,判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行线都为高电平。在第一步判断有键按下后,延时10ms 消除机械抖动,再次读取行值,如果此行线还处于低电平状态则进入下一步,否则返回第一步重新判断。开始扫描按键位置,采用逐行扫描,每间隔1ms 的时间,分别拉低第一列,第二列,第三列,第四列,无论拉低哪一列其他三列都为高电平,读取行值找到按键的位置,分别把行值和列值储存在寄存器里。从寄存器中找到行值和列值并把其合并,得到按键值,对此按键值进行编码,按照从第一行第一个一直到第四行第四个逐行进行编码,编码值从“0000”至“1111”,再进行译码,最后显示按键号码。

2、数码管显示

数码管动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,

就使各个数码管轮流受控显示,这就是动态驱动。

3、串口

串行端口可提供标准的连接器和协议,允许我们将调制解调器等设备连接到计算机上。当今人们使用的所有计算机操作系统都支持串行端口;取名为“串行”端口,是因为这种端口会将数据“串行化”。更具体地说,它一次获取一个字节的数据并传输该字节的8位。这样做的优势在于,串行端口只需要一条线路就能传输8个位,而并行端口则需要8条。相应的劣势在于,其传输数据的用时是拥有八条线路时的8倍。此外,串行端口还可以降低线缆成本,使线缆更加小巧。在发送数据的每个字节之前,串行端口会发送一个开始位,这是一个值为0的单个位。在发送完数据的每个字节之后,它将发送一个停止位,表示该字节已传输完成。此外,它还可以发送奇偶校验位。串行端口也称为通信(COM)端口,是一种双向端口。在双向通信中,每个设备都可以接收数据和传输数据。串行设备使用不同的针脚来接收和传输数据——如果使用相同的针脚,通信将限制为半双工模式,这表示信息一次只能在一个方向上传播。使用不同的针脚可以实现全双工通信,在这种模式中,信息可以同时在两个方向上传播。

三、实验步骤

1、在编程软件(Keil5)中编写源程序,并编译,改错,形成.hex文件;

2、在仿真软件(Ptoteus)中画出实验所需的外设电路;

3、将生成的.hex文件下载到仿真电路中进行测试;

4、分析结果。

四、实验结果及分析

题目1:

单片机甲源程序

#include

sbit P10 = P1^0;sbit P11 = P1^1;sbit P12 = P1^2;//位设置

sbit P13 = P1^3;sbit P14 = P1^4;sbit P15 = P1^5;//位设置

void ConfigUART(unsigned int baud)//波特率设置

{

SCON = 0x50;//模式选择

TMOD &= 0x0f;//定时器模式选择

TMOD |= 0x20;//定时器模式选择

TH1 = 256 - (11059200/12/32)/baud;//定时器设置初值

TL1 = TH1;//自动重装载

ET1 = 0;//禁止定时器中断

ES = 1;//启动串口中断

TR1 = 1;//启动定时器

}

void delay(int t){ //延时函数

int j;

for(j = 0;j < t; j ++);

}

void InterruptUART() interrupt 4 //串口中断函数

{

if(RI) //接收信号

{

相关文档
最新文档