51单片机课程设计电子时钟_第1页
51单片机课程设计电子时钟_第2页
51单片机课程设计电子时钟_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计课程名称:单片机课程设计 题目名称: 单片机电子时钟学院:电信学院专业:电子工程姓名:曾代科学 号:_1_指导教师:力口国2010年11月7日一、课程设计名称: 51 单片机电子时钟二、设计方案:1、通过单片机部的计数 / 定时器,采用软件编程来实现 时钟计数,一般称为软时钟,这种方法的硬件线路简单,系 统的功能一般与软件设计相关,通常用在对时间精度要求不 高的场合。2、采用时钟芯片,它的功能强大,功能部件集成在芯 片部,具有自动产生时钟等相关功能,硬件成本相对较高; 软件编程简单,通常用在对时钟精度要求较高的场合。三、设计容:这里采用应用广泛的 AT89C52作为时钟控制芯片,利用

2、单片机部的定时 / 计数器 T0 实现软时钟的目的。首先将 T0 设定工作于定时方式, 对机器周期计数形成基准时间(50ms),然后用另一个定时/计数器T1对基准时间计数形 成秒,妙计 60 次形成分,分计 60 形成小时,小时计到 12。 最后通过数码管把它们的容在相应的位置显示出来,达到 时、分、秒计时的功能。此外还要实现对时间的调整功能,89C52的P1.0、P1.1、P1.2 外接三个独立按键,当按下 P1.0 按键时,系统进入调时间的状态或启动时间显示的功能;当按下 P1.1 按键时,对显 示的数码管进行加一的功能;当按下 P1.2 按键时,对显 示的数码管进行减一的功能,达到调整时

3、间的目的。四、系统软件程序设计1. 主程序先对显示单元和定时器 / 计数器初始化,然后重复调 用数码管显示模块和按键处理模块,当有按键按下时,则转 入相应的功能程序。2、数码管显示模块本实验有 8 个数码管,从右到左为妙、横线、分、 横线、时。在本系统中数码管显示采用软件译码动态显示。 在存储器中首先建立一显示信息的字段码表,显示时,先从 显示缓冲区 中取出显示的信息, 然后通过查表程序在字 段表中查出所显示的信息的断码,从 P0 端口输出,同 时在 P2 端口进行数码管显示。3 、定时器 / 计数器 T0 中断服务程序T0 用于计时,选中方式一,重复定时,定时时间设为 50ms,定时时间到则

4、中断,在中断服务程序中用一个计数器 对50ms计数,计20次则对秒单元加一。秒单元加到60则对分单元加一, 同时秒单元清 0;分单元加到 60 则对时单元加一,同时分单元清 0;时单元加到24则对时单元清0,标志一天时间计满。在对各单元计数的同时,把他们的值放到存储器单元的指定位置。流程图如下:开始现场保护,重置初值,启动下一个50ms50ms计数器加一NO50ms计数器=20 ?秒单元加一,50ms计数器清0NONONO秒单元=60?分单元=60 ?分单元加一,秒单元清0时单元加一,分单元清0时单元=24 ?时单元清0中断返回主程序流程图T0中断服务程序4、按键处理模块按键设置为:如果没有按

5、键吗,则时钟正常走时。 当按下 K0 键时,进入调分状态,时钟停止走动;按 K1 和 K2 按键可以进行加一和减一操作;继续按 K0 键可以分别进行分和小时的调整;最后按KO键启动计时。5、汇编语言程序ORG 0000HLJMP STARTSTART:INIT:ORG OOOBH LJMP INITOMOV RO,#7OHMOV R7,#OCHMOV RO,#OOH INC RODJN Z R7,INITMOVMOVMOV; 主程序开始; 对连字符进行装值START1:DL1MS:DL1:DL2:DL20MS:MOVMOVSETB EASETB ETO SETB TRO72H,#1O75H,#

6、1OTMOD,#01H;选择定时器/计数器TO的方式1TLO,#OBOHTHO,#O3CH; 对低位赋初值; 高位赋初值LCALL SCANLCALL KEYSCANSJMP START1 MOV R6,#14H MOV R7,#19H DJNZ R7,DL2 DJNZ R6,DL1 RET ACALL ACALL; 延时 1 子程序SCAN ;延时20ms子程序SCANACALLRETSCAN; 数码管显示程序开始SCAN:MOV A,78HMOV B,#OAHDIV AB ;时间秒的十位送给 A,时间秒的个位送 BMOV 71H,A; 时间秒要显示的十位MOV 7OH,B; 时间秒要显示的

7、个位MOV A,79HMOV B,#0AHDIV AB;时间分的十位送给 A,时间分的个位送BMOV 74H,A;时间分要显示的十位送地址MOV 73H,B;时间分要显示的个位送地址MOV A,7AHMOV B,#0AHDIV AB;时间时的十位送给 A,时间时的个位送BMOV 77H,A;时间时显示的十位送地址MOV 76H,B;时间时要显示的个位送地址MOV R1,#70HMOV R5,#0FEHMOV R3,#08HSCAN1: MOV A,R5 ; 数码管的显示程序TAB:MOV P2,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTR; 对字段表取值显示MOV P

8、0,AMOV A,R5LCALL DL1MSINC R1MOV A,R5RL AMOV R5,ADJNZ R3,SCAN1MOV P2,#0FFHMOV P0,#0FFHRET;"09" 和"-" 的字段表DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH定时 / 计数器 T0 中断程序INIT0: PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTTO ;50m

9、s是否到20次,没有到就继续执行 50ms的延时MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0 ; 一秒的延时是否计到 60 次,没有就继续执行 MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0 ;60 分钟的延时是否计到 24 次,没有就 继续执行程序MOV 7AH,#00OUTT0:SETB ET0; 启动定时器 T0POP PSWPOP ACCRETI; 按键处理程序KEYSCAN:CLR EAJNB P1.0,KEYS

10、CAN0 ;P1.0 有按键按下则跳转到子程序JNB P1.1,KEYSCAN1 ;P1.1 有按键按下则跳转到子程序JNB P1.2,KEYSCAN2 ;P1.2 有按键按下则跳转到子程序KEYOUT: SETB EARETKEYSCAN0:LCALL DL20MS ;20ms 的延时消抖JB P1.0,KEYOUTWAIT0: JNB P1.0,WAIT0 ; 判断按键是否松手, 松手就往下执行程序 INC 7CHMOV A,7CHCLR ET0CLR TR0CJNE A,#03H,KEYOUT; 按下第一次和第二次对时、分选定MOV 7CH,#00 ; 按下第三次时就启动计时SETB E

11、T0SETB TR0SJMP KEYOUTKEYSCAN1:LCALL DL20MS ; 按键加一的程序JB P1.1,KEYOUTWAIT1: JNB P1.1,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11 ; 如果功能键按下则对时加一调整 INC 79HCJNE A,#3CH,KEYOUT ; 如果加到 60 则清零MOV 79H,#00 SJMP KEYOUT二次则对分进行加一调整MOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALL DL20MS;延时消抖程序JB P1.2,KEYOUTWAI

12、T2:JNB P1.2,WAIT2 ;判断是否放开按键MOV A,7CHCJNE A,#02H,KSCAN21 ;如果功能键是按下第一次对时进行减一DEC 79HMOV A,79HCJNE A,#OFFH,KEYOUTMOV 79H,#3BHSJMP KEYOUTKSCAN21:DEC 7AH;如果功能键是按下第二次则对分进行减一CJNE A,#0FFH,KEYOUTMOV 7AH,#17HSJMP KEYOUTEND6、软件编译环境:Keil uVisio n2确保生成".Hex"文件©少-的:形晋&虹国4 Tuf 1n (il« 舉注 0*R

13、d呻 n”h F*bph«rd.i£rt3filpA AB« HH需洛册Is器罷霧黑空sh?bj*?,rr闭却上-?!厅眺小经时阖打時4冬送检釧时冏分的丰盘送日 片圍幷塵序的+吨週他址叶|¥1丹'T任亍芋卜忖:窃遥细屯斗问P'A上亠岸M闵时沪十氓诜FKIq义tinking.亠Program Si2«: dxdAia>0 code*323cr*ating hex fileMl*ddi,"!«f" - 0 Errortfi. 0 删m询g星,dh BiiBd A_g«nnwcl.人 Fi

14、nd in FifeE I镐和功缸tiE:R五、系统硬件电路的设计系统的硬件主要包括单片机芯片,数码管显示,按键开关电路,它的硬件电路如下图所示,单片 机采用广泛使用的AT89C52系统时钟采用12MHz的 晶振,八个数码管显示,小时与分钟与秒钟间用短横 线,采用共阳极七段式数码管,P0 口为段选码输出端, P2 口为位选码输出端。硬件电路如图所示:-«£00-00-03g > 吩鼻斗H, A2 kf l.13 冲-sr六、课程设计总结经过一周的时间以及对整本教材的知识总结, 把课程设计分成了硬件和软件两大模块。总的来说,硬件部分很好入手,电路也教简单,主 要涉及的是简单的按键、电容、电阻、晶振和数码管。 在软件部分,细分为了按键模块、显示模块、定时/ 计数模块,最后把几个模块整合在主程序模块中,使 得程序简单明了。整个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论