目录1课程设计概述和要求……………………………………………………………………11.1课程设计要求与任务……………………………………………………………21.2课程设计思路………………………………………………………………………21.3课程设计需要配置的环境………………………………………………………32系统设计…………………………………………………………………………………32.1设计框图……………………………………………………………………………32.2元件解析……………………………………………………………………………32.2.1LCD12864芯片……………………………………………………………42.2.2AT89C51芯片………………………………………………………………52.2.3其他部件……………………………………………………………………62.2.4电路分析…………………………………………………………………73软件设计…………………………………………………………………………………123.1程序流程图………………………………………………………………………123.2程序代码…………………………………………………………………………124系统的仿真与调试………………………………………………………………………134.1硬件调试……………………………………………………………………………134.2软件调试……………………………………………………………………………144.3软硬件调试…………………………………………………………………………145总结………………………………………………………………………………………14附录1:程序代码附录2:12864LCD显示计算器键盘按键实验Proteus仿真图11课程设计概述和要求1.1课程设计任务与要求设计任务:利用AT89C51单片机结合12864LCD显示器设计计算器键盘按键。设计要求1:本设计实现一个12864LCD显示12864LCD显示器设计计算器键盘按键2.利用AT89C51控制整个电路来实现.显示12864LCD显示器设计计算器键盘按键,系统主要包括硬件和软件两部分。重点就是各部分硬件的连接设计以及程序的编写。本章讲述的就是系统硬件的设计,其中包括各模块的器件选择和电路设计。将计算器按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显示于12864LCD液晶显示屏上。1.2课程设计目的思路1、先把与题目有关的芯片资料找到,熟悉一下芯片资料2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。3、分析一下此程序的各部分的功能,各零件的工作原理。4、对程序进行调试,分析调试结果,观察并得出结论。1.3课程设计需要配置的环境1、一台主机,一台显示器2、KeiluVision3/KeiluVision4应用程序软件3、ISIS7Professional仿真软件4、老师交给的仿真电路图,及案例5、纸张,以及一些参考资料2系统设计2.1.设计框图框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。同时罗列出需要主要使用到的各个器件,以方面系统开发中器件的选取。通过框图设计,让设计者从整体上把握系统的开发。12864LCD显示计算器键盘按键实验设计框图如下所示2定时电路AT89C51单片机16×212864液晶显示电路4×4非编码行列式矩阵复位电路2.2元件解析2.2.112864LCD芯片1、主要技术参数和显示特性:电源:VDD3.3V~+5V(内置升压电路,无需负压);显示内容:128列×64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等CS1CS2DIRWED0D1D2D3D4D5D6D7RSTCS11CS22GND3VCC4V05DI6R/W7E8DB09DB110DB211DB312DB413DB514DB615DB716RST17-Vout18LCD1LGM12641BS1R2、模块引脚说明12864引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号35R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位低电平有效18NC空脚19LED_A-背光源正极(LED+5V)20LED_K-背光源负极(LED-OV)控制器接口信号说明:1、RS,R/W的配合选择决定控制界面的4种模式:RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据2、E信号E状态执行动作结果高——低I/O缓冲——DR配合/W进行写数据或指令高DR——I/O缓冲配合R进行读数据或指令低/低——高无动作忙标志:BFBF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.利用STATUSRD指令,可以将BF读到DB7总线,从而检验模块之工作状态.4字型产生ROM(CGROM)字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAYON),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAYOFF)。DFF的状态是指令DISPLAYON/OFF和RST信号控制的。显示数据RAM(DDRAM)模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H—0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H—7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140—D75F),GB(A1A0-F7FFH)。字型产生RAM(CGRAM)字型产生RAM提供图象定义(造字)功能,可以提供四组16×16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。地址计数器AC地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6——DB0中。光标/闪烁控制电路此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。2.2.2AT89C51芯片(1)AT89C51简介AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业5标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51芯片图如下图所示。图AT89C51芯片图(1)AT89C51主要特性:与MCS-51兼容;4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;128×8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。2.2.3计算器键盘键盘电路的设计原理首先行列式键盘中的键实际上就是一个机械开关,该开关位于行线和列线的交点处,通过按键加以连接。当按下某个键时,该交点的行线和列线接通,相应行线或列线上的的电平发生变化,从而可以确定被按下的功能键。4行×4列的行列式键盘如图:其次运用线翻转法判断有无键按下:键盘的高4位用于列控制,低4位用于行控制,并将全部行线P0.0~P0.3置低电平,然后再检查列线电平的状态。只要其中有一列电平为低,则表示右键按下,并且被按下的键位于低电平和4根行线交叉的某一个按键中。判断被按下键的位置:依次将所有的行线P0.4~P0.77置为低电平,在判断4根列线的电平状态,当遇到某一列的电平为低时表示此键按下。6计算器键盘就是一个4*4的行列扫描,行对应着A、B、C、D(和P1.0~P1.3相连),列对应着1、2、3、4(和P1.4~P1.7相连),读取P1口的值判断哪个键被按下了,执行该操作。2.2.4电路分析1、通过AT89C51芯片PO口与键盘相接,键盘中的键就是一个行列开关,该开关位于行列的交点处,通过按下某个键,该交点的行线和列线联通,相应的行列电平发生变化,从而可以确定按下的功能键。读取P0的值就可以确定按键,再由AT89C51芯片读取按键的值通过P1口和P2口显示在LCD12864上,每显示一个按键值LS1发出声音。接P3.7口,判断键盘是否按下,一旦键盘某个键按下,此元件会发出声音。LS1SOUNDER2、时钟电路由AT89S51得18、19引脚的时钟端(XTL1及ATAL2)以及12MHZ晶振、47pF的电容C1、C2组成,采用片内振荡方式。其时间周期为1/12us,机器周期为1s。单片机的外部晶振电路如图3AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成振荡器。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平。3、复位电路采用简单的上位电路,由1K电阻及22uF电容接至AT89S52的RST复位端电阻给电容充电,电容的电压缓慢上升直到vcc,没到vcc时芯片复位脚近似低电平,于是芯片复位,接近vcc时芯片复位脚近高电平,于是芯片停止复位,复位完成。按键后:电容器被短路放电、RST直接和VCC相连,就是高电平,此时进入“复位状态”。松手后:电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到RST,仍然是“复位状态”;7稍后,充电结束,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。C310uFR110k4键盘电路的设计原理首先行列式键盘中的键实际上就是一个机械开关,该开关位于行线和列线的交点处,通过按键加以连接。当按下某个键时,该交点的行线和列线接通,相应行线或列线上的的电平发生变化,从而可以确定被按下的功能键其次运用线翻转法判断有无键按下:键盘的高4