《单片机课程设计液晶显示.doc》由会员分享,可在线阅读,更多相关《单片机课程设计液晶显示.doc(43页珍藏版)》请在三一办公上搜索。
1、湖南工学院单片机技术课程设计说明书课题名称:液晶显示万年历、时间、星期及温度系 部:电气与信息工程系专 业:电子信息工程班 级:0602设 计 人:陈 凯学 号:401060347指导老师:戴日光目 录第1章 系统电路设计1.1 系统总体设计思路-11.2 设计方案选择-11.3 功能介绍-11.4 工作原理-2第2章 单元电路设计2.1 单片机电路设计-32.2 时钟电路设计-52.3 复位电路设计-62.4 温度传感器电路设计-72.5 矩阵式键盘设计-82.6 显示电路设计-8第3章 程序流程图3.1 中断时钟流程图-113.2 温度子程序流程图-113.3 万年历流程图-12第4章 操
2、作与调试4.1 KEIL uVision3简介-144.1.1 8051开发工具-144.1.2 uVision3集成开发环境-144.2 Proteus简介-154.2.1进入Proteus ISIS-154.2.2工作界面-154.3 软件调试-16结束语-18附录1 仿真电路图-19附录2 元器件清单-20附录3 程序清单-21参考文献-40第1章 系统电路设计1.1系统总体设计思路此设计即液晶上显示年、月、日、时、分、秒及星期原理框图如图(1.1),电路一般包括以下几个部分:键盘、单片机、温度传感器及显示电路。图1.1 单片机实现液晶显示万年历以及温度总框图对于各部分:(1) 为使时钟
3、走时与标准时间一致,校时电路是必不可少的,键盘用来校正液晶上显示的时间。(2) 单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。(3) 温度传感器用来显示当天的确定温度值。(4) 单片机发送的信号经过显示电路通过译码最终在液晶上显示出来。1.2 设计方案选择方案一 用EDA技术及VHDL语言控制来实现显示及测温度,且显示也可以用数码管,但是数码管屏幕有限不是很方便的显示很多的数据以及文字等。对于VHDL语言也不够了解,故不采用此方案。方案二 用C语言编程来控制单片机让它在液晶上显示数据及文字。由于单片机结构简单、控制功能强、可靠性高、体积小、价格低等优点,以及液晶屏幕可以完整的同时显示数
4、据及文字等内容,综合上述方案的选择与比较,选择方案二。主要是由于电器元件的熟悉程度以及市场的供求关系。在方案二中,大部分的电器元件我们较熟悉并且更容易获得。1.3功能介绍本次设计主要用单片机控制程序让它在液晶上显示年、月、日、时、分、秒及星期,同时用18B20温度传感器来接受外面的信号,让单片机来接受它,且也让它在液晶上显示测的温度。 时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数器由平年、闰年的28/30/31对大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计
5、数器计满12月向年计数器进位,当年计数器计满100时所以计数器清零。设计采用的是年、月、日和时、分、秒、星期以及温度同时显示。1.4 工作原理设计的电路主要由四大模块构成:温度传感器电路,单片机控制电路,显示电路以及校正电路。当温度传感器接受到外面的信号,送入单片机,单片机将接受到的信号输出,让它在液晶上显示。同时由单片机控制的万年历以及时间显示,当时间及秒计数计满60时就向分进位,分计数器计满60分后向时计数器进位,小时计数器按“24翻1”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数
6、器由平年、闰年的28/30/31对大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所以计数器清零。设计采用的是年、月、日和时、分、秒、星期显示,所以在单片机通过对数据处理进行同时在液晶上显示。 第2章 单元电路设计2.1单片机电路设计AT89S52的简介AT89S52是一种低功耗,高性能的CMOS8位微处理器,内部有8K字节的闪速PEROM ,该芯片采用ATMEL公司高密度、非挥发性存储器工艺制成且与工业标准的MCS-51系列的引脚及指令兼容,FLASH系列存储器为快速擦写存贮器。相对于MCS-51系列芯片
7、而言,其特点如下 :1、可擦写1000次2、全静态操作:0Hz.24MHz3、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)引脚信号介绍:P00P07 :P0口8
8、位双向口线 P10P17 :P1口8位双向口线P20P27 :P2口8位双向口线 P30P37 :P3口8位双向口线(2)P1口的第二功能如表2-1:表2-1 P1口第二功能表引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)访问程序存储器控制信号:当信号为低电平时,对ROM的读操作限定在外部程序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。ALE地址锁存控制信号:
9、在系统扩展时,ALE用于控制把P0口输出低8位地址锁存起来,以实现低位地址和数据的隔离。此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲作用。外部程序存储器读选取通信号:在读外部ROM时有效(低电平),以实现外部ROM单元的读操作。XTAL1和XTAL2外接晶体引线端:当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于拉外部的时钟脉冲信号。RST复位信号:当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。VSS:地线 VCC:+5V电源(3)P3口的第二功能如表2-2:表2-2 P3口第二
10、功能表引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT0(外部中断0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)AT89S52的总线结构AT89S52的管脚除了电源、复位、时钟接入、用户I/O口部分P3外,其余管脚都是为实现系统扩展而设置的。这些管脚构成了三总线形式,即:(1)地址总线(AB):地址总线宽度为16位,因此,其外部存储器直接地址外围为64K字节。16位地址总线由P0经地址锁存器提供低8位地址(A0A7);P2口直接提供高8位地
11、址(A8A15)。(2)数据总线(DB):数据总线宽度为8位,由P0口提供。(3)控制总线 (CB):由部分P3口的第二功能状态和4根独立控制线RESET、ALE、组成。AT89S52结构框图如图2.2所示。图2.1 AT89S52芯片图图2.2 AT89S52结构图2.2时钟电路设计时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地作。(1)时钟信号的产生图2.3 时钟振荡电路单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引
12、脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。电容器C1和C2的作用是稳定频率和快速起振,电容值的范围在5pF30pF,典型值为30pF。晶振的频率通常选择两种6MHz和12MHz。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。(2)时钟振荡电路如图2.3所示:2.3 复位电路设计 复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。(1)单片机常见的复位电路通常单片机复位电路有两种:上电复位电路,按键复位电路。上电复位电路:上电复位
13、是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。它利用的是电容充电的原理来实现的。按键复位电路:它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。如果要实现复位的话,只要按下RESET键即可。它主要是利用电阻的分压来实现的在此设计中,采用的按键复位电路。按键复位电路如图2.4所示。图2.4 复位电路图(2)复位电路工作原理上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效的
14、复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作。因此本设计选用第二种上电复位与按键均有效的各单位电路。2.4 温度传感器电路设计 温度传感器DS18B20引脚如图2.5所示。 图2.5 温度传感器引脚功能说明: NC(1、2、6、7、8脚):空引脚,悬空不使用; VDD(3脚):可选电源脚,电源电压范围35.5V。当工作于寄生电源时,此引脚必须接地。 DQ(4脚):数据输入/输出脚。漏极开路,常态下高电平。 DS18B20内部有4个主要部件:64位激光ROM、温度传感器、非易失性温度告警触发器(TH和TL)和配置寄存器。 每个DS18B20都有一个唯一的64
15、位ROM编码,它存放在64位激光ROM中。代码的前8位是单线产品系列编码,接着的48位是唯一的产品序列号,最后8位是前面56位编码的CRC校验值,如表2-3所示。表2-3 64位激光ROM内容8位CRC校验码48位产品序列号8位产品系列编码MSB LSB MSB LSB MSB LSBCRC的等效多项式函数为: CRC=X8+X5+X4+164位激光ROM中的8位CRC值即由此多项式函数产生。主机可以通过“读ROM命令”读取64位ROM的前56位,然后也按此多项式计算出CRC值,并把它与读出的存放在DS18B20激光ROM内的CRC值进行比较,从而决定ROM的数据是否已被主机正确接受。CRC值
16、得比较和是否继续操作都由主机决定。2.5 矩阵式键盘设计实现键盘控制的方法有多种,它可以用FPGA来进行控制,也可以用单片机来进行控制。在本系统中,我们采用了单片机来进行控制,因为单片机可以很好的解决键抖动。由若干个按键组成一个键盘,其电路结构可分为独立式键盘和矩阵式键盘两种。 独立式键盘每个键单独占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线上的状态,矩阵式键盘按键排列为行列式矩阵结构,也称行列式键盘结构。4行4列共16个键,只占用8根I/O口线,键数目较多,可节省口线。此设计的是3行3列共9个键。键盘的工作方式可分为编程控制方式和中断控制方式。CPU在一个工作周期
17、内,利用完成其他任务的空余时间,调图2.6 矩阵式键盘用键盘扫描子程序,经程序查询,若无键操作,则返回;若有键操作,则进而判断是哪个键,并执行相应的键处理程序。这种方式为编程扫描方式。由于单片机在正常应用过程中,可能会经常进行键操作,因而编程控制方式使CPU经常处于工作状态, 在进行本次设计中,涉及到了启动/关闭、调时、调分、调秒,调年,月,日,星期,等很多功能个功能。因此,只采用了3行3列键进行功能设置。如图2.6所示。2.6 显示电路设计12864液晶是一种具有4位/8位并行,2线或3线串行多种接口方式,内部含有国标一级,二级简体文字库的点阵图形液晶显示模块:其显示分辨率为12864,内置
18、128个16*16点文字,和128个16*8点ASCII字符集,利用该模块灵活的接口方式和简单,方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字,也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构显示程序都要简洁得多。其基本特性如下: 低电源电压(VDD:+3.0+5.5V) 显示分辨率:12864点内置汉字字库,提供8192个1616点阵汉字内置128个168点阵字符2MHZ时钟频率显示方式:STN ,半透,正显驱动方式:1/32DUTY,1/5BIAS视角方向:6点背光方式:侧部高亮白
19、色LED,功耗仅为普通的LED的1/51/10通讯方向:串行,并行可选内置DCDC转换电路,无需外加负压无需片选信号,简化软件设计工作温度:零度到55度,存储温度:负20度到60度。而本设计将采用的是并行接口,及见图2.7所示。图2.7 12864液晶电路其液晶12864的并行管脚如表2-2所示。表2-4 液晶管脚 我们用单片机来进行控制。它可以很直观的用来显示年、月、日、时、分、秒、星期及温度,单片机与LCD的接口电路如图2.8所示。图2.8 接口电路第3章 程序流程图3.1 中断时钟流程图中断服务程序流程图如图3.1所示。流程图分析:由中断查询当有中断请求时,及进行现场保护,保护断点,将定
20、时器赋初值,且开定时器便于计数,且赋值50000,当中断进行20次刚好一秒,当秒计数60时便向分进位,当分计数60时,向时进位,当时到24时,清零,及恢复现场。 图3.1中断流程图3.2温度子程序流程图温度显示流程图如图3.2所示。流程图分析:开始进入初始化DS18B20,就是通过主机拉低单线产生复位脉冲然后释放该线,如果有应答脉冲,及发起ROM命令当成功的执行操作命令后,就使用内存操作命令,即温度转换等,当转换完后,又初始化DS18B20是否有应答脉冲,若有,就发起读时隙命令,既同时读出第1,2个字节,既为温度的数据。图3.2 温度显示流程图3.3 万年历流程图万年历流程如图3.3所示。流程
21、图分析:开始既当日加一天,同时星期也就相应的加1,看星期是否加到7,若加到了7,就返回到1,若没有就返回到时钟状态,当日加到相应的最大数时,月分就相应的加1,看月份是否加到了13, 若没有到13,就一直等待,若到了13就返回1,且年份就加1,当年份到2099时就清到2005年,若没有,就一直等待,直到2099为止。图3.3 万年历流程图第4章 操作与调试4.1 KEIL uVision3简介4.1.1 8051开发工具 KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍
22、生产品。C51已被完全集成到uVision3的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision3 IDE可为它们提供单一而灵活的开发环境。 C51 V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51 V7版本无疑是8051开发用户的最佳选择。 4.1.2 uVision3集成开发环境 (1)、项目管理 工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。 一个单一的uVision3工程能够产生一个或多个目标程序。产生目标程序
23、的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。 uVision3包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特 性。 uVision3可以为片外存储器产生必要的连接选项:确定起始地址和规模。 (2)、集成功能 uVision3的强大功能有助于用户按期完工。 1.集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户
24、变数存储器。 2.文件寻找功能:在特定文件中执行全局文件搜索。 3.工具菜单:允许在V3集成开发环境下启动用户功能。 4.可配置SVCS接口:提供对版本控制系统的入口。 5.PCLINT接口:对应用程序代码进行深层语法分析。 6.Infineon的EasyCase接口:集成块集代码产生。 7.Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE工程可被直接输入uVision3。4.2 Proteus简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特
25、点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的
26、软件编译和调试环境,如Keil C51 uVision3等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。4.2.1进入Proteus ISIS双击桌面上的ISIS 6 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 6 Professional” “ISIS 6 Professional”,出现如图4.1所示屏幕,表明进入Proteus ISIS集成环境。图4.1 启动时的屏幕4.2.2 工作界面Proteus ISIS的工作界面是一种标准
27、的Windows界面,如图4.2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图4.2 Proteus ISIS的工作界面4.3 软件调试软件调试的任务是利用ISIS开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现仿真结果故障。程序的调试应一个模块一个模块地进行,我们首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来总调。联调需要注意的是,各程序模块间能否正确传递参数,特别要注意各子程序的现场保护与恢复。调试的基本步骤
28、如下:(1)、修改显示缓冲区内容,屏蔽拆字程序,调试动态扫描显示功能。例如将DISP0DISP5单元置为“012345”,应能在LCD上从左到右显示“012345”。若显示不正确,可在中断子程序相应位置设置断点调试检查。然后修改计时缓冲区内容,调用拆字程序,调试显示模块。 (2)、运行主程序调试模块,不按下任何键,检查是否能开始正确显示。若不能正确显示,则应在定时器中断服务子程序中设置断点,检查HOUR、MIN、SEC单元是否随断点运行而变化。然后屏蔽缓冲区初始化部分,用仿真器修改万年历显示缓冲区内容为2008年12月12日,运行主程序(调进位键),检验能否正确进位,以及试调时间看能否正确的进
29、位,以及温度显示。(3)、调试键盘扫描模块,先用延时5ms子程序代替显示子程序延时消抖,在求取键号后设置断点,中断后观察A累加器中的键号是否正确;然后恢复用显示子程序延时消抖,检验与显示模块能否正确连接。(4)、调试时间设置模块。首先屏蔽COMB子程序,单独调试键盘设置模块,观察显示缓冲区DISP0DISP5单元的内容是否随键入的键号改变,以及键号能否在LCD上显示。然后屏蔽子程序,单独调试合字模块。(5)、运行主程序联调,检查能否用键盘修改当前万年历,时间,以及温度能否正确显示。 结束语这次的课程设计对从我们来说很兴庆,我们是自己选择设计课题,这样我们设计的范围很宽,也可以根据自己喜欢以及赶
30、感兴趣的项目进行设计。从这次的课程设计中,让我们更加了解和掌握单片机结构以及液晶内部的结构,提高我们编程的能力,理解软件对硬件的控制以及硬件对软件的制约。本次设计的重点在于定时中断的合理使用,各相互独立的程序通过有机的组合,来完成所需功能则是本次设计的精妙之所在,也正是因为此,深刻领悟到“实践出真知”这句俗语。其实有好多的知识需要在一步一步的实际动手当中慢慢地体会,慢慢地学习。不能只是想当然怎样就会怎样,还要靠自己亲手去验证它才行在设计的过程中还是会学到不少东西,但是经过这次实验使我对它们有了一定的了解。经过这一次实验我们认识到实验是一门能够提高个人动手能力的一门课程,同时也帮助了我们,怎么样
31、把书本上理论的知识应用到实践中去。通过这次的锻炼,我们不仅动手能力得到了加强,更重要的是学到了很多新的专业技能知识,经验也更加丰富了。我觉得我还有很多不足的地方,如:基本知识掌握不牢固、动手能力不强、知识面不够宽。我争取在以后的学习当中弥补它,不断的完善自己。虽然期间我们遇到了不少的难题,但是经过努力,再大的困难也被我们给一一的解决了。本设计还有很多做的不够好的地方,还望老师批评指正。 附录1 仿真电路图 附录2 元器件清单序号名称规格型号数量(单位)1芯片AT89S5212按键开关SW-PB103晶振12MHz14液晶显示器1286415温度传感器18B2016排阻RP17电解电容CAP18
32、瓷片电容CAP29电阻R2附录3 程序清单#include#define uchar unsigned char #define uint unsigned int#define dataport P2bit flagg=0;sbit E=P12; /使能端sbit RW=P11; /读写端 sbit RS=P10; /数据命令端口sbit CS1=P13;sbit CS2=P14;sbit DQ=P30; uchar ip;uchar temp3;uchar flag=0;uchar sum,setbit;uchar discode13;uchar year=8,month=12,week=
33、7,day=7,hour=12,minute=0,second=0,pm;uchar code day1=0,32,29,32,31,32,31,32,32,31,32,31,32;uchar code day2=0,32,30,32,31,32,31,32,32,31,32,31,32;uchar code shu0=0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00;/*0,0*/uchar code shu1=0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0
34、x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00;/*1,0*/uchar code shu2=0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00;/*2,0*/uchar code shu3=0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00;/*3,0*/uchar code shu4=0x00,0x00,0xC0,0x20,0x10,0x
35、F8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00;/*4,0*/uchar code shu5=0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00;/*5,0*/uchar code shu6=0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00;/*6,0*/uchar code shu7=0x00,0x38,0x08,0x0
36、8,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00;/*7,0*/uchar code shu8=0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00;/*8,0*/uchar code shu9=0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00;/*9,0*/uchar code dian=0x00,0x38
37、,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/*,0*/uchar code C=0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00;/*C,0*/uchar code xiao=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00;/*.,0*/uchar code fu=0x00,0
38、x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01;uchar code zheng=0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00;/*+,0*/uchar code nian=0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00,0x04,0x04,0x04,0x04,0x07,0
39、x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00;/*年,0*/uchar code yue=0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00;/*月,0*/uchar code shi=0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00;/*时,0*/uchar code fen=0x80,0x40,0x20