基于单片机的个性化电子钟Word格式.docx

上传人:b****5 文档编号:19610223 上传时间:2023-01-08 格式:DOCX 页数:28 大小:435.25KB
下载 相关 举报
基于单片机的个性化电子钟Word格式.docx_第1页
第1页 / 共28页
基于单片机的个性化电子钟Word格式.docx_第2页
第2页 / 共28页
基于单片机的个性化电子钟Word格式.docx_第3页
第3页 / 共28页
基于单片机的个性化电子钟Word格式.docx_第4页
第4页 / 共28页
基于单片机的个性化电子钟Word格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

基于单片机的个性化电子钟Word格式.docx

《基于单片机的个性化电子钟Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的个性化电子钟Word格式.docx(28页珍藏版)》请在冰豆网上搜索。

基于单片机的个性化电子钟Word格式.docx

4.程序模块框图

5.程序清单

6.设计或调试过程中碰到的问题及决计方法

7.测试数据,误差分析,补偿方法,补偿前后精度比较

8.完成课程设计后的收获或体会,对《单片机课程设计》提出改进意见。

三.课程设计验收标准:

本次课程设计的成绩由3大部分组成:

即硬件设计﹑软件设计和课程设计报告。

硬件设计主要是电路图设计(可以用手工画或计算机辅助设计)。

软件部分在答辩时验收,并结合答辩情况进行评定。

1.电路原理图设计(20%),包括以下知识点:

CPU及时钟,复位电路

显示接口电路

键盘接口电路

蜂鸣器驱动电路

电源部分

2.软件设计及答辩(60%),包括以下知识点:

主程序及初始化程序

定时中断及计时程序

定时中断及显示程序

键盘程序

闹铃程序

按键声程序

3.课程设计报告(20%),具体要求见上面所述.

四.基础较好的学生可以结合实际应用自拟题目,题目和具体设计内容定好后

由指导老师比准。

指导老师:

乐金松

2014,12,28

单片机系统原理图及工作原理描述

1.MCU:

采用40个引脚的芯片。

4个8位的并行I/o口:

p0,p1,P2和P3,可以外接各种元器件和电路,控制各个I/O口高低电平的输出,以实现预期的功能。

还有复位键,晶振时钟,EA口等组成单片机最小系统。

2.晶振模块:

晶振大小为11.0592MHZ。

分析整个振荡槽路可知,利用Cv来改变频率是有限的:

决定振荡频率的整个槽路电容C=Cbe,Cce,Cv三个电容串联后和Co并联再和C1串联。

可以看出:

C1越小,Co越大,Cv变化时对整个槽路电容的作用就越小。

因而能“压控”的频率范围也越小。

实际上,由于C1很小(1E-15量级),Co不能忽略(1E-12量级,几PF)。

所以,Cv变大时,降低槽路频率的作用越来越小,Cv变小时,升高槽路频率的作用却越来越大。

这一方面引起压控特性的非线性,压控范围越大,非线性就越厉害;

另一方面,分给振荡的反馈电压(Cbe上的电压)却越来越小,最后导致停振。

3.数码管显示模块:

此为共阴极的八个数码管,p0口控制各个数码管的段选;

再通过P2.2,P2.3,P2.4口,控制138译码器输入来控制译码器的8个输出口,以达到数码管的位控制。

如:

当p2口输入为11100011时,则控制第一个数码管点着,即LED1被点亮,其他熄灭。

4.复位模块:

上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。

上电后,由于电容C5的充电和反相门的作用,使RST持续一段时间的高电平。

当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

5.独立按键模块:

分别为P3.0,P3.1,P3.2,P3.3口,为共阴极接法,当按键被按下时接入。

6.总电源模块:

实现5V电压转换,给其他元器件与电路供电。

7.蜂鸣器模块:

接入口为p1.5,当输入高电平时就会鸣响。

工作原理见附页

程序模块框图

主程序:

大概流程功能:

中断程序:

程序清单

;

1、其中:

P1.2,P1.3,P1.4,P1.5,P1.6,P1.7分别控制LED6,LED5,LED4LED3LED2LED1的公共端

P0口位正序连接的LED数码管段控制端口

2、产生2MS定时中断,每次中断调用扫描显示程序

3、系统时钟为12MHZ,N=1983

****************************************************************************

LED1EQU7FH

LED2EQU7EH

LED3EQU7DH

LED4EQU7CH

LED5EQU7BH

LED6EQU7AH

SCAN_COUNTEQU79H;

扫描显示计数器

H_MEM1EQU78H

M_MEM1EQU77H

S_MEM1EQU76H

H_MEMEQU75H

M_MEMEQU74H

S_MEMEQU73H

TIMER_COUNTEQU72H;

定时器中断次数软件计数器

TEMPEQU6EH;

模式寄存器

FLASH_FLAGEQU20H.0;

定义闪烁标志位

----------------------------------------------------------------------------------------

ORG0000H

LJMPMAIN

ORG000BH;

安装中断向量

LJMPT0_INT;

和外部中断向量

-------------------------------------------------------------------------------------------

ORG0030H

MAIN:

MOVSP,#2FH

MOVTL0,#(65536-1983)MOD256;

初始化时间常数

MOVTH0,#(65536-1983)/256

MOVTMOD,#00000001B

SETBET0;

开放定时器0中断

SETBTR0;

开启定时器0

SETBEA

LCALLCLR_MEM

;

---------------键盘扫描程序----------------------

KEYSCAN:

JNBP3.0,RING1

KEYSCAN1:

JNBP3.1,RING2

KEYSCAN2:

JNBP3.2,RING3

LJMPKEYSCAN

-----------------按键声程序----------------------

RING1:

CALLD10MS

CPLP1.5;

取反蜂鸣器

JNBP3.0,$

CPLP1.5

LJMPMODE

RING2:

JNBP3.1,$

LJMPUPSET_MODE11

RING3:

JNBP3.2,$

LJMPDOWNSET_MODE11

-------------------------------------------------

MODE:

INCTEMP

MOVA,TEMP

CJNEA,#5,EXIT1

MOVTEMP,#0

EXIT1:

JNBP3.0,$

LJMPKEYSCAN1

-----------------加键----------------------------------

UPSET_MODE11:

CJNEA,#1,UPSET_MODE12;

判断模式1,是就进入下一程序,否跳转另一模式判断

INCH_MEM

MOVA,H_MEM

CJNEA,#24,UP_EXIT

MOVH_MEM,#0

LJMPKEYSCAN2

UPSET_MODE12:

CJNEA,#2,UPSET_MODE23

INCM_MEM

MOVA,M_MEM

CJNEA,#60,UP_EXIT

MOVM_MEM,#0

LJMPKEYSCAN2

UPSET_MODE23:

CJNEA,#3,UPSET_MODE24

INCH_MEM1

MOVA,H_MEM1

CJNEA,#24,UP_EXIT

MOVH_MEM1,#0

UPSET_MODE24:

CJNEA,#4,UP_EXIT

INCM_MEM1

MOVA,M_MEM1

CJNEA,#60,UP_EXIT

MOVM_MEM1,#0

LJMPKEYSCAN

UP_EXIT:

JNBP3.1,$

-----------------减键--------------------------------

DOWNSET_MODE11:

CJNEA,#1,DOWNSET_MODE12

DECH_MEM

CJNEA,#0FFH,DOWN_EXIT

MOVH_MEM,#23

DOWNSET_MODE12:

CJNEA,#2,DOWNSET_MODE21

DECM_MEM

MOVM_MEM,#59

DOWNSET_MODE21:

CJNEA,#3,DOWNSET_MODE22

DECH_MEM1

MOVH_MEM1,#23

DOWNSET_MODE22:

CJNEA,#4,DOWN_EXIT

DECM_MEM1

MOVM_MEM1,#59

DOWN_EXIT:

JNBP3.2,$

**************定时中断程序**********************************************

T0_INT:

PUSHACC;

保护现场

PUSHPSW

PUSHDPL

PUSHDPH

SETBRS1;

选择2区工作寄存器单元

MOVTL0,#(65536-1983)MOD256;

恢复时间常数

MOVTH0,#(65536-1983)/256

LJMPMODE0

DIS:

LCALLDISPLAY

INCTIMER_COUNT

MOVA,TIMER_COUNT

CJNEA,#250,T0_INT1

MOVTIMER_COUNT,#0

CPLFLASH_FLAG;

每2MS*250=500MS取反闪烁标志位

JNBFLASH_FLAG,T0_INT1

INCS_MEM

MOVA,S_MEM

CJNEA,#60,T0_INT1;

对秒,分,时单元加1

MOVS_MEM,#0;

满计数后清零

INCM_MEM

MOVA,M_MEM

CJNEA,#60,T0_INT1

MOVM_MEM,#0

INCH_MEM

MOVA,H_MEM

CJNEA,#24,T0_INT1

MOVH_MEM,#0

---------------------闹钟-----------------

T0_INT1:

;

每一次中断

MOVA,M_MEM;

将现在的时间跟闹铃模式

CJNEA,M_MEM1,T0_INT2;

设置的时间比较

CJNEA,H_MEM1,T0_INT2

CPLP1.5;

取反蜂鸣器控制位

T0_INT2:

POPDPH;

中断结束恢复现场,注意出栈顺序

POPDPL

POPPSW

POPACC

RETI

****************************************************

-------------MODE0(正常)-----------------

MODE0:

CJNEA,#0,MODE1

MOVR3,S_MEM;

秒单元二翻十

MOVR2,#0

LCALLBTID

MOVA,R6

ANLA,#0FH

MOVDPTR,#LED_CODE

MOVCA,@A+DPTR

MOVLED1,A

ANLA,#0F0H

SWAPA

MOVDPTR,#LED_CODE

MOVLED2,A

MOVR3,M_MEM;

分钟单元二翻十

MOVA,R6

MOVCA,@A+DPTR

JNBFLASH_FLAG,MODE0_BCD1

CPLACC.7;

点亮小数点

MODE0_BCD1:

MOVLED3,A

MOVLED4,A

MOVR3,H_MEM;

时钟单元二翻十

JNBFLASH_FLAG,MODE0_BCD2

MODE0_BCD2:

MOVLED5,A

MOVLED6,A

LJMPDIS

------------MODE1(时钟小时校准)-----------------------------

MODE1:

CJNEA,#1,MODE2

MOVR3,S_MEM;

MOVR3,M_MEM;

JNBFLASH_FLAG,MODE1_BCD1

MODE1_BCD1:

MOVR3,H_MEM;

JNBFLASH_FLAG,MODE1_BCD2

CPLACC.7;

MOVA,#00H

MODE1_BCD2:

MOVA,R6

JNBFLASH_FLAG,MODE1_BCD3;

另时钟单元数码管闪烁

MOVA,#00H;

对数码管熄灭

MODE1_BCD3:

MOVLED6,A;

送显示到数码管

-------------MODE2(时钟分钟校准)-------------

MODE2:

CJNEA,#2,MODE3

MOVR3,S_MEM;

JNBFLASH_FLAG,MODE2_BCD1

点亮小数点

MODE2_BCD1:

JNBFLASH_FLAG,MODE2_BCD3;

另分钟单元闪烁

MOVA,#00H;

熄灭数码管

MODE2_BCD3:

MOVLED4,A

JNBFLASH_FLAG,MODE2_BCD2

MODE2_BCD2:

MOVLED6,A

LJMPDIS

-----------------MODE3(闹铃小时校准)----------------

MODE3:

CJNEA,#3,MODE4

MOVR3,S_MEM1;

MOVA,R

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1