《单片机课程设计报告--电子时钟(2021整理).pdf》由会员分享,可在线阅读,更多相关《单片机课程设计报告--电子时钟(2021整理).pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本文为网上收集整理,如需要该文档得朋友,欢迎下载使用一、设计内容一、设计内容该课程设计是利用 MCS-51 单片机内部的定时计数器、中断系统、以及行列键盘和LED 显示器等部件,设计一个单片机电子时钟。设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。二、电子时钟设计思想:二、电子时钟设计思想:用定时计数器 T0,工作于定时,采用方式1,对 12MHZ 的系统时钟进行定时计数,初值设为 XXYY自己计算。形成定时时间为 50ms。用片内 RAM 的 7BH 单元对 50ms计数,计 20 次产生秒计数器 78H 单元加 1,秒计数器加到 60 那么分计数器 79H 单元
2、加 1,分计数器加到 60 那么时计数器 7AH 单元加 1,时计数器加到 24 那么时计数器清 0。然后把秒、分、时计数器分成十位和个位放到8 个数码管的显示缓冲区,通过数码管显示出来。显示格式为小时十位、小时个位-分十位、分个位-秒十位、秒个位。在处理过程中加上了按键判断程序,能对按键处理。三、三、MCS-51MCS-51 单片机系统简介单片机系统简介单片机应用系统由硬件系统和软件系统两局部组成。硬件系统是指单片机以及扩展的存储器、IO 接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出
3、进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和IO 接口,使单片机应用系统能够运行。在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个 LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。显示器可以是 LED 指示灯,也可以是 LED 数码管,也可以是 LCD 显示器,还可以
4、使用 CRT 显示器。单片机应用系统中键盘一般用的比拟多的是矩阵键盘,显示器用的比拟多的是 LED 数码管还 LCD 显示器。四、四、MCS-51MCS-51 单片机内部定时器单片机内部定时器 计数器、中断系统简介计数器、中断系统简介定时器定时器 计数器计数器1、MCS-51 系列中 51 子系列有两个 16 位的可编程定时计数器可:定时计数器 T0 和定时计数器 T1。它由加法计数器、方式存放器 TMOD、控制存放器 TCON 等组成。方式存放器用于设定定时计数器 T0 和 T1 的工作方式,控制存放器用于对定时计数器启动、停止进行控制。2、每个定时计数器既可以对系统时钟计数实现定时,也可以
5、外部信号计数实现计数功能通过编程设定来实现。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-
6、51 单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用内部的中断允许存放器 IE 的各位来控制的。中断允许存放器 IE 的字节地址为 A8H,可以进行位寻址。系统复位时,中断允许存放器 IE 的内容为 00H,如果要开放某个中断源,那么必须使 IE 中的总控置位和对应的中断允许位置“1”。3、MCS-51 单片机有 5 个中断源,为了处理方便,每个中断源有两级控制,高优先级和低优先级。通过由内部的中断优先级存放器IP 来设置,中断优先级存放器IP 的字节地址为B8H,可以进行位寻址。如果某位被置“1”
7、,那么对应的中断源被设为高优先级;如果某位被清零,那么对应的中断源被设为低优先级。对于同级中断源,系统有默认的优先权顺序,从高到低优先权顺序为外部中断0、定时计数器 T0 中断、外部中断 1、定时计数器 T1 中断、串行口中断。通过设置中断优先级存放器IP 能够改变系统默认的优先级顺序。4、MCS-51 单片机响应中断的条件为:中断源有请求且中断允许。五、键盘和五、键盘和 LEDLED 数码管显示器简介数码管显示器简介键盘键盘是单片机应用系统中最常用的输入设备,在单片机应用系统中,操作人员一般都是通过键盘向单片机系统输入指令、地址和数据,实现简单的人机通信。键盘实际上是一组按键开关的集合,平时
8、按键开关总是处于断开状态,当按下键时它才闭合。键盘的结构形式一般有两种:独立式键盘和矩阵式键盘。矩阵式键盘的工作方式有3 种:查询工作方式、定时扫描工作方式和中断工作方式。LEDLED 数码管显示器数码管显示器:在单片机应用系统中,经常用到LED 数码管作为显示输出设备,LED 数码管显示器虽然显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,根本上能够满足单片机应用系统的需要,所以在单片机应用系统中经常用到。LED 数码管显示器是由发光二极管按一定的结构组合起来的显示器件。在单片机应用系统中通常使用的是 8 段式 LED 数码管显示器,它有共阴极和共阳极两种
9、。所谓译码方式是指由显示字符转换得到对应的字段码的方式。对于LED 数码管显示器,通常的译码方式有两种:硬件译码方式和软件译码方式。LED 数码管在显示时,通常有两种显示方式:静态显示方式和动态显示方式。在使用时可以把它们组合起来。在实际应用时,如果数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,那么通常用软件译码动态显示。六、根本原理六、根本原理软时钟是利用单片机内部的定时器计数器来实现的,它的处理过程如下:首先设定单片机内部的一个定时器计数器工作于定时方式,对机器周期计数形成基准时间,然后用另一个定时器计数器或软件计数的方法对基准时间计数形成秒,秒计 60 次形成分,分计 60
10、次形成小时,小时计 24 次那么计满一天。然后通过数码管把它们的内容在相应位置显示出来即可。数码管显示可以采用静态显示方法或动态显示方法。静态显示方法需要数据锁存器等硬件,接口复杂,时钟显示一般用 6 个或 8 个数码管。由于系统没有其他的复杂的任务处理,而且显示的时钟信息随时都可能变化,一般采用动态显示方式。动态显示方法线路相对简单,但需动态扫描,扫描频率要大于人眼视觉暂留频率,信息看起来才稳定。译码方式可分为软件译码和硬件译码,软件译码通过译码程序查得显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。在具体处理时,定时器计数器采用中断方式工作,对时钟的形
11、成在中断效劳程序中实现。在主程序中只需对定时器计数器初始化、调用显示子程序和控制子程序。另外,为了使用方便,设计了简单的按键,可以通过按键实现时、分的调整,这样在主程序中就参加了键盘设置子程序。精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用七、系统硬件电路的设计七、系统硬件电路的设计C247uFX1CRYSTAL19C3GNDU1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6
12、/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161747uF18XTAL29RSTVCC293031PSENALEEAK0R5R4R35.1k 5.1k 5.1k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51K1K2K0键为模式选择键,按第一次暂停,设小时;按第二次暂停,设分,按第三次重新开始走动。K1为加1键,K2为减1健。八、系统软件程序的设计八、系统软件程
13、序的设计电子时钟的软件系统由主程序和子程序组成,主程序程序包含初始化参数设置、按键处理、数码管显示模块等,1 1主程序主程序主程序执行流程如图 11.2,主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,那么转入相应的功能程序。2 2数码管显示模块数码管显示模块本系统共用 8 个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用横线、时个位和时十位。采用软件译码动态显示。3 3定时器定时器/计数器计数器 T0T0 中断效劳程序中断效劳程序定时器/计数器 T0 用
14、于时间计时。选择方式 1,重复定时,定时时间设为 50ms,定时时间到那么中断,在中断效劳程序中用一个计数器对50ms 计数,计 20 次那么对秒单元加 1,秒单元加到 60 那么对分单元加 1,同时秒单元清 0;分单元加到 60 那么对时单元加 1,同时分单元清 0;时单元加到 24 那么对时单元清 0,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。定时器/计数器 T0 中断效劳程序流程图如图11.3。开始现场保护,重置初值启动下一个 50ms50ms 计数器加 1否50ms 计数器=20?是秒单元加 1,50ms 计数器清 0,秒写入秒个位和秒十位否开始秒单元=
15、60?是分单元加 1,秒单元清 0,分写显示单元清零否T0、T1 设为 16 位计数模式允许 T0 中断调用显示子程序否按下键否?是进入功能程序否入分个位和分十位分单元=60?是时单元加 1,分单元清 0,时写入时个位和时十位时单元=24?时单元清 0是中断返回图11.2主程序流程图图11.3定时器/计数器T0中断效劳程序流程图4 4按键处理模块按键处理模块按键处理设置为:如没有按键,那么时钟正常走时。当按下 K0 按键时,进入调分状态,时钟停止走动;按 K1 可 K2 按键可进行加 1 或减 1 操作;继续按 K0 键可分别进行分和小时的调整;最后按 K0 键将退出调整状态,时钟开始计时运行
16、。5 5汇编语言源程序清单汇编语言源程序清单;采用 8 位 LED 软件译码动态显示程序;使用 AT89C51单片机,12MHZ 晶振,P0 输出字段码,P2 口输出位选码,用共阳精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用;LED 数码管,为调时位选择按键,为加1 键,为减 1 键。;片内 RAM 的 70H 到 77H 单元为 LED 数码管的显示缓冲区;78H,79H,7AH 分别为秒、分、小时计数单元;7BH 为 50ms 计数器,7CH 为调时按键计数器ORG0000HLJMPSTARTORG000BH;定时器/计数器 T0 中断程序入口LJMPINT
17、T0;主程序START:MOVR0,#70HMOVR7,#0CHINIT:MOVR0,#00HINCR0DJNZR7,INITMOV72H,#10MOV75H,#10MOVTMOD,#01HMOVTL0,#0B0HMOVTH0,#03CHSETBEASETBET0SETBTR0START1:LCALLSCANLCALLKEYSCANSJMPSTART1;延时 1MS 子程序DL1MS:MOVR6,#14HDL1:MOVR7,#19HDL2:DJNZR7,DL2DJNZR6,DL1RET;延时 20MS 子程序DL20MS:ACALLSCANACALLSCANACALLSCANRET;数码管显示
18、程序SCAN:MOVA,78H;时间存入显示缓冲区相应位置MOVB,#0AHDIVABMOV71H,AMOV70H,B精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用;定时器/计数器 T0 中断效劳程序INTT0:PUSHACCPUSHPSWCLRET0CLRTR0MOVTL0,#0B0HMOVTH0,#03CHSETBTR0INC7BHMOVA,7BHCJNEA,#14H,OUTT0MOV7BH,#00MOVA,79HMOVB,#0AHDIVABMOV74H,AMOV73H,BMOVA,7AHMOVB,#0AHDIVABMOV77H,AMOV76H,BMOVR1,
19、#70H;循环扫描显示MOVR5,#80HMOVR3,#08HSCAN1:MOVA,R5MOVP2,AMOVA,R1MOVDPTR,#TABMOVCA,A+DPTRMOVP0,AMOVA,R5LCALLDL1MSINCR1MOVA,R5RRAMOVR5,ADJNZR3,SCAN1MOVP2,#00HMOVP0,#0FFHRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH;“09”,“-的共阳极字段码精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用INC78HMOVA,78HCJNEA,#3CH,OUT
20、T0MOV78H,#00INC79HMOVA,79HCJNEA,#3CH,OUTT0MOV79H,#00INC7AHMOVA,7AHCJNEA,#18H,OUTT0MOV7AH,#00OUTT0:SETBET0POPPSWPOPACCRETI;按键处理程序KEYSCAN:CLREAJNBP1.0,KEYSCAN0JNBP1.1,KEYSCAN1JNBP1.2,KEYSCAN2KEYOUT:SETBEARETKEYSCAN0:LCALLDL20MSJBP1.0,KEYOUTWAIT0:JNBP1.0,WAIT0INC7CHMOVA,7CHCLRET0CLRTR0CJNEA,#03H,KEYOUT
21、MOV7CH,#00SETBET0SETBTR0SJMPKEYOUTKEYSCAN1:LCALLDL20MSJBP1.1,KEYOUTWAIT1:JNBP1.1,WAIT1MOVA,7CHCJNEA,#02H,KSCAN11INC79HMOVA,79HCJNEA,#3CH,KEYOUT精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用MOV79H,#00SJMPKEYOUTKSCAN11:INC7AHMOVA,7AHCJNEA,#18H,KEYOUTMOV7AH,#00SJMPKEYOUTKEYSCAN2:LCALLDL20MSJBP1.2,KEYOUTWAIT2:J
22、NBP1.2,WAIT2MOVA,7CHCJNEA,#02H,KSCAN21DEC79HMOVA,79HCJNEA,#0FFH,KEYOUTMOV79H,#3BHSJMPKEYOUTKSCAN21:DEC7AHMOVA,7AHCJNEA,#0FFH,KEYOUTMOV7AH,#17HSJMPKEYOUTEND九、设计过程九、设计过程1、在 PROTEUS 中设计硬件PROTEUS 软件使用过程如下:1选择元器件2放置元器件3连线4添加程序5运行仿真元器件清单如下:单片机:80C52按键:BUTTON电阻:RES电容:CAP晶振:CRYSTALLED 数码管:7SEG-MPX8-CA-BLUEC
23、A:共阳,CC:共阴地:GRAND电源:POWER2、在 KEIL51 中编写程序,编译、连接形成HEX 文件。3、在 PROTEUS 中把 HEX 文件加载到单片机芯片上。精品文档,word 文档本文为网上收集整理,如需要该文档得朋友,欢迎下载使用4、运行仿真看结果。十、总结十、总结通过这次的课程设计,我了解了 KeilC51 集成环境和 PROTEUS 仿真软件的使用,用此软件练习电子时钟的设计,不仅能够掌握此软件的使用方法,而且复习了原来的汇编语言,对电子时钟的原理和电子时钟的汇编程序有了更进一步的理解。仿真实现了把抽象的东西具体化,把理论和实际结合起来,更利于对单片机程序的理解掌握。并且,在这次的课程设计中,我知道了,要自己熟练地掌握一个软件,不能光看老师的演示过程,得自己去学习这个软件,明白每一个步骤确实切含义,自己逐步的亲手去进行演示,这样才能变成自己的知识来熟练应用。班级:班级:07 电本 1 班姓名:姓名:王少阳学号:学号:200706021048精品文档,word 文档