单片机数字时钟课程设计资料
- 格式:doc
- 大小:1.07 MB
- 文档页数:24
数字电子钟单片机课程设计一、课程目标知识目标:1. 学生能理解数字电子钟的基本工作原理,掌握单片机在数字电子钟中的应用。
2. 学生能掌握数字电子钟的各功能模块(如计时、闹钟、显示等)的设计与实现。
3. 学生了解并掌握数字电子钟程序编写的基本方法,学会运用编程语言(如C 语言)进行程序设计。
技能目标:1. 学生能运用所学知识,设计并制作一个简易的数字电子时钟,具备基本的时间显示、闹钟等功能。
2. 学生能够独立完成程序编写,实现数字电子钟的基本功能,并具备一定的调试与优化能力。
3. 学生能够通过团队合作,发挥各自专长,共同完成课程设计任务。
情感态度价值观目标:1. 学生在课程学习中,培养对电子技术的兴趣和爱好,激发创新意识。
2. 学生通过实践活动,培养动手能力、解决问题的能力和团队协作精神。
3. 学生在学习过程中,树立正确的价值观,认识到科技对生活的重要性,增强社会责任感。
本课程针对高年级学生,课程性质为实践性较强的设计与制作类课程。
学生在前期课程中已具备一定的电子技术基础和编程能力,本课程旨在巩固和拓展这些知识。
在教学过程中,要求教师注重引导学生主动探索、实践,鼓励学生发挥创新能力,同时关注学生的个体差异,提供有针对性的指导。
通过课程目标的实现,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续相关课程的学习打下坚实基础。
二、教学内容1. 数字电子钟原理及单片机基础:包括时钟电路、计数器、寄存器等基本原理,以及单片机的内部结构、工作原理和编程接口。
- 教材章节:第一章 电子时钟原理;第二章 单片机基础- 内容列举:时钟电路设计、计数器应用、寄存器配置、单片机内部结构、I/O 口编程。
2. 数字电子钟功能模块设计:讲解并实践计时、闹钟、显示等模块的设计方法。
- 教材章节:第三章 数字电子钟设计;第四章 模块化设计- 内容列举:计时模块、闹钟模块、显示模块设计,模块间通信协议。
3. 程序设计与编写:学习数字电子钟的程序编写方法,运用C语言进行程序设计。
单片机数课字程钟设设报计告报告●设计目的:1、熟悉MCS-51指令,以及基本程序的编写/子程序的调用/调试的方法;2、学习定时/计数器的使用,掌握定时/计数器的编程方法;3、加强对MCS-51单片机存储器结构的了解,以及堆栈的使用,PUSH、MOV、JB、MOVC等指令和ORG、EQU、DB等指令的用法;4、根据跑马灯的不同循环模式设计出相应的程序,使跑马灯实现不同的灯光效果。
5、学习将程序从电脑捎入单片机的方法。
●设计要求:设计的程序必须满足以下要求:当按下电路板上4※4行列式键盘上相应的按键时,将能够完成不同的功能:1、F1:进入计算功能,数据与显示归零,按数字键(0~9)输入数据,按“+”、“—”进行加减运算,数码管显示键入数据或运算结果。
2、F2:进入时钟显示,数码管显示为时间状态。
3、F3:进入时间设置功能,当前设置位闪烁,键入数字设定时间,设定完成后按F2确认。
4、F4:进入跑马灯功能,有四种跑马灯模式可以循环切换,当然也可通过编程实现更多的模式。
●设计电路图:●程序流程图:1、时钟功能的程序流程图:计算器程序流程图跑马灯程序流程图时钟程序流程图程序:SUDAT00 EQU 40H ;加(减数)SUDAT01 EQU 41H SUDAT02 EQU 42H SUDAT03 EQU 43HSUDAT10 EQU 44H ;加(被减数)SUDAT11 EQU 45H SUDAT12 EQU 46H SUDAT13 EQU 47HDISPDAT0 EQU 29H ;显示数据区DISPDAT1 EQU 2AH DISPDAT2 EQU 2BH DISPDAT3 EQU 2CH DISPDAT4 EQU 2DHDISPDAT5 EQU 2EH DISPDAT6 EQU 2FH DISPLONG EQU 31H ;显示长度DISPCON EQU 32H ;显示计位KEYDAT EQU 30H ;键码HOURH EQU 34H ;时间数据HOURL EQU 35H MINH EQU 36HMINL EQU 37H LEDMOD EQU 39H ;流水灯模式SUCON EQU 3AH ;输入计数SUBIT EQU 20H.1 ;减标示DP EQU 20H.2 ;秒显标示KEYBIT EQU 20H.3 ;有键码标示SU EQU 20H.4 ;计算标示TIME EQU 20H.5 ;时间标示TIMESET EQU20H.6 ;时间设置标示;ORG 0000HAJMP STARTORG 0003HRETIORG 000BHAJMP TIME0ORG 0013HRETIORG 001BHLJMP TIME1ORG 0023HRETI;-------------------------------ORG 0050HSTART:MOV A,#00HMOV R0,#20HMOV R1,#30HLOOP0:MOV @R0,AINC R0DJNZ R1,LOOP0MOV SP,#50HMOV DISPLONG,#07SETB RS0SETB RS1MOV R0,#DISPDAT0MOV R2,#200MOV R3,#120MOV R4,#00MOV R5,#00MOV R6,#0FEHMOV R7,DISPLONGCLR RS0MOV R2,#50MOV R3,#30CLR RS1MOV LEDMOD,#02MOV DISPLONG,#07MOV DISPCON,#07MOV KEYDAT,#0FFHSETB TIMEMOV TL0,#0AH ;1E定时2.5MSMOV TH0,#0F7HMOV IE,#8AH ;开T0,T1MOV TMOD,#11H ;定时方式1SETB TR0MOV TL1,#00H ;定时10MSMOV TH1,#0DCHSETB TR1MAIN:ACALL KEYJNB KEYBIT,MAIN1ACALL DOKEYMAIN1:JB TIME,MAIN2JB TIMESET,MAIN2JB SU,MAIN3MAIN2:MOV R0,#HOURHMOV R1,#DISPDAT0 MOV R2,#04H MAINLOOP:MOV A,@R0 ;时间转七段码送显示数据区MOV DPTR,#TABMOVC A,@A+DPTRMOV C,DPMOV ACC.7,CMOV @R1,AINC R0INC R1DJNZ R2,MAINLOOP SJMP MAINMAIN3:MOV R0,#SUDAT00 ;计算数转段码送显区MOV R1,#DISPDAT0 MOV R2,#04HSJMP MAINLOOP ;;;;;;;;;;;;;;;;;;;; TAB:DB40H,79H,24H,30H,19H DB12H,02H,78H,00H,10H DB7FH,7FH,7FH,7FH,7FH,7FH ;0A-0FF全黑;;;;;;;;;;;;;;;;;;;;;;; ;;;显示子程序;R0显示数址,R6位选值, R7显示计数,DISPL0NG显示数长度;DISPDATA0显示数据区首址DISPLAY:MOV P2,#0FFHMOV P0,@R0MOV P2,R6INC R0DJNZ R7,DISPLAY1 MOV R7,DISPLONG MOV R0,#DISPDAT0MOV R6,#0FEHSJMP DISPOUTDISPLAY1:MOV A,R6RL AMOV R6,ADISPOUT:RET;;;;;;;;;;;;;;;;;;;;;;;;;;; 键盘扫描程序;KEYDAT存放键码,双键按下时只认前键;KEYBIT有键标示KEY:MOV P1,#0F0HMOV A,P1ORL A,#0FHXRL A,#0FFHJZ KEYOUT0MOV A,#60HLCALL DELAYMOV P1,#0F0HMOV A,P1ORL A,#0FHXRL A,#0FFHJZ KEYOUT0MOVP1,#0FEH ;KEYDAT存放键码JNB P1.4,KEY1JNB P1.5,KEY2JNB P1.6,KEY3JNB P1.7,KEY4MOV P1,#0FDHJNB P1.4,KEY5JNB P1.5,KEY6JNB P1.6,KEY7JNB P1.7,KEY8MOV P1,#0FBHJNB P1.4,KEY9JNB P1.5,KEY10JNB P1.6,KEY11JNB P1.7,KEY12MOV P1,#0F7HJNB P1.4,KEY13JNB P1.5,KEY14JNB P1.6,KEY15JNB P1.7,KEY16MOV KEYDAT,#0FFHCLR KEYBITKEYOUT0:AJMP KEYOUT1KEY1:MOV KEYDAT,#0AHSJMP KEYOUTKEY2:MOV KEYDAT,#09HSJMP KEYOUTKEY3:MOV KEYDAT,#08HSJMP KEYOUTKEY4:MOV KEYDAT,#07HSJMP KEYOUTKEY5:MOV KEYDAT,#0BHSJMP KEYOUTKEY6:MOV KEYDAT,#06HSJMP KEYOUTKEY7:MOV KEYDAT,#05HSJMP KEYOUTKEY8:MOV KEYDAT,#04HSJMP KEYOUTKEY9:MOV KEYDAT,#0CHSJMP KEYOUTKEY10:MOV KEYDAT,#03HSJMP KEYOUTKEY11:MOV KEYDAT,#02HSJMP KEYOUTKEY12:MOV KEYDAT,#01H SJMP KEYOUTKEY13:MOV KEYDAT,#0DH SJMP KEYOUTKEY14:MOV KEYDAT,#0EH SJMP KEYOUTKEY15:MOV KEYDAT,#00H SJMP KEYOUTKEY16:MOV KEYDAT,#0FH KEYOUT:SETB KEYBITMOV P1,#0F0HMOV A,P1ORL A,#0FH XRL A,#0FFH JNZ KEYOUT MOV A,#100H LCALL DELAY KEYOUT1:RET;;;;;;;;;;;;;;;;;;;;; ;;;;;;;键盘处理,; SU计算标志,TIME时间标志,TIMSET时间设置标志;SUCON计算输入位数 ,TSETCON时间设置位数;DISPCON显示位数;SUDAT00-03加数(减数),SUDAT10-13 加数(被减数);LEDMOD流水灯模式, TSETCON时间设置位数,DISPCON显示位数;ADDBIT加法标示,SUBBIT 减法标示DOKEY:MOV A,KEYDATCLR CSUBB A,#10H ;大于16为错码JNC DONEXTCLR CMOV A,KEYDATSUBB A,#0AH ;大于10为功能键,小于10为数字键JC NEXTMOV B,#03MUL ABMOV DPTR,#DOFKEY ;功能键处理JMP @A+DPTRDOFKEY:LJMP DOFKEY1LJMP DOFKEY2LJMP DOFKEY3LJMP DOFKEY4LJMP DOFKEY5LJMP DOFKEY6NOPNOPDONEXT:LJMPDOKEYOUTNEXT:LJMP DOSKEYDOFKEY1:;计算功能LCALL TIMDBJNB TIMESET,DOFKEY11PUSH PSWSETB RS0SETB RS1MOV R2,#200MOV R3,#120POP PSWDOFKEY11:SETBSU ;SU计算标志CLR TIME ;TIME时间标志CLRTIMESET ;TIMSET时间设置标志MOVSUCON,#04H ;SUCON计算输入位数SETB DPCLR SUBITMOV SUDAT00,#00HMOV SUDAT01,#00HMOV SUDAT02,#00HMOV SUDAT03,#00HMOV SUDAT10,#00HMOV SUDAT11,#00HMOV SUDAT12,#00HMOV SUDAT13,#00HLJMP DOKEYOUTDOFKEY2:;计时功能LCALL TIMDBJNB TIMESET,DOFKEY21PUSH PSWSETB RS0SETB RS1MOV R2,#200MOV R3,#120POP PSWDOFKEY21:SETB TIMECLR SUCLR TIMESETMOV SUCON,#00HSETB DPLJMP DOKEYOUTDOFKEY3:;时间设置功能LCALL TIMDBSETB TIMESETCLR TIMECLR SUMOV SUCON,#00HSETB DPLJMPDOKEYOUTDOFKEY4: ;流水灯功能MOV A,LEDMODCLR CSUBB A,#01HJNC DOFKEY40MOV LEDMOD,#03 MOV DISPLONG,#04H LJMP DOKEYOUT DOFKEY40:MOV LEDMOD,AMOV DISPLONG,#07H ;DISPLONG显示位数MOV LEDMODCJNE A,#02H,DOFKEY41MOV DISPDAT4,#00H MOV DISPDAT5,#00H MOV DISPDAT6,#00H LJMP DOKEYOUT DOFKEY41:MOV DISPDAT4,#24H MOV DISPDAT5,#92H MOV DISPDAT6,#49H LJMP DOKEYOUT DOFKEY5: ;加号处理MOV R4,SUDAT00 MOV R5,SUDAT01 MOV R6,SUDAT02 MOV R7,SUDAT03 MOV R0,SUDAT10 MOV R1,SUDAT11 MOV R2,SUDAT12 MOV R3,SUDAT13 LCALL BADDMOV SUCON,#04H CLR SUBITLJMP DOKEYOUT DOFKEY6: ;减号处理 MOV R4,SUDAT00MOV R5,SUDAT01MOV R6,SUDAT02MOV R7,SUDAT03MOV R0,SUDAT10MOV R1,SUDAT11MOV R2,SUDAT12MOV R3,SUDAT13LCALL BADDMOV SUCON,#04HSETB SUBITLJMP DOKEYOUTDOSKEY:;数字键处理JB SU,DOSKEY1JBTIMESET,DOSKEY2 ;时间设定LJMP DOKEYOUTDOSKEY1:MOV A,SUCONCJNE A,#04H,DOSKEY10MOV SUDAT00,#00HMOV SUDAT01,#00HMOV SUDAT02,#00HMOV SUDAT03,#00HDOSKEY10:MOV A,SUCONJZ DOKEYOUTMOV SUDAT00,SUDAT01MOV SUDAT01,SUDAT02MOV SUDAT02,SUDAT03MOV SUDAT03,KEYDATDEC SUCONLJMPDOKEYOUTDOSKEY2:MOV A,SUCON ;设定时间ADD A,SUCONMOV DPTR,#DOSKEY20JMP @A+DPTRDOSKEY20:SJMP DOSKEY21SJMP DOSKEY22SJMP DOSKEY23SJMP DOSKEY24DOSKEY21:MOV A,KEYDAT ;设定小时高位CLR CSUBB A,#03JNC DOKEYOUTMOV HOURH,KEYDATSJMP DOSKEY25DOSKEY22:MOV A,HOURH ;设定小时低位CJNE A,#02,NE1MOV A,KEYDATCLR CSUBB A,#4JNC DOKEYOUTNE1:MOV HOURL,KEYDATSJMP DOSKEY25DOSKEY23:MOV A,KEYDAT ;设分高位CLR CSUBB A,#6JNC DOKEYOUTMOV MINH,KEYDATSJMP DOSKEY25DOSKEY24:MOV MINL,KEYDAT ;设分低位DOSKEY25:LCALL SU10T08LCALL TIMDBINC SUCONMOV A,SUCONCLR CSUBB A,#4JC DOKEYOUTMOV SUCON,#00HDOKEYOUT:CLR KEYBIT MOVKEYDAT,#0FFH ;0FFH 为无键码指示 RET;;;;;;;;;;;;TIME0;;;;;;;;;用第三组寄存器,MINL 分钟低位,MINH 分钟高位 ;HOURL 小时低位,HOURH 小时高位;R4分钟数<60,R5小时数<24 ,R2为2.5MS 计数,R3为0.5S 计数;DP 秒闪标示TIME0: ;T0计时 PUSH ACC MOV F0,C PUSH PSW SETB RS0 SETB RS1 MOVTL0,#0AH ;1E 定时2.5MSMOV TH0,#0F7H SETB TR0 ACALLDISPLAY ;0.25MS 显示一位DJNZ R2,TIMEOUT MOV R2,#200 ;200*0.25MS=0.5S JB SU ,TIME00 CPL DP TIME00:DJNZ R3,TIMEOUT MOV R3,#120 ;120*0.5S=60S INC R4 ;R4计分钟值,满60向R5进位 MOV A ,R4 CLR CSUBB A ,#60JC TIME01 MOV R4,#00 INC R5 ;R5计小时值 TIME01:MOV A,R4 ;将R5值化为十进制数 MOV B ,#10 DIV AB MOV MINH ,A MOV MINL ,B MOV A ,R5 CLR CSUBB A ,#24 JC TIME02 MOV R5,#00 TIME02:MOV A ,R5 MOV B ,#10 DIV ABMOV HOURH ,A MOV HOURL ,B TIMEOUT:POP PSWMOV C ,PSW.1 POP ACC RETI;;;;;;;;;;;;;;;;;;;;;;;;TIME1: ;T1计时,用于跑马灯和控制时间设置闪烁 PUSHACC ;R2计数时间闪烁频率MOV F0,C ;r3计数跑马灯频率PUSH PSW ;R4保存时间闪动初值 CLR RS0 ;第二组寄存器SETB RS1MOV TL1,#00H ;定时10MSMOV TH1,#0DCH SETB TR1JNB TIMESET ,TI10 DJNZ R2,TI10 MOV R2,#50 MOV A ,SUCON MOV R0,#HOURH ADD A ,R0 MOV R0,A MOV A,@R0 CJNE A ,#0AH,TI11 MOV A ,R4 MOV @R0,A SJMP TI10 TI11:MOV A,@R0 MOV R4,AMOV @R0,#0AH TI10:MOV A ,LEDMOD CJNE A ,#02H,TI12 DJNZ R3,TI1OUT MOV R3,#15 ACALL LED SJMP TI1OUT TI12:DJNZ R3,TI1OUT MOV R3,#60 ACALL LED TI1OUT:POP PSWMOV C ,PSW.1 POP ACC RETI;;;;;;;;;;DELAY: ;延时程序 ,时间常数在ACC PUSH ACC DELAY1:DJNZ ACC ,$ POP ACC DJNZ ACC ,DELAYRET ;;;;;;;;;;;;;;;;;;;;;; ;流水灯子程序;LEDMOD模式,流水灯数据在DISPDAT4-6LED:MOV A,LEDMOD ADD A,LEDMOD MOV DPTR,#LED0 JMP @A+DPTR LED0:SJMP MODL1SJMP MODL2SJMP MODL3MOV DISPLONG,#04H RETRETMODL1:MOVC,DISPDAT6.7 ;右移动MOV A,DISPDAT4RLC AMOV DISPDAT4,AMOV A,DISPDAT5RLC AMOV DISPDAT5,AMOV A,DISPDAT6RLC AMOV DISPDAT6,A RETMODL2:MOVC,DISPDAT4.0 ;左移动MOV A,DISPDAT6 RRC AMOV DISPDAT6,A MOV A,DISPDAT5 RRC AMOV DISPDAT5,A MOV A,DISPDAT4 RRC AMOV DISPDAT4,A RET MODL3:MOVC,DISPDAT4.7 ;灯从左全亮后又到全灭CPL CMOV A,DISPDAT5RLC AMOV DISPDAT5,AMOV A,DISPDAT6RLC AMOV DISPDAT6,AMOV A,DISPDAT4RLC AMOV DISPDAT4,ARET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;十进制加法子程序;入口R0-3,R4-7,出口R4-7SUADD:MOV A,R3ADD A,R7DA AMOV C,ACC.4ANL A,#0FHMOV R7,AMOV A,R2ADDC A,R6DA AMOV A,ACC.4ANL A,#0FHMOV R6,AMOV A,R1ADDC A,R5DA AMOV C,ACC.4ANL A,#0FHMOV R5,AMOV A,R0ADDC A,R4DA AMOV R4,ARET;;;;;;;;;;;;;;;;;;;;;;;;;;;DOBM:;求补码MOV A,#99HCLR CSUBB A,R4MOV R4,AMOV A,#09HCLR CSUBB A,R5MOV R5,AMOV A,#09HCLR CSUBB A,R6MOV R6,AMOV A,#0AHCLR CSUBB A,R7MOV R7,ARET;;;;;;;;;;BUM: ;负数显示数(补码还原)MOV A,#99HCLR CSUBB A,R4MOV R4,AMOV A,#09HCLR CSUBB A,R5MOV R5,AMOV A,#09HCLR CSUBB A,R6MOV R6,AMOV A,#09HCLR CSUBB A,R7MOV R7,AMOV R0,#00HMOV R1,#00HMOV R2,#00HMOV R3,#01H ACALL SUADDANL A,#0FH MOV R4,ARET;;;;;;;;;;;BADD: ;带符号十进制加法JNB SUBIT,BADD1ACALL DOBM ;负时求补码BADD1:ACALL SUADD ;相加 ANL A,#0E0H JZ BADD2MOV A,R4ANL A,#0FH ORL A,#90H MOV R4,AMOV SUDAT10,R4 MOV SUDAT11,R5 MOV SUDAT12,R6 MOV SUDAT13,R7 ACALL BUMMOV SUDAT00,R4 MOV SUDAT01,R5 MOV SUDAT02,R6 MOV SUDAT03,R7 RETBADD2:MOV A,R4ANL A,#0FHMOV R4,AMOV SUDAT10,R4MOV SUDAT11,R5MOV SUDAT12,R6MOV SUDAT13,R7MOV SUDAT00,R4MOV SUDAT01,R5MOV SUDAT02,R6MOV SUDAT03,R7RET ;;;;;;;;;;;;;;;;;;;;;;;;;;SU10T08: ;十进制化为16进制PUSH PSWSETB RS0SETB RS1MOV A,HOURHMOV B,#10MUL ABADD A,HOURLMOV R5,AMOV A,MINHMOV B,#10MUL ABADD A,MINLMOV R4,APOP PSWRET;;; ; ;;;;;;;;;;;;TIMDB:;将时间计数化为十进制PUSH PSWSETB RS0SETB RS1MOVA,R4 ;将R4值化为十进制数MOV B,#10DIV ABMOV MINH,AMOV MINL,BMOVA,R5 ;将R5值化为十进制数MOV B,#10DIV ABMOV HOURH,AMOV HOURL,BPOP PSWRETEND结论:将MCS-51单片机学习板上相应的元器件用锡焊好以后,把按照课程设计要求的所需的程序捎入单片机中,然后通电对其进行调试。
设计任务书 (I)第一章绪论 (1)1.1课程设计的意义 (1)第二章电路设计方案............................................2.1数字电子中4的基本原理......................................2.2第三章电路的安装与调试........................................3.1电路的选用.................................................设计小节.....................................................致谢...........................................................参考文献......................................................附录A......................................................附录B.....第一章绪论1.1课程设计的意义在高新技术日新月异的今天,科学技术已经成为整个社会发展的源动力,电子领域的发展更是令人目不暇接,在其推动下,现代电子产品几乎渗透了社会的各个领域,遍迹了千家万户,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
使课程设计越来越受到人们的重视,通过课程设计。
可以设计出更好更新的科技产品,这将给科技的发展带来很好的积极作用,也使科技的水平得到一定的提高。
同时也可以提高同学们的逻辑思维能力和创新意识。
电子技术密切联系实际,实用性很强,开展电子技术课程设计在电子电气类我认为非常重要,不近可以学好专业知识,还可以增强动手能力,有利于我们适应未来这个竞争激烈的社会,训练我们综合运用知识能力资料素材的查阅及收集能力,电子元气件的采购,电子电路的组装和调试能力,特别是在电路;多样化的创新方面,从理性和感性上都得到了很大的提高,经过查阅资料,选择方案,设计电路,等过程。
单片机数字时钟课程设计一、课程目标单片机数字时钟课程设计旨在让八年级学生在巩固已学电子技术知识的基础上,通过实践操作,实现以下目标:1. 知识目标:(1)理解单片机的基本原理,掌握其编程方法;(2)掌握数字时钟的构成和工作原理;(3)学会使用相关电子元件,如LED显示屏、时钟芯片等。
2. 技能目标:(1)能够运用C语言进行单片机编程,实现数字时钟的基本功能;(2)通过动手实践,提高电路搭建和调试能力;(3)培养团队协作和问题解决能力。
3. 情感态度价值观目标:(1)激发学生对电子技术的兴趣,培养创新精神和动手实践能力;(2)养成严谨的学习态度,提高自主学习能力;(3)培养学生关爱环境、珍惜资源的意识,强化责任感。
本课程针对八年级学生的认知特点,注重理论与实践相结合,以学生为主体,教师为主导。
通过本课程的学习,学生能够将所学知识应用于实际项目中,提高综合运用能力,培养科学精神和创新意识。
课程目标分解为具体学习成果,便于后续教学设计和评估。
二、教学内容依据课程目标,教学内容围绕单片机数字时钟设计与实现展开,包括以下部分:1. 理论知识:(1)单片机原理及编程基础,参考教材第3章;(2)数字时钟工作原理及电路设计,参考教材第5章;(3)C语言编程及应用,参考教材第4章。
2. 实践操作:(1)数字时钟电路搭建,使用LED显示屏、时钟芯片等元件;(2)单片机编程,编写控制程序,实现时钟显示、校时等功能;(3)调试与优化,对搭建的数字时钟进行调试,确保其稳定运行。
3. 教学大纲:第1周:回顾单片机原理及编程基础,学习数字时钟工作原理;第2周:学习C语言编程,编写简单的数字时钟程序;第3周:设计数字时钟电路,进行电路搭建;第4周:编程实现数字时钟功能,进行调试与优化。
教学内容注重科学性和系统性,结合教材章节内容,以实践操作为主,使学生能够将理论知识与实际应用紧密结合,提高综合运用能力。
同时,教学进度安排合理,确保学生在规定时间内完成课程学习。
单片机数字时钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和编程方法,掌握数字时钟的设计与实现过程。
2. 使学生掌握数字时钟的显示原理,包括时、分、秒的显示和调整方法。
3. 让学生了解单片机与其他硬件设备(如LED显示屏、按键等)的接口技术。
技能目标:1. 培养学生运用单片机编程实现数字时钟功能的能力。
2. 培养学生运用所学知识解决实际问题的能力,如调试程序、排查故障等。
3. 提高学生的动手实践能力,能够独立完成数字时钟的搭建和调试。
情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学生的创新意识和探索精神。
2. 培养学生团队协作精神,学会在合作中解决问题,共同完成任务。
3. 培养学生严谨的学习态度和良好的学习习惯,注重实践与理论相结合。
分析课程性质、学生特点和教学要求:1. 课程性质:本课程为单片机应用实践课程,注重理论联系实际,培养学生的动手能力和创新能力。
2. 学生特点:学生已具备一定的单片机基础知识,有一定的编程基础,但实践能力有待提高。
3. 教学要求:以学生为主体,教师为主导,采用项目式教学,引导学生主动探究和解决问题。
二、教学内容1. 理论知识:- 单片机原理及编程基础回顾;- 数字时钟的原理与设计思路;- 单片机与其他硬件设备的接口技术。
2. 实践操作:- 数字时钟的硬件搭建,包括LED显示屏、按键等;- 单片机程序编写,实现时、分、秒的显示与调整;- 程序调试与故障排查。
3. 教学大纲:- 第一阶段(1课时):单片机原理及编程基础回顾;- 第二阶段(2课时):数字时钟原理学习,设计思路讲解;- 第三阶段(2课时):硬件搭建与程序编写;- 第四阶段(1课时):程序调试与故障排查;- 第五阶段(1课时):成果展示与总结。
4. 教材关联:- 教材第3章:单片机原理及编程基础;- 教材第4章:数字时钟设计与实现;- 教材第5章:单片机与其他硬件设备接口技术。
单片机课程设计数字时钟设计学院:机电工程学院专业:农业电气化与自动化班级:10级农电一班姓名:学号:指导教师:2013年1月5日课程设计(论文)任务书题目:数字电子钟任务与要求:1. 设计数字时钟,能显示时、分、秒;2. 整点采用声音报时功能;3.按键调时、分时间: 2012 年12 年28 日至2013 年1月5 日共9 天摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善.本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS245译码器的工作原理和与,LED连接的方法。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、BCD—锁存/7段译码/驱动器74LS245等),再配以相应的软件,是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。
此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。
而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
通过它可以进一步学习与掌握单片机原理与使用方法。
关键词:单片机AT89C51 共阴极LED数码显示器74LS245译码器目录摘要 (1)目录 (3)第一章数电字子钟的背景、意义、应用 (4)第二章单片机和数字钟的基本知识 (5)2.1应用知识简介 (5)2.2单片机数字钟的基本原理 (6)第三章系统硬件电路的设计 (6)3.1单片机的基本结构 (6)3.274LS245引脚图及功能: (9)3.3七段数码管的引脚图及使用: (11)3。
单片机数字钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握数字时钟的工作机制;2. 学生能描述数字时钟的各个模块功能,如时钟电路、计数器、显示电路等;3. 学生能运用所学编程语言,如C语言,编写数字时钟的程序代码。
技能目标:1. 学生能运用单片机开发工具进行程序编写、调试和下载;2. 学生能动手搭建数字时钟硬件电路,实现时钟的显示和计时功能;3. 学生能通过实际操作,掌握基本电路故障排查和程序调试技巧。
情感态度价值观目标:1. 学生培养对单片机及电子制作的兴趣,激发创新意识和动手能力;2. 学生在团队协作中学会沟通、分享和承担责任,培养合作精神;3. 学生通过解决实际问题,体会科技对社会发展的作用,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合理论教学和动手操作,让学生在实际操作中掌握单片机数字时钟的制作。
学生特点:学生具备一定的电子基础知识,对单片机有一定了解,喜欢动手实践,具有较强的求知欲和好奇心。
教学要求:注重理论与实践相结合,强调学生在操作过程中掌握知识,培养学生动手能力、创新意识和团队协作能力。
通过课程学习,使学生能够独立完成单片机数字时钟的设计与制作。
二、教学内容1. 理论知识:- 单片机原理:介绍单片机的硬件结构、工作原理和编程方法;- 数字时钟原理:分析数字时钟的组成、工作原理及各模块功能。
2. 实践操作:- 硬件设计:指导学生设计数字时钟的硬件电路,包括时钟电路、计数器、显示电路等;- 程序编写:教授学生使用C语言编写单片机程序,实现数字时钟的功能;- 调试与下载:教授学生如何使用开发工具进行程序调试和下载。
3. 教学大纲:- 第一周:单片机原理学习,了解数字时钟的基本原理;- 第二周:分析数字时钟各模块功能,学习C语言编程基础;- 第三周:设计数字时钟硬件电路,编写程序代码;- 第四周:进行程序调试,搭建完整的数字时钟系统。
4. 教材关联:- 教材第一章:单片机原理及其应用;- 教材第二章:数字电路设计基础;- 教材第三章:C语言编程基础;- 教材第四章:单片机程序设计与实践。
单片机数学钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基础知识,掌握其工作原理和编程方法。
2. 使学生掌握数字时钟的原理,包括时、分、秒的计算与显示。
3. 帮助学生了解数学在单片机编程中的应用,如时间计算、数值转换等。
技能目标:1. 培养学生运用单片机进行数字时钟编程的能力,学会编写相关程序代码。
2. 提高学生动手实践能力,能够自行设计、搭建并调试单片机数学钟。
3. 培养学生运用数学知识解决实际问题的能力,提高问题分析及解决能力。
情感态度价值观目标:1. 激发学生对单片机及编程的兴趣,培养主动学习的习惯。
2. 培养学生的团队协作精神,提高沟通与交流能力。
3. 增强学生对科技与数学的热爱,树立创新意识,培养探索精神。
课程性质:本课程为实践性较强的课程,结合单片机技术、数学知识及编程技能,旨在提高学生的动手实践能力和问题解决能力。
学生特点:学生具备一定的数学基础和编程知识,对单片机有一定了解,但实践经验不足。
教学要求:注重理论与实践相结合,强调动手实践,鼓励学生自主探究,培养学生解决问题的能力和创新意识。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高综合运用能力。
二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理及编程环境,重点讲解51单片机的内部结构、指令系统及I/O口操作。
- 教材章节:第一章单片机基础知识2. 数字时钟原理:讲解数字时钟的时、分、秒计算方法,以及如何通过单片机实现数字时钟的功能。
- 教材章节:第三章数字时钟原理与应用3. 数学知识应用:介绍数学在单片机编程中的应用,如数值转换、时间计算等。
- 教材章节:第二章数学基础知识及其在单片机中的应用4. 编程实践:指导学生使用C语言或汇编语言编写单片机程序,实现数字时钟功能。
- 教材章节:第四章单片机编程实践5. 动手实践:学生自行设计、搭建单片机数学钟电路,并调试程序。
- 教材章节:第五章单片机系统设计与实践6. 项目展示与评价:学生展示作品,进行交流与评价,总结学习收获。
多功能电子数字钟设计数字钟在日常生活中最常见, 应用也最广泛。
本文主要就是设计一款数字钟, 以89C52单片机为核心, 配备液晶显示模块、时钟芯片、等功能模块。
数字钟采用24小时制方式显示时间, 定时信息以及年月日显示等功能。
文章的核心主要从硬件设计和软件编程两个大的方面。
硬件电路设计主要包括中央处理单元电路、时钟电路、人机接口电路、信号处理电路、执行电路等几部分组成。
软件用C语言来实现, 主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。
关键词单片机液晶显示器模块数字钟一硬件电路设计及描述;1.MCS-51单片机单片机是在一块硅片上集成了各种部件的微型计算机。
这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的结构特点有以下几点: 8位CPU;片内振荡器及时钟电路; 32根I/O线;外部存储器ROM和RAM;寻址范围各64KB;两个16位的定时器/计数器; 5个中断源, 2个中断优先级;全双工串行口。
定时器/计数器8051内部有两个16位可编程定时器/计数器, 记为T0和T1。
16位是指他们都是由16个触发器构成, 故最大计数模值为2 -1。
可编程是指他们的工作方式由指令来设定, 或者当计数器来用, 或者当定时起来用, 并且计数(定时)的范围也可以由指令来设置。
这种控制功能是通过定时器方式控制寄存器TMOD来完成的。
在定时工作时, 时钟由单片机内部提供, 即系统时钟经过12分频后作为定时器的时钟。
技术工作时, 时钟脉冲由TO和T1输入。
中断系统8051的中断系统允许接受五个独立的中断源, 即两个外部中断申请, 两个定时器/计数器中断以及一个串行口中断。
外部中断申请通过INTO和INT1(即P3.2和P3.3)输入, 输入方式可以使电平触发(低电平有效), 也可以使边沿触发(下降沿有效)。
2.8051的芯片引脚如图1-2所示VCC: 供电电压。
单片机数字钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握数字钟的电路构成和工作原理。
2. 使学生掌握单片机编程的基本方法,能够运用C语言编写简单的数字钟程序。
3. 帮助学生了解数字钟的各个模块功能,如时钟电路、计数器、显示电路等。
技能目标:1. 培养学生动手搭建数字钟电路的能力,提高实践操作技能。
2. 培养学生运用编程软件进行程序编写、调试和优化单片机程序的能力。
3. 培养学生分析问题、解决问题的能力,能够解决数字钟运行过程中出现的故障。
情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学生的求知欲和探索精神。
2. 培养学生团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。
3. 培养学生严谨的科学态度,注重实验数据的真实性,养成认真负责的学习习惯。
课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,旨在培养学生的动手能力、编程能力和问题解决能力。
学生特点:学生为初中生,具备一定的电子知识基础,对单片机有一定了解,喜欢动手实践,对新鲜事物充满好奇心。
教学要求:教师需结合学生特点,以引导为主,讲解与实践相结合,注重培养学生的自主学习能力和团队合作精神。
在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能达到课程目标。
通过课程学习,使学生能够独立完成数字钟的搭建和程序编写,提高综合运用知识的能力。
二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理,重点讲解AT89C52单片机的内部结构、引脚功能及特性。
教材章节:第一章 单片机概述,第二节 AT89C52单片机简介2. 数字钟电路设计:讲解数字钟的电路构成,包括时钟电路、计数器、显示电路等模块,分析各模块之间的连接关系。
教材章节:第二章 数字钟电路设计,第一节 数字钟概述,第二节 电路模块介绍3. 单片机编程:教授C语言编程基础,以数字钟为例,讲解程序设计思路、流程及编程技巧。
数字时钟单片机课程设计一、课程目标知识目标:1. 学生能理解数字时钟单片机的基本原理,掌握单片机的硬件结构和软件编程方法。
2. 学生能运用所学的单片机知识,设计并实现一个具有基本功能的数字时钟。
3. 学生了解数字时钟的显示原理,掌握时间计算和显示的编程技巧。
技能目标:1. 学生能够独立完成数字时钟单片机的硬件连接和程序编写,具备实际操作能力。
2. 学生通过课程学习,培养解决实际问题的能力,学会调试程序,找出并解决问题。
3. 学生能够运用所学知识,进行创新设计,提高动手实践能力。
情感态度价值观目标:1. 学生在学习过程中,培养对单片机技术的兴趣,提高对电子技术的认识。
2. 学生通过团队合作,培养沟通协作能力,增强团队精神。
3. 学生在课程实践中,体会科技改变生活的实际应用,激发创新意识。
课程性质:本课程为实践性较强的课程,注重培养学生的动手能力和实际操作技能。
学生特点:学生具备一定的单片机基础知识,对电子技术有较高的兴趣,喜欢动手实践。
教学要求:教师应结合学生特点,采用任务驱动法,引导学生主动探究,注重实践操作能力的培养。
在教学过程中,关注学生的个体差异,提供有针对性的指导。
通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容1. 硬件基础:介绍数字时钟单片机的硬件结构,包括处理器、时钟电路、显示模块等组成部分。
关联教材第3章“单片机硬件结构”。
- 单片机选型与特性- 时钟电路原理与设计- 显示模块工作原理与接口技术2. 程序设计:讲解数字时钟程序设计的基础知识,包括编程语言、程序结构和流程控制。
关联教材第4章“单片机编程基础”。
- 基本指令与编程语法- 时间计算与显示编程- 程序调试与优化技巧3. 系统设计与实现:引导学生进行数字时钟单片机系统的设计与实现,包括硬件连接、程序编写和功能测试。
关联教材第6章“单片机应用系统设计”。
- 硬件连接与电路搭建- 程序编写与功能实现- 系统调试与故障排除4. 创新实践:鼓励学生运用所学知识进行创新设计,提高数字时钟的功能和实用性。
第1章绪论1. 设计要求(1)系统可以按“秒”进行计时。
(2)数字时钟可以显示小时(00-23)、分钟(00-59)和秒(00-59)。
(3)可通过按键K1来选择设置“小时”、“分钟”和“秒”。
设置时可通过“加”和“减”按键(K2、K3)来调整时间;设置过程中时钟停止计时。
(4)无键按下三秒后,自动进入时钟的计时程序。
2. 设计方案采用AT89C51芯片作为硬件核心,其内部采用Flash ROM,具有4KB ROM 存储空间,能于3V的超低压工作,本系统的计时方案是利用单片机内部的定时/计数器进行中断定时,配合软件延时实现对时、分、秒的计时。
整个系统的控制方案是:上电后系统自动进入时间显示,从00:00:00 开始计时。
按下P1.0键,进入调秒状态,时钟停止计时;按P1.1或P1.2键可进行加1或减1操作;继续按P1.0键可分别进行分位、时调整;无键按下3秒钟后退出调整状态,自动进入时钟的计时和显示。
整个系统的硬件原理框图如图1.1,它采用的是AT89C51单片机,只用了P1口。
为了简化硬件电路,LED显示采用了动态扫描的方式实现,LED采用共阳极数码管,驱动电流由三极管9012提供。
为了提高计数精度,所采用的晶振频率为12MHz。
第2章硬件设计1单片机的选择本课程选用AT89C51型号的单片机。
AT89C51 是美国ATMEL 公司生产的低电压,高性能CMOS8 位单片机,片内含4k bytes 的可反复擦写的只读程序存储器(PEROM)和128 bytes 的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51 指令系统,片内置通用8 位央处理器(CPU)和Flash 存储单元,功能强大AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
主要性能参数:·与MCS-51 产指令系统完全兼容·4k 字节可重擦写Flash 闪速存储器·1000 次擦写周期·全静态操作:0Hz-24MHz·三级加密程序存储器·128×8 字节内部RAM·32 个可编程I /O 口线·2 个16 位定时/计数器2. 显示方案由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。
单片机数字钟课程设计单片机数字钟课程设计1. 硬件设计:- 使用单片机控制数字钟的显示和时间的设置功能,在电路板上连接LED数码管用于显示时间。
- 使用实时时钟芯片或者外部晶振作为时钟源,确保时间的准确性。
- 设置按键用于调整时间,包括小时、分钟和秒钟。
2. 功能设计:- 初始化功能:启动时将时间设置为00:00:00。
- 显示功能:将当前时间显示在LED数码管上,包括小时、分钟和秒钟。
- 调整时间功能:按下相应的按键,可以调整小时、分钟和秒钟,同时更新LED数码管上的显示。
- 闹钟功能:设置一个闹钟时间,并在闹钟时间到达时发出声音或者闪烁LED灯提示。
3. 软件设计:- 使用C语言编写单片机的程序,通过编程控制数码管的显示和按键的响应。
- 在程序中使用定时器中断来更新时间的显示,确保时间的准确性。
- 使用按键中断来响应按键的操作,包括调整时间和设置闹钟功能。
4. 测试与调试:- 在编写完程序后,进行测试和调试,确保各项功能的正常运行。
- 使用示波器等工具来监测时钟信号和按键信号的波形,确保硬件连接的正确性。
- 运行程序并观察LED数码管的显示,以及按键的响应情况,进行功能的验证。
5. 效果展示:- 在完成测试和调试后,将数字钟的效果展示给他人,包括时间的显示和调整、闹钟的设置和响应等功能。
- 可以将数字钟制作成实物展示,方便他人观看和操作,也可以进行演示和讲解,介绍数字钟的工作原理和设计思路。
整个单片机数字钟的课程设计过程包括硬件设计、功能设计、软件设计、测试与调试以及效果展示。
通过这个设计项目,可以锻炼学生的硬件和软件设计能力,提高他们对单片机原理和应用的理解和掌握程度。
单片机课程设计报告题目:数字时钟专业班级:电子信息工程2班姓名:江奇峰、陈雪丰一、功能能实现定时、时间的调整(只能加不能减)、闹钟的设定(只能加不能减),当闹钟按键按下就进入闹钟设定,再按下那个键就进入时间显示,并且闹钟响铃时间是10秒钟。
其整个设计的电路图如下:其中显示的是8个8段LED显示,单片机是80C51,外部晶振是12MHZ,其中和晶振连接的是两个47pF的电容。
单片机的p3.2~p3.5作为地址总线起到控制作用,p3.7在电路中我用一个电阻代替,在实际中接喇叭,起到闹钟的作用。
P0.0~p0.7作为数据总线,把单片机的信号输入到显示器上,p2.0~p2.7作为单片机的额数据总线,其作用在显示总起到位选的作用,决定8段LED的亮灭。
最下面的那个是RESPACK-8排阻,在电路中防止输入到显示的电压很小,是为输出提供电源的装置,配合显示器的显示。
在整个程序中时间的秒、分、时的计数分别存放在20H、21H、22H,闹钟的秒、分、时的计数分别存放在40H、41H、42H。
我的电路图开始的时候是用静态显示的,现在用动态显示程序还是用的是静态的,所以在一些程序不一样。
实现定时闹钟的程序有以下几个部分组成:二、流程图1、定时程序(时间的设定)其程序流程图如下:NY2、调时间的流程图YN NYNNYYN NYNNYYN NYNNY3、显示的流程图(因为显示的刚好是8个,所以不要去考虑左移的个数,直接跳转到初始值。
4、闹钟设定NYNYYNNY三、总程序ORG 0000HMOV P0,#00H MOV P2,#00H MOV SP,#60HCLR 20HCLR 21HCLR 22HCLR 40HCLR 41HCLR 42HMOV DPTR,#TAB VV: MOV R6,#1 MM: MOV R5,#4 NN: MOV R4,#100 BB: JNB P3.5,LPPSJMP LL LPP: JNB P3.5,LPP0SETB 30H AAC: MOV R3,#1 AAB: MOV R2,#4 AAA: MOV R1,#100CC0: JNB P3.2,CC1 ;判断p3.2是否为按下SJMP DD0CC1: JNB P3.2,LPP1 ;判断p3.2是否松开,松开秒钟加1 MOV A,40HADD A,#01HDA ACJNE A,#60H,CC2CLR ACC2: MOV 40H,ADD0: JNB P3.3,DD1 ;判断p3.3是否按下SJMP EE0DD1: JNB P3.3,LPP2 ;判断p3.3是否松开,松开分钟加1 MOV A,41HADD A,#01HDA ACJNE A,#60H,DD2CLR ADD2: MOV 41H,AEE0: JNB P3.4,EE1 ;判断p3.4是否按下SJMP HH1EE1: JNB P3.4,LPP3 ;判断p3.4是否松开,松开时钟加1 MOV A,42HADD A,#01HDA ACJNE A,#24H,EE2CLR AEE2: MOV 42H,AHH1:LCALL LPJNB P3.5,LP1DJNZ R1,CC0DJNZ R2,AAADJNZ R3,AABLCALL B2SJMP AACLP1:JNB P3.5,LPP4 LL: CLR 30HLCALL C0DJNZ R4,BBDJNZ R5,NNDJNZ R6,MMLCALL B2SJMP VVLPP0:LCALL LPNOPNOPNOPSJMP LPPLPP1:LCALL LPNOPNOPNOPSJMP CC1LPP2:LCALL LPNOPNOPNOPSJMP DD1LPP3:LCALL LPNOPNOPNOPSJMP EE1LPP4:LCALL LPNOPNOPNOPSJMP LP1C0: JNB P3.2,C1 ;判断p3.2是否为按下SJMP D0C1: JNB P3.2,LLP ;判断p3.2是否松开,松开秒钟加1 MOV A,20HADD A,#01HDA ACJNE A,#60H,C2CLR AC2: MOV 20H,AD0: JNB P3.3,D1 ;判断p3.3是否按下SJMP E0D1: JNB P3.3,LLP1 ;判断p3.3是否松开,松开分钟加1 MOV A,21HADD A,#01HDA ACJNE A,#60H,D2CLR AD2: MOV 21H,AE0: JNB P3.4,E1 ;判断p3.4是否按下AJMP H0E1: JNB P3.4,LLP2 ;判断p3.4是否松开,松开时钟加1 MOV A,22HADD A,#01HDA ACJNE A,#24H,E2CLR AE2: MOV 22H,AH0: LCALL LPRETLLP: LCALL LPNOP ;3个空指令是消除松开时执行指令的时间差NOPNOPSJMP C1LLP1:LCALL LPNOPNOPNOPSJMP D1LLP2:LCALL LPNOPNOPNOPSJMP E1B2: MOV A,20H ;设置秒钟ADD A,#01HDEC ACJNE A,#5FH,A1CLR AMOV 20H,AMOV A,21H ;设置分钟ADD A,#01HDA ADEC ACJNE A,#5FH,A2CLR AMOV 21H,AMOV A,22H ;设置时钟ADD A,#01HDA AMOV 22H,ACJNE A,#24H,LOOPCLR AMOV 22H,ASJMP LOOPA1: INC AMOV 20H,ASJMP LOOPMOV 21H,ALOOP:DJNZ R0,RR1SETB P3.7RR1: MOV A,42H ;比较时钟和闹钟的时间是否相等,相等把XRL A,22H ; p3.7置高电平启动闹钟CJNE A,#00H,QQMOV A,41HXRL A,21HCJNE A,#00H,QQMOV A,40HXRL A,20HCJNE A,#00H,QQCLR P3.7MOV R0,#10QQ: RETLP: MOV P2,# BJNB 30H,WWMOV A,40HSJMP WW0WW: MOV A,20H ;显示秒钟的个位WW0: MOV B,#10HMOV 50H,AMOV A,BMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示秒钟的十位RR AMOV P2,AMOV A,50HMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示'-'RR AMOV P2,AMOV P0,# BLCALL DELMOV A,P2 ;显示分钟的个位RR AMOV P2,AJNB 30H,WW1MOV A,41HSJMP WW2WW1: MOV A,21HWW2: MOV B,#10HDIV ABMOV 51H,AMOV A,BMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示分钟的十位RR AMOV P2,AMOV A,51HMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示'-'RR AMOV P2,AMOV P0,# BLCALL DELMOV A,P2 ;显示时钟的个位RR AMOV P2,AJNB 30H,WW4MOV A,42HSJMP WW5WW4: MOV A,22HWW5: MOV B,#10HDIV ABMOV 52H,AMOV A,BMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示时钟的十位RR AMOV P2,AMOV A,52HMOVC +DPTRMOV P0,ALCALL DELRETDEL: MOV R7,#150 ;显示延迟150us DJNZ R7,$RETTAB: DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FHEND总结在整个设计中我学到了在显示程序中的一些方法,比如说怎么实现动态显示,开始的时候总是显示不了,在经过把位选放慢就可以知道自己在设计程序中先显示后左移,所以没有显示的余光,使得显示出现异常。
单片机课程设计数字时钟一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解数字时钟的工作机制;2. 使学生了解数字时钟的硬件组成,掌握相关程序设计方法;3. 引导学生运用所学知识,设计并实现一个具有基本功能的数字时钟。
技能目标:1. 培养学生动手操作单片机及其外围设备的能力,提高编程技巧;2. 培养学生运用C语言进行单片机程序设计的能力;3. 培养学生团队协作、问题解决和创新能力。
情感态度价值观目标:1. 激发学生对单片机及嵌入式系统的学习兴趣,培养其主动探索精神;2. 培养学生严谨的科学态度,养成良好的编程习惯;3. 增强学生的自信心和成就感,使其认识到学习知识可以改变生活。
课程性质分析:本课程为单片机课程设计,侧重于实践操作和编程技巧的培养。
结合学生年级特点,课程内容以基础知识为主线,注重理论与实践相结合。
学生特点分析:学生已具备一定的单片机基础知识和C语言编程能力,但对数字时钟的硬件设计和程序设计尚不熟悉。
因此,课程设计应充分考虑学生的认知水平,引导他们逐步掌握数字时钟的设计方法。
教学要求:1. 注重知识点的系统性和连贯性,使学生在实践中掌握理论知识;2. 着重培养学生的动手能力、编程能力和团队协作能力;3. 结合实际案例,引导学生将所学知识应用于实际项目中,提高其问题解决能力。
二、教学内容1. 理论知识:- 单片机基本原理与结构;- 数字时钟工作原理;- C语言编程基础;- 单片机外围设备及其接口技术。
2. 实践操作:- 数字时钟硬件设计,包括时钟芯片、显示模块、电源模块等;- 数字时钟程序设计,包括时钟初始化、时间更新、显示控制等;- 单片机与外围设备的连接和调试;- 数字时钟功能的实现与优化。
3. 教学大纲:- 第一周:单片机基本原理与结构学习,了解时钟芯片功能;- 第二周:学习C语言编程基础,掌握程序设计方法;- 第三周:数字时钟硬件设计,选择合适的外围设备;- 第四周:数字时钟程序设计,实现基本功能;- 第五周:连接单片机与外围设备,进行系统调试;- 第六周:优化数字时钟功能,总结课程设计。
单片机数字电子钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基础知识,掌握数字电子时钟的原理和工作流程。
2. 学生能描述单片机编程的基本步骤,特别是与计时相关的指令和程序设计方法。
3. 学生能够解释数字电子钟各部分功能,如时钟电路、显示电路等,并了解它们之间的协作关系。
技能目标:1. 学生能够运用所学的单片机知识,设计并实现一个简单的数字电子钟程序。
2. 学生通过动手实践,提高焊接和电路排错的能力,能够组装和调试电子钟电路。
3. 学生能够利用仿真软件对电子钟程序进行测试和优化,培养问题解决和程序调试技巧。
情感态度价值观目标:1. 培养学生对电子制作的兴趣,激发创新意识和探索精神。
2. 通过团队协作完成项目,增强学生的合作意识和沟通能力。
3. 学生在课程学习过程中,能够体验到知识与实践相结合的成就感,培养科学、严谨的学习态度。
分析课程性质、学生特点和教学要求:本课程设计针对高中年级学生,假设他们已具备基础物理知识和一定的编程能力。
课程性质为实践性强的综合设计课,旨在通过单片机数字电子钟的制作,巩固学生的电子技术知识与技能。
课程目标设定时考虑了学生的年龄特点和认知水平,注重理论与实践的结合,鼓励学生动手操作和探究学习,旨在提高学生的综合技术应用能力。
通过具体的学习成果分解,本课程旨在让学生不仅学习到知识,而且能够将知识应用到实际问题的解决中,充分体现课程的实用性和创新性。
二、教学内容1. 单片机基础知识回顾:重点复习单片机的内部结构、工作原理及编程基础,关联教材第二章内容。
2. 数字电子时钟原理:讲解时钟电路、计数器、振荡器等组成部分,对应教材第四章第二节。
- 时钟电路的构成与工作原理- 计数器的作用及其编程方法- 振荡器的种类及其在电子时钟中的应用3. 单片机编程设计:结合教材第三章,介绍编写电子时钟程序所需的指令和编程技巧。
- 基本计时指令的使用- 程序流程图的绘制- 中断处理在电子时钟中的应用4. 电路设计与制作:依据教材第五章,指导学生进行电子时钟的电路设计和组装。
单片机课程设计报告——数字时钟用8031单片机CPU及串口电路设计一个时钟第一章设计阐明 (3)1.1 设计内容 (3)1.2 设计请求 (3)1.3设备及工作环境 (3)第二章硬件计划 (3)2.1 设计思路 (3)2.2 原理电路图 (4)2.3 重要元件功效阐明 (5)2.4 硬件工作原理论述 (6)第三章软件计划 (6)3.1 分析论证 (6)3.2 程序流程图 (8)3.3 程序清单 (12)第四章调试过程及成果分析 (18)第五章设计总结 (19)参考文献 (19)第一章设计阐明1. 1设计内容用8013单片机CPU及串口电路设计并实现显示时间的实时时钟。
1. 2设计请求(1)在ZY15MCU12BD型综合单片机实验箱的硬件结构上编写软件完成设计。
(2)程序的首地址应使目标机可以直接运行,即从0000H开端。
在主程序的开端部分必须设置一个合适的栈底。
程序放置的地址须持续且靠前,不要在中间留下大批的空间地址,以使目标机可以应用较少的硬件资源。
(3) 6位显示器数码管从左到右分辨显示时. 分. 秒(各占用2位),采用24小时标准计时制。
开端计时时为000000,到235959后变成000000.(4)在XD1—2键盘上选定3个键分辨作为小时. 分. 秒的调校键。
每按一次键,对应的显示值便加1。
分. 秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小时不产生转变).(5)软件设计必须应用8031片内定时器,采用定时中断结构,不得应用软件延时法。
(6)上机调试程序。
(7)写出设计报告。
2. 3设备及工作环境(1) 硬件:盘算机一台、ZY15MCU12BD型综合单片机实验箱一台、通信电缆一根。
(2) 软件:Windows操纵系统、Keil C51软件。
第二章硬件计划2.1 设计思路电子时钟重要由显示模块、校时模块和时钟运算模块三大部分组成。
单片机课程设计——简单数字钟班级:姓名:学号:指导教师:目录1.系统设计及要求 (3)2.硬件总体设计方案 (3)2.1系统功能实现总体设计思路 (3)2.2.系统工作原理 (3)2.3总电路原理图 (4)2.4.原件清单 (5)3软件总体设计方案 (6)4.总结 (16)5.参考资料 (16)一.系统设计要求1.1基本功能1. 实时显示时、分、秒2. 实现时钟对表3. 使用220V/50Hz交流电源。
4. 停电时要有备用电池维持实时时钟。
二.硬件总体设计方案本次设计始终电路,使用了STC单片机芯片控制电路,单片机控制电路简单而且省去了很多复杂的线路,使电路简明易懂,使用键盘上的按键来调整时钟的时.分,用以扬声器来进行定时提醒,同时用汇编语言程序来控制整个时钟显示。
通过四个模块:键盘.芯片.扬声器.显示屏既可满足设计要求。
2.1系统功能实现总体设计思路此设计原理框图如下图所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。
设计原理图2.2.系统工作原理本程序采用汇编语言程序设计,使单片机控制数码显示时.分,第三个小数点闪烁一下表示一秒,当闪60次时就向分进位,分计数器记慢60后向时计数器进位,小时计数器按“23翻0”规律计数。
时,分的计数结果经过数据处理可直接送显示器显示。
当计数发送误差时可以用校正电路进行校正。
2.3.总电路原理图STC89C51有40引脚,双列直插(DIP )封装,所用引脚功能如下:1.VCC ——运行时加+4.5V2.GND ——接地3.XTAL1 ——振荡器反相放大器及内部时钟发生器的输入端4.XTAL2 ——振荡器反相放大器的输出端5.RST ——复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFT AUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISRTO位缺省为RESET输出高电平打开状态。
单片机课程设计报告题目:数字时钟专业班级:电子信息工程2 班姓名:江奇峰、陈雪丰一、功能能实现定时、时间的调整(只能加不能减)、闹钟的设定(只能加不能减)当闹钟按键按下就进入闹钟设定,再按下那个键就进入时间显示,并且闹钟响铃时间是10秒钟。
其整个设计的电路图如下:其中显示的是8个8段LED 显示,单片机是80C51,外部晶振是 12MHZ ,其中和晶振连接的是两个 47pF 的电容。
单片机的p3.2~p3.5作 为地址总线起到控制作用,p3.7在电路中我用一个电阻代替,在实际中接 喇叭,起到闹钟的作用。
P0.0~p0.7作为数据总线,把单片机的信号输入到显示器上,p2.0~p2.7作为单片机的额数据总线,其作用在显示 总起到位选的作用,决定8段LED 的亮灭。
最下面的那个是RESPACK-8 排阻,在电路中防止输入到显示的电压很小,是为输出提供电源的装置,配 合显示器的显示。
在整个程序中时间的秒、分、时的计数分别存放在20H 、21H 、22H ,闹钟的秒、分、时的计数分别存放在 40H 、41H 、42H 。
我的电路图开始的OH-OB-O2*-21*M ・ "■旳1WPU1PS^INTT■/ T*・*RP1RE 仲址烧$t«l时候是用静态显示的,现在用动态显示程序还是用的是静态的,所以在一些程序不一样。
实现定时闹钟的程序有以下几个部分组成:二、流程图1、定时程序(时间的设定)其程序流程图如下:NY2、调时间的流程图YN NYNNYYNNYYN NYNNY3、显示的流程图(因为显示的刚好是8 个,所以不要去考虑左移的个数,直接跳转到初始值。
4、闹钟设定NYNY三、总程序ORG 0000HMOV P0,#00HMOV P2,#00HMOV SP,#60HCLR 20HCLR 21HCLR 22HCLR 40HCLR 41HCLR 42HMOV DPTR,#TABVV: MOV R6,#1MM: MOV R5,#4NN: MOV R4,#100BB: JNB P3.5,LPPSJMP LLLPP: JNB P3.5,LPP0SETB 30HAAC: MOV R3,#1AAB: MOV R2,#4AAA: MOV R1,#100CC0: JNB P3.2,CC1 ;判断p3.2 是否为按下SJMP DD0CC1: JNB P3.2,LPP1 ;判断p3.2 是否松开,松开秒钟加1 MOV A,40HADD A,#01HDA ACJNE A,#60H,CC2CLR ACC2: MOV 40H,ADD0: JNB P3.3,DD1 ;判断p3.3 是否按下SJMP EE0DD1: JNB P3.3,LPP2 ;判断p3.3 是否松开,松开分钟加1 MOV A,41HADD A,#01HDA ACJNE A,#60H,DD2CLR ADD2: MOV 41H,AEE0: JNB P3.4,EE1 ;判断p3.4 是否按下SJMP HH1EE1: JNB P3.4,LPP3 ;判断p3.4 是否松开,松开时钟加1 MOV A,42HADD A,#01HDA ACJNE A,#24H,EE2CLR AEE2: MOV 42H,A HH1:LCALL LP JNB P3.5,LP1DJNZ R1,CC0DJNZ R2,AAADJNZ R3,AABLCALL B2SJMP AACLP1:JNB P3.5,LPP4LL: CLR 30HLCALL C0DJNZ R4,BBDJNZ R5,NNDJNZ R6,MMLCALL B2SJMP VVLPP0:LCALL LPNOPNOPNOPSJMP LPPLPP1:LCALL LPNOPNOPNOPSJMP CC1LPP2:LCALL LPNOPNOPNOPSJMP DD1LPP3:LCALL LPNOPNOPNOPSJMP EE1LPP4:LCALL LPNOPNOPNOPSJMP LP1C0: JNB P3.2,C1 ;判断p3.2 是否为按下SJMP D0C1: JNB P3.2,LLP ;判断p3.2 是否松开,松开秒钟加1 MOV A,20HADD A,#01HDA ACJNE A,#60H,C2CLR AC2: MOV 20H,AD0: JNB P3.3,D1 ;判断p3.3 是否按下SJMP E0D1: JNB P3.3,LLP1 ;判断p3.3 是否松开,松开分钟加1 MOV A,21HADD A,#01HDA ACJNE A,#60H,D2CLR AD2: MOV 21H,AE0: JNB P3.4,E1 ;判断p3.4 是否按下AJMP H0E1: JNB P3.4,LLP2 ;判断p3.4 是否松开,松开时钟加1 MOV A,22HADD A,#01HDA ACJNE A,#24H,E2CLR AE2: MOV 22H,AH0: LCALL LPRETLLP: LCALL LPNOP ;3 个空指令是消除松开时执行指令的时间差NOPNOPSJMP C1LLP1:LCALL LPNOPNOPNOPSJMP D1LLP2:LCALL LPNOPNOPNOPSJMP E1ADD A,#01HB2: MOV A,20H ;设置秒钟DA ADEC ACJNE A,#5FH,A1CLR AMOV 20H,AMOV A,21H ;设置分钟ADD A,#01HDA ADEC ACJNE A,#5FH,A2CLR AMOV 21H,AMOV A,22H ;设置时钟ADD A,#01HDA AMOV 22H,ACJNE A,#24H,LOOPCLR AMOV 22H,ASJMP LOOPA1: INC AMOV 20H,ASJMP LOOPA2: INC AMOV 21H,ALOOP:DJNZ R0,RR1SETB P3.7RR1: MOV A,42H ;比较时钟和闹钟的时间是否相等,相等把XRL A,22H ; p3.7 置高电平启动闹钟CJNE A,#00H,QQMOV A,41HXRL A,21HCJNE A,#00H,QQMOV A,40HXRL A,20HCJNE A,#00H,QQCLR P3.7MOV R0,#10QQ: RETLP: MOV P2,# BJNB 30H,WWMOV A,40HSJMP WW0WW: MOV A,20H ;显示秒钟的个位WW0: MOV B,#10HDIV ABMOV 50H,AMOV A,BMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示秒钟的十位RR AMOV P2,AMOV A,50HMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示'-'RR AMOV P2,AMOV P0,# BLCALL DELMOV A,P2 ;显示分钟的个位RR AMOV P2,AJNB 30H,WW1MOV A,41HSJMP WW2WW1: MOV A,21HWW2: MOV B,#10HDIV ABMOV 51H,AMOV A,BMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示分钟的十位RR AMOV P2,AMOV A,51HMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示'-'RR AMOV P2,AMOV P0,# BLCALL DELMOV A,P2 ;显示时钟的个位RR AMOV P2,AJNB 30H,WW4MOV A,42HSJMP WW5WW4: MOV A,22HWW5: MOV B,#10HDIV ABMOV 52H,AMOV A,BMOVC +DPTRMOV P0,ALCALL DELMOV A,P2 ;显示时钟的十位RR AMOV P2,AMOV A,52HMOVC +DPTRMOV P0,ALCALL DELRETDEL: MOV R7,#150 ;显示延迟150usDJNZ R7,$RETTAB: DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FHEND总结在整个设计中我学到了在显示程序中的一些方法,比如说怎么实现动态显示,开始的时候总是显示不了,在经过把位选放慢就可以知道自己在设计程序中先显示后左移,所以没有显示的余光,使得显示出现异常。
烟台大学光电学院单片机课程设计实验报告课设名称:电子时钟姓名:学号:指导教师:目录一、设计任务与要求 (4)1.1 设计背景 (4)1.2 课程设计目的 (4)1.3 设计要求 (4)二、总体方案设计 (5)2.1 电路的总体原理框图 (5)2.2 实现时钟计时的基本方法 (6)2.3 电子钟的时间显示 (6)2.4 电子钟的时间调整 (6)2.5 总体方案介绍 (7)2.5.1 计时方案 (7)2.5.2 控制方案 (7)2.6元件清单 (7)三、数字钟的硬件设计 (8)3.1 最小系统 (8)3.1.1 芯片分析 (8)3.1.2 晶振电路 (9)3.2 数码显示模块设计 (10)四、系统软件设计 (12)4.1 软件设计分析 (12)图 4-1 系统总体流程图 (13)4.2 源程序清单 (13)五、电路实物图 (19)见附录 (19)六、设计总结 (19)1、设计过程中遇到的问题及解决方法 (19)2、设计体会 (20)3、对设计的建议 (20)参考文献 (22)附录:实物图 23一、设计任务与要求1.1 设计背景随着科学技术的发展和电子技术产业结构调整,单片机开始迅速发展,由于家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。
单片机以其芯片集成度高、处理功能强、可靠性高等优点,成功应用于工业自动化、智能仪器仪表、家电产品等领域。
近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。
单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。
但是却很少知道它的内部结构以及工作原理。
由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行定时、校时功能。
输出设备显示器可以用液晶显示技术和数码管显示技术。
单片机课程设计数字时钟设计学院:机电工程学院专业:农业电气化与自动化班级:10级农电一班姓名:学号:指导教师:2013年1月5日课程设计(论文)任务书题目:数字电子钟任务与要求:1. 设计数字时钟,能显示时、分、秒;2. 整点采用声音报时功能;3.按键调时、分时间: 2012 年 12 年28 日至 2013 年 1月 5 日共 9 天摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS245译码器的工作原理和与,LED连接的方法。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、BCD-锁存/7段译码/驱动器74LS245等),再配以相应的软件,是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。
此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。
而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
通过它可以进一步学习与掌握单片机原理与使用方法。
关键词:单片机 AT89C51 共阴极LED数码显示器 74LS245译码器目录摘要 (2)目录 (4)第一章数电字子钟的背景、意义、应用 (5)第二章单片机和数字钟的基本知识 (5)2.1应用知识简介 (5)2.2单片机数字钟的基本原理 (6)第三章系统硬件电路的设计 (6)3.1单片机的基本结构 (6)3.274LS245引脚图及功能: (8)3.3七段数码管的引脚图及使用: (10)3.4 蜂鸣器设计 (10)3.5硬件电路的设计原则 (11)第四章软件程序的设计 (13)4.2软件流程图 (13)4.2.1系统软件设计流程图 (13)4.3定时程序设计 (16)4.3.1实时时钟实现的基本方法: (16)4.3.2 实时时钟程序设计步骤: (16)结束语 (22)参考文献 (23)第一章数电字子钟的背景、意义、应用20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时自动报时及自动控制的领域。
第二章单片机和数字钟的基本知识2.1应用知识简介51单片机:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。
51 系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51 系列单片机的发展又进入了一个新的阶段。
在今后很长一段时间内51 系列单片机仍将占据嵌入式系统产品的中低端市场。
汇编语言:汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。
汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。
但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。
汇编语言可以与高级语言配合使用,应用十分广泛。
ISPISP(In-System Programming)在系统可编程,是当今流行的单片机编程模式,指电路板上的空白元器件可以编程写入最终用户代码,而不需要从电路板上取下元器件。
已经编程的器件也可以用ISP 方式擦除或再编程。
本次课程设计便使用ISP 方式,直接将编写好的程序下载到连接好的单片机中进行调试。
2.2单片机数字钟的基本原理它是利用单片机的内部的定时/计数器工作与定时方式,对机器周期计数形成基准时间(如10ms)然后用另外一个计数器或软件计数的形式对基准时间进行计数形成秒(如对10ms计数100次),“秒”计数60次“分”,“分”计数60次形成“时”,“时”计数24次满一天清零,然后通过译码器,数码管把他们的内容在相应的位置显示出来。
在具体的设计时定时器采用中断方式工作,对时钟的形成在终中断序中实现,在主程序只是对定时/计数器的定义初始化,调用显示程序和控制程序的初始化。
另外为了使用的方便,也设计了按键,可以通过按键对时分秒进行调整,这样程序就加了按键程序。
第三章系统硬件电路的设计3.1 单片机的基本结构MCS-51单片机内部结构:8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
图3-1 单片机8051的内部结构程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
MCS-51的引脚说明:MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:图3-2 单片机的引脚Pin9:RESET/V复位信号复用脚,当8052通电,时钟电路开始工作,在RESET pd引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。
3.2 74LS245 引脚图及功能:总线驱动器74LS245经常用作三态数据缓冲器,74LS245为双向三态数据缓冲器。
单向的内部有8个三态驱动器,分成两组,分别由控制端1G和2G控制;双向的有16个三态驱动器,每个方向8个。
在控制G有效时(G为低电平),由DIR端控制驱动方向:DIR为“1”时方向从左到右(输出允许),DIR为“0”时方向从右到左(输入允许)。
图3-3 74LS245的引脚图G=0,DIR=0,B->A;G=0, DIR=1, A->B;G=1, DIR=X, X=0或者1,输入和输出均为高阻态;高阻态的含意就是相当于没有这个芯片74LS245是8路3态双向缓冲驱动,也叫做总线驱动门电路或线驱动。
主要使用在数据的双向缓冲,原来常见于51的数据接口电路,比如,早期电路中,扩展了很多的8255/8155/8251/8253/573等芯片的时候,担心8031的数据驱动能力不足,就使用一片74LS245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路.3.3七段数码管的引脚图及使用:图 3-4数码管使用条件:a、段及小数点上加限流电阻。
b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定。
c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的。
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。