6位数字钟设计

合集下载

单片机制作的6位数字钟

单片机制作的6位数字钟

单片机制作的6位数字钟常见的电子钟程序由显示部分,计算部分,时钟调整部分构成。

时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。

10秒位到5后,即59秒,分钟加1,10秒位回0。

依次类推,时钟最大的显示值为23小时59分59秒。

这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。

开始程序定义了秒,十秒,分,十分,小时,十小时,共6位的寄存器,分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。

6个数码管分别显示时、分、秒,一个功能键,可以切换调整时分秒、增加数值、熄灭节电等功能全部集一键。

以下是部分汇编源程序,购买我们产品后我们用光盘将完整的单片机汇编源程序和烧写文件送给客户。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 中断入口程序;; (仅供参考);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH;clr P3.7 ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50MS×20)START1: LCALL DISPLAY ;调用显示子程序JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1秒计时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0 MOV R0,#79H ;指向小时计时单(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0 OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 闪动调时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1: PUSH ACC ;中断现场保护PUSH PSW ;MOV TL1, #0B0H ;装定时器T1定时初值MOV TH1, #3CH ;DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反JB 02H,FLASH1 ;02H位为1时显示单元"熄灭"MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示MOV 74H,7AH ;MOV 75H,7AH ;AJMP INTT1OUT ;转中断退出;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 加1子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADD1: MOV A,@R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,@R0 ;前一地址中数据放入A中低四位ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV @R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变0MOV @R0,A ;数据放入当削地址单元中RET ;子程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 清零程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............;; 时钟调整程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;当调时按键按下时进入此程序SETMM: cLR ET0 ;关定时器T0中断CLR TR0 ;关闭定时器T0LCALL DL1S ;调用1秒延时程序JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电)MOV R2,#06H ;进入调时状态,赋闪烁定时初值SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待SETB 00H ;键释放,分调整闪烁标志置1SET4: JB P3.7,SET3 ;等待键按下LCALL DL05S ;有键按下,延时0.5秒JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态MOV R0,#77H ;按下时间小于0.5秒加1分钟操作LCALL ADD1 ;调用加1子程序MOV A,R3 ;取调整单元数据CLR C ;清进位标志CJNE A,#60H,HHH ;调整单元数据与60比较HHH: JC SET4 ;调整单元数据小于60转SET4循环LCALL CLR0 ;调整单元数据大于或等于60时清0CLR C ;清进位标志AJMP SET4 ;跳转到SET4循环CLOSEDIS: SETB ET0 ;省电(LED不显示)状态。

单片机课程设计--智能电子钟的设计

单片机课程设计--智能电子钟的设计

目录1引言 (1)1.1设计内容和要 (1)1.2 工作原理 (2)2总体设计 (2)2.1 方案设计 (2)2.2 系统框图 (2)2.3 核心芯片简介 (3)2.3.1 DS1302简介 (3)2.3.2 AT89C51简介 (3)3 智能电子钟软硬件电路的设计 (4)3.1 硬件设计 (4)3.1.1 复位电路设计 (4)3.1.2 DS1302与单片机的接口设计 (5)3.1.3 LED显示设计 (5)3.1.4 电源设计 (6)3.1.5 按键开关去抖设计 (6)3.1.6 时钟电路的设计 (7)3.1.7 电路总原理图设计 (8)3.2 软件设计 (8)3.2.1 流程图 (8)4protues仿真与调试 (11)4.1 电路的仿真 (11)4.2软件调试 (11)结论……………………………………………………………………………………………错误!未定义书签。

参考文献 (14)附录 (15)源程序 (15)1 引言电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。

另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。

本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。

本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。

本设计应用AT89C51芯片作为核心,6位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。

该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。

1.1设计内容和要求以AT89C51单片机为核心,制作一个LCD显示的智能电子钟:(1) 计时:秒、分、时、天、周、月、年。

六位时钟总结

六位时钟总结

六位时钟总结六位时钟总结篇1以下是一份关于六位时钟的总结:1.什么是六位时钟?六位时钟是一种电子时钟,它具有6个独立的数字显示区域,可以同时显示时、分、秒、时区、日期和秒数。

六位时钟通常还具有定时器、闹钟、秒表等功能,是办公室、书房、卧室等场合的理想选择。

2.六位时钟的特点是什么?六位时钟的特点包括:__可以同时显示多个时间信息,方便用户同时查看多个时区的时间。

__具有秒表功能,可以记录一段时间内的精确时间。

__具有定时器功能,可以设置闹钟时间,提醒用户按时完成任务。

__具有数字显示屏,可以显示日期、秒数等信息。

__可以连接蓝牙耳机、手机等设备,方便用户听音乐、接打电话等。

3.六位时钟的应用场景是什么?六位时钟的应用场景包括:__办公室:六位时钟可以显示多个时区的时间,方便员工查看不同地区的时间信息。

__书房:六位时钟可以显示多个时区的时间,方便作者查看不同地区的时间信息。

__卧室:六位时钟可以显示多个时区的时间,方便用户查看不同地区的时间信息。

__机场、火车站:六位时钟可以显示多个时区的时间,方便旅客查看不同地区的时间信息。

__办公室、酒店、公寓等场所:六位时钟可以显示多个时区的时间,方便用户查看不同地区的时间信息。

4.六位时钟的局限性是什么?六位时钟的局限性包括:__价格较高,不适合低收入人群。

__需要使用电池或充电,存在电池寿命和充电次数限制的问题。

__蓝牙连接功能只适用于部分设备,无法连接所有蓝牙设备。

__数字显示屏较小,不适合远距离观看。

__定时器功能较为简单,无法满足高端用户的需求。

5.六位时钟的未来发展趋势是什么?六位时钟的未来发展趋势包括:__更加智能化,可以连接物联网设备,实现远程控制和数据传输。

__更加个性化,可以定制外观和功能,满足不同用户的需求。

__更加节能,采用更加省电的显示技术和材料,延长电池寿命。

__更加多样化,除了传统数字显示外,还可以采用液晶显示、LED显示等多种形式。

VHDL数字时钟设计

VHDL数字时钟设计

VHDL数字时钟设计序⾔这个是我在做FPGA界的HelloWorld——数字钟设计时随⼿写下的,再现了数字钟设计的过程⽬标分析1. 时钟具有时分秒的显⽰,需6个数码管。

为了减⼩功耗采⽤扫描法显⽰2. 按键设置时间,需要对按键进⾏消抖3. 时分秒即为2个60进制计数器,⼀个24进制计数器。

模块设计综上所述,我采⽤模块化设计⽅法进⾏设计,绘制框图如下。

1. 时钟分频产⽣各个模块所需频率时钟。

2. 按键处理模块对按键信号进⾏消抖、变长脉冲为短脉冲等处理。

3. 时间控制模块产⽣时间信号或对时间进⾏设置。

4. 数码管驱动模块负责对时间信号BCD码译码为数码管的段码并且扫描输出到数码管。

下⾯对各个模块分别详细叙述时钟分频模块我打算把时钟分频模块做成“数控N分频器”,通过给分频器传⼊数值N来对时钟信号进⾏N分频。

得到的信号频率为原时钟信号的频率/N,占空⽐为1/N。

稍微考虑下其他模块所需时钟:按键处理模块100Hz ,时间控制模块1Hz,数码管驱动50Hz。

⽽输⼊时钟为33.8688MHz。

我不想传⼊的N数值过⼤,我打算先对时钟进⾏两次:第⼀次调⽤时钟分频模块得到1Mhz,第⼆次得到1Khz。

这样N的位数为10可以满⾜需求。

代码如下library IEEE;use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_UNSIGNED.all;entity ClkDiv isport(clk_i:IN STD_LOGIC;N_i: IN STD_LOGIC_VECTOR(9 DOWNTO 0);clk_o:OUT STD_LOGIC);end ClkDiv;architecture behavior of ClkDiv issignal count:STD_LOGIC_VECTOR(9 DOWNTO 0):="0000000001";signal clk_temp:STD_LOGIC:='0';beginprocess(clk_i)beginif(clk_i'EVENT and clk_i='1')thenif (count=N_i)thencount<="0000000001";clk_temp<='1';elsecount<=count+1;clk_temp<='0';end if;end if;end process;clk_o<=clk_temp;end behavior;仿真结果如下:2分频:输出信号为f/2Hz,占空⽐1:23分频:输出信号为f/3Hz,占空⽐1:3按键处理模块去抖动根据以往的经验,按键按下弹起电平会有⼀⼩段⽑刺,可能会引起电路误操作,所以要对按键进⾏消抖处理使变为⼲净的矩形信号。

多功能数字钟电路设计

多功能数字钟电路设计

多功能数字钟电路设计1设计内容简介数字钟是一个简单的时序组合逻辑电路,数字钟的电路系统主要包括时间显示,脉冲产生,报时,闹钟四部分。

脉冲产生部分包括振荡器、分频器;时间显示部分包括计数器、译码器、显示器;报时和闹钟部分主要由门电路构成,用来驱动蜂鸣器。

2设计任务与要求Ⅰ以十进制数字形式显示时、分、秒的时间。

Ⅱ小时计数器的计时要求为“24翻1”,分钟和秒的时间要求为60进位。

Ⅲ能实现手动快速校时、校分;Ⅳ具有整点报时功能,报时声响为四低一高,最后一响为整点。

Ⅴ具有定制控制(定小时)的闹钟功能。

Ⅵ画出完整的电路原理图3主要集成电路器件计数器74LS162六只;74LS90三只;CD4511六只;CD4060六只;三极管74LS191一只;555定时器1只;七段式数码显示器六只,74LS00 若干;74LS03(OC) 若干;74LS20 若干;电阻若干,等4设计方案数字电子钟的原理方框图如图(1)所示。

该电路由秒信号发生器、“时,分,秒”计数器、译码器及显示器、校时电路、整点报时电路、闹钟定时等电路组成。

秒信号产生器决定了整个计时系统的精度,故用石英晶体振荡器加分频器来实现。

将秒信号送入“秒计时器”,“秒计时器”采用六十进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。

“分计数器”也采用六十进制计数器,每60分钟,发出一个“时脉冲”,该信号经被送到“时计数器”作为“时计数器”的时钟脉冲,而“时计数器”采用二十四进制计数器,实现“24翻1”的计数方式,可实现对一天二十四小时的累计。

译码显示电路将“时”、“分”、“秒”计数器的输出状态通过七段式显示译码器译码,通过刘伟LED 七段显示器显示出来。

整点报时电路是根据计时系统的输出状态产生一脉冲信号,然后触发一音频发生器实现整点报时,定时电路与此类似。

校时电路是用“时”、“分”、“秒”显示数5电路设计5.1秒信号发生器秒信号发生器是数字钟的核心部分,它的精度和稳定度决定了数字钟的质量,通常用晶体整荡器产生的脉冲经过整形、分频获得1 Hz的秒脉冲。

用计数器实现6位数字时钟的方法

用计数器实现6位数字时钟的方法

用计数器实现6位数字时钟的方法使用计数器实现6位数字时钟的方法计数器是一种常见的数字电子元件,能够按照指定的步骤依次递增或递减数值。

我们可以使用计数器来实现一个6位数字时钟。

下面是一种可行的方法:1. 首先,选择适当的计数器。

计数器需要有至少6位(0至9)的数字显示功能。

可以选择数字集成电路如74LS90,74LS192等,这些集成电路具有可配置的计数和显示功能。

2. 连接计数器和数字显示器。

将计数器的输出引脚连接到对应位数的数字显示器的输入引脚。

一般来说,计数器的输出引脚和数字显示器的输入引脚是一一对应的。

3. 设置计数器的工作模式。

根据6位数字时钟的需求,将计数器设置为递增模式,从0开始加到9,然后再从0开始。

可以通过设置计数器的某些引脚状态或使用额外的逻辑电路实现。

4. 设置时钟控制。

为了保证时钟的准确性,可以使用一个稳定的脉冲信号作为时钟源输入计数器。

这可以来自一个单独的时钟发生器电路或者其他准确的计时源。

5. 组合显示。

每个数字显示器负责一个位数的显示,通过精确地控制计数器的输出和数字显示器的输入,可以实现6位数字时钟的显示。

通过以上步骤,我们可以将计数器与数字显示器结合起来,实现一个6位数字时钟。

根据具体的需求和材料的可用性,可以选择不同的硬件元件和连接方式。

这个时钟不仅可以显示当前时间,还可以用于计时、定时等功能。

需要注意的是,在实际应用中,还需要处理时钟的起始时间、时间格式、时区等问题。

此外,还可以考虑添加闹钟、温度显示等附加功能,以满足更多需求。

总结起来,使用计数器实现6位数字时钟的方法包括选择计数器,连接计数器和数字显示器,设置计数器的工作模式和时钟控制,以及组合显示。

通过精确的配置和控制,我们可以实现一个功能完善的6位数字时钟。

基于FPGA的数字电子钟的设计与实现

基于FPGA的数字电子钟的设计与实现

基于FPGA的数字电⼦钟的设计与实现背景:本实验所有结果基于Quartus II 13.1 (64-bit)实现,实验过程采⽤⾃下⽽上⽬录⼀、基本功能设计与思路基本功能:能实现秒、分钟、⼩时的计数,计数结果清晰稳定的显⽰在 6 位数码管上。

1、动态显⽰模块该模块主要功能是通过数码管的动态扫描实现 6 位数码管显⽰计数结果,本模块由扫描模块scan_cnt6,位选控制模块 dig_select,数据选择控制模块 seg_select 以及译码模块 decoder 构成扫描模块 scan_cnt6模块功能:产⽣ 位选控制端dig_select 和数据选择端 code_select 模块所需要的地址信息,扫描时钟决定位选信号和数据切换的速度。

设计思路:利⽤74390芯⽚(P160 TTL 双⼗进制异步计数器)构建⼀个模六计数器,就是6进制计数器,利⽤计数到6(110)时,“q2”和“q1”为⾼电平,产⽣ ⼀个复位信号,加到74390的⾼电平有效的异步清0端“1CLR”上,使计数器回0,从⽽实现模六计数。

设计结果:cnt6模块设计图波形仿真:(默认为时序仿真)cnt6模块波形仿真图位选模块 dig_select模块功能:在地址端的控制下,产⽣位选信号。

设计思路:利⽤74138芯⽚(3线-8线译码器),当选通端输⼊端G1为⾼电平,选通端输⼊端G2AN和G2BN为低电平时,将扫描信号cnt6的输出作为输⼊信号,dig[5..0]是译码输出,输出低电平有效。

设计结果:dig_select模块设计图波形仿真:dig_select模块波形仿真图数据选择模块 seg_select模块功能:输⼊ 6 组数据,每组数据 4bit,本模块完成在地址端的控制下从6 组数据当中选择 1 组输出。

设计思路:利⽤74151芯⽚(P91 8选1数据选择器),在控制输⼊端GN为低电平时,将扫描信号的选择下,分别选中D[5..0]对应的输⼊信号输出为Y。

(完整word版)基于51单片机多功能电子时钟报告

(完整word版)基于51单片机多功能电子时钟报告

单片机课程设计报告多功能电子数字钟姓名:学号:班级:指导教师:目录一课程设计题目—-—-———--—--—-—--------—-——---—- 3二电路设计--------——-——---—--——---——--————-——--—- 4三程序总体设计思路概述——-------———-——--——5四各模块程序设计及流程图——--—---------——6五程序及程序说明见附录-—-——————-—-—---—-- **六课程设计心得及体会-----————-————--——--—- 11七参考资料—-—-—---—--———-———--————-—-----—----—-—12一题目及要求本次单片机课程设计在Proteus软件仿真平台下实现,完成电路设计连接,编程、调试,仿真出实验结果。

具体要如下:用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能: (1)走时(能实现时分秒,年月日的计时)(2)显示(分屏切换显示时分秒和年月日,修改时能定位闪烁显示)(3)校时(能用按键修改和校准时钟)(4)定时报警(能定点报时)本次课程设计要求每个学生使用Proteus仿真软件独立设计制作出电路图、完成程序设计和系统仿真调试,验收时能操作演示.最后验收检查结果,评定成绩分为:(1)完成“走时+显示+秒闪”功能—-——及格(2)完成“校时修改”功能---—中等(3)完成“校时修改位闪"---—良好(4)完成“定点报警”功能,且使用资源少----优秀二电路设计(电路设计图见附件电路图)(1)采用89C51型号单片机(2)采用8位共阴数码管(3)因为单片机输出高电平时输出的电流不足以驱动数码管,所以在P0口与8位数码管之间加74LS373来驱动数码管(4)P2口与数码管选择位直接加74LS138译码器(5)蜂鸣器接P3。

7口。

六位数字钟工作原理

六位数字钟工作原理

六位数字钟工作原理
嘿呀!今天咱们来聊聊这神奇的六位数字钟的工作原理呢!
首先呀,咱们得知道这六位数字钟到底是啥玩意儿?哎呀呀,它其实就是能精准显示小时、分钟和秒的一个小宝贝呀!
那它到底是咋工作的呢?哇哦!这可得好好说道说道。

1. 电源供应这可是基础中的基础呢!没有电,它啥也干不了呀!通常会用电池或者外接电源来给它提供能量,就像人要吃饭才有劲干活一样!
2. 时钟芯片哎呀呀,这可是核心中的核心呀!时钟芯片就像数字钟的大脑,掌控着时间的计算和走时的精准度。

它通过内部的晶体振荡器产生稳定的频率信号,然后根据这个信号来计算时间。

3. 显示模块嘿!有了时间,得让人能看到才行呀!这显示模块就负责把计算好的时间给咱们展示出来。

六位数字,清晰明了,小时、分钟、秒,一目了然!
4. 控制电路哇!这个也很重要呢!它就像个指挥官,协调着各个部分的工作。

比如说,控制显示的亮度、切换不同的显示模式等等。

5. 校准功能哎呀呀,时间久了,难免会有误差呀!这时候校准功能就派上用场啦!通过外部的按键或者其他方式,可以对数字钟进行校准,让它始终保持准确。

6. 存储功能嘿!有些数字钟还具备存储功能呢,可以记住一些设置和数据,比如闹钟的时间、定时开关的设置等等。

总的来说,六位数字钟的工作原理就是这些部分相互配合,共同
努力,为咱们准确地显示时间呀!哇,是不是很神奇呢?哎呀呀,有了它,咱们的生活可方便多啦!怎么样,这下你是不是对六位数字钟的工作原理清楚多啦?。

单片机课程设计电子时钟

单片机课程设计电子时钟

xxxxxx大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:电子时钟院(系):专业:班级:学号:姓名:指导教师:完成日期:xxxxxx大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (3)2.3功能模块的设计与实现 (4)第3章结果测试及分析 (11)3.1结果测试 (11)3.2结果分析 (11)参考文献 (12)附录 A (13)附录 B (21)附录 C (22)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容,要求实现在MCS51单片机上对数字电子钟的基本功能设计,对当前时间正确显示,并可根据需要对时间进行更改,以完成时间的校对和闹钟的设置。

时钟时间以时、分、秒在6位数码管上显示,小时以24小时计时模式,分秒均为60进位。

用6MHz晶振产生振荡脉冲,定时器进行秒计时。

调整设置时间的过程运用可编程键盘上的按键进行控制,共设有5个按键,首先按键A进入校时模式或E进入闹钟模式,再分别按键B对小时或C分钟进行更改,每按键一次数码管计数显示加一,更改结束后按键D退出设置,时钟正常显示。

闹钟时间到时,蜂鸣器鸣响10秒后时钟正常显示。

1.2 设计思路采用C语言程序设计结合硬件电路设计方法,利用Lab6000实验箱来实现数字电子钟的设计。

1)提出方案根据设计要求,可将本次设计分为3个模块进行:1)时钟显示模块:主要用于时间的正确显示。

2)校时模块:此模块用于时钟的校对,以完成用户更改时间的需求。

3)闹钟模块:用于实现闹钟的时间设置和定点闹铃的功能。

2)方案论证时钟显示模块中,利用可编程定时器中断进行秒计时,将时间显示在6位数码管上。

校时模块主要利用键盘上5个键的控制完成各项功能,并在数码管上动态显示改变结果,完成设置后进入时钟显示模块。

闹钟模块的设置过程与校时模块相似,但设置完成进入时间显示模块后则等待闹铃时间,到规定时间后,通过数码管闪烁及蜂鸣器的鸣响来实现定点闹铃提醒功能。

基于单片机的时钟设计6位LED

基于单片机的时钟设计6位LED

基于单片机的时钟设计6位LED1. 引言时钟是我们日常生活中必不可少的工具之一。

设计一个基于单片机的6位LED时钟,不仅可以提供时间显示功能,还能够增加一些附加功能,如闹钟、计时器等。

本文将介绍基于单片机的时钟设计方案,并提供详细的电路原理图和源代码。

2. 设计思路基于单片机的时钟设计通常采用时分秒的显示方式,并通过按键进行时间的调整和功能的切换。

考虑到使用方便和成本等因素,我们选择采用6位LED数码管作为显示屏,并使用74HC595芯片进行驱动。

2.1 电路设计电路的主要部分包括单片机、时钟模块、数码管及驱动芯片。

单片机的核心是时钟芯片,用于计时和存储时间数据。

时钟模块提供了精确的时间信号,可以与单片机进行通信。

数码管通过74HC595芯片进行驱动,以实现数字的显示。

2.2 软件设计软件设计是基于单片机的时钟设计中非常重要的一环。

主要包括以下功能:•时间显示:将时、分、秒的数据转换为数码管的显示信息,并实现动态显示效果。

•时间调整:通过按键对时钟进行时间的调整,包括调整小时、分钟、秒钟。

•附加功能:实现闹钟、计时器等附加功能,可以通过按键进行设置和开关。

3. 电路原理图电路的原理图如下:+--------------+| 数码管 |+--------------+|+--------------------------+| 74HC595驱动芯片 |+--------------------------+|+--------------+| 单片机 |+--------------+|+---------------------+| 时钟模块 |+---------------------+4. 源代码以下是基于单片机的时钟设计的部分源代码示例:#include <reg52.h>sbit SCLK=P1^0; // 74HC595芯片时钟输入sbit RCLK=P1^1; // 74HC595芯片锁存输出sbit DIO=P1^2; // 74HC595芯片串行数据输入// 数字码表unsigned char code number[10]={0x3F, // 00x06, // 10x5B, // 20x4F, // 30x66, // 40x6D, // 50x7D, // 60x07, // 70x7F, // 80x6F// 9};void delay(unsigned int t){unsigned int i, j;for(i=0; i<t; i++)for(j=0; j<123; j++);}void display(unsigned char *num){unsigned char i;for(i=0; i<8; i++){DIO = num[i];SCLK = 0;SCLK = 1;}RCLK = 0;RCLK = 1;}void main(){unsigned char time[8] = {0, 0, 0, 0, 0, 0, 0, 0};unsigned char i, j;while(1){// 获取当前时间// 进行时间调整// 显示时间display(time);// 延时0.5秒delay(500);}}5. 结语基于单片机的6位LED时钟设计,通过硬件和软件的设计实现了时间的显示和调整功能,并可以扩展其他附加功能。

数字电子时钟设计原理

数字电子时钟设计原理

毕业设计论文论文题目:数字电子时钟设计原理某职业技术学院电气工程系毕业设计任务书1.能够利用软件设计数字电子钟电路原理图。

2.要求熟悉集成芯片功能。

3.具有时、分、秒显示功能。

三、毕业设计进程表毕业设计进程表起止日期设计内容备注第1周资料准备,查阅相关文献第2周设计电路第3-4周编写说明书,交指导老师审阅第5周整理资料,准备答辩前言目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。

要知道当前的时间,必须先开灯,故较为不便。

现在市场上出现了这样一类的电子钟,它以六只LED数码管来显示时分秒,与传统的以指针显示秒的方式不同,超越了人们传统的习惯与理念。

数字电子钟是一种用数字显示秒、分、时的计时装置,与传统的机械钟相比,具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛的应用。

如,日常生活中的电子手表,车站、码头、机场等公共场所的大型数显电子钟。

要实现数字电子钟的设计可以由单片机控制或者由数字IC构成。

这里我们要做的是一个由数字IC构成的数字电子钟设计。

目录1 设计功能要求 (1)2 设计方案 (1)3设计中所用到的元器件 (2)3.1译码器 (2)3.2计数器 (4)3.3显示器 (4)3.4振荡器 (5)4 电路设计 (6)4.1时分秒计数器 (6)4.1.1秒计数器的设计 (6)4.1.2分计数器的设计 (8)4.1.3时计数器的设计 (8)4.2校时电路 (8)4.3译码显示电路 (10)4.4总体电路 (11)5器件清单 (13)结束语 (14)致谢 (15)参考文献 (16)附录A 数字电子钟整体体电路图 (17)1 设计功能要求设计一数字钟,该数字钟能够准确计时,以数字形式显示时、分、秒的时间和校时功能。

在电路中,振荡电路提供的1Hz脉冲信号。

在计时出现误差时电路还可以进行校时、校分和校秒的功能。

并且要用数码管显示时、分、秒,各位均为两位显示。

具体要求如下:1.时的计时要求为“23置0”,分和秒的计时要求为60进制。

2051单片机6位数字钟

2051单片机6位数字钟

2051单片机6位数字钟51单片机作的电子钟程序在很多地方已经有了介绍,对于单片机教程者而言这个程序基本上是一道门槛,掌握了电子钟程序,基本上可以说51单片机就掌握了80%。

常见的电子钟程序由显示部分,计算部分,时钟调整部分构成,这样程序就有了一定的长度和难度。

这里我们为了便于大家理解和掌握单片机,我们把时钟调整部分去除,从而够成了这个简单的电子钟程序。

时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。

10秒位到5后,即59秒,分钟加1,10秒位回0。

依次类推,时钟最大的显示值为23小时59分59秒。

这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。

开始程序定义了秒,十秒,分,十分,小时,十小时,共6位的寄存器,分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。

电路原理图:为了节省硬件资源,电路部分采用6位共阳极动态扫描数码管,数码管的段位并联接在51单片机的p0口,控制位分别由6个2N5401的PNP三极管作驱动接在单片机的p2.1, p2.2,p2.3,p2.4,p2.5,p2.6口。

从标号star开始把这些位全部清除为0,从而保证了开始时显示时间为0时0分0秒。

然后是程序的计算部分:inc a_bit(秒位),这里用到了一个inc指令,意思是加1,程序运行到这里自动加1。

然后把加1后的数据送acc:mov a,a_bit (秒位),这时出现了一个问题,如果不断往上加数字不会加爆?所以有了下面的一句话cjne a,#10,stlop; 如果秒位到10那么转到10秒处理程序。

cjne 是比较的意思,比较如果a等于10 就转移到10秒处理程序,实际上也就限定了在这里a的值最大只能为9,同时mov a_bit,#00h,这时a_bit(秒位)被强行清空为0,又开始下一轮的计数。

多功能数字钟的设计

多功能数字钟的设计

多功能数字钟的设计作者:路士兵来源:《中国新通信》2016年第06期【摘要】多功能数字钟有多种设计方法,本设计是由AT89S52单片机、锁存器等组成,采用中断的方式定时,利用6段数码管能稳定的显示时、分、秒,并且当计时出现偏差时,能纠正误差,还能发出设定好的音乐及提示音。

【关键字】 AT89S52单片机中断数码管一、引言数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于车站,值班门岗,码头等等公共场所,成为人们日常生活中的必需品。

诸如按时自动打铃、自动报警、定时程序自动控制、自动起闭路灯、定时广播、通断动力设备、定时开关烘箱、甚至各种定时电气的自动启用等,所有这些,都是以多功能数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义。

二、工作原理数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。

可整体构想:标准频率可由振荡电路产生,更精确时,可由石英晶体产生。

计数,可由2个60进制计数器,分别作为秒、分计数单元,一个24进制,作为时计数单元。

计数单元同样可采用中断定时方式,这就需要由软件来实现。

对于校时部分,一般都是手动进行,通过按键来控制时、分、秒的快速校准。

系统由AT89S52单片机、锁存器74HC573、LED 数码管、按键、发光二极管等部分构成,采用中断的方式定时,能实现比较精确的走时、时间的调整等功能。

秒信号是由单片机内部的定时器产生,通过软件计数和软件的译码,以动态扫描的方式将时间显示在数码管上面。

通过按键的检测可以控制单片机相应的动作,来达到调时的目的。

三、多功能数字钟的设计3.1 AT89S52单片机AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

2051单片机6位数字钟

2051单片机6位数字钟

2051单片机6位数字钟51单片机作的电子钟程序在很多地方已经有了介绍,对于单片机教程者而言这个程序基本上是一道门槛,掌握了电子钟程序,基本上可以说51单片机就掌握了80%。

常见的电子钟程序由显示部分,计算部分,时钟调整部分构成,这样程序就有了一定的长度和难度。

这里我们为了便于大家理解和掌握单片机,我们把时钟调整部分去除,从而够成了这个简单的电子钟程序。

时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。

10秒位到5后,即59秒,分钟加1,10秒位回0。

依次类推,时钟最大的显示值为23小时59分59秒。

这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。

开始程序定义了秒,十秒,分,十分,小时,十小时,共6位的寄存器,分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。

电路原理图:为了节省硬件资源,电路部分采用6位共阳极动态扫描数码管,数码管的段位并联接在51单片机的p0口,控制位分别由6个2N5401的PNP三极管作驱动接在单片机的p2.1, p2.2,p2.3,p2.4,p2.5,p2.6口。

从标号star开始把这些位全部清除为0,从而保证了开始时显示时间为0时0分0秒。

然后是程序的计算部分:inc a_bit(秒位),这里用到了一个inc指令,意思是加1,程序运行到这里自动加1。

然后把加1后的数据送acc:mov a,a_bit (秒位),这时出现了一个问题,如果不断往上加数字不会加爆?所以有了下面的一句话cjne a,#10,stlop; 如果秒位到10那么转到10秒处理程序。

cjne 是比较的意思,比较如果a等于10 就转移到10秒处理程序,实际上也就限定了在这里a的值最大只能为9,同时mov a_bit,#00h,这时a_bit(秒位)被强行清空为0,又开始下一轮的计数。

基于单片机的电子时钟6位LED数码管显示

基于单片机的电子时钟6位LED数码管显示

数码管显示电子时钟设计一.功能要求1.数字电子时钟最主要是LED数码管显示功能,以24小时为一个周期,显示时间时、分、秒。

2.具有校时功能,可以对时、进行单独校对,使其校正到标准时间。

二.方案论证1.数字时钟方案数字时钟是本设计的最主要的部分。

根据需要,可利用两种方案实现。

方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。

该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。

为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。

当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。

而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

方案二:本方案完全用软件实现数字时钟。

原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。

该方案具有硬件电路简单的特点。

但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。

而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。

2.数码管显示方案方案一:静态显示。

所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。

该方式每一位都需要一个8 位输出口控制。

静态显示时较小的电流能获得较高的亮度,且字符不闪烁。

但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。

方案二:动态显示。

所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息与电气工程学院课程设计说明书(2011/2012学年第二学期)课程名称:单片机应用课程设计题目:数字钟设计专业班级:电气0901****:**学号:*********指导教师:岑毅南、苗敬利、王静爽等设计周数:两周设计成绩:2012 年6月21日目录一、课程设计目的 (2)二、课程设计正文 (2)1.任务要求说明 (2)1.1、主要任务 (2)1.2、技术要求 (2)1.3、设计思路 (2)1.4、所需器件 (3)1.5、硬件设计 (3)1.5.1.STC90C52AD说明 (3)1.5.2.数码管说明 (4)2.单元模块设计 (5)2.1时间显示模块 (5)2.2 按键调时模块 (6)2.3 显示驱动模块 (7)3.原理简介 (7)3.1电路原理图 (7)3.2、原理介绍 (8)4.参数计算 (8)5.系统软件设计 (8)5.1开发软件Keil C51 uVision3简介 (8)5.2单片机程序烧写软件 (9)5.3参考程序 (9)三、课程设计总结 (15)四、参考文献 (16)附录一、系统原理图附录二、PCB图一、课程设计目的1.进一步熟悉和掌握单片机的结构及工作原理。

2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。

4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。

二、课程设计正文1任务及要求说明1.1主要任务采用AT89S51作为控制单元,实现数字钟的设计。

1)设计键盘输入电路2)设计显示电路3)合理分配地址,编写系统程序4)利用Protel设计硬件电路原理图并进行软硬件联机调试1.2 技术要求1.3设计思路1、时间的显示:单片机P0.0—P0.3控制位选,可分别选通四只共阴数码管。

P1.0—P1.6控制段码管,将数据送给74LS245驱动数码管显示时间。

2、时间的调整:设置4个按钮,分别由P2.0—P2.3控制,其编号分别是1到4。

1为调节切换键,2为加1键,3为减1键,4为确认开始键。

1.4 设计所需器材电阻: 1K (8个) 10K(9个) 2.2k(1个) 300(8个)200K(1个)按键开关:5个瓷石电容:30pF (2个)电解电容:10μF(1个)晶振:6MHZ(1个)三极管:NPN(4个)共阴极数码管:4个底座:DIP40(1个)DIP16(1个)万能电路板:1个芯片:STC90C52(1片)Header2(1个)1.5 硬件设计1.5.1.STC90C52AD说明AT89C51的引说明和功能说明如下:XTAL1 :接外部晶振的一个引脚。

在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。

它采用外部振荡器时,些引脚应接地。

XTAL2 :接外部晶振的一个引脚。

在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。

当采用外部振荡器时,则此引脚接外部振荡信号的输入。

RST :复位信号输入引脚,高电平有效,当要对芯片复位时,只要将此引脚电平提升到高电平,并持续两个机器周期以上的时间,AT89C51便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。

P0口(P0.0~P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。

外部不扩展而单片应用时,则作一般双向I/O口用。

P0口每一个引脚可以推动8个LSTTL负载。

P2口(P2.0~P2.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。

外部不扩展而单片应用时,则作一般双向I/O 口用。

每一个引脚可以推动4个LSTL负载。

P1口(P1.0~P1.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。

仅供用户作为输入输出用的端口。

P3口(P3.0~P3.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能1.5.3数码管。

LED显示器由8段发光二极管组成,排列成8字形状,称为8段LED显示器,器件内部接线图如图所示:为了显示数字或符号,要为LED显示器提供代码,即字形代码。

七段发光二极管,再加上一个小数点(dp)位,共计8段,因此提供的字形代码的长度正好是一个字节。

简易计算器用到的数字0~9的共阴极字形代码如下表:显示字符0 1 2 3 4 5 6 7 8 9 暗段码3FH 06H 5BH 4F 66H 6DH 7DH 07H 7F 6FH 00H共阴数码管段码表2.单元模块设计2.1、时间显示模块时间显示模块2.2 按键调时模块按键调时模块2.3 显示驱动模块显示驱动模块3 .原理简介3.1电路原理图电路原理图3.2、原理介绍(1)初始时,4个数码管显示全为0,并且秒显示数码管最后一位每秒钟加1.此时,单片机内部定时器0计时,每100ms溢出一次,10次中断秒显加一。

单片机P1口不断向245送数据驱动数码管显示。

(2)按下S1时,系统进入调节切换模式,定时器0关闭,计时停止。

按S1一下调分,按S1两下调秒。

S2、S3分别为加数和减数。

S4为确认开始键,按下后系统计时开始。

(3)进入调整时间模式时,数码管闪烁显示提示。

4.参数计算1、定时器初值计算定时器0设为16位定时器。

外部为6兆的晶体振荡器,故而可知一个机器周期是2微秒。

分析:已知fosc = 6MHz 则:(机器周期)1Tm=12Tc=12/6MHz=2uS100mS÷2 S = 5000016位定时器最大数值为:65536 (=0FFFFH+1)故选择方式1工作可以满足要求。

计算初值:65536-50000=15536=3CB0H定时器0高八位和第八位分别装入初值TH0=03CH; TL0=0B0H。

每100ms定时器溢出一次,中断十次刚好1s,秒显示加1.5.系统软件设计5.1开发软件Keil C51 uVision3简介Keil uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS-51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持、PLM、汇编和C语言的程序设计,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

Keil C51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。

工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。

建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。

调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。

在工具栏下面,默认有三个窗口。

左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。

右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可在这里对源文件进行编辑、修改、粘贴等。

下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。

如果通过则会生成“HEX”格式的目标文件,用于仿真或烧录芯片。

基本环境如图2-1所示:MCS-51单片机软件Keil C51开发过程为:①建立一个工程项目,选择芯片,确定选项。

②建立汇编源文件或C源文件。

③用项目管理器生成各种应用文件。

④检查并修改源文件中的错误。

⑤编译连接通过后进行软件模拟仿真或硬件在线仿真。

5.2单片机程序调试软件STC90C52AD系列单片机大部分具有在系统可编程特性,单片机在用户系统上即可在线调试用户程序,而无需将单片机从已经生产好的产品上拆下,在用通用编程器进行调试程Keil C51软件的运行界面序。

大部分STC90C50AD系列单片机在销售给用户之前已经在单片机系统内部固化了ISP系统引导程序配合PC端得控制程序即可将用户的程序代码下载进单片机内部,故无需编程器烧写程序。

参考程序:ORG 0000HAJMP MAINORG 000BHAJMP TINTORG 0030HMAIN:MOV R6,#00H ;确认键SETB F0 ;闪烁标志位MOV R4, #00H ;闪烁时钟位MOV 50H,#00HMOV 51H,#00HMOV 52H,#00HMOV 53H,#00HMOV R5,#00H ;调整键0正常显示、1调分、2调秒MAIN2:LCALL XIANS ;调用显示子程序LCALL KEY ;调用按键检测子程序JZ MAIN2KEY:MOV P2,#0FFH ;将P2口设置成输入状态MOV A,P2CPL AANL A,#0FH ;P1口低4位连接4个按键,只判断该4位JZ EXIT_KEY ;无键按下则返回LCALL DELAY ;延时去抖动MOV A,P2 ;重新判断CPL AANL A,#0FHJZ EXIT_KEY ;键盘去抖动JB P2.0,FUNC1 ;切换JB P2.1,FUNC2 ;加JB P2.2,FUNC3 ;减JB P2.3,FUNC4 ;确认EXIT_KEY:RETFUNC4:CJNE R6,#01H ,MAIN1LJMP QUERENRETFUNC1:CJNE R6,#01H ,DONE7INC R5DONE7:RETFUNC2:CJNE R5,#01H ,XUANZE1LJMP FENJIARETXUANZE1:CJNE R5,#02H,MIAOJIARETFUNC3:CJNE R5,#01H ,XUANZE2LJMP FENJIANRETXUANZE2:CJNE R5,#02H,MIAOJIANRETMIAOJIA:MOV A,42H;秒加调整子程序ADD A,#01HDA AMOV 42H ,ACJNE A,#60H,DONE1MOV 42H,#00HDONE1:RETFENJIA:MOV A,41H;分加子程序ADD A,#01HDA AMOV 41H ,ACJNE A,#60H,DONE2MOV 41H,#00HDONE2:RETFENJIAN:MOV A ,#99H;分减子程序ADD A,41HDA AMOV 41H ,ACJNE A,#99H,DONE3MOV 41H ,#59HDONE3:RETMIAOJIAN:MOV A ,#99H;秒减子程序ADD A,42HDA AMOV 42H ,ACJNE A,#99H,DONE4MOV 42H ,#59HDONE4:RETQUEREN:CJNE R6,#00H,QUEREN1;确认子程序INC R6LJMP DONE5QUEREN1:MOV R6,#00HDONE5:RETQIEHUAN:CJNE R5,#02H,QIEHUAN1;切换子程序MOV R5,#00HMOV R4,#00HLJMP DONE6QIEHUAN1:INC R5DONE6:RETDELAY:MOV R7,#150DJNZ R7,$RETMAIN1:MOV TMOD,#01H ;选T0方式1,MOV TH0, #3CH ;赋初值3CB0H=15536(只能定100mS)MOV TL0,#0B0HMOV 30H,#0AH ;软件计数单元30H 初值=10CLR AMOV 41H,A ;"分"单元清零MOV 42H,A ;"秒"单元清零SETB EASETB ET0 ;开T0中断SETB TR0 ;启动T0MOV R6,#01H ;置位确认标志位RETTINT:MOV TH0, #3CHMOV TL0,#0B0H;再赋定时100mS的初值3CB0HINC R4MOV A,R4CJNE A,#05H,LOOP ;用于调时闪烁CPL F0 ;取反调时闪烁标志位MOV R4,#00HLOOP:CJNE R6,#01H,RTN;确认键控制计时起停DJNZ 30H,RTN ;若中断不到10次就返回MOV 30H,#0AH ;为下一个1秒定时做准备MOV A,#01H ;"秒"单元加一ADD A,42HDA A ;"秒"单元十进制调整MOV 42H,A ;"秒"单元BCD码存"秒"单元CJNE A,#60H,RTN ;是否到60S,未到则返回MOV 42H,#00H ;记满60S,"秒"单元清零MOV A,#01H ;"分"单元加一ADD A,41HDA A ;"分"单元十进制调整MOV 41H,A ;"分"单元BCD码存"分"单元CJNE A,#60H,RTN ;是否到60分,未到则返回MOV 41H,#00H ;记满60分,"分"单元清零RTN:RETI ;中断返回XIANS:MOV A, 42HANL A,#0FHMOV 51H,A ;转换出秒个位,存入51HMOV A,42HANL A,#0F0HSW AP AMOV 50H,A ;转换出秒十位,存入50HCJNE R5,#02H,XIANS1JB F0 ,XIANS1MOV 50H,#0AHMOV 51H,#0AHXIANS1:MOV A, 41HANL A,#0FHMOV 53H,A ;转换出分个位,存入53HMOV A,41HANL A,#0F0HSW AP AMOV 52H,A ;转换出分十位,存入52HCJNE R5,#01H,DXIANSJB F0,DXIANSMOV 52H,#0AHMOV 53H,#0AHDXIANS:MOV DPTR,#0200H ;数码管译码表首址, MOV A,#50HMOVC A, @A+DPTR ;查表MOV P1, A ;字段码送到P1口SETB P0.0LCALL DELAYCLR P0.0MOV A,#51HMOVC A, @A+DPTR ;查表MOV P1, A ;字段码送到P1口SETB P0.1LCALL DELAYCLR P0.1MOV A,#52HMOVC A, @A+DPTR ;查表MOV P1, A ;字段码送到P1口SETB P0.2LCALL DELAYCLR P0.2MOV A,#53HMOVC A, @A+DPTR ;查表MOV P1,A ;字段码送到P1口SETB P0.3LCALL DELAYCLR P0.3RETORG 0200HDB 3FH,06H,5BH,4FH,66H;显示段码表DB 6DH,7DH,07H,7FH,6FH 00HEND6.软硬件调试系统调试:根据系统设计方案,本系统的调试共分为两大部分:硬件调试,软件调试。

相关文档
最新文档