单片机课程设计液晶显示.docx
《单片机课程设计液晶显示.docx》由会员分享,可在线阅读,更多相关《单片机课程设计液晶显示.docx(39页珍藏版)》请在冰豆网上搜索。
单片机课程设计液晶显示
湖南工学院
《单片机技术》课程设计说明书
课题名称:
液晶显示万年历、时间、星期及温度
系部:
电气与信息工程系
专业:
电子信息工程
班级:
0602
设计人:
陈凯
学号:
401060347
指导老师:
戴日光
第1章系统电路设计
1.1系统总体设计思路-------------------------------------------------------------------1
1.2设计方案选择-------------------------------------------------------------------------1
1.3功能介绍-------------------------------------------------------------------------------1
1.4工作原理-------------------------------------------------------------------------------2
第2章单元电路设计
2.1单片机电路设计----------------------------------------------------------------------3
2.2时钟电路设计-------------------------------------------------------------------------5
2.3复位电路设计-------------------------------------------------------------------------6
2.4温度传感器电路设计----------------------------------------------------------------7
2.5矩阵式键盘设计----------------------------------------------------------------------8
2.6显示电路设计-------------------------------------------------------------------------8
第3章程序流程图
3.1中断时钟流程图---------------------------------------------------------------------11
3.2温度子程序流程图------------------------------------------------------------------11
3.3万年历流程图------------------------------------------------------------------------12
第4章操作与调试
4.1KEILuVision3简介-------------------------------------------------------------------14
4.1.18051开发工具--------------------------------------------------------------------14
4.1.2uVision3集成开发环境---------------------------------------------------------14
4.2Proteus简介--------------------------------------------------------------------------15
4.2.1进入ProteusISIS--------------------------------------------------------------15
4.2.2工作界面---------------------------------------------------------------------------15
4.3软件调试--------------------------------------------------------------------------------16
结束语-------------------------------------------------------------------------------------------18
附录1仿真电路图---------------------------------------------------------------------------19
附录2元器件清单---------------------------------------------------------------------------20
附录3程序清单------------------------------------------------------------------------------21
参考文献----------------------------------------------------------------------------------------40
第1章系统电路设计
1.1系统总体设计思路
此设计即液晶上显示年、月、日、时、分、秒及星期原理框图如图(1.1),电路一般包括以下几个部分:
键盘、单片机、温度传感器及显示电路。
图1.1单片机实现液晶显示万年历以及温度总框图
对于各部分:
(1)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正液晶上显示的时间。
(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。
(3)温度传感器用来显示当天的确定温度值。
(4)单片机发送的信号经过显示电路通过译码最终在液晶上显示出来。
1.2设计方案选择
方案一用EDA技术及VHDL语言控制来实现显示及测温度,且显示也可以用数码管,但是数码管屏幕有限不是很方便的显示很多的数据以及文字等。
对于VHDL语言也不够了解,故不采用此方案。
方案二用C语言编程来控制单片机让它在液晶上显示数据及文字。
由于单片机结构简单、控制功能强、可靠性高、体积小、价格低等优点,以及液晶屏幕可以完整的同时显示数据及文字等内容,
综合上述方案的选择与比较,选择方案二。
主要是由于电器元件的熟悉程度以及市场的供求关系。
在方案二中,大部分的电器元件我们较熟悉并且更容易获得。
1.3功能介绍
本次设计主要用单片机控制程序让它在液晶上显示年、月、日、时、分、秒及星期,同时用18B20温度传感器来接受外面的信号,让单片机来接受它,且也让它在液晶上显示测的温度。
时、分、秒的计数结果经过数据处理可直接送显示器显示。
当计时发生误差的时候可以用校时电路进行校正。
时计数器计满24小时后自动向日计数器进一,日计数器由平年、闰年的28/30/31对大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所以计数器清零。
设计采用的是年、月、日和时、分、秒、星期以及温度同时显示。
1.4工作原理
设计的电路主要由四大模块构成:
温度传感器电路,单片机控制电路,显示电路以及校正电路。
当温度传感器接受到外面的信号,送入单片机,单片机将接受到的信号输出,让它在液晶上显示。
同时由单片机控制的万年历以及时间显示,当时间及秒计数计满60时就向分进位,分计数器计满60分后向时计数器进位,小时计数器按“24翻1”规律计数。
时、分、秒的计数结果经过数据处理可直接送显示器显示。
当计时发生误差的时候可以用校时电路进行校正。
时计数器计满24小时后自动向日计数器进一,日计数器由平年、闰年的28/30/31对大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所以计数器清零。
设计采用的是年、月、日和时、分、秒、星期显示,所以在单片机通过对数据处理进行同时在液晶上显示。
第2章单元电路设计
2.1单片机电路设计
①AT89S52的简介
AT89S52是一种低功耗,高性能的CMOS8位微处理器,内部有8K字节的闪速PEROM,该芯片采用ATMEL公司高密度、非挥发性存储器工艺制成且与工业标准的MCS-51系列的引脚及指令兼容,FLASH系列存储器为快速擦写存贮器。
相对于MCS-51系列芯片而言,其特点如下:
1、可擦写1000次
2、全静态操作:
0Hz.~24MHz
3、32根可编程I/O口线
4、内部RAM为256字节
5、三个16位的定时/计数器
6、8个中断源
AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
②AT89S52芯片的管脚、引线与功能
AT89S52芯片图如图2.1所示。
(1)引脚信号介绍:
P00~P07:
P0口8位双向口线P10~P17:
P1口8位双向口线
P20~P27:
P2口8位双向口线P30~P37:
P3口8位双向口线
(2)P1口的第二功能如表2-1:
表2-1P1口第二功能表
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
访问程序存储器控制信号:
当
信号为低电平时,对ROM的读操作限
定在外部程序存储器;而当
信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
ALE地址锁存控制信号:
在系统扩展时,ALE用于控制把P0口输出低8位地址锁存起来,以实现低位地址和数据的隔离。
此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲作用。
外部程序存储器读选取通信号:
在读外部ROM时
有效(低电平),以实现外部ROM单元的读操作。
XTAL1和XTAL2外接晶体引线端:
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于拉外部的时钟脉冲信号。
RST复位信号:
当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。
VSS:
地线VCC:
+5V电源
(3)P3口的第二功能如表2-2:
表2-2P3口第二功能表
引脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
INT0(外部中断0)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
③AT89S52的总线结构
AT89S52的管脚除了电源、复位、时钟接入、用户I/O口部分P3外,其余管脚都是为实现系统扩展而设置的。
这些管脚构成了三总线形式,即:
(1)地址总线(AB):
地址总线宽度为16位,因此,其外部存储器直接地址外围为64K字节。
16位地址总线由P0经地址锁存器提供低8位地址(A0~A7);P2口直接提供高8位地址(A8~A15)。
(2)数据总线(DB):
数据总线宽度为8位,由P0口提供。
(3)控制总线(CB):
由部分P3口的第二功能状态和4根独立控制线RESET、
、ALE、
组成。
AT89S52结构框图如图2.2所示。
图2.1AT89S52芯片图
图2.2AT89S52结构图
2.2时钟电路设计
时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。
单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地作。
(1)时钟信号的产生
图2.3时钟振荡电路
单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。
电容器C1和C2的作用是稳定频率和快速起振,电容值的范围在5pF∽30pF,典型值为30pF。
晶振的频率通常选择两种6MHz和12MHz。
只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。
(2)时钟振荡电路如图2.3所示:
2.3复位电路设计
复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。
(1)单片机常见的复位电路
通常单片机复位电路有两种:
上电复位电路,按键复位电路。
上电复位电路:
上电复位是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。
它利用的是电容充电的原理来实现的。
按键复位电路:
它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。
如果要实现复位的话,只要按下RESET键即可。
它主要是利用电阻的分压来实现的
在此设计中,采用的按键复位电路。
按键复位电路如图2.4所示。
图2.4复位电路图
(2)复位电路工作原理
上电复位要求接通电源后,单片机自动实现复位操作。
上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
上电与按键均有效的复位电路不仅
在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作。
因此本设计选用第二种上电复位与按键均有效的各单位电路。
2.4温度传感器电路设计
温度传感器DS18B20引脚如图2.5所示。
图2.5温度传感器
引脚功能说明:
NC(1、2、6、7、8脚):
空引脚,悬空不使用;
VDD(3脚):
可选电源脚,电源电压范围3~5.5V。
当工作于寄生电源时,此引脚必须接地。
DQ(4脚):
数据输入/输出脚。
漏极开路,常态下高电平。
DS18B20内部有4个主要部件:
64位激光ROM、温度传感器、非易失性温度告警触发器(TH和TL)和配置寄存器。
每个DS18B20都有一个唯一的64位ROM编码,它存放在64位激光ROM中。
代码的前8位是单线产品系列编码,接着的48位是唯一的产品序列号,最后8位是前面56位编码的CRC校验值,如表2-3所示。
表2-364位激光ROM
内容
8位CRC校验码
48位产品序列号
8位产品系列编码
MSBLSBMSBLSBMSBLSB
CRC的等效多项式函数为:
CRC=X8+X5+X4+1
64位激光ROM中的8位CRC值即由此多项式函数产生。
主机可以通过“读ROM命令”读取64位ROM的前56位,然后也按此多项式计算出CRC值,并把它与读出的存放在DS18B20激光ROM内的CRC值进行比较,从而决定ROM的数据是否已被主机正确接受。
CRC值得比较和是否继续操作都由主机决定。
2.5矩阵式键盘设计
实现键盘控制的方法有多种,它可以用FPGA来进行控制,也可以用单片机来进行控制。
在本系统中,我们采用了单片机来进行控制,因为单片机可以很好的解决键抖动。
由若干个按键组成一个键盘,其电路结构可分为独立式键盘和矩阵式键盘两种。
独立式键盘每个键单独占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线上的状态,矩阵式键盘按键排列为行列式矩阵结构,也称行列式键盘结构。
4行4列共16个键,只占用8根I/O口线,键数目较多,可节省口线。
此设计的是3行3列共9个键。
键盘的工作方式可分为编程控制方式和中断控制方式。
CPU在一个工作周期内,利用完成其他任务的空余时间,调
图2.6矩阵式键盘
用键盘扫描子程序,经程序查询,若无键操作,则返回;若有键操作,则进而判断是哪个键,并执行相应的键处理程序。
这种方式为编程扫描方式。
由于单片机在正常应用过程中,可能会经常进行键操作,因而编程控制方式使CPU经常处于工作状态,在进行本次设计中,涉及到了启动/关闭、调时、调分、调秒,调年,月,日,星期,等很多功能个功能。
因此,只采用了3行3列键进行功能设置。
如图2.6所示。
2.6显示电路设计
12864液晶是一种具有4位/8位并行,2线或3线串行多种接口方式,内部含有国标一级,二级简体文字库的点阵图形液晶显示模块:
其显示分辨率为128×64,内置128个16*16点文字,和128个16*8点ASCII字符集,利用该模块灵活的接口方式和简单,方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字,也可完成图形显示。
低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构显示程序都要简洁得多。
其基本特性如下:
低电源电压(VDD:
+3.0——+5.5V)
显示分辨率:
128×64点
内置汉字字库,提供8192个16×16点阵汉字
内置128个16×8点阵字符
2MHZ时钟频率
显示方式:
STN,半透,正显
驱动方式:
1/32DUTY,1/5BIAS
视角方向:
6点
背光方式:
侧部高亮白色LED,功耗仅为普通的LED的1/5—1/10
通讯方向:
串行,并行可选
内置DC—DC转换电路,无需外加负压
无需片选信号,简化软件设计
工作温度:
零度到55度,存储温度:
负20度到60度。
而本设计将采用的是并行接口,及见图2.7所示。
图2.7128×64液晶电路
其液晶12864的并行管脚如表2-2所示。
表2-4液晶管脚
我们用单片机来进行控制。
它可以很直观的用来显示年、月、日、时、分、秒、
星期及温度,
单片机与LCD的接口电路如图2.8所示。
图2.8接口电路
第3章程序流程图
3.1中断时钟流程图
中断服务程序流程图如图3.1所示。
流程图分析:
由中断查询当有中断请求时,及进行现场保护,保护断点,将定时器赋初值,且开定时器便于计数,且赋值50000,当中断进行20次刚好一秒,当秒计数60时便向分进位,当分计数60时,向时进位,当时到24时,清零,及恢复现场。
图3.1中断流程图
3.2温度子程序流程图
温度显示流程图如图3.2所示。
流程图分析:
开始进入初始化DS18B20,就是通过主机拉低单线产生复位脉冲然后释放该线,如果有应答脉冲,及发起ROM命令当成功的执行操作命令后,就使用内存操作命令,即温度转换等,当转换完后,又初始化DS18B20是否有应答脉冲,若有,就发起读时隙命令,既同时读出第1,2个字节,既为温度的数据。
图3.2温度显示流程图
3.3万年历流程图
万年历流程如图3.3所示。
流程图分析:
开始既当日加一天,同时星期也就相应的加1,看星期是否加到7,若加到了7,就返回到1,若没有就返回到时钟状态,当日加到相应的最大数时,月分就相应的加1,看月份是否加到了13,若没有到13,就一直等待,若到了13就返回1,且年份就加1,当年份到2099时就清到2005年,若没有,就一直等待,直到2099为止。
图3.3万年历流程图
第4章操作与调试
4.1KEILuVision3简介
4.1.18051开发工具
KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。
C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。
C51已被完全集成到uVision3的集成开发环境中,这个集成开发环境包含:
编译器,汇编器,实时操作系统,项目管理器,调试器。
uVision3IDE可为它们提供单一而灵活的开发环境。
C51V7版本是目前最高效、灵活的8051开发平台。
它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。
因此,C51V7版本无疑是8051开发用户的最佳选择。
4.1.2uVision3集成开发环境
(1)、项目管理
工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。
一个单一的uVision3工程能够产生一个或多个目标程序。
产生目标程序的源文件构成“组”。
开发工具选项可以对应目标,组或单个文件。
uVision3包含一个器件数据库(devicedatabase),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。
此数据库包含:
片上存储器和外围设备的信息,扩展数据指针(extradatapointer)或者加速器(mathaccelerator)的特性。
uVision3可以为片外存储器产生必要的连接选项:
确定起始地址和规模。
(2)、集成功能
uVision3的强大功能有助于用户按期完工。
1.集成源极浏览器利用符号数据库使用户可以快速浏览源文件。
用详细的符号信息来优化用户变数存储器。
2.文件寻找功能:
在特定文件中执行全局文件搜索。
3.工具菜单:
允许在V3集成开发环境下启动用户功能。
4.可配置SVCS接口:
提供对版本控制系统的入口。
5.PC-LINT接口:
对应用程序代码进行深层语法分析。
6.Infineon的EasyCase接口:
集成块集代码产生。
7.Infineon的DAVE功能:
协助用户的CPU和外部程序。
DAVE工程可被直接输入uVision3。
4.2Proteus简介
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision3等软件。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
本章介绍ProteusISIS软件的工作环境和一些基本操作。
4.2.1进入ProteusISIS
双击