数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统1数理与信息工程学院《单片机原理及应用》期末课程设计题目:基于单片机的电子课程表系统专业:计算机科学与技术班级:计算机072班姓名:梁姣学号:07220111指导老师:余水宝成绩:(2010.1)数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统2目录第1节引言……………………………………………………………………………31.1电子课表系统概述……………………………………………………………31.2本设计任务和主要内容………………………………………………………4第2节系统主要硬件电路设计………………………………………………………52.1单片机控制系统原理…………………………………………………………52.2单片机主机系统电路…………………………………………………………62.2.1时钟电路………………………………………………………………72.3七段数码管显示电路…………………………………………………………72.4LED显示系统电路……………………………………………………………82.5汉字显示硬件电路……………………………………………………………9第3节系统软件设计…………………………………………………………………103.1系统主程序设计………………………………………………………………103.2汉字的点阵显示原理及字库代码获取方法…………………………………15第4节结束语…………………………………………………………………………18参考文献…………………………………………………………………………19附录…………………………………………………………………………20数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统3基于单片机的电子课程表系统数理与信息工程学院计算机科学与技术梁姣指导教师:余水宝第1节引言AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。LED因其体积小,耗电量低,高亮度及环保等优点而被广泛应用于公共场所的大屏显示上,LED点阵大屏可应用于户外广告,交通导航,大厅公告,比赛的多媒体实时显示等领域。学校新建体育馆内就置有大幅LED显示,校运会时为赛事信息实时显示提供了便捷。我们的课程设计是基于AT89C51单片机,用16*16点阵显示滚动的课程名称,至于教室门口,可即时显示该教室内正在上的课程名称,方便师生选择合适的教室学习。所作的点阵屏具有可移植性强,功能简单,可以简单继续添加更多相关功能的模型,也可以扩展成多块点阵屏的组合,以改良显示效果。该系统灵活性强,易于操作,可靠性高。1.1电子课表系统概述经过一段时间的观察,我们发现,同学们上自习是经常遇到一个问题。教室中有很多人,但不能确定里面是不是准备要上课,能不能到里面去自习。有时候坐下没多久刚刚进入学习状态,就有人进来说此教室将被班级活动占用或临时调整为上课教室。所以我们设想,能不能设计一个电子课表,放在每个教室的门口,显示当前在上的课程,并可以通过一定的按键来及时改变课程,以应对临时变化。我首先想到的是设计一种有控制终端的课程显示系统。即每个教室门口都有一个电子课表,通过终端的控制完成所有课表的显示。但后来发现,以我们的能力做这样的工作太过复杂,所以选择了更容易的方式:单一的放在教室门口的电子课表,只显示当前的课程。于是现在的作品应运而生。发光二极管具有亮度高、体积小、单色性好、响应速度快、驱动简单、寿命长等优点,LED显示屏由发光二极管阵列构成并通过一定的控制方式,用于显示文字、图数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统4像、行情等各种信息以及电视、录像信号,由于由LED器件阵列组成的显示屏幕成本低,安装方便灵活,正受到社会各界尤其是商业界、广告界的极大重视。在大型商场、车站、码头、地铁站以及各类办事窗口等越来越多的场所需要用LED点阵显示图形和汉字。显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。本文基于单片机(AT89C51)讲述了16×16LED汉字点阵显示的基本原理、硬件组成与设计、程序编译与下载等基本环节和相关技术,根据点阵屏和七段数码管的基本原理,做出了方便实用的电子课表!1.2本设计任务和主要内容本课程设计的主要任务是以AT89C51为核心芯片设计16×16LED汉字点阵显示电路。硬件电路主要由AT89C51单片机控制器、LED显示屏行列驱动电路以及LED点阵显示屏,六位七段数码管4部分组成。通过汉字字模点阵数据批量生成软件来实现汉字点阵,采用汇编语言对单片机进行控制操作。完成实物电路并在Proteus软件的基础上对结果进行仿真,得到了汉字点阵效果图。预计设计完成的电子课程表有如下功能:1.实现LED点阵屏汉字名称的滚动显示。2.实现不通课程汉字名称的自动切换。3.实现按键控制课程名称的临时更改。4.实现节日动画的显示。5.实现6位七段数码管显示时分秒。6.实现按键控制时间的调整。数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统5第2节系统主要硬件电路设计2.1组成框图硬件设计思想:通过按键输入控制信号,由单片机进行处理,并将行列信号分别通过显示驱动输入点阵屏和数码管,控制点阵和数码管的显示.图2-1电子课表系统原理框图LED16*16点阵屏AT89C51按键控制信号列信号行信号74HC15474HC16474LS138六位七段数码管段选xua=选位选数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统6图2-2系统主要硬件电路图2.2单片机主机系统电路本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×16LED点阵5部分组成,如图2-1所示。其中,AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统7图2-3AT89C51引脚图2.2.1时钟电路时钟电路由AT89C5l的18,19脚的时钟端(XTAIl及XTAL2)以及12MHz晶振X、电容C2、C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R,R2,电容C,开关K组成,分别接至AT89C51的RST复位输入端。2.3七段数码管显示电路用74HC164实现8路并口输出的扩展,占用单片机的两个端口。程序控制PD6作为数据线,将一字节由高位到低位,依次输出,输出时先根据该位的数值置PD6为“1”或“0”,然后控制PA7输出“1”,再输出“0”,模拟时钟信号,将PD6数据打入74HC164。循环移位8次后,将1字节的数据由低位到高位串行输入到74HC164中,即可在74hc164的输出端得到并行的8位数据,即七段数码管的段码值。用74LS138实现6路并口输出的扩展,将位选的段码值依次打入74LS138,74LS138任一时刻只有一个输出口输出低电平,对应的一位数码管被选中,扫描6次数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统8后可以实现六位数码管的显示。电阻起限流的作用。该模块可以实现时分秒的显示,补充并强化了电子课表的功能,为了节省单片机布局有些不合理的端口,用了两处串入并出的扩展。图2-4六位七段数码管显示结构图2.4LED显示系统电路LED点阵显示屏采用16×16共256个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。我们把行列总线接在单片机的I/0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入AT89C51单片机,则需要使用32条I/0口,这样会造成I/0口资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4—16线译码器74HCl54来选择控制,这样一来列选控制只使用了单片机的4个I/O口,节约了很多I/O口资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7kΩ排电阻作为上拉电阻。汉字扫描显示的基本过程是这样的:通电后由于电阻R,电容c1的作用,使单片机的RST复位脚电平先高后低,从而达到复位;之后,在C、C3、X以及单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P0和P2接口输出与内部汉字对应的代码电平送至LED点阵的行选线(高电平驱动),同时在P1.1,P1.2,P1.3,P1.4接口输出列选扫描信号(低电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。再改变取表地址实现汉字的滚动显示。数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统9图2-5LED显示原理框图2.5汉字显示硬件电路本文所设计的目标是在16×16LED点阵上实现汉字显示。汉字点阵控制电路选用AT89C51。硬件电路分为单片机控制器、LED显示屏行列驱动电路、LED点阵显示屏3部分,完整的硬件电路如图2-2所示。选用4216译码器74154作为行选址逻辑控制端,AT89C51的P0、P2口作为列数据输入端。图2-616*16LED汉字显示仿真图取字模显示数组改变时间触发按键按下LED显示显示函数,通讯函数字模数组,取数据交给函数数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统10第3节系统的软件设计软件程序主要由开始、初始化、主程序、字库组成。其中主程序的流程图如图2-7所示。图2-7汉字输出流程图3.1系统主程序设计ORG0000HST:MOVA,#0FFH;初始化MOVP1,AMOVP2,AMOVP3,A数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的电子课程表系统11MOVP0,ACLRAMOVR0,#50H;显示缓存清0MOVR1,#20H;控制清0的次数ST0:MOV@R0,AINCR0DJNZR1,ST0;正文显示CHINESE:MOVDPTR,#TAB1;查表指针指向TAB1LCALLHZ;结束动画SCREE:MOVDPTR,#TAB2;查表指针指向TAB2ACALLDDMOVDPTR,#TAB3;查表指针指向TAB3ACALLDDMOVDPTR,#TAB4;查表指针指向TAB4ACALLDDLJMPCHINESE;显示8幅画面子程序,SCREE专用,用字模软件字要倒置(表必须深256字节)DD:MOVB,#00HMOVR0,#08H;显示8幅画面AJMPCCCC0:MOVA,BADDA,#20H;指向下一幅画面MOVB,ACC:MOVR7,#08H;画面停留时间MOVR3,BMOV37H,R0LCALLENTERDIS00:LCALLDISPLAYDJNZR7,DIS00MOVR0,37H数理与信息工程学院《单片