单片机最小系统设计与实现毕业论文.doc_第1页
单片机最小系统设计与实现毕业论文.doc_第2页
单片机最小系统设计与实现毕业论文.doc_第3页
单片机最小系统设计与实现毕业论文.doc_第4页
单片机最小系统设计与实现毕业论文.doc_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时监测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。单片机最小系统是在以51单片机为基础上拓展,使其能更方便地运用于测试系统中。本设计主要在51单片机上扩展I/O口,实现液晶显示,定时等功能,并写好一定的底层程序。关键词:最小系统;扩展;AT89S51;I/O接口;液晶显示AbstractWith the infiltration in the social field of the computer in recent years,the application of the one-chip computer is moving towards deepening constantly,drive tradition is it measuring in real time and automatically control at the same time.In measuring in real time and automatically controlled one-chip computer application system,the one-chip computer often uses an a key part,onliy one-chip computer respect knowledge is not enough,should also follow the structure of the concrete hardware,and direct against and use the software of targers characteristic to combine concretly,in order to do perfectly.The smallest system one-chip computer is in expands at the base of MCS-51 one-chip computer.Make it used more convient in the test system.this design mainly expands I/O in take 51 on chip computer,expands the timer fixed time scope,expands the 1602 to demonstrate the connection and write the first floor procedure.Kyesord:Minimum system,Expand,AT89S51,I/O,1602目 录摘 要IAbstractII第1章 绪论11.1 单片机基础知识11.2 单片机的应用领域11.3 单片机的发展趋势2第2章 硬件结构剖析42.1 80C51单片机的内部结构42.2 80C51单片机的引脚功能5第3章 单片机的硬件设计103.1 最小系统设计103.2 LED显示电路133.3 键盘控制电路143.4 LCD1602简介163.4.1 LCD1602 引脚功能163.4.2 LCD1602显示模块指令集173.5单片机电路设计完整架构20第4章 单片机的软件设计234.1 LCD1602时钟软件设计234.1.1 DS1302介绍234.1.2 时钟DS1302硬件连接254.2 LCD1602时钟软件程序(部分)25第5章 调试与功能说明285.1 硬件调试285.2 系统性能测试与功能说明285.3 系统时钟误差分析285.4 软件调试问题及解决28结束语30参考文献、资料索引31致谢32附录33最小系统电路PCB图33232串口电路PCB图34LED共阳数码管电路PCB图3535第1章 绪论1.1 单片机基础知识单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。MCS-51系列单片机主要包括8031、8051和8751等通用产品。DP-51S单片机仿真实验仪是由广州致远电子有限公司设计的DP系列单片机仿真实验仪之一,是一种功能强大的单片机应用技术学习、调试。1.2 单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:一、在智能仪器仪表的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。二、在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。三、在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。四、在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。五、单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商、金融、科研、教育、国防航空等领域都有着十分广泛的用途。1.3 单片机的发展趋势单片机现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:一、微型单片化现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。二、低功耗CMOS化MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。三、主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。所以80C51占据了半壁江山。而Microchip公司的PIC精简指令集合(RISC)也有着强劲的发展势头,中国台湾的HOLTEX公司近年的单片机产量与日俱增,与其底价质优的优势,占据一定的市场份额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补、相辅相成、共同发展的道路。九十年代以后,单片机在结构上采用双CPU或内部流水线,CPU位数有8位、16位、32位,时钟频率高达20MHZ,片内带有PWM输出、监视定时器WDT、可编程计数器阵列PCA、DMA传输、调制解调器等。芯片向高度集成化、低功耗方向的发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。这类单片机有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。第2章 硬件结构剖析2.1 80C51单片机的内部结构图2-1为80C51单片机功能结构框图80C51 芯片内部集成了 CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些不见连接在一起。80C51单片机内部包含以下一些功能部件:(1)一个8位CPU;(2)一个片内振荡器和时钟电路;(3)4KB ROM(80C51有4KB掩膜ROM,87C51有4KB EPROM,80C31片内有无ROM);(4)128B内RAM;(5)可寻址64KB的外ROM和外RAM控制电路;(6)两个16位定时/计数器;(7)21个特许功能寄存器;(8)4个8位并行I/O口,共32条可编程I/O端线;(9)一个可编程全双工串行口;8051CPU振荡器及时序 OSC程序存储器4KB ROM数据存储器256B64K总线扩展控制器可编程I/O可编程全双工串行口(10)5个中断源,可设置成2个优先级。外时钟源 外部事件计数 中断 控制 并 行 口 串行通信 图2-1 80C51单片机功能结构框图2.2 80C51单片机的引脚功能80C51单片机一般采用双列直插DIP封装,共40个引脚,图2-2为引脚排列图。图2-2b为逻辑符号图。40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 图2-2 80C51引脚图1.电源(1)Vcc芯片电源,接;(2)GND接地端。2.时钟XTAL1、XTAL2晶体振荡电路反相输入端和输出端。使用内部振荡电路时外接石英晶体。3.控制线控制线共有4根,其中3根是复用线。所谓复用线是指具有两种功能,正常使用时是一种功能,在某种条件下是另一种功能。(1)ALE/PROG地址锁存允许/片内EPROM编程脉冲。ALE功能:用来锁存P0口送出的低8位地址。80C51在并行扩展外存储器(包括并行扩展I/O口)时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。那么如何区分是低8位地址还是8位数据信号呢?当ALE信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是8位数据信号。在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号。需要指出的是,当CPU不执行访问外RAM指令(MOVX)时,ALE以时钟振荡频率1 / 6的固定频率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。ALE端可驱动8个LSTTL门电路。PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。(2)PSEN外ROM读选通信号。80C51读外ROM时,没个机器周期内PSEN两次有效输出。PSEN可作为外ROM芯片输出允许OE的选通信号。在读内ROM或读外RAM时,PSEN无效。PSEN可驱动8个LSTTL门电路。 (3)RST/Vpd复位/备用电源。正常工作时,RST(Reset)端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,80C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行指令。Vpd功能:在Vcc掉电情况下,该引脚可接上备用电源,由Vpd向片内供电,以保持片内RAM中的数据不丢失。(4)EA/Vpp 内外ROM选择/片内EPROM编程电源。EA功能:正常工作时,EA为内外ROM选择端。80C51单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外(80C31芯片无内ROM,全部在片外)。当EA保持高电平时,先访问内ROM,但当PC(程序计数器)值超过4KB(0FFFH)时,将自动转向执行外ROM中的程序。当EA保持低电平时,则只访问外ROM,不管芯片内有否内ROM。对80C31芯片,片内无ROM,因此EA必须接地。Vpp功能:片内有EPROM的芯片,在EPROM编程期间,此引脚用于施加编程电源Vpp。对4个控制引脚,应熟记起第一功能,了解其第二功能。严格来讲,80C51的控制线还应该包括P3口的第二功能。(5)I/O引脚80C51共有4个8位并行I/O端口,共32个引脚P0口8位双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时, P0口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时, P0口可用于分时传送低8位地址(地址总线)和8位数据信号(数据总线)。位结构如图2-3所示。P0口能驱动8个LSTTL门。VCC地址/数据控制锁存器P0.XDCPQQMUXV1V2P0.X引脚读锁存器写锁存器内部总线读引脚&1图2-3 P0口位结构P1口8位准双向I/O口(“准双向”是指该口内部有固定的上拉电阻)。位结构如图2-4所示。P1口能驱动为4个LSTTL门。VCC锁存器P1.XDCPQQP1.X引脚读锁存器写锁存器内部总线读引脚内部上拉电阻图 2-4 P1口位结构P2口8位准双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时, P2口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时, P2口可用于传送高8位地址(属地址总线) 。P2口能驱动4个LSTTL门。P2口的位结构如图2-5所示,引脚上拉电阻同P1口。在结构上,P2口比P1口多一个输出控制部分。锁存器P2.XDCPQQ读锁存器写锁存器内部总线读引脚VCCP2.X引脚内部上拉电阻1地址控制MUX图 2-5 P2口位结构P3口8位准双向I/O口。可作一般I/O口用,同时P3口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。P3口驱动能力为4个LSTTL门。 图 2-6 P3口位结构P3口第二功能如下:P3.0RXD:串行口输入端;P3.1TXD:串行口输出端;P3.2INT0:外部中断0请求输入端;P3.3INT1:外部中断1请求输入端P3.4T0:定时/计数器0外部信号输入端;P3.5T1:定时/计数器1外部信号输入端;P3.6WR:外RAM写选通信号输出端;P3.7RD:外RAM读选通信号输出端。上述4个I/O口,各有各的用途。 在不并行扩展外存储器(包括并行扩展I/O口)时, 4个I/O口都可作为双向I/O口用。在并行扩展外存储器(包括并行扩展I/O口)时, P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号。P3口根据需要常用于第二功能,真正可提供给用户使用的I/O口是P1口和一部分未用作第二功能的P3口端线。第3章 单片机的硬件设计3.1 最小系统设计图3-1 单片机最小系统的结构图单片机的最小系统是由电源、复位、晶振、/EA=1组成,下面介绍一下每一个组成部分。1.电源引脚Vcc40电源端GND20接地端工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。 2.外接晶体引脚图3-2 晶振连接的内部、外部方式图XTAL119XTAL218XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.复位RST9在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约为1K。复位操作不会对内部RAM有所影响。常用的复位电路如下图所示:图3-3 常用复位电路图4.输入输出引脚(1) P0端口P0.0-P0.7 P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1端口P1.0P1.7 P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收低8位地址信息。(3) P2端口P2.0P2.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) P3端口P3.0P3.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接控制信息。除此之外P3端口还用于一些专门功能,具体请看下表。表3-1P3端口引脚兼用功能表P3引脚兼用功能P3.0串行通讯输入(RXD)P3.1串行通讯输出(TXD)P3.2外部中断0( INT0)P3.3外部中断1(INT1)P3.4定时器0输入(T0)P3.5定时器1输入(T1)P3.6外部数据存储器写选通WRP3.7外部数据存储器写选通RD3.2 LED显示电路显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一,如下图所示。图3-4 LED显示器的符号图发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。图3-5 数码管的硬件连接示意图数码管使用条件:a、段及小数点上加限流电阻b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA峰值电流 100mA数码管使用注意事项说明:()数码管表面不要用手触摸,不要用手去弄引角;()焊接温度:度;焊接时间:()表面有保护膜的产品,可以在使用前撕下来。3.3 键盘控制电路行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。但是,在占用相同的IO端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多。行列式键盘的工作方式是先用列线发送扫描字,然后读取行线的状态,查看是否有按键按下。键盘部分提供一种扫描的工作方式,可以和具有64个按键的矩阵键盘相连接,能对键盘不断扫描、自动消抖、自动识别按下的键,并给出编码,能对双键或n个键同时按下的情况实行保护。在显示部分,它可以为发光二极管、荧光管及其他显示器提供按扫描方式工作的显示接口,而且为显示器提供多路复用信号,可以显示多达16位的字符或数字。键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的,其方法是将列线的所有IO线均置成低电平,然后将行线电平状态读入累加器A中,如果有键按下,总会有一根行线被拉至低电平,从而使行输入不全为1。键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断,其方法是依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的键不在此列,如果不全为1,则所按下的键必在此列,而且是在与0电平线相交的交点上的那个键。单片机键盘扫描法扫描法是在判定有键按下后逐列果行(或列)的状态出现非全1状态,如果(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。扫描法的特点是逐行(或逐列)扫描查询,这时相应行(或列)应有上拉电阻接高电平。行列式键盘扫描程序就是采用扫描法来确定哪个键按下的,图1中行线上拉电阻接5V,列线逐列扫描。逐行(或列)扫描查询法。确定矩阵式键盘上哪个键被按下时运用扫描法,又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,过程如下。判断键盘中有无键按下,将全部行线Y0Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置,在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平,在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为低,则该列线与置为低电平的行线交叉处的按钮就是闭合的按键。反转法。扫描法要逐列(行)扫描查询,当按下的键在最后行(列),要经过多次扫描才能获得键值键号。而反转法只要经过两个步骤就可获得键值。线反转法原理 硬件采用中断方式工作,用一个8位IO口构成44键盘。将D3D0设为列输入线,D7D4设为行输出线,并使IO输出信号D7D4为0000。若有键按下,与门的输出端变为低电平,向CPU申请中断,表示键盘中有键按下。与此同时,D3D0的数据输入到内存中的某一单元中,其中0位对应的是被按下键的列位置。将第一步中的传送方向反转过来,即将D7D4设为输入线,D3D0设为输出线。使IO口输出数据为N单元中的数(即D3D0为按下键的列位置),然后读入IO口数据,并送入内存N1单元中存放,该数据的D7D4位中0电平对应的位是按下键的行位置。最后,将N单元中的D3D0与N1单元中的D7D4拼接起来就是按下键的键值。单片机应用系统中,任何IO口或扩展IO口均可构成行列式键盘。典型的键盘接口有通用IO扩展口、串行LO扩展口和专用键盘芯片构成的行列式键盘。由于带有行列式键盘的应用系统中通常都有显示器,为节省IO口线,往往把显示器电路与行列式键盘做在一个接口电路中。键按下前沿抖动后沿抖动闭合稳定图3-6 按键抖动信号波形3.4 LCD1602简介3.4.1 LCD1602 引脚功能LCD1602引脚如图3-7所示:图3-7 LCD1602管脚功能图引脚的功能如表3-2所示:表3-2 LCD1602管脚功能表3.4.2 LCD1602显示模块指令集(1)清屏功能:清DDROM值和 AC值。(2)归位功能:光标复位,光标返回到地址 00H。(3)输入方式设置功能:设置光标、画面移动方式。 其中:I/D=1:数据读写操作后,AC自加一; I/D=0:数据读写操作后,AC自减一; S=1:数据读写操作,画面平移; S=0:数据读写操作,画面不动。 (4)显示开关控制功能:设置显示、光标和闪烁开关。 其中:D表示显示开关,D=1 为开,D=0 为关; C表示光标开关,C=1为开,C=0为关; B表示闪烁开关,B=1为开,B=0为关。 (5)光标、画面位移功能:光标、画面移动。 其中:S/C=1画面移动一个字符位; S/C=0光标移动一个字符位; R/L=1:右移;R/L=0 左移。 (6)功能设置功能:工作方式设置(初始化指令)。 其中:DL=1,8位数据接口;DL=0,4 位数据接口; N=1,两行显示;N=0,一行显示;F=1,5*10点阵显示;F=0,5*7 点阵显示。(7)CGRAM地址设置功能:设置CGRAM地址,A5A0=03FH。(8)DDRAM地址设置功能:设置DDRAM地址。 其中: N=0,一行显示A6A0=04FH; N=1两行显示,首行A6A0=02FH,次行 A6A0=4067H。 (9)读 BF及 AC值功能:读忙 BF和地址计数器 AC的值。 其中:BF=1:忙,BF=0:准备好。此时 AC 值意义为最近一次地址设置(CGRAM或 DDRAM)定义。(10)写数据功能:根据最近设置的地址性质,数据写入CGRAM或 DDRAM中。(11)读数据功能:根据最近设置的地址性质,从 CGRAM或DDRAM数据读出。系统电路图 图3-8 单片机系统连接液晶电路原理图3.5单片机电路设计完整架构图3-9 单片机最小型总原理图图3-10 单片机232串口下载电路原理图图3-11 8位共阳数码管电路连接图第4章 单片机的软件设计4.1 LCD1602时钟软件设计4.1.1 DS1302介绍DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图4-1所示及内部结构如图4-2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。时钟芯片DS1302引脚排列,如图所示。图4-1 DS1302管脚示例图4-2 DS1302内部结构各引脚的功能为:Vcc1:主电源;Vcc2:备用电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。DS1302有下列几组寄存器:1、DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h),存放的数据格式为BCD码形式。如图4-3所示图4-3小时寄存器(85h、84h)的位7用定义DS1302时运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是,当为1时,表示PM。在24小时模式时,位5是第二个10小时位。秒寄存器(81j、80h)的位7定义为时钟暂停标志(CH)。当该位置位1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置位0时,时钟开始运行。控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。2 读写时序说明DS1302时SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS1302看控制字,如图4-4。图4-4控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。 位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据; 位5至位1(A4A0):指示操作单元的地址; 位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。4.1.2 时钟DS1302硬件连接图4-5 DS1302硬件连接图4.2 LCD1602时钟软件程序(部分)#include #include #include #define delayNOP() ; _nop_() ;_nop_() ;_nop_() ;_nop_() ; ;#define LCM_RW P2_6 /定义引脚#define LCM_RS P2_5#define LCM_E P2_7#define LCM_Data P0#define Busy 0x80 /用于检测LCM状态字中的Busy标识#define uchar unsigned charsbit T_CLK=P10;sbit T_IO =P11;sbit T_RST=P12;sbit ACC0=ACC0;sbit ACC7=ACC7;sbit LED=P14; /背光灯输出 (因本实验板无此功能 所以此项功能用P1.4LED灯作为指示)sbit system=P32; /模式 对应实验板K1按键sbit TimerUp=P33; /时间减 对应实验板K2按键sbit TimerDown=P34; /时间加 对应实验板K3按键sbit BEEP=P36; /蜂鸣器void Set(uchar,uchar); /根据选择调整相应项目void RTInputByte(uchar); /输入 1Byte */uchar RTOutputByte(void); /输出 1Byte */void W1302(uchar, uchar); /向DS1302写入一个字节uchar R1302(uchar); /从DS1302读出一个字节void Set1302(uchar * ); /设置时间 void KeySound(); /按键音void ClockSound(); /闹铃蜂鸣声uchar id,msec,model,LedTime,d;bit a,b; /闪烁标志位 uchar inittime7=0x50,0x59,0x23,0x24,0x07,0x05,0x09;/初始化后设置为:11年6月7日星期2 08点00分00秒void Out_LCM(void); /显示屏幕void model0(void); /显示输出void model1(void);void model2(void);void model3(void);void model4(void);void model5(void);void model6(void); void id_case1_key();/项目调整void Modset(); /模式键处理void WriteDataLCM(uchar WDLCM);void WriteCommandLCM(uchar WCLCM,BuysC);uchar ReadStatusLCM(void);void LCMInit(void);void OutputInformation(uchar X, uchar Y, uchar DData);void DisplayListChar(uchar X, uchar Y, uchar code *DData);void Delay5Ms(void);void Delay400Ms(void);void systemsetup(void); /进入系统设置uchar code systemp=System.setup; /字符串输出(系统设定)uchar code TIMER=Time; /字符串输出(时间)uchar code DATE=Date; /字符串输出(日期)uchar code alarmclock=Clock; /字符串输出(闹铃)uchar code lamp=Lamp; /字符串输出(背光灯)uchar code reset=Reset; /字符串输出(时间归零)uchar code exit=Exit; /字符串输出(退出)uchar code set=Set;/字符串输出(设置)uchar code sec=sec; /字符串输出(秒)uchar code ClockSet=ClockSet;/字符串输出(闹铃设置)uchar code ClockOn=ON; /字符串输出(ON)uchar code ClockOff=OFF; /字符串输出(OFF)void timesetup(void); /时间设置void datesetup(void); /日期设置void alarmclockset(void); /闹铃设置void lampsetup(void); /背光灯设置void timereset(void); /时间清零第5章 调试与功能说明单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。5.1 硬件调试拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。5.2 系统性能测试与功能说明走时:默认为走时状态,按24小时制分别显示“时时-分分-秒秒”,有2个“-”动态显示,时间会按实际时间以秒为最少单位变化。走时调整:按ksec对秒进行调整,按一下加一秒;按kmin对分进行调整,按一下加一分;按khour对时进行调整,按一下加一小时,从而达到快速设定时间的目的。5.3 系统时钟误差分析时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。结合时间概念和误差理论,可以定义电子钟的走时误差S=S1-S2,S1表示程序实际运行计算所得的秒;S2表示客观时间的标准秒。S0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之,S0表示秒单元数值的刷新超前,即走时误差为“快”。本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论