版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 单片机技术课程设计说明书 数字电子钟 系 、 部: 电气与信息工程系 学生姓名: 指导教师: 职称 专 业: 自动化 班 级: 自本0801班 完成时间: 2010.12.30 摘 要 钟表作为一个定时工具被广泛地应用于生产生活的各个方面,而电子表具有价格便宜、质量轻、定时误差小等优点。本次设计的数字电子钟采用了AT89S52芯片进行汇编,由8位8段数码管进行动态刷新显示,有四个独立按键。可以进行秒、分、时的调整,且操作简单,计时误差小,显示亮度高,具有良好的实用价值。关键词 数字电子钟;单片机;汇编语言ABSTRACTSCM digital electric clock is based
2、on single chip design of eight digit clock. It has programming flexible and can perform electric clock function expansion, this electric clock with the 24-hour manufacturing mode display time, using assembly language make its with adjustable reset and when, add a function. Key words digital clock;SC
3、M;assembly language目 录1 设计课题任务、功能要求说明及总体方案介绍1 1.1 设计课题任务1 1.2 功能要求说明1 1.3 设计课题总体方案介绍及工作原理说明12 设计课题硬件系统的设计22.1 硬件总体设计 22.2 设计课题硬件系统各模块功能简要介绍22.3 设计课题电路原理图、PCB图、元器件布局图 32.4 设计课题元器件清单33 设计课题软件系统的设计43.1 设计课题使用单片机资源的情况43.2 数字电子钟软件系统主要模块功能简要介绍43.3 数字电子钟软件系统程序流程框图53.4 设计课题软件系统程序清单74 设计结论、仿真结果、误差分析 164.1 设计
4、课题的设计结论及使用说明164.2 设计课题的仿真结果174.3 设计课题的误差分析174.4 设计重点、难点,体会及不足之处18参考文献19致谢20附录21附录一数字电子钟原理图 21附录二数字电子钟PCB图 22附录三数字电子钟元件布局图24附录四 数字电子钟元件清单 251 设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务 通过理论设计和实物制作解决相应的实际问题,巩固和运用在单片机技术中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。1.2 功能要求说明设计一个具有特定功能的电子钟。
5、该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。1.3 设计课题总体方案介绍及工作原理说明方案一:采用时钟芯片DS1302,该芯片可以进行时分秒的计数,DS1302通过串行方式与单片机进行数据传送,向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整,但是需在单片机外部扩展,电路较复杂,成本较高。方案二:采用单片机内部定时器
6、,用软件对其进行秒、分、时的计数,单片机无法产生1s的定时时间,但是可以用硬件定时和软件计数相结合的方法实现,采用中断方式,即通过中断服务程序进行计数器溢出次数的累计,把定时器/计数器设定为62.5ms,计数溢出16次就可以得到1s,计60次为1分,60分计60次则为1小时,然后通过数码管动态刷新显示出来,再设四个按键进行时间的调整,一个键用作启动/调整键,其余三个分别用于时、分、秒的调整。方案二不需要外部扩展芯片,电路较简单,成本较低,这里选用方案二。2 数字电子钟硬件系统的设计2.1 硬件总体设计 硬件系统总体设计如图2.1所示。图2.1 硬件系统总体设计2.2 数字电子钟硬件系统主要模块
7、功能简要介绍(1) 功能芯片:本次设计采用ATMEL公司生产的AT89S52芯片,低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。256字节RAM, 32 位I/O 口线,与工业80C51 产品指令和引脚完全兼容。价格较低,能满足本次设计的要求。(2) 电源和复位模块:AT89S52需5V电压,所以可以采用USB接口的5V电源对其供电,复位电路可采用上电复位、按键电平复位、按键脉冲复位3种,本次采用按键电平复位。如电路原理图中的电源和复位模块。(3) 显示模块:该模块由8位8段共阳极数码管组成,由8个PNP型三极管分别驱动其发光,从左至右位控分别接于单片机的P2
8、.7-P2.0中上,段控a-dP接于单片机的P0.0-P0.7口上,使用动态显示从右向左循环点亮每一位数码管。如电路原理图中的数码管电路。(4) 键盘模块:键盘由8个独立式按键组成,S0-S7键分别接在单片机的P1.0-P1.7口,并由上拉电阻上拉使其成为电位为高。如电路原理图中的独立键盘模块。(5) 时钟模块:为了保证同步工作方式的思想,单片机必须有时钟信号,以使其系统在时钟信号的控制下按时序协调工作。如电路原理图中的晶振电路。2.3 数字电子钟电路原理图、PCB图、元器件布局图数字电子钟电路原理图见附录一。数字电子钟PCB图见附录二。数字电子钟元件布局图见附录三。2.4 数字电子钟元器件清
9、单 数字电子钟元器件清单见附录四。3 数字电子钟软件系统的设计3.1 数字电子钟使用单片机资源的情况(1) 时钟的时分秒在片内RAM存储地址如表3.1所示。表 3.1 时钟存储地址名称时分秒十位78H7BH7EH个位79H7CH7FH(2) 在AT89S52的P0口和P2口外接八个数码管,用P0口作数码管的段控码输出口(P0.0-P0.7对应于数码管的a-dp),P2.7-P2.0作数码管的位控码输出(P2.7-P2.0对应于LED7-LED0),20H.0-20H.3作为P1.0-P1.3的位标志存储地址。(3) 定时器0以中断方式工作,工作方式1。3.2 数字电子钟软件系统主要模块功能简要
10、介绍(1) 主程序:主程序的主要功能是进行定时器/计数器,显示缓冲区的初始化,显示,以及判断是否有功能键按下,判断按下的键并调相应的键功能程序。(2) 键功能程序:键功能程序的主要功能是执行对应的功能,Menu键为启动/调整键,第一次按下则由待机状态进入运行状态启动时钟,从00-00-00开始显示,然后按下为奇数则暂停,进入调时状态,按下Sec键则秒加1,按下Min键则分加1,按下Hour键则时加1;若按下为偶数则进入时钟运行状态。(3) 中断服务程序:中断服务程序的主要功能是进行计时操作,程序开始先判断计数溢出是否满了16次,若不满16次则表明没有达到最小计时单位秒,则中断返回;若满16次表
11、明已达到最小计时单位秒,则程序断续向下执行,进行分和时的计时。(4) 显示子程序:显示程序的主要功能是将显示缓冲区的段控码正确的显示在数码管上,采用动态显示,从右向左循环点亮每一位数码管。(5) 键扫子程序:键扫子程序的主要功能是判断是否有键按下,是哪个键按下,并将键值保存在20H中。3.3 数字电子钟软件系统程序流程框图(1) 主程序流程框图如图3.1所示。(2) 计时1秒子程序流程框图如图3.2所示。(3) 键扫子程序流程框图如图3.3所示。(4) 显示子程序流程框图如图3.4所示。(5) 键监控子程序流程框图如图3.5所示。 图3.1 主程序流程框图 图3.2 计时1秒子程序流程框图 图
12、3.3 键扫子程序流程框图 图3.4 显示子程序流程框图图3.5 键监控子程序流程框图3.4 数字电子钟软件系统程序清单;*:;项目名称:数字式电子钟;设计者:李松海;设计日期:2010年12月28日;*;堆栈栈底80H;*;LED数码管显示器设定;P0.7-P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a;P2.0-P2.7位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);显示缓冲区设定从左至右依次为78H,79H,7AH,7BH,7CH,7DH,7EH,7FH ;*;独立式键盘设定;8个按键S2至S9分别依次接在P1.0至P
13、1.7口线;*;20H字节单元:十六进制,S2键键值01H,S3键键值02H,S4键键值04H,S5键键值08H,S6键键值10H,S7键键值20H,S8键键值40H,S9键键值80H;*;定时器/计数器资源:;T/C0:工作模式;功能;定时时间;查询或中断;*;中断系统资源;T/C0;*;键功能程序;KEYA (S2键键功能程序);KEYB (S3键键功能程序);KEYC (S4键键功能程序);KEYD (S5键键功能程序);*;中断服务程序;*;常数表格;DISBH(系统提示符P.字型代码序号表);DISBI(00-00-00字符的代码序号);TAB(共阳数码管字型代码表);*; ;子程序
14、;DL(2毫秒延时子程序);DISP(数码管显示子程序);KEY(键扫描子程序);KEYCHULI(P1口数据处理子程序);加1子程序;*;伪指令定义 SEC EQU 30HMINEQU 31HHOUREQU 32HSECGEEQU 7FHSECSHIEQU 7EHMINGEEQU 7CHMINSHIEQU 7BHHOURGE EQU 79HHOURSHIEQU 78H;*;系统起始程序区 ORG 0000HSTART: LJMP MAINORG 000BHLJMP TC0;*;系统监控程序区ORG0030HMAIN:MOVSP,#80H ;初始化数据MOVPSW,#00HMOVTMOD,#0
15、1H ;定时器0工作方式1MOVTH0,#0D8H ;10MSMOVTL0,#0F0HSETBEASETBET0MOV R0, #20H ;RAM区首地址 MOV R7, #5FH ;RAM区单元个数 95个CHUSHI:MOV R0, #00H INC R0 ;将RAM全部清零,初始化 DJNZ R7, CHUSHI TSF: MOV DPTR, #DISBH ;系统初始化 “P.”字符代码表首地址 MOV R5, #08H MOV R0, #78HDISPTSF:CLR A MOVC A, A+DPTR MOV R0, A INC R0 INC DPTR DJNZ R5, DISPTSFD
16、:LCALL DISP ;调显示子程序显示提示符“P.”LCALLKEYJB20H.0,KEYALJMPD;*;键功能程序区;S2键功能程序KEYA:MOVSEC, #0 ;寄存器初始化,秒寄存器MOVMIN, #0 ;分寄存器MOVHOUR, #0 ;时寄存器MOV DPTR, #DISBI ;“00-00-00”字符代码表首地址 MOV R5, #08H MOV R0, #78HDISPTSG:CLR A MOVC A, A+DPTR MOV R0, A INC R0 INC DPTR DJNZ R5, DISPTSGKEYAS:SETB TR0 ;开定时器DI:LCALL DISPLCA
17、LL KEYJB 20H.0,CP LJMP DICP:CLR TR0 ;S2键按下,进入调整状态DD:LCALL DISPLCALL KEYJB 20H.0,KEYASJB 20H.1,KEYBJB 20H.2,KEYCJB 20H.3,KEYDLJMP DD;S3键功能程序KEYB:LCALLHOUR_ ;调时LC:LCALLDISPLCALLKEYJB20H.0,KEYASJB20H.1,KEYBJB20H.2,KEYCJB20H.3,KEYDLJMPLC;S4键功能程序KEYC:LCALLMIN_ ;调分DIIS:LCALL DISP LCALLKEYJB20H.0,KEYASJB20
18、H.1,KEYBJB20H.2,KEYCJB 20H.3,KEYDLJMPDIIS;S5键功能程序KEYD:LCALLSEC_ ;调秒DISS:LCALLDISPLCALLKEYJB20H.0,KEYASJB20H.1,KEYBJB20H.2,KEYCJB20H.3,KEYDLJMPDISS;中断服务程序TC0:PUSHACCPUSH BPUSHPSWSETBRS1CLRRS0MOVTH0,#0D8HMOVTL0,#0F0HINC33HMOVA,33HCJNE A,#100,REMOV33H,#0INCSECMOVA,SECMOVB,#10DIVABMOVSECSHI,AMOVSECGE, B
19、MOVA,SECCJNEA,#60,REINCMINMOVSEC,#00HMOVSECGE,#0MOVSECSHI,#0MOVA,MINMOVB,#10DIVABMOVMINSHI, AMOVMINGE,BMOVA,MINCJNEA,#60,REINCHOURMOVMIN,#00HMOVMINGE,#0MOVMINSHI,#0MOVA,HOURMOVB,#10DIVABMOVHOURSHI,AMOVHOURGE, BMOVA,HOURCJNE A,#24,REMOVHOUR,#0MOVHOURGE,#0MOVHOURSHI,#0RE:POPPSWPOPBPOPACCRETI;延时1毫秒子程序
20、DL: PUSH PSW SETB RS1 SETB RS0 MOV R7, #02HDL1:MOVR6, #0FFHDL2:DJNZR6, DL2DJNZR7, DL1 POP PSWRET;显示子程序;入口:77H,78H,79H,7AH,7BH,7CH,7DH,7EH,7FH,DISP: PUSHDPHPUSHDPLPUSHACCPUSHPSW CLR RS1 ;改变当前寄存器组为组1 SETB RS0 MOV R1, #78H ;显示缓冲存储单元首地址 MOV R2, #0FEH ;从右至左显示,共阳极 DISP1:MOVA, R1MOVDPTR, #TABMOVC A, A+DPTR
21、MOV P0, A ;送段控 MOV P2, R2 ;送位控LCALL DL ;延时2毫秒 为什么这里要延时MOV A, R2JNB ACC.7, DISP2 ;为0转移;RL AINC R1MOV R2, ALJMP DISP1DISP2:POP PSW ;恢复当前寄存器组的组号POP ACCPOP DPLPOP DPHRET;键扫描子程序KEY:LCALL KEYCHULI ;调P1口数据处理子程序 JZ EXIT ;没有键按下,转返回LCALL DISP ;调显示子程序去抖动LCALL DISP LCALL KEYCHULI ;调P1口数据处理子程序 JZ EXIT ;没有键按下,转返回
22、MOV B,20H ;保存取反后的键值KEYSF:LCALL KEYCHULI ;调P1口数据处理子程序JZ KEY1 ;键释放,转恢复键值LCALL DISP ;调显示子程序延时 LJMP KEYSF ;等待释放KEY1:MOV 20H, B ;键值送20H保存EXIT:RET ;子程序返回;P1口数据处理子程序KEYCHULI:PUSH PSW ;保护现场CLR RS1 ;改变当前寄存器组为组1SETB RS0MOV P1,#0FFH ;先向P1口写1MOV A, P1 ;读P1口数据CPL A ;P1口数据取反MOV20H, A ;保存取反后的键值CLRRS1 ;恢复当前寄存器组为组0C
23、LR RS0POPPSW ;恢复现场RET ;子程序返回;加1子程序SEC_:INCSECMOV A,SECMOV B,#10DIV ABMOV SECSHI,AMOV SECGE,BMOV A, SECCJNE A, #60,EXIMOV SEC, #0MOV SECGE,#0MOV SECSHI,#0LJMP EXIMIN_:INC MINMOV A,MINMOV B,#10DIV ABMOV MINSHI,AMOV MINGE,BMOV A,MINCJNE A,#60,EXIMOV MIN, #0MOV MINGE,#0MOV MINSHI,#0LJMP EXIHOUR_:INC HOU
24、RMOV A,HOURMOV B,#10DIV ABMOV HOURSHI, AMOV HOURGE, BMOV A,HOURCJNE A,#24,EXIMOV HOUR, #0MOV HOURGE, #0MOV HOURSHI, #0EXI:RET;常数表格区-;系统初始化后提示符“P.”字符代码表DISBH: DB 11H,10H,10H,10H,10H,10H,10H,10H ;“P.”字符序号DISBI: DB 00H,00H,12H,00H,00H,12H,00H,00H;显示字符段选码表(共阳极代码) TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H
25、,0F8H,80H ;0-8 DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0BFH;9,A,B,C,D,E,F,灭,p. END4 设计结论、仿真结果、误差分析4.1 数字电子钟的设计结论及使用说明该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。S2键为启动/调整键,S3键为时调节,S4键为分调节,S5键为秒调节。操作步骤如下:
26、(1) 将+5V电源接到电子钟电源插口上,接通电源开关。(2) 把电子钟电路板上的ISP程序下载线连接到计算机USB接口,在计算机上通过avr_fighter软件把电子钟程序下载到单片机内。(3) 电子钟程序下载到单片机以后,电子钟进入命令状态,显示“P.”。(4) 按下S2键,电子钟从0开始运行,此时LED7、LED6、LED4、LED3、LED1、LED0分别显示时、分、秒。(5) 再次按下S2键,电子钟进入调时状态,此时通过S3键、S4键、S5键分别调整电子钟的时、分、秒。按一下对应的值加一。调整到想要的时间后,再次按下S2键,电子钟将以用户调整时间为起点进入运行状态。4.2 数字电子钟
27、的仿真结果本次设计的数字电子钟有三种状态:待机显示“P.”状态,时钟运行状态,时钟调整状态。它们分别如图4.1、图4.2、图4.3所示。图4.1 待机显示“P.”状态仿真结果图4.2时钟运行状态仿真结果图4.3 时钟调整状态仿真结果4.3 数字电子钟的误差分析虽说采用软件方式来产生1s的基本时间,然而定时器/计数器本身不能产生标准的1s定时,产生一个标准时间之后进行循环计数得到1s,但CPU执行代码需要1-2s的时间,因此产生的1s,1分,1小时,都会略大于标准的时间。此外,单片机也易受外界环境的影响,比如温度、湿度等干扰。故应该让单片机工作在适宜的环境下,同时采用实时时钟芯片,这样能将误差降
28、低到最小。4.4 设计重点、难点,体会及不足之处重点:单片课程设计考察的是一个人理论与实践相结合的能力,要求设计者具有一定的理论知识及动手操作能力。比如用Proteus软件进行单片机系统电路的仿真设计、Protel软件的使用、PCB板的硬件制作,Keil软件编写和调试汇编程序。难点:硬件电路的故障检测和修复,原理电路图的仿真设计,汇编程序的编写和调试。体会:现在来回想单片机的课程设计,有许多感触,从最开始接触单片机和汇编语言,到现在能独立完成一个课程设计,我必须得感谢王老师的谆谆教导和辛勤付出,是老师给了我动力。在本学期初期做PCB板时因布局的不科学导致最后的制作使用出现了许多麻烦,还有焊接的经验不足导致了虚焊;在汇编编程时,书本上的很多知识又学的很不扎实,程序基本语句理解不够透彻,导致编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳理工大学《大学生心理健康》2021-2022学年第一学期期末试卷
- 哈工大建筑工程法规与合同试题
- 食品安全与营养健康科普大赛
- 2024酒店会议服务合同
- 专题11.分析人物形象-2023年四升五语文暑期阅读专项提升(统编版)
- 2024【外架工操作证】正规的外架工程班组劳务包干合同
- 2024家庭保姆雇佣合同新
- 规划课题申报范例:大学生毕业实习课程化管理的体制机制建构(附可修改技术路线图)
- 规划课题申报范例:“双减”背景下小学数学教学提质增效策略研究(附可修改技术路线图)
- 深圳大学《中国民俗文化》2022-2023学年第一学期期末试卷
- 牙用漂白凝胶市场环境与对策分析
- 2024年山东省济南市中考英语试题卷(含答案)
- 人教版七年级道德与法治上册 期中复习知识梳理
- 3.1 农业区位因素及其变化 课件 高一地理人教版(2019)必修第二册
- 建筑施工企业(安全管理)安全生产管理人员安全生产考试参考题及答案
- 锅炉应急预案演练方案
- 《11~20各数的认识》(教案)-2024-2025学年一年级上册数学人教版
- 关于高技能人才培养问题的思考高技能人才培养方案
- 2024新信息科技四年级《第三单元 有趣的编码应用》大单元整体教学设计
- 中国航天发展史主题班会 课件
- 正向管理课件教学课件
评论
0/150
提交评论