单片机课程设计电子日历.doc
课 程 设 计 课 程 单片机课程设计 题 目 院 系 电气信息工程学院测控技术与仪器系 专业班级 学生姓名 学生学号 指导教师 2013年 7 月 8日东北石油大学课程设计任务书课程 单片机课程设计 题目 电子日历的制作 专业 测控技术与仪器 姓名 学号 一、任务 以AT89C51单片机为控制核心,利用电子日历芯片DS1302及LCD液晶显示屏设计出一种具有时间及日期显示、预约定时等基本功能的电子日历。二、设计要求1 掌握LCD液晶显示屏的工作原理;2、该电子日历可以显示,年、月、日、时、分、秒及星期等内容;3、具有4个按键操作来设置现在的时间。操作键K1- K6功能如下:(1)操作键K1:进入设置现在的时间;(2)操作键K2:设置月;(3)操作键K3:设置日;(4)操作键K4:设置小时;(5)操作键K5:设置分钟;(6)操作键K6:确认完成设置。4、基本电路包括:单片机最小系统、LCD显示电路、蜂鸣器电路、独立键盘电路等;5、提交设计报告、电路图及程序源码。三、参考资料1 刘国钧,陈绍业,王凤翥.图书馆目录M.北京:高等教育出版社,1957.15-18.2 刘润华,刘立山.模拟电子技术J.山东:石油大学出版社,2003.3 苏成富.彩灯控制器J.北京:电机电器技术,2000,(01).4 祝富林.音乐彩灯电路CS9482J.北京:电子世界,1995,(12).5 彭介华.电子技术课程设计指导J.北京:高等教育出版社,1997. 完成期限 2013.7.1 - 2013.7.10 指导教师 专业负责人 2013年 6月 29 日目 录第1章 绪论11.1 LED点阵显示屏概述11.2 LED显示屏控制技术状况11.3 本设计任务2第2 章 总体方案论证与设计32.1 LED驱动模块32.2 数据存储模块32.3 总体硬件组成框图4第3章 系统硬件设计53.1 LED驱动模块的硬件设计53.2数据存储电路设计63.3 PC机通信模块的设计7第4章 系统的软件设计94.1 主程序设计94.2 驱动显示子程序设计10第5章 系统调试与测试结果分析125.1 使用的仪器仪表125.2 系统调试125.3 测试结果12结 论13参考文献14附录1 程序15第1章 绪论近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 而51系列单片机是各单片机中最为典型和最有代表性的一种,通过本次课程设计进一步对单片机学习和应用,从而更熟悉单片机的原理和相关设计并提高了开发软、硬件的能力。本设计主要设计一个基于80C51单片机的电子时钟,并在LED上显示相应的时间,通过两个控制键和4×4键盘来实现时间的调节功能。应用Proteus软件实现单片机数字时钟系统的设计与仿真。 1.1单片机发展概况随着大规模集成电路技术的发展,可以将CPU、RAM、ROM、定时器/计数器以及输入/输出(I/O)接口电路等计算机的主要部件集成在一块集成电路芯片上。这样组成的芯片级的微型计算机就是“单片微型计算机(SingleChipMicrocomputer)”。由于单片机从功能和形态来说都是作为控制领域应用的要求而诞生的,并且发展到新一代80C51、M68HC11系列单片机时,在其中着力扩展了各种控制功能,如模/数(A/D)转换、脉宽调制(PWM)、计数器捕获/比较逻辑(PCA)、高速I/O口和WDT等,已突破了微型计算机的传统内容。所以更准确的叫法应是微控制器(MicroControllerUnit,MCU)。 单片机的发展大致经历了三代: 第一代:以1976年推出的MCS-48系列为代表,其主要的技术特征是将CPU和计算机外围电路集成到了一个芯片上,成为与通用CPU分道扬镳的标志。 第二代:以MCS-的8051、8052为代表。主要技术特点是向外部接口电路扩展,以实现微控制器化。代表产品为Intel公司MCS-51,Motorola公司68HC05。第三代:以89C51系列单片机为代表,这个时期的产品以CMOS化为特色,以完善的单片机的控制功能为己任。89C51是80C51含EEPROM的产品。这两种单片机有两级或三级程序存储器保密系统,用以保护EPROM或EEPROM中的程序,以防止非法复制。近几年,单片机竞相采用Flash存储器。它可以取代PROM、EPROM、OTP和EEPROM。利用Flash存储器可高速读/写的特点实现在系统编程ISP和在应用编程IAP。1.2单片机原理及应用简介 随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-ChipMicrocomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业控制系统、数据采集系统、自动测试系统、万年历电子表等。 单片机的出现,并在各个技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:1、单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单-3-片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。2、系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。 3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。 4、有优异的性能、价格比。 可以说,对于广大的电子应用专业技术人员,目前国和内国外面临的单片机应用技术,如同60年代面临晶体管技术,70年代面临数字集成电路一样。单片机和可编程门阵列相结合,构成新一代电子应用技术是不可能回避的一项新型的工程应用技术。单片机是微型计算机的一个重要分枝,单片机是把中央处理器、随机存储器、只读存储器、定时器/计数器、并行接口接口、串行接口、A/D转换器等主要计算机部件,集中在一块集成电路芯片上。虽然只是一个芯片,但从功能上它就相当于一台完整的微机。随着科学技术的迅猛发展,单片计集成度高、体积小、运算速度快、功耗低、运行可靠、价格低廉等诸多优点,越来越显现出来。目前可以说单片机已经渗透到我们的生活的各个领域,在工业方面:像过程控制、数据采集,机电一体化、智能化仪器仪表,特别在军事武器控制方面尤为突出。在日常生活方面,我们使用彩电、洗衣机、电冰箱,录放机、VCD、照相机、手机、高级定时闹钟以及公共汽车上的报站器等等可以说举不胜举。把单片机的诞生称为计算机发展史上的一个重要里程碑并不过分。单片机的应用,使许多领域的技术水平和自动化程度大大提高。可以说当今世界正在经受一场以单片机技术为标志的新技术革命浪潮的冲击。人们需要掌握单片机知识,跨入单片机应用与开发领域的大门。我们作为理工科的大学生,学习单片机课程尤其显得越来越重要。1.3 本设计任务随着电子技术的发展,人类不断研究,不断创新纪录。万年历目前已经不再局限于以书本形式出现。以电脑软件或者电子产品形式出现的万年历被称为电子万年历。与传统书本形式的万年历相比,电子万年历得到了越来越广泛的应用,采用电子时钟作为时间显示已经成为一种时尚。目前市场上各式各样的电子时钟数不胜数,但多数是只针对时间显示,功能单一不能满足人们日常生活需求。 本文提出了一种基于AT89C51单片机的万年历设计方案,本方案以AT89C51单片机作为主控核心,与时钟芯片DS1302、按键、LCD显示等模块组成硬件系统。在硬件系统中设有独立按键和LED显示器,能显示丰的信息,根据使用者的需要可以随时对时间进行校准、选择时间等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 (一)功能要求 本电子万年历能动态显示年、月、日、星期、小时、分钟、秒 第2 章 总体方案论证与设计本系统采用单片机AT89C51为控制核心,利用电子日历芯片DS1302及LCD液晶显示屏设计出一种具有时间及日期显示、预约定时等基本功能的电子日历。系统主要包括单片机最小系统、LCD显示电路、蜂鸣器电路、独立键盘电路等;下面对各模块的设计逐一进行论证比较。1.3.1 技术可行性 随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。 单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关: 1、单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。 2、系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。 3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。 4、有优异的性能、价格比。 1.3.2 单片机的选择 方案一:采用传统的AT89C51作为电机的控制核心。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。 方案二:采用FTC10F04单片机,还带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。其主要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。 由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。选用方案一作为主方案,方案二作为备用方案。 1.3.3 显示模块的选择 方案一:使用液晶显示屏显示时间数字。 液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。但由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易维护。 方案二:使用传统的LED数码管显示。 数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。数码管采用BCD编码显示数字,程序编译容易,资源占用较少。 根据以上的论述,采用方案二。在本系统中,我们采用了八段四位一体数码管串口的动态显示,由于显示位数较多,故应使用显示驱动,在本设计中采用MAX7219显示驱动芯片。 1.3.4 键盘模块的选择 在对日期和时间进行切换,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。 方案一:使用独立式键盘。独立式键盘是指直接用I/O口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。 方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。 根据以上的论述,因本系统需要的按键不多,星期加1键,日期加1键,月数加1键,年数加1键,秒数加1键,分数加1键,时数加1键,时间/日期切换键,要求简单。所以采用方案一独立式键盘。 2.3总体硬件组成框图按照系统设计功能的要求,初步确定系统由主控模块、时控模块、显示驱动及显示模块和键盘接口模块共4个模块组成,电路系统构成框图如图所示。 图2-1 总体硬件组成框图 主控芯片使用51系列AT89C51单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。采用DS1302作为计时芯片,可以做到计时准确。更重要的是,DS1302可以在很小电流的后备电源(2.55.5V电源,再2.5V时耗电小于300nA),而且DS1302 可以编程选择多种充电电流来队后备电源进行慢速充电,可以保证后备电源基本不耗电。显示驱动采用MAX7219,MAX7219 是微处理器和共阴极八段八位LED 数码管显示、图条/柱图显示或64 点阵显示接口的小型串行输入/输出芯片。片内包括BCD 译码器、多路扫描控制器、字和位驱动器和8×8 静态RAM。外部只需要一个电阻设置所有LED 显示器字段电流。MAX7219 和微处理器只需三根导线连接,每位显示数字有一个地址由微处理器写入。允许使用者选择每位是BCD 译码或不译码。使用者还可选择停机模式、数字亮度控制、从18 选择扫描位数和对所有LED 显示器的测试模式。显示模块采用普通的共阴极四位一体八段LED数码管。 第3章 系统硬件设计为使该模块化LED显示屏控制系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。硬件电路包括LED驱动模块、数据存储模块、PC机通信模块等三大模块。3.1 系统硬件概述3.1.1主控制器AT89C51 ATMEL公司生产的AT89C51单片机采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。其主要特点如下: 8KB Flash ROM,可以擦除1000次以上,数据保存10年。 256字节内部RAM; 电源控制模式; 时钟可停止和恢复; 空闲模式; 掉电模式; 6个中断源; 4个中断优先级; 4个8位I/O口; 全双工增强型TUAR; 3个16位定时/计数器:T0、T1(标准80C51)和增加的T2(捕获和比较) 全静态工作方式:024MHZ 2.2.3 显示驱动MAX7219 MAX7219 和单片计算机连接有三条引线(DIN、CLK、LOAD),采用16 位数据串行移位接收方式 八位LED 显示、图条/柱图显示或64 点阵显示 包括BCD 译码器、多路扫描控制器、字和位驱动器和8×8 静态RAM 可选择停机模式、数字亮度控制、从18 选择扫描位数和对所有LED 显示器的测试模式 最多能驱动8 位LED 显示器 内部RAM 地址0108H 分别对应于DIG0DIG7。 扫描界限寄存器(地址0BH):该寄存器中D0D3 位数据设定值为07H,设定值表示显示器动态扫描个数位18。 停机寄存器(地址0CH):当D0=0 时,MAX721 处于停机状态;当D0=1 时,处于正常工作状态。 显示测试寄存器(地址0FH):当D0=0时,MAX7219 按设定模式正常工作;当D0=1 时,处于测试状态。在该状态下,不管MAX7219 处于什么模式,全部LED 将按最大亮度显示。 亮度寄存器(地址0AH):亮度可以用硬件和软件两种方法调节亮度寄存器中的D0D3位可以控制LED 显示器的亮度。 MAX7219 通过D11D84 位地址位译码,可寻址14 个内部寄存器,分别是8 个LED 显示位寄存器,5 个控制寄存器和1 个空操作寄存器。 LED 显示寄存器由内部8 × 8 静态RAM 构成,操作者可直接对位寄存器进行个别寻址, 以刷新和保持数据, 只要V 超过2 V(一般为 5V)。 控制寄存器包括: 译码模式, 显示亮度调节, 扫描限制(选择扫描位数),关断和显示测试寄存器。 MAX7219 的驱动程序首先必须对5 个控制寄存器初始设置即初始化, 各控制寄存器设置含义如下:译码模式选择寄存器(地址 F9H);MAX7219 有两种译码方式:B 译码方式和不译码方式。当选择不译码时, 8 个数据为分别一一对应7 个段和小数点位;B 译码方式是BCD 译码,直接送数据就可以显示。实际应用中可以按位设置选择B 译码或是不译码方式。 扫描限制寄存器: 地址 FBH;用于设置显示的LED 个数( 1 8 ) , 比如当设置为0xX4 时,LED 05 显示。 亮度调节寄存器: 地址 FAH;共有16 级选择,用于LED 显示亮度的强弱设置。 关断模式寄存器:地址 FCH;有两种模式选择:一种是关断状态模式(D0 0);一种是正常操作状态(D0 1),通常选择正常操作状态。 显示测试寄存器:地址 FFH;有两种选择用于设置LED 是测试状态还是正常操作状态:当在测试状态时(D0 1)各位全应亮,一般选择正常操作状态(D0 0)。 2.3主要单元电路的设计2.1显示电路 显示部分采用普通的共阴数码管显示,两个四位一体八段LED显示数码管和一个一位LED数码管设计时数码管同时扫描,显示时采用串行口输出段码,用MAX7219驱动数码管。 图2.1 MAX7219 2.2键盘接口 键盘在单片机系统中是一个很重要的部件。为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。 2.2.1按键开关去抖动问题 按键开关在电路中的连接如图所示。按键未按下时,A点电位为高电平5V;按键按下时,A点电位为低电平。A点电位就用于向CPU传递按键的开关状态。但是由于按键的结构为机械弹性开关,在按键按下和断开时,触点在闭合和断开瞬间还会接触不稳定,引起A点电平不稳定,如图2-11b所示,键盘的抖动时间一般为510ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。因此必须设法消除抖动的不良后果。 图2.2 键操作和键抖动 消除抖动的不良后果的方法有硬、软件两种。为了节省硬件,通常在单片机系统中,一般不采用硬件方法消除键的抖动,而是用软件消除抖动的方法。根据抖动特性,在第一次检测到按键按下后,执行一段延时510ms让前延抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认真正有键按下。当检测到按键释放后,也要给510ms的延时,待后延抖动消失后才转入该键处理程序。 2.3时钟电路 2.3.1 DS1302工作方式简介及数据操作原理 DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用24<小>时或带AM/PM的12小时格式。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多字节的时钟信号或RAM数据。 DS1302有Vcc1(主电源)/ Vcc2(后备电源)双电源引脚,由Vcc1或Vcc2中较大者供电。 图2.3 DS1302 DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被访问到。在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。上电运行时,在Vcc2.5V之前,RST脚必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。 DS1302的控制字如图所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据;为1则表示存取RAM数据。位51(A4A0)指示操作单元的地址。最低有效位(位0)如果为0,则表示要进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入/输出。 DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字如下表所示,其中奇数为读操作,偶数为写操作。 时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。当它为0时,时钟将开始启动。 AM-PM/12-24小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平时,选择12小时方式。在此方式下,位5为第二个10小时位(2023h)。 DS1302的晶振选用32768Hz,电容推荐值为6pF。因为振荡频率较低,也可以不接电容,对计时精度影响不大。 第4章 系统的软件设计 电子万年历的程序主要包括3个方面的内容:一是DS1302从单片机中读取数据进行计数,二是利用按键进行时间的调整,三是MAX7219从单片机中读取数据驱动LED数码管显示时间。 AT89C51单片机主要I/O口的分配,P2.0-P2.2分别接MAX7219的DIN,LOAD,CLK三个功能端,P3接查询式按键,P1.0-P1.2分别接DS1302的CLK,IO,RST端。4.1 主程序设计 图5-1为单片机电子日历的主流程图。其具体的工作流程如下:系统通电后,对系统进行复位初始化处理,然后控制主机AT89C51单片机从时钟芯片DS1302中读取时间,存储到单片机中,并显示到LED数码管上。显示的时间如果与实际时间一样,则结束,如果不一样,则进行下一步操作。系统一直扫描是否有键按下,当有按键S1按下后,系统进入时间设定模式,并对不准确的时间进行设定和调整,直到设定完成后,则将设定后的时间显示在LED数码管上。 4.1.1显示驱动程序流程图 4.2.2时间控制流程图 图5-2为电子日历的时间产生流程图,即DS1302操作流程图。其具体的工作流程为:系统通电后,开始初始化操作,使得DS1302不具备写保护的模式,同时当复位端产生一个高电平时,对DS1302进行写地址,并延迟一段时间,向该地址写数据,同时地址增加,如果数据写完没有写完,则继续对DS1302进行写地址操作,否则进行下一步操作,当给复位端一个高电平后,对DS1302写地址,同时延迟一段时间后,将该地址的数据读出来,同时地址增加,如果数据没有读完,则继续对DS1302进行写地址操作,否则即数据已经读完,则将读取出来的数据显示出来,并进行返回操作。 第5章 系统调试与测试结果分析5.1 使用的仪器仪表 数字万用表DT9203单片机仿真器WAVE6000烧写器 GF2100双踪稳压稳流电源DH1718E-55.2 系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:LED驱动模块的调试,数据存储模块的调试,PC机通信模块的调试等,最后将各模块组合后进行整体测试。5.2.1硬件调试 对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。5.2.2软件调试 软件调试采用单片机仿真器WAVE6000L及微机,将编好的程序进行调试,主要是检查语法错误。5.2.3硬件软件联调 将调试好的硬件和软件进行联调,主要调试系统的实现功能。5.3 测试结果此次系统设计结果较好,LED显示屏能很好的显示信息。LED显示屏由八块8*8的LED小模块组成,整个显示屏可以显示两个16*16的汉字,汉字从右到左移动显示,显示亮度也正好。结 论针对传统汉字显示系统显示方式单一,字模更换难度大的问题,设计了本系统,系统是以AT89C52单片机为核心,采用并行ISP下载,串行数据传输、动态扫描技术,利用人眼视觉暂留现象实现汉字移动显示并可与PC机进行通信的16*64LED汉字显示屏。系统总体电路由通信电路,驱动电路和外部存储电路构成。通信电路由MAX232进行电平转换实现单片机与上位机的通信,完成将字模向外部字模数组的传递过程。74LS154和74HC595共同作用完成对显示屏的驱动,实现字模信息于LED点阵上小灯亮灭的转变过程。74LS373和EEPROM2864完成外部数据存储功能。通过软硬件的仿真调试,实现了本次设计的基本功能:汉字的左移显示,并可与上位机进行通信,实现显示汉字的更新。但在实际应用中,功能不仅仅于此,通过对程序的稍做修改,可以实现汉字的静态显示,左移,右移的显示,以及根据要求来控制移动速度和每次移动的距离,并且都可以和上位机进行通信实现汉字的更新。参考文献1 吴杰.基于ISP 技术的电子公告牌系统J.科技资讯2008.NO.14:83-87.2 殷晓安,吴明亮.基于单片机的LED点阵显示条屏控制系统设计J.2008,4月.154-155.3 M.R.Krames,O.B. Shchekin, R. Mueller-Mach, et al,“Status and Future High-Power Light-Emitting Diodes for Solid-State Lighting,”J Journal of Display Technology, vol. 3,No. 2, pp. 160-175, June 2007.4 田金云.基于单片机的LED 汉字点阵显示系统设计J.工业控制计算机.2008 (6):87-88.5 李川,汪秋蒙.ISP技术的原理及实现方法J.科技资讯.2007,35期:93-94.6 万光毅.单片机实验与实践教程M. 北京:北京航空航天大学出版社.2005.1.7 张毅刚.单片机原理及应用M. 北京:高等教育出版社.2003:160-190.8 诸昌钤.LED 显示屏系统原理及工程技术M. 成都:电子科技大学出版社.2000.9 张红.基于单片机控制的LED 点阵显示屏系统J. 微计算机信息.2009.25期 1-2卷:92-93.10 Philips .74HC595 .datasheet.Philips Semiconductors .2003 Jun 2511 胡烨,姚鹏翼,陈明.Protel 99SE原理图与PCB设计教程M.机械工业出版社.2005:23-99.12 马忠梅.单片机的C 语言应用程序设计M.北京:北京航空航天大学出版社.200613 Labcenter Electronics.Intelligent Schematic User ManualM.Labcenter Elec- tronics,2006:34-167.14 周润景.基于Proteus的电路与单片机仿真系统设计与仿真M. 北京:北京航空航天大学出版社. 2005.15 金炯泰,金奎焕. 如何使用KEIL8051C编译器M . 北京:北京航空航天大学出版社.2002.附录1 程序程序代码: #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit rs=P35; /"数据/命令" sbit lcden=P34; /"液晶使能" sbit s1=P30; /"三个按键" sbit s2=P31; sbit s3=P32; sbit spk=P37; /"蜂鳴器" sbit ala=P33; sbit alaon=P26; sbit alaoff=P27; /"闹铃" uchar count,s1num,s4num,flag,flag1,flag2,flag3,flag4,flag5; char miao,shi,fen,nian,yue,ri,day,miao1,fen1,shi1; uchar code table=" 2008-08-08 MON" /"初始" uchar code table1=" 00:00:00" uchar code table2="MONTUEWEDTHUFRISATSUN" uchar table312=31,29,31,30,31,30,31,31,30,31,30,31; uchar code table4=" ALARM " uchar code table5=" 20 - -" void delay(uint z) /"延时函数1ms" uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-); void write_com(uchar com) /"写命令" rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_date(uchar date) /"写数据" rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; void init() /"初始化函数" uchar num; flag1=1; flag2=0; flag3=0; flag4=0; nian=8; yue=8; ri=8; shi1=0; fen1=0; miao1=0; shi=0; fen=0; miao=0; day=1; lcden=0; spk=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num<16;num+) write_date(tablenum); delay(5); write_com(0x80+0x40); for(num=0;num<13;num+) write_date(table1num); delay(5); TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; void write_sfm(uchar add,uchar date) /"写时分秒在第二行" uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); void write_nyr(uchar add,uchar date) /"写年月日在第一行" uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+add); write_date(0x30+shi); write_date(0x30+ge); void displayday(char day1) /"显示星期