流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口设计--课程设计.docx

上传人:rrsccc 文档编号:8920347 上传时间:2021-01-25 格式:DOCX 页数:33 大小:1.36MB
返回 下载 相关 举报
流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口设计--课程设计.docx_第1页
第1页 / 共33页
流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口设计--课程设计.docx_第2页
第2页 / 共33页
流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口设计--课程设计.docx_第3页
第3页 / 共33页
流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口设计--课程设计.docx_第4页
第4页 / 共33页
流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口设计--课程设计.docx_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口设计--课程设计.docx》由会员分享,可在线阅读,更多相关《流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口设计--课程设计.docx(33页珍藏版)》请在三一文库上搜索。

1、引 言单片机(微控制器)是一种集成电路芯片,是采用超大规模集成电路技术与数据处理能力的中央处理器CPU,只读存储器ROM,各种各样的I / O口和中断系统、定时器/计数器功能(可能包括显示驱动电路、脉宽调制电路,模拟多路复用器和A / D转换器电路)集成到一块硅组成的小型和完美的微机系统,广泛应用于工业控制领域。自1980年代以来,8位单片机,发展到现在的300高速单片机。以其极高的性价比,是人们的注意和关心,应用很广,发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高,成本低,可靠性高,灵活性好,开发较为容易。由于这些优势,在我国单片机已广泛应用于工业自动化控制、自动检测、智能仪器仪

2、表、电力电子、机电一体化设备和其他方面,最典型的是单片机51单片机。在本次课程设计中以STC89C52芯片为核心,辅以必要的电路,设计了流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口程序。同时系统硬件设计简单、稳定性高、价格低廉等优点。关键词:液晶显示器,STC89C52,RS2321MCU (Microcontrollers) is A kind of integrated circuit chips, is to use very large scale integrated circuit technology with data processing ability o

3、f the central processor CPU, ROM, A variety of I/O mouth and interrupt system, timer/counter function (may include display driver circuit, pulse width modulation circuit, analog multiplexer and A/D converter circuit) is integrated into A piece of silicon consisting of A small and perfect microcomput

4、er system, widely used in industrial control field. Since the 1980 s, by the time of the four, 8-bit microcontroller, development to the present 300 m high speed single chip microcomputer. SCM since the 1970 s, with its extremely high cost performance, is very wide, developing very quickly. SCM smal

5、l size, light weight, strong anti-jamming capability, environmental requirements is not high, low cost, high reliability, good flexibility, development is relatively easy. Because of these advantages, in our country, SCM has been widely used in industrial automation control, automatic detection, int

6、elligent instruments and other aspects, and is most typical in the microcontroller 51 single-chip microcomputer ,The curriculum design through study and application of it, STC89C52 chip as the core, supplemented by necessary circuit, designed a light water program, digital tube, key procedures, LCD

7、driver and RS232 serial interface program. At the same time the system has simple hardware design, high stability, price is low wait for an advantage .Key words: liquid crystal display,STC89C52,RS232第一章 总体设计方案1.1 课程设计任务(1)按照硬件电路画出原理图及PCB图;(2)在硬件电路上完成流水灯、数码管、按键、液晶显示器以及RS232串口通信驱动程序。 (3)组内分配表如表1-1表1-1

8、 组内分配表组长组 员液晶显示串口通信流水灯数码管PCB图按键原理图1.2 设计流程(1)使用Altium Designer软件绘制原理图 和PCB图 ;(2)使用keil5进行流水灯,数码管,按键,液晶显示器以及RS232串口通信程序的编写;(3)使用PZISP自动下载软件将程序下载到STC89C52单片机上。 第二章 硬件设计与分析2.1硬件分析2.1.1 STC89C52STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片

9、机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容STC89C52具体介绍如下: 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储

10、器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P0口(Pin39Pin32):8位准双向I/O口线,名称为P0.0P0.7P1口(Pin01Pin08):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7STC89C52主要功能如表2-1所示。表2-1 STC89C52主要功能主要功能特性兼容MCS

11、51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能2.1.2 MAX232MAX232芯片(如图2.1)是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5V单电源供电。内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12V和-12V两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、

12、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1in)、12脚(R1out)、11脚(T1out)、14脚(T1out)为第一数据通道。8脚(R2in)、9脚(R2out)、10脚(T2in)、7脚(T2out)为第二数据通道。TTL/CMOS数据从T1in、T2in输入转换成RS-232数据从T1out、T2out送到电脑DB9插头;DB9插头的RS-232数据从R1in、R2in输入转换成TTL/CMOS数据后从R1out、R2out输出。第三部分是供电。15脚GND、16脚VCC(+5V)。图2.1 MAX2322.1.3 74HC573八进制3非反转透明锁存器高性能

13、硅门CMOS器件SL74HC573(图2.2(a)、(b)分别为引脚图和内部结构图)跟LS/AL573 的管脚一样。器件的输入是和标准 CMOS 输出兼容的;加上拉电阻,他们能和 LS/ALSTTL 输出兼容。当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。u36755X出能直接接到 CMOS,NMOS 和 TTL 接口上u25805X作电压范围:2.0V6.0Vu20302X输入电流:1.0uACMOS 器件的高噪声抵抗特性图2.2(b) SL74HC573内部结构图图2.2(a) SL74HC573引脚图

14、2.2电路设计分析2.2.1单片机总控制电路如下图2.3 图2.3 单片机总控制电路2.2.2时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图2.4(a) 所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图2.4(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特

15、殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。(a)内部方式时钟电路 (b)外部方式时钟电路图2.4 时钟电路2.2.3复位及复位电路(1)复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处

16、于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表2-2所示。表2-2 一些寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H(2)复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信

17、号持续时间应超过4us才能完成复位操作。产生复位信号的电路逻辑如图2.5所示: 图2.5 复位信号的电路逻辑图整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。 复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图2.6(a)所示。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位

18、端经电阻与Vcc电源接通而实现的,其电路如图2.6(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图2.6(c)所示:(a)上电复位 (b)按键电平复位 (c)按键脉冲复位图2.6 复位电路上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。本系统的复位电路采用图2.6(b)上电复位方式。第三章 软件设计与分析3.1使用Altium Designer绘制电路图绘制电路图关键步骤:新建一个工程 绘制原理图 绘制元件库 绘制PCB封装 错误检查及生成PCB 摆放元件位置 设置布线规则手工或自动布线 检查结果。绘制的原理图和PCB

19、 图见附录中的图1和图2。3.2编程与分析使用Keil5软件进行流水灯,数码管,按键,液晶显示器以及RS232串口通信程序的编写,程序代码见附录。3.3实验结果与分析实验现象:当接通电源时、流水灯花样闪烁,当按下S3键,将改变流水灯的闪烁速度;按下S4时,液晶显示屏上显示一个心形图案(见附录图3);按下S5时,液晶屏第二行显示“sixth design”字样;按下S6时,数码管显示数字。期间的延迟时间可以根据需要和视觉效果自行设计。分析:按键控制数码管和液晶屏的显示主要通过中断程序和键扫描实现对数组的依次访问来实现;流水灯主要是通过循环移动来实现。 第四章 总结与致谢4.1 总结1.在我们一组

20、我担任组长,我就建立了我们自己的QQ群,将网上查找的资料都会分享到群里,这样加强了团队合作精神,也是我们的设计速度大大的提高了。在设计前我们进行合理分配任务,在设计过程中我们虽然遇到了很多困难,比如,在进行原理图和PCB图的绘制时我们没有元件库,我们通过在百度中查阅资料和看郭天祥的视频,最后画出了自己需要的元件库。PCB图的绘制过程我们是最头疼的,起初没有PCB库,我们在许老师的帮助和指导下找上了元件库,为了把线布好,我和组员满冠军不断的进行手工布线,一次又一次的失败没有让我们灰心丧气,连续坚持了两个晚上我们终于制出了我们想要的PCB图。更为可贵的是,我们彼此鼓励,同舟共济处理每个问题。这种团

21、队精神是我们美好的回忆。我们花了很多心血来做这个课程设计,我们还请了薛伟东和王子银两位同学给我们指导。2.加强了我们对电子器件的了解,尤其是对STC89C52单片机有了更深入的了解。一直以来,我们都对电子器件很感兴趣,对生活中的电子器件的应用很好奇,通过这次课程设计我们了解到了电子应用的奇妙之处。3.提高了我们使用电脑对电路进行仿真的能力。对Altium Designer、keil软件进一步的掌握做了基础。4.做到了理论联系实际。在上学期学过单片机原理与接口技术这门课程,我们没有完全弄懂某些元器件的原理和用途,而这次课程设计恰恰提供了一个好机会,让我们从实践中加深了对所学知识的理解。4.2 致

22、谢在这次课程设计中不论是我们的组员还是舍友都给了我精神上的鼓舞,使我对这次课程设计有了很大的信心。虽然在设计过程中遇到了重重困难,但是通过许老师推荐郭天祥的视频后,一切问题就得到了解决。最后,非常感谢在这次课程设计中帮助我的每一位老师和同学。参考文献1郭天祥.新概念51单片机C语言教程M.北京:电子工业出版社,20092谭浩强.C程序设计M.北京:清华大学出版社,20143求是科技.8051系列单片机C程序设计J.北京:人民邮电出版社,20064闫石.数字电子技术基础(第四版)M.高等教育出版社,19985黄遵熹.单片机原理接口与应用M.西安:西北工业出版社,19976张毅光.单片机原理与接口

23、技术(C51编程)M.北京:人民邮电出版社,2011附录附录1 源程序代码花样流灯并用按键控制流水灯的速度、液晶屏显示及数码管显示#include#include#define uchar unsigned char#define uint unsigned intuchar num,nu,h,m,i,g;unsigned char speed; /储存流水灯的流动速度uchar z,a,b,temp;uchar code table=0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7; uchar code table1=0x03,0x07,0x0f,0x1f,0x1f,0

24、x1f,0x1f,0x1f, 0x18,0x1E,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f, 0x07,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f, 0x10,0x18,0x1c,0x1E,0x1E,0x1E,0x1E,0x1E, 0x0f,0x07,0x03,0x01,0x00,0x00,0x00,0x00, 0x1f,0x1f,0x1f,0x1f,0x1f,0x0f,0x07,0x01, 0x1f,0x1f,0x1f,0x1f,0x1f,0x1c,0x18,0x00, 0x1c,0x18,0x10,0x00,0x00,0x00,0x00,0x00

25、;/心图案 uchar code table2=sixth design; /定义数组uchar code table3= /十六进制0f0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;sbit dsen2=P35;sbit dsen1=P34;sbit S3=P24;sbit S4=P25;sbit S5=P26;sbit S6=P27;sbit lcden=P36;/液晶使能端sbit lcdrs=P37;/液晶数据命令选择端sbit lcdrw=P32;/液晶数据读写端sbit

26、 crl=P33;/*延时*/void delayms(unsigned int xms) unsigned int i,j; for(i=xms;i0;i-) for(j=110;j0;j-) ; void write_com(uchar com) /液晶驱动 lcdrs=0;lcdrw=0; P0=com; delayms(10); lcden=1; delayms(10); lcden=0;void write_data(uchar date) /液晶显示 lcdrs=1;lcdrw=0; P0=date; delayms(10); lcden=1; delayms(10); lcden

27、=0;void init() /初始化 crl=0; lcdrw=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);/*主函数*/void main(void)TMOD=0x02;/使用定时器T0的方式2EA=1;/开总中断ET0=1;/定时器T0中断允许TR0=1;/定时器T0开始运行TH0=256-200;/定时器赋初值,每200us产生一次中断TL0=256-200;/定时器赋初值,每200us产生一次中断speed=100; while(1) for(a=0;a=3;a+) P1

28、=tablea; delayms(speed); temp=0xfe; for(b=0;b=8;b+) P1=temp; delayms(speed); temp=temp1; temp=0x7f; for(b=0;b1; for(a=4;a=7;a+) P1=tablea; delayms(speed); timer0 () interrupt 1 using 1TR0=0;P2=0xff;if(P2&0xf0)!=0xf0) delayms(20); if(P2&0xf0)!=0xf0)if(S3=0)speed=50;if(S4=0)char m=0; init(); write_com

29、(0x40); /设定CGRAM地址 for(m=0;m64;m+) /将心型代码写入CGRAM中 write_data(table1m); write_com(0x85); /设定上排的显示位置 for(m=0;m4;m+) /显示心型图案的上半部分 write_data(m); write_com(0xc5); /将显示坐标转移到下排和上排相对应的地方 for(m=4;m8;m+) /显示心型图案的下半部分 write_data(m); P0=0x00;if(S5=0)init();speed=100;write_com(0x80+0x40); /液晶第2行控制for(nu=0;nu16;

30、nu+) /第2排显示 write_data(table2nu); /读入数组 delayms(700);write_com(0x01);P=0x00;if(S6=0) init(); /P3.4引脚输出低电平,数码显示器接通电源准备点亮 for(g=0;g16;g+) dsen1=1;dsen2=0; /P3.5引脚输出低电平,数码显示器接通电源准备点亮 for(i=0;i16;i+) P0=table3i; delayms(500);if(S3=0|S4=0|S5=0)break; dsen1=0; P0=table3g; delayms(500); P0=0x00; TR0=1;附录2 电路图图1 原理图 图2自动布线 PCB图 图3 实物心形图- 33 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1