《2022年单片机原理及应用——电子时钟.docx》由会员分享,可在线阅读,更多相关《2022年单片机原理及应用——电子时钟.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源单片机原理及应用 电子时钟课程设计报告学院:信息工程学院专业班级:通信工程10-1 班姓名:牛爱 刘欢 焦航指导老师:葛振目 录1. 设计题目11.1 课题讨论背景1欢迎下载精品学习资源1.2 课题主要内容12. 设计任务13. 设计思路23.1 系统框图设计23.2 系统电路原理设计34. 硬件原理图和连接图44.1 总原理图44.2AT89C51.44.3 复位电路74.4 按键电路74.5 LED 显示电路85. 程序流程图95.1 主程序95.2 数码管显示95.3 定时器 /计数器 T0 中断服务程序95.4 按键处理程序116. 程序清单127. 试验总结178. 设计
2、心得189. 参考资料19欢迎下载精品学习资源1. 设计题目1.1 课题讨论背景电子时钟有着很长地历史,在 1957 年, Ventura 创造了世界上地第一块电子表后,他就奠定了电子时钟地基础,电子时钟开头快速地进展起来 .现代地电子时钟是基于单片机地一种计时工具,采纳延时程序产生肯定地时间中断,用于一秒地定义,通过计数方式进行满六十秒为一分钟进一,满六非常为一小时进一,满二十四小时清零,从而达到计时地功能.基于 51 单片地电子时钟,外围电路简洁易于实现,性价比高,是实现电子时钟地不错挑选 .1.2 课题主要内容本次课程设计基于单片机内部资源设计出地一款性价比高地电子时钟系统,主要涉及到以
3、下几个讨论方向:(1) 熟识 MCS-51 单片机内部定时器地工作方式;(2) 把握单片机内部中断系统地工作模式;(3) 明白 MCS-51 单片机外部电路地一般设计方法;(4) 熟识汇编语言地编写规章;(5) 把握单片机内部ram 地址安排方法;(6) 把握特别功能寄存器地用法;(7) 熟识 Proteus ISIS 及 Keil uVision2软件地使用 .2. 设计任务我们采纳应用广泛地AT89C51 作为时钟掌握芯片,利用单片机内部地定时/计数器 T0实现软时钟地目地 .在六位数码显示器上显示时,分,秒 .选用定时器每隔 0.125 秒产生一次中断,在内存中设定四个单元,存放0.12
4、5 秒,秒,分,时,每隔0.125 秒对这些单元中地内容进行必要地修改.存放时分秒及0.125 秒地数值地四个单元选用片内RAM :( 50H ) 0.125 秒地个数( 51H ) 秒( BCD 码)( 52H ) 分( BCD 码)( 53H ) 时( BCD 码)晶振频率为6MHz ,使用方式1 定时 0.125 秒,就定时器地初始值为0BDCH. 可每中断欢迎下载精品学习资源8 次更新一次时间显示,每隔两次中断(0.25 秒)进行一次键盘检查.此外仍要实现对时间地调整功能,89C51 地 P1.0、P1.1、P1.2 外接三个独立按键,当有键按下时,分别使秒单元清零,时,分内容加一.3
5、. 设计思路3.1 系统框图设计依据电子时钟能够实现地功能,采纳单片机内部资源,设计出了系统原理框图,如图3-1 所示:图 3-1在单片机内部构建三个模块:掌握模块、译码模块、定时模块,用以实现自动计数、译码显示功能 .单片机外部构建三个电路:复位电路、外部按钮电路、显示电路,用以实现对单片机内部计数掌握以及译码输出地正确显示.该电子时钟是将秒、分、时显示在人地视觉器官面前地一种计时装置.故将计时周期设置为24 小时,当显示满刻度是23 时 59 分 59 秒时,数码管显示为0.为了确保时间正常校对,在系统中设有校对按钮,用以实现对数码管显示地正确调整 .3.2 系统电路原理设计在本次地设计中
6、对6MHZ地系统时钟进行定时计数,初值设为0BDCH. 形成定时时间为 0.125s.用片内 RAM 地 50H 单元对 0.125s 计数,计 8 次 1 秒钟到,然后对秒计数器51H欢迎下载精品学习资源单元加 1,秒计数器加到 60 后就向分进位,就分计数器 52H 单元加 1 而秒计数器 51H 单元清零;分计数器加到 60 后又向时进位,就时计数器 53H 单元加 1 而分计数器 52H 单元清零;时计数器加到 24 就时计数器清零 .然后把秒、分、时计数器分成十位和个位放到 6 个数码管地显示缓冲区,通过数码管显示出来 .显示格式为小时十位、小时个位、分十位、分个位、秒十位、秒个位
7、.4. 硬件原理图和连接图4.1 总原理图依据电路原理框图设计出电路原理图如图4-1 所示,由6MHz 地晶振给单片机供应固定地时钟频率,通过k0、k1、k2 可以对显示电路时间进行位设定.图 4-14.2AT89C51AT89C51 是一种带 4K 字节 FLASH 储备器地低电压、高性能CMOS 地 8 位微处理器, 俗称单片机 .AT89C51 是一种带 2K 字节闪存可编程可擦除只读储备器地单片机.单片机地可擦除只读储备器可以反复擦除1000 次.该器件采纳 ATMEL 高密度非易失储备器制造技术制造,与工业标准地MCS-51 指令集和输出管脚相兼容.由于将多功能 8 位 CPU 和闪
8、耀储备器组合在单个芯片中, ATMEL 地 AT89C51 是一种高效微掌握器 .如图 4-2 所示:欢迎下载精品学习资源图 4-2由于电路原理中只用到单片机地 p0、p1、p2 口,所示下面对这三个端口进行具体介绍 . 1)、 P0 口: P00 P07 统称为 P0 口,在不接片外储备器与不扩展 I/O 接口时,作为准双向输入 /输出接口 .在接有片外储备器或扩展 I/O 接口时, P0 口分时复用为低 8 位地址总线和双向数据总线 .P0 口是一个三态双向口,由一个输出锁存器、两个三态缓冲器、输出驱动电路和输出掌握电路组成 .在输入数据时,应人为地先向 P0 口写 “1,”定义为高阻输入
9、 .P0 能够用于外部程序数据储备器,它可以被定义为数据 /地址地低八位 .在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部必需被拉高 .2) 、 P1 口: P10 P17 统称为 P1 口,可作为准双向I/O 接口使用 .P1 口是一个内部供应上拉电阻地 8 位双向 I/O 口, P1 口缓冲器能接收输出4LSTTL门电流 .P1 口管脚写入 “1后”, 被内部上拉为高,可用作输入,P1 口被外部下拉为低电平常,将输出电流,这是由于内部上拉地缘故 .3) 、 P2 口: P20 P27 口统称为P2 口,一般可以作为准双向I/
10、O 接口使用,在接有片外欢迎下载精品学习资源储备器或扩展 I/O 接口且寻址范畴超过256 字节时, P2 口用作高 8 位地址总线 .P2 口为一个内部上拉电阻地8 位双向 I/O 口, P2 口缓冲器可接收,输出4 个 TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时, P2 口地管脚被外部拉低,将输出电流 .这是由于内部上拉地缘故.P2 口当用于外部程序储备器或16 位地址外部数据储备器进行存取时,P2 口输出地址地高八位 . 在给出地址 “1时”,它利用内部上拉优势,当对外部八位地址数据储备器进行读写时,P2 口输出其特别功能寄存器地内容.
11、P2 口在 FLASH 编程和校验时接收高八位地址信号和掌握信号.4.3 复位电路运算机在启动运行时都需要复位,复位时使中心处理器CPU 和内部其他部件处于一个确定地初始状态,从这个状态开头工作. AT89C51 单片机有一个复位引脚RST,高电平有效.在时钟电路工作以后,当外部电路使得RST 端显现两个机器周期(24 个时钟周期)以上地高电平,系统内部复位.复位有两种方式:上电复位和按钮复位.在此次地设计中,我采纳按键复位,如图4-3 所示:图 4-3只要 RST 保持高电平, AT89C51 单片机将循环复位 .复位期间, ALE 、PSEN 输出高电平.RST 从高电平变为低电平后,PC
12、 指针变为0000H ,使单片机从程序储备器地址为0000H 地单元开头执行程序 .当单片机执行程序出错或进入死循环时,可按复位按钮重新启动.4.4 按键电路独立式键盘是各按键相互独立,每个按键各接一根I/O 接口线,每根I/O 接口线地按键是不会影响其他地I/O 接口线 .在本次设计中,按键为K0 、K1 、K2 ,他们分别与单片机P1.0、 P1.1、P1.2 接口线相接 .通过按键掌握显示器地显示.图 4-4 所示:欢迎下载精品学习资源图 4-44.5 LED 显示电路在本次地设计中,采纳地8 位地数码管显示器.数码管假如依据段数分可为七段数码管和八段数码管,八段数码管比七段数码管多一个
13、发光二极管单元,也就是多了一个小数点地显示;假如按能够显示多少个“8”分类地话,也可以可分为1 位、 2 位、 4 位等数码管 . 假如依据发光二极管单元地连接方式又可以分为共阳极数码管和共阴极数码管.共阳极地数码管是将全部发光二极管地阳极接到一起后就形成公共阳极(COM )地数码管,共阳极数码管在应用时要将公共极(COM )接到 +5V ,当某一字段发光二极管地阴极为低电平常,相应字段就点亮,当某一字段地阴极为高电平常,相应字段就不亮.共阴极数码管是将全部发光二极管地阴极接到一起形成公共阴极(COM )地数码管,共阴极数码管在应用时应将公共极( COM )接到地线GND上,当某一字段发光二极
14、管地阳极为高电平常,相应字段就 点亮,当某一字段地阳极为低电平常,相应字段就不亮.如图 4-5 所示:图 4-5欢迎下载精品学习资源5. 程序流程图5.1 主程序先对显示单元和定时器/ 计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下时,就转入相应地功能程序.5.2 数码管显示本设计有 8 个数码管,从右到左为妙、分、时.在本系统中数码管显示采纳软件译码动态显示 .在储备器中第一建立一张显示信息地字段码表,显示时,先从显示缓冲区中取出显示地信息,然后通过查表程序在字段表中查出所显示地信息地断码,从P0 端口输出,同时在P2 端口进行数码管显示 .5.3 定时器 /计数器 T
15、0 中断服务程序T0 用于计时,选中方式一,重复定时,定时时间设为0.125s,定时时间到就中断,在 中断服务程序中用一个计数器对0.125s 计数,计8 次就对秒单元加一.秒单元加到 60 就对分单元加一,同时秒单元清0;分单元加到 60 就对时单元加一,同时分单元清0;时单元加到 24 就对时单元清 0,标志一天时间计满 .在对各单元计数地同时,把他们地值放到储备器单元地指定位置 .流程图如下:欢迎下载精品学习资源开头设置初始值,启动下一个0.125s0.125s 计数器加一NO125ms 计数器 =8 ?开头秒单元加 1, 125ms 计数器清0T0 为方式 1NO秒单元 =60.设中断
16、次数为8,清计时单元分单元加 1,秒单元清 0答应 T0 中NO分单元 =60?调用显示子程序时单元加 1,分单元清 0是按下键否NO时单元 =24?进入功能程序时单元清 0中断返回主程序流程图T0 中断服务程序5.4 按键处理程序按键设置为:假如没有按键,就时钟正常走时.当按下 K0 键时,时钟复位,从零开头计数;按 K1 键时,秒清零;按K1 键时,分清零,再按时实现加一功能;按K2 键时,时清零,再按时实现加一功能.6. 程序清单ORG0000H欢迎下载精品学习资源LJMPTIMORG000BH;中断服务程序入口T0LJMPLOOP2ORG0030H;主程序入口TIM:MOVSP, #2
17、FHMOVTMOD, #01H;设置 T0 定时为方 1 MOVIE, #0SETB ET0SETB EA;打开 T0 中断MOVTH0, #0BH;定时 0.125s MOVTL0, #0DCHSETB TR0;启动 T0MOV50H, #0;各时间储备单元清零MOV51H, #0MOV52H, #0MOV53H, #0CLRPSW.5;清除键盘调整标志位LOOP1:CALL DISP2;调用显示子程序JBCTF0, LOOP2JMPLOOP1;主程序循环;LOOP2:MOVTL0, #0DCH MOVTH0, #0BH INC50H欢迎下载精品学习资源MOVA, 50HCJNEA, #02
18、H, EQ04 SJMPJIANEQ04:CJNEA, #04H, EQ06 SJMPJIANEQ06:CJNEA, #06H, EQ08 SJMPJIANEQ08:CJNEA, #08H, _END_T0 MOV50H, #0MOVA, 51H;秒计数ADDA, #1 DAAMOV51H, ACJNEA, #60H, JIAN MOV51H, #0ADDF:;分计数MOVA, 52H ADDA, #1 DAAMOV52H, ACJNE A, #60H, JIAN MOV52H, #0JBPSW.5, _END_T0;PSW.5 为 1,是按键调整,时不变欢迎下载精品学习资源ADDH:;时计数
19、MOVA, 53H ADDA, #1 DAAMOV53H, ACJNE A, #24H, JIAN MOV53H, #0JBPSW.5, _END_T0JIAN:JBPSW.5, _END_T0 MOVP1, #0FFHMOVA, P1;读取键盘状态CPLAANLA, #00000111BJZ_END_T0;为 0 就无键按下SETB PSW.5JBACC.0, CLRS;为 1 就是 P3.0 有键按下JBACC.1, ADDF JBACC.2, ADDHCLRS:MOV50H, #0MOV51H, #0_END_T0:CLRPSW.5;清除按键调整标志位RETI;DISP2:;显示子程序,
20、把51H 52H 53H 地内容送到 LED 显示器欢迎下载精品学习资源CALL FEN_JIE2 CALL DISPLAY RET;FEN_JIE2: MOV A, 51HANL A, #0FH MOV 7DH, A MOV A, 51H SWAP AANL A, #0FH MOV 7CH, A MOV A, 52H ANL A, #0FH MOV 7BH, A MOV A, 52H SWAP AANL A, #0FHMOV 7AH, A MOV A, 53H ANL A, #0FH MOV 79H, A MOV A, 53H SWAP AANL A, #0FH MOV 78H, A RET
21、欢迎下载精品学习资源;DISPLAY:MOVR0, #7DH MOV7EH, #0FEH MOV7FH, #6_DP_L:MOVA, R0MOVDPTR, #_MA_BIAO MOVC A, A+DPTRMOVP0, A; P0 段选P2 位选MOVP2, 7EHXRLP2, #255;取反否就加三极管MOVA, 7EHRLAMOV7EH, A DECR0 LCALLDL1MSMOV P2, #0;关闭显示DJNZ7FH, _DP_L;循环显示六个位RET_MA_BIAO:DB0C0H, 0F9H, 0A4H, 0B0H, 99H DB92H, 82H, 0F8H, 80H, 90HDB88H
22、, 83H, 0C6H, 0A1H, 86H DB8EHDL1MS:DEL1:欢迎下载精品学习资源MOVR7, #0 DJNZ R7, $ RETEND7. 试验总结在本课题中,采纳AT89C51 单片机作为主掌握器,6MHZ 晶振作为振荡源,P0 口作为输出字段码, P2 口作为输出位选码,采纳共阳地LED 数码管, P1.0 为秒清零按键,P1.1 为分加 1 键, P1.2 为时加 1 键.片内 RAM 地 78H 到 7DH 单元为 LED 数码管地显示缓冲区51H , 52H , 53H 分别为秒、分、小时计数单元.50H 为 0.125s 计数器 .仿真实现如图 7:图 78. 设
23、计心得经过两周地时间以及对整本教材地学问总结,把课程设计分成了硬件和软件两大模块.总地来说,硬件部分很好入手,电路也比较简洁,主要涉及地是简洁地按键、电容、电阻和数码管 .在软件部分,细分为了按键模块、显示模块、定时/计数模块,最终把几个模块整合在主程序模块中,使得程序简洁明白.整个设计过程中遇到地最大问题是软件地编写,由于采纳地是汇编语言,其间使用到地各种寄存器、储备器地址、变量许多,很难对程序地整体把握.通过电子钟地设计,对单片机地原理、结构、外围电路进一步地明白.在整个设计过程中学到了团体精神和独立解决 问题地重要性,为以后地求职之路打下了基础.欢迎下载精品学习资源9. 参考资料1 张毅
24、刚 单片机原理与应用.高等训练出版社 20212 李春晖 单片机原理与接口技术试验指导书20073 林立 单片机原理与应用电子工业出版社 20214 李守中 51 单片机开发入门与经典实例人民邮电出版社 20075 胡 汉 才单 片 机 原 理 与 接 口 技 术清 华 大 学 出 版 社19967 杜树春 基于 Proteus 和 Keil C51 地单片机设计与仿真电子工业出版社 20218 陈海宴 51单片机原理及应用:基于 Keil C 与 Proteus 北京航空航天高校出版社20216 杨加国 单片机原理与应用及C51 程序设计(其次版)清华高校出版 2021欢迎下载精品学习资源欢迎下载