410 likes | 592 Views
单片机开发工具的使用. 简易仪器仪表设计制作. 秒表的设计制作. 里程表的设计制作. LED 电子显示屏的设计制作. LED 流水灯设计制作. 简易计算器的设计制作. 五. 四. 三. 七. 六. 八. 二. 学习项目. 单片机最小应用系统构建. 一. 智能控制电路项目实践. 主讲: 李多友. 项目七 LED 电子显示屏的设计制作. 唐山工业职业技术学院 自动化工程系. 任务 1. 任务 2. 16×16 点阵显示屏设计制作. 8×8 点阵显示屏设计制作. 项目七 LED 电子显示屏的设计制作. 任务 3. 显示内容远程控制.
E N D
单片机开发工具的使用 简易仪器仪表设计制作 秒表的设计制作 里程表的设计制作 LED电子显示屏的设计制作 LED流水灯设计制作 简易计算器的设计制作 五 四 三 七 六 八 二 学习项目 单片机最小应用系统构建 一
智能控制电路项目实践 主讲: 李多友 项目七 LED电子显示屏的设计制作 唐山工业职业技术学院自动化工程系
任务1 任务2 16×16点阵显示屏设计制作 8×8点阵显示屏设计制作 项目七 LED电子显示屏的设计制作 任务3 显示内容远程控制
任务三 显示内容远程控制 一、任务要求 本任务要求由PC机发出不同数据,单片机接收后从P1口输出,控制LED的亮灭,从而验证接收数据是否正确。
二、案例展示 PC机更新数码显示内容
学习单片机串行口工作方式1-3的使用;学习RS232通信协议;学习串口调试软件的使用;查询串行接口芯片的类型及使用方法;选择器件进行电路安装;编写控制程序验证结果。(波特率选用2400bps)学习单片机串行口工作方式1-3的使用;学习RS232通信协议;学习串口调试软件的使用;查询串行接口芯片的类型及使用方法;选择器件进行电路安装;编写控制程序验证结果。(波特率选用2400bps) • 任务提示:
三、任务完成步骤 理论学习及方案设计; 电路设计与器件选择; 电路安装/程序设计; 功能验证。
四、任务评价与总结: 任务完成情况; 存在问题及改进内容; 工作页互查与评分。
1. 串行口工作方式1当SM0、SM1为01时,串行口工作在方式1,TXD(P3.1引脚)为发送端,RXD(P3.0引脚)为接收端。一帧数据为10位,其格式为: 51单片机串行口的工作方式
串行口以方式1发送时,CPU执行一条语句“ SBUF=outdata;”,数据写入发送缓冲器SBUF,启动发送器发送。 发送时TXD引脚将依次输出一位起始位(0)、8位数据位(先低位后高位)和一位停止位(1)。 发送完数据后,置中断标志TI为1。
当串行口置为方式1,且REN=1时,串行口处于方式1的接收状态。 接收器对RXD引脚状态进行采样时,如果接收到由1到0的负跳变时,就启动接收器,开始接收数据。当串行口置为方式1,且REN=1时,串行口处于方式1的接收状态。 接收器对RXD引脚状态进行采样时,如果接收到由1到0的负跳变时,就启动接收器,开始接收数据。
在方式1接收时,必须同时满足以下条件:RI=0和停止位为1或SM2=0。接收数据有效,进入SBUF,停止位进入RB8,并置中断请求标志RI置1。 任何一个条件不满足,则该组数据丢失,不再恢复。 重新检测RXD上1到0的负跳变,准备接收下一帧数据。 中断标志位必须由用户在程序中清0。在方式1接收时,必须同时满足以下条件:RI=0和停止位为1或SM2=0。接收数据有效,进入SBUF,停止位进入RB8,并置中断请求标志RI置1。 任何一个条件不满足,则该组数据丢失,不再恢复。 重新检测RXD上1到0的负跳变,准备接收下一帧数据。 中断标志位必须由用户在程序中清0。
方式1的波特率取决于定时器TI的溢出率和特殊功能寄存器PCON中最高位SMOD的值。 注意:PCON为电源控制寄存器,不可位寻址。它的低7位全都用于单片机的电源控制,只有最高位SMOD用于串行口波特率系数的控制。方式1的波特率取决于定时器TI的溢出率和特殊功能寄存器PCON中最高位SMOD的值。 注意:PCON为电源控制寄存器,不可位寻址。它的低7位全都用于单片机的电源控制,只有最高位SMOD用于串行口波特率系数的控制。
方式1波特率的计算公式为:定时器T1的溢出率即每秒钟溢出的次数,计算公式为: 其中,k为定时器T1的计数位数,N是定时器T1的预置初值,fosc为晶振频率。
选择定时器T1作为波特率发生器,通常将其设置为定时器方式2(且TCON的TR1=1,启动定时器),可以不用重新装入初值。 在实际使用时,一般是固定一个通信波特率,然后去计算T1的预置初值N。选择定时器T1作为波特率发生器,通常将其设置为定时器方式2(且TCON的TR1=1,启动定时器),可以不用重新装入初值。 在实际使用时,一般是固定一个通信波特率,然后去计算T1的预置初值N。
初值计算公式:例如,系统的时钟频率为12MHz,通信波特率为2400位/秒,当SMOD=1时,那么定时器T1的预置初值为:初值计算公式:例如,系统的时钟频率为12MHz,通信波特率为2400位/秒,当SMOD=1时,那么定时器T1的预置初值为:
2. 串行口工作方式2和方式3当SM0、SM1为10时,串行口为工作方式2,一帧数据为11位,其中包括一位起始位0、8位数据位(先低位后高位)、一位可编程位(D8位)和一位停止位1。
发送时可编程位装入SCON中的TB8,根据需要装入0或1。它由软件置位或清零,可作为多机通信中地址/数据的标志位,也可作为数据的奇偶校验位。一帧数据的格式为:发送时可编程位装入SCON中的TB8,根据需要装入0或1。它由软件置位或清零,可作为多机通信中地址/数据的标志位,也可作为数据的奇偶校验位。一帧数据的格式为:
方式2的发送与方式1类似,单片机在数据写入SBUF之前,先将数据的可编程位写入TB8。 CPU执行一条给SBUF赋值的命令后,便立即启动发送器发送,发送完毕,置发送请求标志位为1。必须用软件将TI清0。方式2的发送与方式1类似,单片机在数据写入SBUF之前,先将数据的可编程位写入TB8。 CPU执行一条给SBUF赋值的命令后,便立即启动发送器发送,发送完毕,置发送请求标志位为1。必须用软件将TI清0。
方式2的接收与方式1类似,当REN=1时,串行口接收数据。当接收器对RXD端输入,接收11位信息,其中一位起始0、8位数据位(先低位后高位)、一位可控1或0的第9位数据和一位停止位1。 当接收器收到第9位数据后,如RI=0且SM2=0或接收到的第9位数据位为1时,将收到的数据送入SBUF(接收数据缓冲器),第9位数据送入RB8,并对RI置1; 若以上两个条件均不满足,接收信息丢失。方式2的接收与方式1类似,当REN=1时,串行口接收数据。当接收器对RXD端输入,接收11位信息,其中一位起始0、8位数据位(先低位后高位)、一位可控1或0的第9位数据和一位停止位1。 当接收器收到第9位数据后,如RI=0且SM2=0或接收到的第9位数据位为1时,将收到的数据送入SBUF(接收数据缓冲器),第9位数据送入RB8,并对RI置1; 若以上两个条件均不满足,接收信息丢失。
当SM0、SM1为11时选择工作方式3,除了波特率可变与方式2有所区别之外,其余都与方式2相同。 方式2的波特率是固定的,其波特率为fosc/32或fosc/64,根据PCON中SMOD位的状态来选择波特率。当SM0、SM1为11时选择工作方式3,除了波特率可变与方式2有所区别之外,其余都与方式2相同。 方式2的波特率是固定的,其波特率为fosc/32或fosc/64,根据PCON中SMOD位的状态来选择波特率。
计算公式为:方式3的波特率是可变的,其计算方法与方式1相同。计算公式为:方式3的波特率是可变的,其计算方法与方式1相同。
在双机通信中,只要双方的波特率一致就能够完成通信;但是在标准的异步通信协议中,只有几种波特率是适用的,例如1200bps,2400bps,4800bps,9600bps……等等。 如果想得到标准波特率,可以很多通信专用的晶振,例如3.6864MHz、11.0592MHz……的晶振。
RS-232C通信协议RS-232C标准是美国EIA(电子工业联合会)与BELL等公司一起开发并于1969年公布的通信协议,目前该通信协议在微机通信接口中广泛使用,在IBM PC机上的COM1、COM2接口,就是选用了RS-232接口。RS-232C标准包括了按位串行传输的电气和机械方面的规定,适用于数据终端设备和数据通信设备之间的接口。
(1) 机械特性RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。在实际应用中,常常使用9针连接器代替25针连接器。连接器引脚定义如图所示。图7-8 9针和25针连接器引脚定义
(2) 功能特性RS-232C接口的主要信号线的功能定义见表。 注:插针序号( )内为9针连接器的引脚号。 表7-5 RS-232C标准接口主要引脚功能
(3) 电气特性RS-232C采用负逻辑,规定逻辑0:+3V~+15V;逻辑1:-3V~-15V。RS-232C标准的信号传输的最大电缆长度为几十米,传输速率小于20KB/s。
(4) 电平转换 鉴于89C51单片机输入、输出电平均为TTL/CMOS电平,而计算机配置的是RS-232C标准串行接口,使用的是RS-232C标准电平(逻辑0:+3V~+15V,逻辑1:约-3V~-15V),二者的电气规范不一致,因此要完成PC机与单片机的数据通信,必须进行电平转换。
电平转换可以选用MAXIM公司生产的MAX232电平转换专用芯片,它是一个包含两路接收器和驱动器的IC芯片,其内部有一个电源电压变换器,可以把输入的+5V电压变换成为RS-232C输出电平所需的±10V电压。所以,采用此芯片接口的串行通信系统只需要单一的+5V电源就可以了。
MAX232芯片内部有两路电平转换电路,实际应用中,可以从两路发送接收器中任选一路作为接口,但要注意其发送和接收的引脚必须对应。引脚T1in或T2in可以直接接TTL/CMOS电平的单片机的串行发送端TXD;R1out或R2out可以直接接TTL/CMOS电平的单片机的串行接收端RXD;T1out或T2out可以直接接PC的RS-232串行口的接收端RXD;R1in或R2in可以直接接PC的RS-232串行口的发送端TXD。MAX232芯片内部有两路电平转换电路,实际应用中,可以从两路发送接收器中任选一路作为接口,但要注意其发送和接收的引脚必须对应。引脚T1in或T2in可以直接接TTL/CMOS电平的单片机的串行发送端TXD;R1out或R2out可以直接接TTL/CMOS电平的单片机的串行接收端RXD;T1out或T2out可以直接接PC的RS-232串行口的接收端RXD;R1in或R2in可以直接接PC的RS-232串行口的发送端TXD。
4. 串口调试助手 当单片机和PC机通信时,PC机方面的通信程序可以使用汇编语言编写,也可以使用其他高级语言(例如VB、BC)来编写。最方便的方法是使用串口调试助手,无需自己再编写程序。
串口调试助手的设置,主要有:选择实际使用的串口(COM1还是COM2); 波特率和单片机端必须一致; 如单片机设置串行口为工作方式1,则选择没有校验位。 在串口调试助手界面,不论数据接收区还是数据发送区,均有十六进制和字符两种格式供选择。串口调试助手的设置,主要有:选择实际使用的串口(COM1还是COM2); 波特率和单片机端必须一致; 如单片机设置串行口为工作方式1,则选择没有校验位。 在串口调试助手界面,不论数据接收区还是数据发送区,均有十六进制和字符两种格式供选择。
程序分析 根据任务要求,示例程序#include “reg51.h” #define uchar unsigned char uchar getdata=0; main() { TMOD=0x20; TH1=0xf3; //波特率设定为2400(12MHz晶振)
TL1=0xf3; TR1=1; SCON=0x50; EA=1; ES=1; while(1); //等待}
void CHUANKOU() interrupt 4 { EA=0; RI=0; getdata=SBUF; P1=getdata; SBUF=getdata; while(!TI); TI=0; EA=1;}
使用串行口时必须进行初始化,即设置串行口的工作方式和波特率。 当串行口采用方式1和方式3时,由于采用定时器T1的溢出率作为波特率发生器,所以还要进行定时器T1的相关设置: 设置工作方式、定时器初值和启动定时器等; 波特率还与电源控制寄存器PCON的SMOD有关,所以也需进行设置。使用串行口时必须进行初始化,即设置串行口的工作方式和波特率。 当串行口采用方式1和方式3时,由于采用定时器T1的溢出率作为波特率发生器,所以还要进行定时器T1的相关设置: 设置工作方式、定时器初值和启动定时器等; 波特率还与电源控制寄存器PCON的SMOD有关,所以也需进行设置。
当串行口采用方式2时,波特率固定为fosc/32或fosc/64,由电源控制寄存器PCON的SMOD选择。波特率与定时器T1无关。 当串行口采用方式0时,波特率是固定的fosc/12,无需设置。当串行口采用方式2时,波特率固定为fosc/32或fosc/64,由电源控制寄存器PCON的SMOD选择。波特率与定时器T1无关。 当串行口采用方式0时,波特率是固定的fosc/12,无需设置。
六、拓展训练 编写点阵显示电路显示内容PC机远程更新程序并调试。