基于串口通信的LCD显示
下载后可任意编辑 目 录 引言1 1 设计任务与目的2 1.1 设计任务:2 1.2 设计目的:2 2 串口通信原理2 2.1 串行口工作原理2 2.3 方案论证4 3硬件设计6 3.1 AT89S52最小系统6 3.3 LCD显示电路7 3.4 max232电平转换电路8 4 软件设计9 4.1主程序流程图9 4.2 LCD显示函数10 4.3 键盘函数10 5系统调试11 5.1 硬件调试11 5.2 软件调试11 6 结论11 参考文献12 引言 51单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互的技术得到越来越大的重视和越来越广泛的应用。LCD显示技术是一门新兴的显示技术,相对于LED显示,LCD显示有节能,能显示的更多以及更高端等优点。本次课程设计选用串行通信和LCD显示来进一步加深我们对于单片机的理解。 1 设计任务与目的 1.1 设计任务: (1)下位机选用89S51或89S52单片机; (2)下位机接收上位机的数据并显示在LED或LCD上 (3)下位机显示数据可以显示固定数据、以为数据、循环移位; (4)硬件要求:制作串口线和下位机及外围电路; (5)软件要求:keil c或汇编编程设计,串口调试助手或labview串口通信编程。 1.2设计目的: (1)通过串口实现下位机与上位机之间的相互通信。 (2)通过设计将串口通信的各种方式进行进一步的了解。 (3)将接收的数字与发送的数字在LCD上进行显示,从而熟悉液晶显示屏LCD1602 的具体操作。 (4)熟练掌握C语言在单片机上的编程应用。 (5)将各学科之间的的知识进行综合运用,并能够实现所需的功能设计。 2 串口通信原理 串行通信是CPU与外界交换信息的一种基本通信方式。通信时仅需一到两根传输线,且每次只能传送一位,适用于长距离传输,但速度较慢。MCS—51串行口是一个可编程的全双工串行通信接口,其对应的引脚为P3.0(10脚)和P3.1(11脚),分别为RXD和TXD,通过软件编程它可以作通用异步收发器用,也可以做同步移位寄存器使用,其帧格式有8位、10位和11位3种,并能设置各种波特率。MCS—51串行口有两个独立的缓冲器,即发送缓冲器和接收缓冲器,且共用一个地址99H(SBUF)。同时,MSC—51串行口可以用软件设置成4种不同的工作方式。 2.1 串行口工作原理 通过对特别功能寄存器—串行口控制寄存器中SM0、SM1两位的操作,MCS—51单片机串口通信工作方式有4种,与串行口有关的特别功能寄存器有串行口控制寄存器SCON、电源控制寄存器PCON和定时器T1,主要确定了串口通信的工作方式和波特率的计算方法。 (1)串行口数据缓冲器SBUF SBUF是两个在物理上相互独立的接收,发送缓冲器,可同时发送,接收数据,两个缓冲器共用一个字节地址,为99H,可字节寻址,不可位寻址,复位值为00H。可通过编程对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。CPU写SBUF,就是修改发送缓冲器; CPU读SBUF,就是读接收缓冲器,在硬件结构上,串行口对外有两条独立的收发信号线RXD和TXD,因此可以同时发送,接收数据,实现全双工传送。 (2)串行口控制寄存器SCON SCON寄存器用于确定串行通信的工作方式、接收和发送控制、串行口的中断状态标志,它既可以是字节寻址,也可以是位寻址,字地址为98H,其复位值为00H。 SM0,SM1—工作方式控制位,可构成4种通信工作方式,分别为:方式0-同步移位寄存器;方式1-10位异步收发;方式2-11位异步收发;方式3-11位异步收发。 SM2—多机通信控制位,用于主一从式多机通信控制,因多机通信是在方式2和方式3下进行,因此SM2位主要用于方式2和方式3。若SM2=1,则允许多机通信。若SM2=0,则不属于多机通信情况,接收到一帧数据后,无论第9位(D8)是0还是1,都置中断标志RI=1,接收到的数据装入接收/发送缓冲器(SBUF)中。 在工作方式1时,若SM2=1,则只有接收到有效停止位时中断标志RI才置1,以便接收下一帧数据;在工作方式0时,SM2必须为0。 REN—允许接收控制位,用软件置1或清零,REN=1,允许接收;REN=0,禁止接收。 TB8—发送数据位8,在方式2和方式3时,TB8是要发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0为数据,TB8=1为地址,该位由软件置位或清零,此外,该位还可以作为数据的奇偶检验位。 RB8—接收数据位8,在工作方式2和工作方式3种,它是接收到的第9位数据位,既可以作为约定好的奇偶检验位,也可以作为多机通信时的地址帧或数据帧标志。在工作方式1中若SM2=0,则RB8是接收到的停止位,在工作方式0种不使用RB8。 TI—发送中断标志位,在工作方式0中,发送完8位数据后,由硬件置1,向CPU申请接收中断,CPU响应中断后,必须用软件清零;在其他方式下,在发送停止位前,由硬件置位。 RI—接收中断标志位。在工作方式0种,接收完8位数据后,由硬件置1,向CPU申请发送中断,CPU响应中断后,必须用软件清零;在其他方式下,在接收到停止位的中间时刻由硬件置1,中断响应后也必须用软件清零。 串行发送中断标志位TI和接受中断标志位RI是同一个中断源,在全双工通信中,必须用软件来判别是发送中断请求还是接收中断请求。 (3)电源控制寄存器PCON PCON主要是为CHMOS型单片机上实现电源控制而设置的专用寄存器,单元地址为87H其中只有一位SMOD与串行口工作有关。SMOD称为波特率选择位。在工作方式1,2,3中若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不加倍。 除了以上3种特别功能寄存器以外,串口的工作还与定时器T1和中断允许寄存器IE有关,定时器T1主要在工作方式1,工作方式2中用于计算波特率,而IE主要用于接收/发送中断的允许控制,ES=0,禁止串行中断,ES=1,允许串行中断。 2.2串行通信的波特率 在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M的