第一章设计内容和要求设计任务用AT89C52设计一个4位的LED数码作为多功能“秒表”。
设计目的1.学习数码管显示的结构和工作流程,实现数码管分组显示数字组合。
2.学习有关单片机的内容,进一步了解AT89C52芯片的相关功能。
3.复习C语言的相关知识。
4.培养自学能力和探索解决问题的能力。
设计要求显示时间为00分00秒-59分59秒,每1秒自动加1,另外设计一个“开始/暂停”键、一个“记录/查询”键、一个“清零”键、一个“模式切换”键、一个“时间设置”键、一个“复位”键。
秒表要求正计时时,可记录并且查询10组数据,倒计时时,时间用户可设置,并且时间到时蜂鸣器报警。
设计创新在基本设计基础上添加了正向查询10条记录后蜂鸣器同时报警。
设计意义简易秒表具有读取方便,显示直观,功能多样,电路简洁,成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
本次设计将基于单片机的工作原理,设计简易秒表的基本电路,深入的了解其工作原理,掌握其基本的工作特点。
同时简易秒表在生活中应用广泛,从实际出发,不断创新。
第二章方案设计与选择技术可行性20世纪以来,微电子,IC集成电路行业发展迅速,其中单片机行业发展最引人注目。
单片机利用大规模集成电路技术把中央处理器和数据存储器(RAM),程序存储器(ROM)及其他I/O通信口集成在一块芯片上,构成最小的计算机系统。
如今的单片机发展集成了更多的特殊功能单元,例如A/D,D/A转换器,通信控制,DMA,PWM控制输出单元等。
因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统。
单片机除了具备体积小,价格低,速度快,用途广,可靠性高等特点,在硬件结构和指令设置上还有以下独特之处:1.存储器ROM和RAM是严格分工的。
前者存放程序,常数和数据表格,后者存放临时数据和变量。
2.采用面向控制的指令系统,构成的应用系统有较大的可靠性。
大部分测控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当的改变系统功能。
3单片机的硬件功能具有广泛的通用性。
4.品种规格的系列化。
单片机的选择方案一:采用AT89C52单片机AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
该芯片且具备在线编程可擦除技术,当在对电路停止调试时,因为顺序的过错修正或对步伐的心删功能需要烧进程序时,没有需要对芯片屡次插拔,所以不会对芯片形成破坏。
方案二:采用FTC10F04单片机FTC10F04单片机还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
其主要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。
方案三:采用8051单片机8051单片机最早由Intel公司推出,内部具有4KB ROM存储空间。
其后多家公司购买了8051的内核,使得以8051为核心的MCU系列单片机在世界上产量最大,应用也最广泛。
有人推测8051可能最终形成事实上的标准MCU芯片。
LG 公司生产的GMS90系列单片机,与Intel MCS-51系列、Atmel 89C51/52,89C2051等单片机兼容,CMOS技术,高达40MHZ的时钟频率。
应用于:多功能电话,智能传感器,电度表,工业控制,防盗报警装置,各种计费器,各种IC卡装置、DVD、VCD、CD-ROM。
由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方案一,三成本比较低,适合做设计,方案二运算速度高,性能好,所以三种方案都有可取之处。
本次设计选用方案一作为主方案,设计以AT89C52为主控电路的方案电路。
显示模块的选择方案一:使用液晶显示屏显示时间数字。
液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
但由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。
在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易维护。
方案二:使用传统的LED数码管显示。
数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。
数码管采用BCD 编码显示数字,程序编译容易,资源占用较少。
根据以上的论述,采用方案二。
在本系统中,我们采用了四位一体数码管串口的动态显示,因选用四位一体共阳数码管,所以要加共阳的驱动,采用pnp 的驱动。
键盘模块的选择在对倒计时时间可设置,对正计时、倒计时的模式选择时,清零时都需要用按键。
方案一:使用独立式键盘。
独立式键盘是指直接用I/O口线构成的单个按键电路。
独立式按键电路配置灵活,软件结构简单。
方案二:使用矩阵式键盘。
矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。
其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。
根据以上的论述,因本系统需要的按键不多,只需要开始/暂停”键、“记录/查询”键、“清零”键、“模式切换”键、“时间设置”键。
所以采用方案一独立式键盘。
时钟电路的选择时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。
第三章系统总体结构系统结构框图按照系统设计功能的要求,初步确定系统由主控模块,存储模块,驱动模块,显示模块和键盘接口模块组成,如图3-1。
这些模块中单片机占主控地位,采用AT98C52芯片。
键盘电路模块主要是对输出显示进行控制调节作用,采用普通独立按钮元件,共5个,“开始/暂停”键、“记录/查询”键、“清零”键、“模式切换”键、“时间设置”键。
本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。
显示输出部分所用的数码管有共阴极和共阳极两类数码管之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。
另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。
本电路中采用的是共阴极数码管。
驱动部分主要是数码管分组显示的选择控制,本电路中通过P1口和P2口的配合进行数码管的选通。
在显示模块中,它的连接方式为8位数码管的各段控制口a,b,c,d,e,f,g,dp 分别需接到P0口。
数码管的显示码是由P0口输入的,位选端是通过P2口控制的。
数码管的显示编码已经编好放在计算机的内存里,时间的显示可以通过软件的计算把显示码调出显示。
显示模块直接用数码管来显示时间。
先将显示码存入数组中,指向最左边一位,然后取出要显示的数据,指向换码表首地址,取出显示码,从P0口输出显示码,P2口输入位选码,图3-2数码管笔段分布图驱动部分电路选择S8050芯片,通过与单片机的连接,将电平拉高才能使发光管正常发光。
第四章硬件设计由图3-1系统结构框图可知硬件选择如下:AT89C52芯片,LED数码管组,数码管驱动三极管,电阻,按钮等外围应用电路构成。
下面介绍各外围电路。
单片机基本引脚接线图AT89C52的基本连接电路如图,有复位电路,内部时钟电路,VCC,VSS的连接,其余控制电路根据程序设计分别连至个I/O口实现功能。
图3-1为AT89C52的引脚图,在设计中大部分采用40引脚的双列直插式芯片。
图3-2介绍的是AT89C52作为基本连接电路中。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH 编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C52的一些特殊功能口,P口管脚备选功能RXD(串行输入口) TXD(串行输出口)/INT0(外部中断0) /INT1(外部中断1)T0(记时器0外部输入) T1(记时器1外部输入)/WR外部数据存储器写选通 /RD外部数据存储器读选通RST:复位输入ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时, ALE 只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。