(完整word版)基于51单片机多功能电子时钟报告_第1页
(完整word版)基于51单片机多功能电子时钟报告_第2页
(完整word版)基于51单片机多功能电子时钟报告_第3页
(完整word版)基于51单片机多功能电子时钟报告_第4页
(完整word版)基于51单片机多功能电子时钟报告_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计报告多功能电子数字钟指导教师 :3课程设计题目电路设计程序总体设计思路概述各模块程序设计及流程图程序及程序说明见附录*课程设计心得及体会1112参考资料题目及要求本次单片机课程设计在 Proteus 软件仿真平台下实现,完成 电路设计连接, 编程、 调试, 仿真出实验结果。 具体要如下: 用 8051 单片机设计扩展 6 位数码管的静态或动态显示电路, 再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能 电子钟,实现以下功能:(1)走时 (能实现时分秒,年月日的计时)(2)显示 (分屏切换显示时分秒和年月日,修改时能定位闪 烁显示)(3)校时 (能用按键修改和校准时钟)(4)定

2、时报警(能定点报时)本次课程设计要求每个学生使用 Proteus 仿真软件独立设计制作出电路图、完成程序设计和系统仿真调试,验收时能操作演示。最后验收检查结果,评定成绩分为:(1)完成走时 +显示 +秒闪”功能 及格(2)完成校时修改”功能中等(3)完成校时修改位闪”良好(4)完成定点报警”功能,且使用资源少 优秀5采用 89C51 型号单片机 采用 8 位共阴数码管因为单片机输出高电平时输出的电流不足以驱动数码管,所以在P0 口与8位数码管之间加 74LS373来驱动数码管P2 口与数码管选择位直接加 74LS138译码器蜂鸣器接P3.7 口。因为单片机输出高电平时输出的电流不足以驱动蜂鸣器

3、所以蜂鸣器,所以P3.7 口与蜂鸣 器直接接反相器再接蜂鸣器的一端,蜂鸣器的另一端 接5V电源。这样当P3.7 口给高电平时蜂鸣器导通名 声。否则反之。单片机XTAL1,XTAL2端接外部时钟电路(时钟电路参 考课本),RAT端接复位电路(复位电路参考课本)EA端接5V电源,使得单片机读取片内程序。修改时间控制开关 key1接p1.0 口,key2至key7用来 对时间,日期,闹钟时间的修改, 依次于 p1.1 至 p1.6。key2用来显示日期并做修改的开关,接于INTO( p3.2)口。 key3 用来显示闹钟时间并做预置的开关,接于INT1( p3.3)口。所有按键的另一端接地。总体设计

4、思路概述(1),数码管显示使用动态显示,每四毫秒轮流显示一个数码 管.一个循环耗时32ms(这样会有微闪烁可设置更快的动态显示)(2),设置四个中断,高=底:定时器1溢出中断 = 外部中断0 =外部中断1 =定时器1溢出中断.A.首先允许前三个中断,当没有出现TO, T1中断时主程序在判键并且计时器 0在计时.每隔4ms定时器0溢出中断,动态轮流显示一个数码管.用LED_LP做标志,计中断次数.每中断250次秒加一,每60秒分加一,时日月年依规律类推(不用判断平润年).B.当出现T0(显示日期并做修改)或T1(显示闹钟定时时间并 可修改定时时间)中断时都会自动关闭计时器0,此时软件控制打开计数

5、器1,用它继续计时并且如 A中用来动态显示日期或闹钟设置的时间,同时每个中断子程序都是在判键,通过按键修改日期或设置闹钟时间.此时已经是计数器1中断级别最高,同样每4ms动态轮流显示数码管,此时数码管显示的是日期或定时时间.当修改完时间或定时时间,人工弹出按键,中断结束返回主程序,在返回前关闭定时器1.这样,在没有TO,T1中断时计数器0中断级别最高.各模块程序设计及流程图(1)主程序判键修改时间及走时4N7 定时器0每隔4ms溢出中断(优先级别最低)11(3) 外部中断0 (优先级别第二)流程图:进入中断压栈N出栈结束中断(4)外部中断1 (优先级别第三)流程图:进入中断tN 定时器0每隔4

6、ms溢出中断(优先级别最高)#六 课程设计心得体会:此次课程设计是大学里来第二次课程设计,于我的感觉是这是一次与实际最贴切的一次课程设计,亦或是说实践。首先我的心得体会有如下几点1)万事开头难,要做好单片机课程设计必须要有足够的耐心与兴趣。要反复编程调试,检验。而本次软件编程我反复调试了多达几十次。2)要想全面的做好这次课程设计,必须要全面统筹,细心规划好自己所需使用的单片机内部资源以及硬件资源。并尽量做到少用资源而达到最大实用效果。同时也要单个功能慢慢编程调试,而不要好高骛远,急功心切。3)第一次设计编写这样较为难而大的课程设计必须要做到对单片机基础硬件与软件的熟练掌握,尤其单片机 里汇编语

7、言指令。只有做到融汇贯通方能运筹帷幄。4)做好课程设计要学会借鉴别人好的思想与技巧,而教材上就有许多很好的例子。同时要将每次单片机实验 灵活运用于此次课程设计。参考资料 :(1) 单片机授课教材(2) 单片机网络资源八.程序:EQUSHAN1520H;秒闪烁标志EQU 21HBUFF_KEY键盘键EQULED122H;数码管显示缓存LED2EQU 23H计时标志小时值缓存分钟值缓存LED3LED4LED5LED6LED_LPHORMINEQU 24HEQU 25HEQU 26HEQU 27HEQU 28HEQU 30HEQU 31H秒值缓存SECEQU 32HNHOREQU 33H闹钟时间缓存

8、NMINEQU 34H36H37H38H39HBIT P3.2NSECEQU 35HYEREQU;年月日缓存F_BEEPDIG_PORTMOTEQUDATSXXBIT 01HEQUEQULED_PORTEQU P0EQU P2SW0SW819BIT P1.0SW1BIT P1.1SW2BIT P1.2SW3BIT P1.3SW4BIT P1.4SW5BIT P1.5SW6BIT P1.6SW7BIT P3.3ORG0000HLJMPMAINORG000BHLJMPT0_INTORG0003HLJMPT_0ORG0013HLJMPT_1ORG001BHLJMPT1_INTORG100HMAIN:

9、 MOVSP ,#40HMOV R0,#7FH;初始化 RAM 区,CLR_RAM:MOV A,#00HMOVR0,ADJNZR0,CLR_RAMMOVP1,#0FFHMOVP2,#0FFHMOVP0,#0FFHMOVP3,#0FFHMOVTMOD,#11HMOVTH0,#0F0HMOVTL0,#060H;T0=4MSMOVNHOR,#100MOVYER,#12MOVMOT,#06MOVDAT,#17CLR CMOV P3.7,CSETBPT1;定时器 1 中断级别最高MOV21PT0;定时器 0 中断级别最低时器EX0CLRSETBSETB0 中断部中断 1SETB有中断TR0ET0;允许外

10、部中断 0EAWAIT_KEY:MOV A,NHORA,HOR,LNNNA,NMINA,MIN,LMNN;开定时器SETBSETB按键预置时间;允 许 定EX1;允 许 外;允 许 所CJNEMOVCJNEA,NSECCJNEA,SEC,LNNNSETBMOVP3.7,CLJMPLNNNLMNN:MOVA,NMINADDA,#01CJNEA,MIN,LNNNMOVA,NSECCJNEA,SEC,LNNNCLRMOVP3.7,CLNNN:JNBSW8,LSNNMOVSXX,#0LJMPLSNN:JNBSW1,SW1_OKWAIT_KEY23JNBSW2,SW2_OKJNBSW3,SW3_OKJN

11、BSW4,SW4_OKAJNBSW5,SW5_OKAJNBSW6,SW6_OKAJMPWAIT_KEYSW4_OKA: JMPSW4_OKSW5_OKA: JMPSW5_OKSW6_OKA: JMPSW6_OKSW1_OK: MOVSXX,#01MOV25MOVA,HORCJNEA,#23,SW1_OVERMOVHOR,#00HSETBF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYSW1_OVER:INCHOR;时加 1R7,HORSETBJMPWAIT_KEY27F_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYSW2_OK:MOVSXX,#01MOV

12、A,HORCJNEA,#00,SW2_OVERMOVHOR,#23SETBF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYSW2_OVER:DECHOR;时减 1SETBF_BEEPLCALLDELCLRF_BEEPSW3_OK: MOVSXX,#02MOVMOVMIN,#59SETB29A,MINCJNEA,#59,SW3_OVERMOVMIN,#00HSETBF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYSW3_OVER:INCMIN;分加 1SETBF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYSW4_OK:MOVSXX,#

13、02MOVA,MINCJNEA,#00,SW4_OVERF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYSW4_OVER:DECMIN;分减 1SETBF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYSW5_OK:MOVSXX,#03MOVA,SECCJNEA,#59,SW5_OVERSW5SETBF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYR:INCSECSETBF_BEEPLCALLDELCLRF_BEEPMOVSEC,#00H;秒加 133JMPWAIT_KEYSW6_OK:MOVSXX,#03A,SECCJNEA,#00,

14、SW6_MOVSEC,#59SETBF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYSW6_OVER:DECSECSETBF_BEEPLCALLDELCLRF_BEEPJMPWAIT_KEYDEL:MOVR5,#07DEL01:MOVR6,#200DEL02:MOVR7,#200DJNZR7,$DJNZR6,DEL02DJNZR5,DEL01;秒减 1OVERMOV;按一次键处理一次RETBIN_BCD: MOV B,#10DIV ABRETT0_INT: PUSHACCPUSHPSWMOVTH0,#0F0H;T0=4MSMOVTL0,#060HINCLED_LPMOVA,

15、LED_LPCJNEA,#250,CONT_SCAN;250*4MS=1SMOVLED_LP,#00HINCSECMOVA,SECCJNEA,#60,CONT_SCANINCMINMOVSEC,#00H35MOVA,MINMOVMOT,#0037CJNEA,#60,CONT_SCANMOVMIN,#00HINCHORMOVA,HORCJNEA,#24,CONT_SCANMOVHOR,#00HINCDATMOVA,DATCJNEA,#30,CONT_SCANMOVDAT,#00INCMOTMOVA,MOTCJNEA,#12,CONT_SCANINCYERMOVMOV39A,YERCJNEA,#9

16、9,CONT_SCANLCALL DELCONT_SCAN:MOV A,SECMOVB,#02DIVABMOVA,BCJNEA,#00,LOPKMOVSHAN,#10LOPK: CJNE A,#01,LOPLMOVSHAN,#11LOPL:MOV A,SXXCJNE A,#01,LK1MOVA,LED_LPB,#125DIV ABCJNEA,#0,LLL1MOVLED1,#10MOVLED2,#10LJMPLLL2LK1:MOVA,SXXCJNEA,#02,LK2MOVA,LED_LPMOVB,#125DIVABCJNEA,#0,LLL1MOVLED3,#10MOVLJMPLLL3LK2:MO

17、VA,SXXLED4,#1041MOVCJNE A,#03,LLL1MOV LED4,B43A,LED_LPMOVB,#125DIV ABCJNEA,#0,LLL1MOVLED5,#10MOVLED6,#10LJMPLKMMLLL1:MOV A,HORLCALL BIN_BCDMOVLED2,BMOVLED1,ALLL2:MOVA,MINLCALL BIN_BCDMOV LED3,ALLL3:MOVA,SECSCAN_L845LCALLBIN_BCDMOVLED6,BMOVLED5,ALKMM:MOVA,LED_LPMOVB,#08DIVABMOVA,BRLMOVDPTR,#TAB_SCANJ

18、MPA+DPTRTAB_SCAN: AJMPSCAN_L1AJMPSCAN_L2AJMPSCAN_L3AJMPSCAN_L4AJMPSCAN_L5AJMPSCAN_L6AJMPSCAN_L7AJMPSCAN_L1:MOVDIG_PORT,#0MOVJMPA,LED1END_SCANSCAN_L2:MOVDIG_PORT,#1MOVA,LED2JMPEND_SCANSCAN_L3:MOVDIG_PORT,#2MOVA,#11JMPEND_SCANSCAN_L4:MOVDIG_PORT,#3MOVA,LED3JMPEND_SCANSCAN_L5:MOVDIG_PORT,#4MOVA,LED4JMP

19、END_SCANSCAN_L6:MOVDIG_PORT,#5MOVA,SHANEND_SCANSCAN_L7:MOVDIG_PORT,#6MOVA,LED5JMPJMPEND_SCAN47SCAN_L8: MOVDIG_PORT,#7MOVA,LED6END_SCAN: MOVDPTR,#TAB_LEDMOVCA,A+DPTRMOVLED_PORT,APOPPSWPOPACCRETITAB_LED: DB 3FH,06H,5BH,4FH ;共阴 0-9 和 (-)字码表DB66H,6DH,7DH,07HDB 7FH,6FH,00H,48H,40H进入日期显示T_0:PUSHACCPUSHPSW

20、SETBTR149MOVTH1,#0F0H;T1=4MSMOVTL1,#060HSETB ET1RWAIT_KEY:JNB SW0,RLOOPF_BEEP51CLRTR1POPPSWPOPACCA,#99,RSW1_OVERRETIJNBSW2,RSW2_OKJNBSW3,RSW3_OKJNBSW4,RSW4_OKJNBSW5,RSW5_OKAJNBSW6,RSW6_OKAJMPRWAIT_KEYRSW5OKA: JMPRSW5_OKRSW6OKA: JMPRSW6_OKRSW1OK: MOVA,YERRLOOP:JNBSW1,RSW1_OKCJNEMOVYER,#00HSETBLCALLDE

21、LCLRF_BEEPJMPRWAIT_KEYRSW1_OVER:INCYER;年加 1SETBF_BEEPLCALLDELCLRF_BEEPJMPRWAIT_KEYRSW2_OK: MOVA,YERCJNEA,#00,RSW2_OVERMOVYER,#99SETBF_BEEPLCALLDELCLRF_BEEPJMPRWAIT_KEYRSW2_OVER:DECYER;年减 1SETBF_BEEPLCALLDELRSW3_OK: MOVA,MOTCLRF_BEEPJMPRWAIT_KEY55CJNEA,#12,RSW3_OVERMOVMOT,#00HSETBF_BEEPLCALLDELCLRF_B

22、EEPJMPRWAIT_KEYRSW3_OVER:INCMOT;月加SETBF_BEEPLCALLDELCLRF_BEEPJMPRWAIT_KEYRSW4_OK: MOVA,MOTCJNEA,#00,RSW4_OVERMOVMOT,#12SETBF_BEEPLCALLDELRSW4_OVER:DECMOT; 月减 1SETBF_BEEPRSW5LCALLDELCLRF_BEEPJMPRWAIT_KEYMOVA,DATCJNEA,#30,RSW5_OVERMOVDAT,#00HSETBF_BEEPLCALLDELCLRF_BEEPJMPRWAIT_KEYR:INCDAT;号加SETBF_BEEP

23、LCALLDELCLRF_BEEPJMPRWAIT_KEYMOVA,DATCJNEA,#00,RSW6_OVERMOVNSEC,#30SETBF_BEEPLCALLDELRSW5_OK:1RSW6_OK:57CLRF_BEEP59JMPRWAIT_KEYRSW6_OVER:DECDAT;号减 1SETBF_BEEPLCALLDELCLRF_BEEPJMPRWAIT_KEYT_1: PUSHACCPUSHPSWMOVTH1,#0F0H;T1=4MSMOVTL1,#060HMOVNHOR,#0SETBTR1SETBET1NWAIT_KEY:JNB SW7,NLOOPCLRTR1POPPSWPOPA

24、CCRETINLOOP:JNBSW1,NSW1_OKJNBSW2,NSW2_OKJNBSW3,NSW3_OKJNBSW4,NSW4_OKJNBSW5,NSW5_OKAJNBSW6,NSW6_OKAJMPNWAIT_KEYNSW5_OKA: JMPNSW5_OKNSW6_OKA: JMPNSW6_OKNSW1_OK: MOVA,NHORCJNEA,#23,NSW1_OVERMOVNHOR,#00HSETBF_BEEPLCALLDELCLRF_BEEPJMPNWAIT_KEYNSW1_OVER:INCNHOR;闹钟时加 1SETBLCALLDELF_BEEP61CLRF_BEEPF_BEEP63J

25、MPNWAIT_KEYNSW2_OK: MOVA,NHORCJNEA,#00,NSW2_OVERMOVNHOR,#23SETBF_BEEPLCALLDELCLRF_BEEPJMPNWAIT_KEYNSW2_OVER:DECNHOR;闹钟时减SETBF_BEEPLCALLDELCLRF_BEEPJMPNWAIT_KEYNSW3_OK: MOVA,NMINCJNEA,#59,NSW3_OVERMOVNMIN,#00HSETBLCALLDELCLRF_BEEPCLRF_BEEP65JMPNWAIT_KEYNSW3_OVER:INCNMIN;闹钟分加SETBF_BEEPLCALLDELCLRF_BEE

26、PJMPNWAIT_KEYNSW4_OK:MOVA,NMINCJNEA,#00,NSW4_OVERMOVNMIN,#59SETBF_BEEPLCALLDELCLRF_BEEPJMPNWAIT_KEYNSW4_OVER:DECNMIN;闹钟分减SETBF_BEEPLCALLDELJMPNWAIT_KEYNSW5_OK:MOVA,NSECCJNEA,#59,NSW5_OVERMOVNSEC,#00HSETBF_BEEPLCALLDELCLRF_BEEPJMPNWAIT_KEYNSW5_OVER:INCNSEC;号加SETBF_BEEPLCALLDELCLRF_BEEPJMPNWAIT_KEYNSW

27、6_OK:MOVA,NSECCJNEA,#00,NSW6_OVERMOVNSEC,#59SETBF_BEEPLCALLDELCLRF_BEEPJMPNWAIT_KEYNSW6_OVER:DECNSEC;号减SETBF_BEEPLCALLDEL11#CLRF_BEEP67JMP NWAIT_KEYT1_INT: PUSHACCPUSHPSWMOVTH1,#0F0H;T1=4MSMOVTL1,#060HINCLED_LPMOVA,LED_LPCJNEA,#250,RCONT_SCAN;250*4MS=1SMOVLED_LP,#00HINCSECMOVA,SECCJNEA,#60,RCONT_SCA

28、NMOVSEC,#00HINCMINMOVA,MINCJNEA,#60,RCONT_SCANMOVMIN,#00HINCHORMOVA,HORCJNEA,#24,RCONT_SCANMOVHOR,#00HLCALL DEL79RCONT_SCAN:JNB SW0,LPP1JNBSW7,LPP2MOVA,YERLCALLBIN_BCDMOVLED2,BMOVLED1,AMOVA,MOTLCALLBIN_BCDMOVLED4,BMOVLED3,AMOVA,DATLCALLBIN_BCDMOVLED6,BMOVLED5,AMOVA,LED_LPMOVB,#08DIVABMOVA,BRLAMOVDPTR,#RTABJMPA+DPTRRTAB_SCAN:AJMP RSCAN_L1AJMPRSCAN_L2AJMPRSCAN_L3AJMPRSCAN_L4AJMPRSCAN_L5AJMPRSCAN_L6RSCAN_L7RSCAN_L8RSCAN_L1: MOVDIG_PORT,#0MOVA,LED1JMPREND_SCANRSCAN_L2: MOVDIG_PORT,#1MOVA,LED2JMPREND_SCANRSCAN_L3: MOVDIG_PORT,#2MOVA,#12SCANAJMPAJMPJMPREND_SCANRSCAN_L4: MOVDIG_PO

温馨提示

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

评论

0/150

提交评论