单片机课程设计报告电子时钟
- 格式:doc
- 大小:52.50 KB
- 文档页数:9
单片机课程设计报告电子时钟 该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。设计的电子时钟通过数码管显示,并能通过按键实现设置时刻和暂停、启动操纵等。 二、电子时钟设计思想: 用定时/计数器T0,工作于定时,采纳方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY(自己运算)。形成定时时刻为50ms。用片内RAM的7BH单元对50ms计数,计20次产生秒计数器78H单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。在处理过程中加上了按键判定程序,能对按键处理。 三、MCS-51单片机系统简介 单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的储备器、I\O接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行操纵。与单片机配套的有相应的复位电路、时钟电路以及扩展的储备器和I\O接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一样都依照系统的要求配置相应的键盘和显示器。配置键盘和显示器一样都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就能够进行处理了。在单片机应用系统在中配置的键盘能够是独立键盘,也可能是矩阵键盘。显示器能够是LED指示灯,也能够是LED数码管,也能够是LCD显示器,还能够使用CRT显示器。单片机应用系统中键盘一样用的比较多的是矩阵键盘,显示器用的比较多的是LED数码管还LCD显示器。 四、MCS-51单片机内部定时器\计数器、中断系统简介 定时器\计数器 1、MCS-51系列中51子系列有两个16位的可编程定时\计数器可:定时\计数器T0和定时\计数器T1。它由加法计数器、方式寄存器TMOD、操纵寄存器TCON等组成。方式寄存器用于设定定时计数器T0和T1的工作方式,操纵寄存器用于对定时计数器启动、停止进行操纵。 2、每个定时计数器既能够对系统时钟计数实现定时,也能够外部信号计数实现计数功能通过编程设定来实现。 3、每个定时计数器都有多种工作方式,其中T0有四种工作方式,T1有三种工作方式,T2有三种工作方式。通过编程可设定工作于某种方式。四种工作方式为:13位定时\计数器、16位定时\计数器、8位自动重置定时\计数器、两个8位定时\计数器(只有T0有) 4、每一个定时计数器定时计数时刻到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。 中断系统: 1、MCS-51单片机提供5个硬件中断源,2个外部中断源,2个定时计数器T0和T1的溢出中断TF0和TF1,1个串行口发送TI和接收RI中断。 2、MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的承诺和屏蔽是由内部的中断承诺寄存器IE的各位来操纵的。中断承诺寄存器IE的字节地址为A8H,能够进行位寻址。系统复位时,中断承诺寄存器IE的内容为00H,假如要开放某个中断源,则必须使IE中的总控置位和对应的中断承诺位置“1”。 3、MCS-51单片机有5个中断源,为了处理方便,每个中断源有两级操纵,高优先级和低优先级。通过由内部的中断优先级寄存器IP来设置,中断优先级寄存器IP的字节地址为B8H,能够进行位寻址。假如某位被置“1”,则对应的中断源被设为高优先级;假如某位被清零,则对应的中断源被设为低优先级。关于同级中断源,系统有默认的优先权顺序,从高到低优先权顺序为外部中断0、定时计数器T0中断、外部中断1、定时计数器T1中断、串行口中断。通过设置中断优先级寄存器IP能够改变系统默认的优先级顺序。 4、MCS-51单片机响应中断的条件为:中断源有要求且中断承诺。 五、键盘和LED数码管显示器简介 键盘是单片机应用系统中最常用的输入设备,在单片机应用系统中,操作人员一样差不多上通过键盘向单片机系统输入指令、地址和数据,实现简单的人机通信。键盘实际上是一组按键开关的集合,平常按键开关总是处于断开状态,当按下键时它才闭合。键盘的结构形式一样有两种:独立式键盘和矩阵式键盘。矩阵式键盘的工作方式有3种:查询工作方式、定时扫描工作方式和中断工作方式。 LED数码管显示器:在单片机应用系统中,经常用到LED数码管作为显示输出设备,LED数码管显示器尽管显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,差不多上能够满足单片机应用系统的需要,因此在单片机应用系统中经常用到。LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。在单片机应用系统中通常使用的是8段式LED数码管显示器,它有共阴极和共阳极两种。所谓译码方式是指由显示字符转换得到对应的字段码的方式。关于LED数码管显示器,通常的译码方式有两种:硬件译码方式和软件译码方式。LED数码管在显示时,通常有两种显示方式:静态显示方式和动态显示方式。在使用时能够把它们组合起来。在实际应用时,假如数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,则通常用软件译码动态显示。 六、差不多原理 软时钟是利用单片机内部的定时器\计数器来实现的,它的处理过程如下:第一设定单片机内部的一个定时器\计数器工作于定时方式,对机器周期计数形成基准时刻,然后用另一个定时器\计数器或软件计数的方法对基准时刻计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。然后通过数码管把它们的内容在相应位置显示出来即可。 数码管显示能够采纳静态显示方法或动态显示方法。静态显示方法需要数据锁存器等硬件,接口复杂,时钟显示一样用6个或8个数码管。由于系统没有其他的复杂的任务处理,而且显示的时钟信息随时都可能变化,一样采纳动态显示方式。动态显示方法线路相对简单,但需动态扫描,扫描频率要大于人眼视觉暂留频率,信息看起来才稳固。译码方式可分为软件译码和硬件译码,软件译码通过译码程序查得显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采纳软件译码。 在具体处理时,定时器计数器采纳中断方式工作,对时钟的形成在中断服务程序中实现。在主程序中只需对定时器计数器初始化、调用显示子程序和操纵子程序。另外,为了使用方便,设计了简单的按键,能够通过按键实现时、分的调整,如此在主程序中就加入了键盘设置子程序。 七、系统硬件电路的设计 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435
P0.5/AD534
P0.6/AD633
P0.7/AD732
P2.7/A1528P2.0/A821P2.1/A922
P2.2/A1023
P2.3/A1124
P2.4/A1225
P2.5/A1326
P2.6/A1427
P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11
P3.2/INT012
P3.3/INT113
P3.4/T014
P3.7/RD17P3.6/WR16P3.5/T115
U1
80C51R35.1kR45.1kR55.1k
VCC
K2K1K0
GNDX1CRYSTAL
C247uFC3
47uF
K0键为模式选择键,按第一次暂停,设小时;按第二次暂停,设分,按第三次重新开始走动。K1为加1键,K2为减1健。
八、系统软件程序的设计 电子时钟的软件系统由主程序和子程序组成,主程序程序包含初始化参数设置、按键处理、数码管显示模块等, 1.主程序 主程序执行流程如图11.2,主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。 2.数码管显示模块 本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。采纳软件译码动态显示。 3.定时器/计数器T0中断服务程序 定时器/计数器T0用于时刻计时。选择方式1,重复定时,定时时刻设为50ms,定时时刻到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时刻计满。在对各单元计数的同时,把它们的值放到储备单元的指定位置。定时器/计数器T0中断服务程序流程图如图11.3。
图11.2 主程序流程图 图11.3 定时器/计数器T0中断服务程序流程图 4.按键处理模块 按键处理设置为:如没有按键,则时钟正常走时。当按下K0按键时,进入调分状态,时钟停止走动;按K1可K2按键可进行加1或减1操作;连续按K0键可分别进行分和小时的调整;最后按K0键将退出调整状态,时钟开始计时运行。 5.汇编语言源程序清单 ;采纳8位LED软件译码动态显示程序
开始 现场爱护,重置初值 启动下一个50ms
50ms 计数器加1
秒单元加1,50ms计数器清0,秒写入秒个位和秒十位
50ms 计数器=20?
否 是 分单元加1,秒单元清0,分写入分个位和分十位
秒单元=60?
时单元加1,分单元清0,时写入时个位和时十位
分单元=60?
时单元清0 时单元=24? 中断返回
否 否 否
是
是 是
开始 显示单元清零 T0、T1设为16位计数模式 承诺T0中断 调用显示子程序
进入功能程序 按下键否? 否 是