第一章绪论1.1MCS-51发展状况单片机于1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作的方方面面,几乎“无所不在,无所不为”单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,成为普林斯顿结构。
另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前采用程序存储器和数据存储器截然分开的结构为多。
本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。
不仅满足所需要求而且还有很多的功能可供开发,有着广泛的应用领域MCS-51系列单片机是美国Inter公司在1980年推出的高新能8位单片机,它包含51和52 两个子系列。
对于51子系列,主要有8031、8051、8751三种机型,它们的指令系统和芯片引脚完全兼容,仅片程序存储器有所不同,8031芯片不带ROM,8051芯片带4KB的ROM,8751芯片带4KB的EPROM。
对于52子系列,有8032、8052、8752 三种机型。
52子系列与51子系列大部分相同,不同之处在于:52子系列的片数据存储器曾至256B;8032芯片不带ROM,8052带8KB的ROM,8752芯片带8KB的EPROM;有3个16位定时器/计数器,6个中断源。
1.2 研究的主要容目前市面上的数字时钟种类繁多,有可爱型的,有带计算型的,有数码管显示的,有液晶显示的等等。
(1)本设计为巩固所学知识,对单片机的功用和软件编程进行更深入的学习。
(2)修改时间功能:a 要求键入“A”键,停止计时(显示时间不变)。
b 然后依次从键盘上输入小时十位、小时个位、分十位、分个位、秒十位、秒个位(键入数字时显示器上要同步显示出修改的时间值),秒个位一旦键入完毕则立即恢复计时。
(3)设定闹钟功能:要求按“B”键一次,显示以前设定的闹钟时间,如果再按“B”键一次则跳过闹钟时间的设定,恢复计时显示。
当闹钟时间到了,就响起闹铃。
(4)绘制电路原理图。
(5)绘制主要程序流程图。
1.3时钟工作原理设计中的电子时钟的定时计数是利用了单片机部的定时/计数器,通过对定时/计数器工作方式寄存器和控制寄存器的选取,对定时/计数器的初始值进行计算和编写,从而使其具有了简单的计时能力。
在设定了计时单元后,通过中断软件的编写,对计时单元进行无数次重复利用。
有计数器对中断次数进行计数和进位,再通过接口电路将其依次显示出来。
MCS-51 单片机有两个16位的定时计数器T0和T1,当工作在定时方式时,计数脉冲来自单片机部,振荡器信号12分频后做计数脉冲,美国机器周期的时间使计数器加一,由于计数脉冲的频率是固定的(即每个脉冲为1个机器周期的时间),故可通过设定计数初值来实现定时功能。
如果要实现定时100㎲,当晶振为6MHz时,每个机器周期为2㎲,让T0计50个数后溢出,产生中断告诉CPU定时,100㎲时间到。
本实验定时器每100㎲中断一次,在中断服务程序中,对中断次数进行计数,100㎲计数1000次就是1s然后再对秒计数得到分和小时值,并送入显示缓冲区,最后用LCD液晶示出来。
第二章设计要求与方案论证2.1 设计要求本设计为巩固所学知识,对单片机的功用和软件编程进行更深入的学习,对本次设计的电子时钟提出了以下要求。
(1)具有修改时间功能:a 要求键入“A”键,停止计时(显示时间不变)。
b 然后依次从键盘上输入小时十位、小时个位、分十位、分个位、秒十位、秒个位(键入数字时显示器上要同步显示出修改的时间值),秒个位一旦键入完毕则立即恢复计时。
(2)设定闹钟功能:要求按“B”键一次,显示以前设定的闹钟时间,如果再按“B”键一次则跳过闹钟时间的设定,恢复计时显示。
当闹钟时间到了,就响起闹铃。
(3)合理绘制电路原理图。
(4)绘制主要程序流程图。
(5)合理编辑程序。
2.2 方案论证设计的电子时钟是利用8051单片机部的晶振产生振荡,每秒频率为12MHZ,其精度稳定,不受外界温度和湿度的影响,但是会有如下问题出现:(1)外界复杂的电磁环境,会影响到单片机信号的输入、输出,而且单片机部运行的机械周期也会使电子时钟的精度受到影响。
方案:在电子时钟外壳装备较薄的金属薄片,屏蔽外部电磁干扰。
(2)由于芯片执行程序需要一定的时间,从而使定时计数产生误差。
定时计数再未进行初始化的时候,处于原始状态,不能进行定时和计数,所以需要对定时计数器里的初始值进行计算和调整,并且选定合适的工作方式。
方案:通过与日常生活中常用的时钟比较,找出产生误差的原因,计算误差的大小,通过对程序的调整和初始值得设定,减小误差,使之达到使用精度。
(3)需随时对时间进行调整,要求设置键盘,并对键盘输入的稳定性进行调整。
方案:采用列式键盘,按键数为4,编辑去抖动程序。
(4)要求对时间进行动态显示,精确到秒。
方案:采用LCD液晶显示器进行动态显示。
(5)接线复杂,易出现错接误接。
方案:采用电路板进行连接第三章总体方案确定与实现3.1 电子时钟电路设计框图图3.1-13.2 系统硬件该电路是由MCS8051单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路也由MCS8051单片机提供,减少芯片的使用,节约成本,它可以对年、月、日、周、日、时、分、秒进行计时,时间显示部份采用液晶LM016L(LCD),此次单片机数字时钟的设计采用MCS8051为主控制芯片,并由其定时器提供时钟,利用LCD进行时间按显示。
其电路原理图如下所示:图3.2-13.3软件方案进行应用软件设计时采用模块化程序设计方法,其优点是:(1)每个模块程序机构简单,任务明确,易于编写,调试和修改。
(2)程序可读性好,对程序的修改可局部进行,其他部分可保持不变,便于功能的扩充和版本升级。
(3)对于使用频繁的子程序可以建立子程序库,便于多模块调用。
(4)便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。
该程序可划分为7个模块:主程序,LCD显示模块,当前时间计时模块,输入闹钟模块,当前时间调整模块,音频报警模块,数据转坏模块。
第四章硬件设计4.1LCD显示模块在实际应用中,用户很少直接设计LCD显示器驱动接口,一般是直接使用专用的LCD显示驱动器和LCD显示模块。
其中,LCD显示模块LCM (Liquid Crystal Display Module)是把LCD显示器、背景光源、线路板和驱动集成电路等部件构成一个整体,作为一个独立的部件使用,具有功能较强、易于控制、接口简单等优点,在单片机系统中应用较多。
其部结构如图4.1-1所示。
LCD显示模块只留一个接口与外部通信。
显示模块通过这个接口接收显示命令和数据,并按指令和数据的要求进行显示。
外部电路通过这个接口读出显示模块的工作状态和显示数据。
LCD显示模块一般带有部显示RAM和字符发生器,只要输入ASCII码就可以进行显示。
LCD显示模块按功能显示可分为:LCD段式显示模块、LCD字符型显示模块、LCD图形显示块三类。
液晶显示器因其功耗低、重量轻而成为便携式应用中的主流显示技术。
这里所用的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。
液晶显示有点振式和字符式两种,在这里采用字符式液晶显示器1602来实现显示电路的功能。
该设计采用液晶显示装置即把时钟信号以及温度信号同时显示在液晶显示器上,不仅结构简单清新可见,而且省电也容易控制。
数据的传输采用P0口进行控制, 其引脚VSS接地,VEE接VCC,RS和RW、E是显示器的控制端分别由单片机的引脚P1.0、P1.1、P1.3进行控制。
而VDD是作为液晶显示器的灰度调节引脚,接一变阻器来改变其显示的清晰度。
图4.1-1 LM016L 液晶显示器图4.1-2LCD 显示电路由于1602液晶显示器是本身带有驱动模块的液晶屏,它只有并口线和一些控制线,与单片机的连接有两种不同的方法,直接访问方式和间接访问方式。
直接访问方式就是微处理器把液晶显示模块当作存储器或I/O 设备直接挂在总线上,模块8位数据总线与微处理器的数据总线相连,用读操作 或写操作 信号与地址信号共同产生控制信号。
4.2 CPU 8051 LCD 驱动器 LCD 显示器LCD 控制器 VSSVDDVEERSR/WED0-D78051是ROM型16位单片机,共有40个引脚。
含4K字节的ROM。
其主要组成如下:(1)面向控制的8位CPU和指令系统。
(2)4K字节的程序存储器(ROM或EPROM)。
(3)128字节的数据存储器。
(4)可编程的并行I/O口P0~P3,有32位双向输入/输出线。
(5)一个全双工串行口。
(6)两个16位定时器/计数器。
(7)五个中断源,两个优先级中断机构。
(8)一个片时钟振荡器和时钟电路。
(9)可寻址的64K字节的程序存储器和64K字节的外部数据存储器。
MCS-51 的片外三总线结构:(1)地址总线AB:地址总线的宽度为16位,因此外部存储器直接寻址为64K字节。
16位地址总线中,由P0口经地址锁存器提供低8位地址A0~A7:P2口直接提供高8位地址A8 ~A15。
(2)数据总线:数据总线宽度为8位,由P0口提供D0~D7。
(3)控制总线CB:由P3口的第二功能状态和4根独立控制线REST,/EA,ALE,和/PSEN组成。
其芯片结构如图4.2-2所示图4.2-24.3 引脚功能Vcc(40):电源电压 GND(20):接地P0口(32-39):P0口是一个8位双向I/O接口,也即地址/数据总线复用口。
作为输出口用时,每位吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用。
P1口(1-8):P1是一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”通过部的上拉电阻把端口拉到高电平时,此时可作输入口。
作为输入品使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
与AT89C51不同之处是,P1.0和P1.1还可以分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。