电子技术与单片机的发展应用 毕业论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子技术与单片机的发展应用
目录
绪论 (4)
一、数字电子技术 (5)
1数字信号 (5)
2数字电路 (5)
●数制与代码 (5)
●逻辑代数的基本运算 (5)
●逻辑代数的基本定律 (6)
3数字电路的特点、分类 (6)
4数字电路的发展 (6)
二、单片机技术 (6)
1什么是单片机 (7)
2单片机的基本结构及特性 (7)
三、数字电子技术与单片机的结合应用实例———数字电子钟 (7)
1数字电子钟的简介 (7)
●背景 (8)
●意义 (8)
●应用 (8)
2数字电子钟的硬件组成 (8)
●LED显示电路 (8)
●单片机的选择 (8)
3软件设计
●系统软件设计流程图 (9)
4程序设计 (10)
四、总结 (21)
数字电子技术与单片机的发展应用
绪论
二十世纪四十年代,在先进武器的研制过程中,比如导弹的弹道轨迹计算需要进行大量高速,复杂,精确的计算,原有的计算工具已满足不了要求;另一方面,当时的自动控制技术和电子器件等使新型计算工具的发明成为可能。
一是需要而使可能,世界上地一台电子计算机于1946年诞生于美国宾夕法尼亚,取名ENIAC,电子计算机的诞生与数字电子技术等技术的发展是离不开。
而时至今日,数值电子技术也已经广泛应用各个领域了,无论是现代高精尖电子设备,还是大家熟悉的计算机,手机,数字电视,数码相机等现代电子装置,其核心构成都是数字电子系统而数字电子系统的发展又促进了单片机技术的发展应用,所以数字电子技术是与单片机技术紧紧相连的,如图所示是数字钟电路,它就是运用数字电子技术与单片机技
术所制成的。
一·数字电子技术
1·数字信号
电子电路所处理的电信号可分为数字信号和模拟信号。
数字信号是在时间和数值上都是离散的信号。
计算机传递的信号往往就都是数字信号,而模拟信号是在时
间和数值上都是连续变化的信号,如电流电压等。
2·数字电路
数字电路是用于传递和处理数字信号的电子电路。
它可以完成信号的产生,放大,整形,传递,控制,存储计算等。
数字电路分析及设计的基本工具是逻辑代数,组成数字电路的基本单元电路是逻辑门电路。
·数制与代码
数字电路的基础主要是研究输出和输入信号之间的对应逻辑关系其分析的主要工具是逻辑代数。
在现实生活中各种数字设备只能对二进制代码进行运算和处理,人们熟悉的十进制数对机器来说实现起来很困难。
所以对于电子技术来说二进制数十很重要的,而根据单片机的定义:单片机就是将计算机的基本部件集成到一块芯片内的微型计算机。
就像上面所说数字电子技术对于单片机的发展来说有很重要的意义,所以了解二进制数及其各进制数间的转换也是很重要的
二进制数的基数是二,采用两个数码零和一,技术规律是“逢二进一”。
二进制数的各位的位位权为20、21、22……任何一个二进制数都可以表示成以其数2为底的冥的求和数。
在计算机系统中,除了二进制,还有八进制、十进制、十六进制。
二进制主要用于机器内部数据处理。
八进制和十六进制主要用于书写程序,十进制主要用于运算结果的输出。
·逻辑代数的基本运算
逻辑代数有三种基本运算:与运算,或运算和非运算
与运算的逻辑表达式为Y=A·B他的运算规律为输入有0得0全1得1。
或运算的逻辑表达式为Y=A+B或逻辑得运算规律为有1得1,全0得0
非运算也称反运算,其表达式为Y=A 非逻辑运算的规律为0变2,1变0,即始终相反。
·逻辑代数的基本定律
与普通代数一样,逻辑代数也有相应的规律,其基本定律有0-1律、交换律、
结合律、分配律、互补律、重叠律、还原律、反演律(摩根定律)、吸收率、隐含律。
这些我们都记、应该要了解,在这里就不多说了。
1·数字电路的特点及分类
与模拟电路相比数字电路具有显著地有点
·结构简单,便于集成化系列化生产,成本低廉使用方便
·抗干扰性强,可靠性高,精确度高,稳定性好
·处理功能强,不仅能实现数值运算,还可以实现逻辑运算和判断。
·可编程数字电路便于实现各种运算具有很大的灵活性。
·数字信号更易于存储、加密、压缩、传输
数字信号是不连续的,反映在电路上只有高电位和低电位两种状态,因此数字电路采用二进制数来传输和处理数字信号,在数字电路中,通常采用开关的接通与开断来实现电路的高低电位两种状态,将高电位称为高电平,用“1”表示,低电位称为低电平,用“0”表示。
数字电路的开关状态时二极管,三极管的导通和截止来实现的。
分类:数字集成电路按不同划分方法有各种不同的类型它可按集成度分、按应用范围分、按所用器件分、按逻辑功能分。
·数字电路的发展
目前数字集成带你路正向着大规模,低功耗,高速度,可编程可测试和多值化方向发展。
二·单片机技术
1·什么是单片机
单片机就是将计算机的基本部件集成到一块芯片内的微型计算机。
由于单片机通常是为控制应用而设计制造的,现国际上逐渐统一称为MCU(MICRO-CONTROLLER UNIT 微控制器)
2·单片机的基本结构及特点
单片机芯片内通常包括CPU、ROM、RAM并行I/O、串行I/O、定时器计数器、中断控制系统时钟、A/D(模数转换器)和D/A(数模转换器)、WDT(监视定时器)等。
与通常所说的微型计算机相比单片机具有以下显著特点:1多功能。
2多品种。
3占用空间少。
4系统所需外围器件少。
5低价格。
6低电压。
7地功耗。
8性价比高。
高灵活性。
10高可靠性
鉴于上述特点单片机在工业测量和控制家用电器,商业应用等领域都得到了广泛的应用。
可分为两大分支:(1)通用计算机系统,如我们日常使用的PC机。
(2)嵌入式计算机系统,可理解为嵌入到其他装置中的计算机系统,大多数嵌入式计算机系统已单片机为核心。
单片机的应用大致可分为以下4大类
(1)智能仪器仪表(2)工业测控(3)民用智能电子产品(4)计算机外设及通信设备。
日常生活核工业系统中以及其他领域都离不开单片机,它在智能电子产品中起着核心作用,如信息家电,掌上电脑,可视电话……在电力系统中也有广泛的应用,如远程测控终端RTU,智能电表,智能抄表器,无功补偿控制器……都有广泛的应用。
三·数字电子技术与单片机的结合应用实例————数字电子钟
1·数字电子钟的简介
背景:20世纪末电子技术获得了飞速的发展在其推动下现代电子产品几乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品的性能进一步提高,产品跟新换代的节奏也越来越快,时间对人们来说总是那么的宝贵。
目前单片机正朝着高性能和多品种方向发展,将进一步向CMOS化,低功率,小体积,大容量,高性能,低价格,和外围电路内装片等几个方面发展。
从前必须由模拟电路或数字电路实现的功能现在已能用单片机通过软件方法来实现。
这种技术可成为微控技术。
单片机模块中最常见的是数字钟。
数字钟是一种用数字电子技术实现的分秒即使得装置,与机械式时钟相比具有更高的准
确性和直观性。
且无机械装置具有更长的使用使用寿命因此得到广泛的使用。
意义:电子钟是采用数字电路实现时分秒数字显示的计时装置,广泛用于个人家庭,车站,码头等公共场所。
成为人们日常生活中不可缺少的必须品。
由于数字集成电路的发展和石英晶体振荡器的广泛应用使得数字钟的精度远远的超过老式钟表,钟表的数字化给人们生产生产生活带来了极大的方便,而且大大的扩发了钟表的原来的报时功能,如定时自动报警,按时自动打铃,时间程序自动控制……所有这些都顶以钟表数字化为基础,因此研究数字钟及其扩大应用有着非常现实的意义。
应用:数字钟一成为人们日常生活中必不可少的必需品,广泛用于各个私人与公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便,由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有定时,准确,性能稳定,携带方便等优点,他还用于记时,自动报时及自动控制等各个领域。
数字电子钟的硬件组成
LED显示电路
LED显示电路采用动态显示方式显示,由74LS248 BCD译码芯片和74LS138译码器组成。
采用74LS248的目的是为了节省I/O口资源,以便控制更多的外围芯片。
LED的段选数据由通过74LS248译码过来的段选码决定,位选数据由74LS138译码产生。
工作的时候首先把按键的值转换为BCD码,再送入P0口的第4位,但是对P0口时整体复制会破坏位选口的数据。
此时需进行P0口数据的修正,通过或逻辑运算把位选数据也送入P0口的第4位和第5位,再把修正好的数据送给P0口,此时既有段选数据又有位选数据。
要使显示的数据不闪,则需要利用人眼的视觉暂留性,将每个数据显示之间的时间延时控制在10 ms以内,这样显示的数字才不闪。
●单片机的选择
对于在电子时钟里单片机的选择我选择的是A T89c52作为电子时钟的硬件核心。
因为AT89C52片内全部采用FLASH ROM 能以3V的超低压工作。
,其有8KB ROM的存储空间,且具有在线编程可擦除技术,如果对电路进行调试时由于程序的错误修改或对程序的新增功能需要烧入程序时不需要对芯片多次插拔,所以不会
对芯片造成伤害。
而AT89C51作为硬件核心的话,其内部是4KB ROM的存储空间错误修改或对程序的新增功能需要烧入程序时要多次插拔,所以会对芯片造成伤害。
所以综合以上几点我选择AT89c52作为电子时钟的硬件核心,其虽也能工作在3V的超低压状态,但如果对电路进行调试时由于程序的。
3·软件设计流程图
4·程序设计
SEC EQU 32H ;秒即
时时间\伪指令
MIN EQU 31H ;分
HOUR EQU 30H ;时
DAY EQU 35H ;日
MON EQU 34H ;月
YEAR EQU 33H ;年
MIN_1 EQU 41H ;分定时器1 路、开存储单元HOUR_1 EQU 42H ;
时
DAY_1 EQU 43H ;
MON_1 EQU 44H ;
YEAR_1 EQU 45H ;
MIN_11 EQU 40H ;分定时器1 路、关存储单元HOUR_11 EQU 46H ;
时
DAY_11 EQU 47H ;
日
MON_11 EQU 48H ;
月
YEAR_11 EQU 49H ;
年
;***********************
ORG 0000H
ljmp MAIN
ORG 0003H ;中断转
换显示年月日、INT0(SB4
键)
LJMP SHOW
ORG 000BH ;计数中
断T0、方式1
LJMP TIME
ORG 0013H
LJMP CHANGE; 调
整时间、定时、INT1(SB0
键)
;------主程序
ORG 0030H
MAIN:
;--------初始化赋值
MOV YEAR , #02
MOV MON , #05
MOV DAY , #01
MOV HOUR , #00
MOV MIN , #00
MOV SEC , #00
CLR 40H ;定时单元1
路清零
CLR 41H
CLR 42H
CLR 43H
CLR 44H
CLR 45H
CLR 46H
CLR 47H
CLR 48H
CLR 49H
;-------开中断
MOV TMOD , #01H ;
计数、模式1、T0
MOV TL0,
#0B0H ;100SM 计数定时
MOV TH0, #3CH ;
clr p3.0
MOV 20H, #0AH ;10 次*100SM
SETB PT0 ;T0 为最
高级
SETB TR0 ;允许计数SETB ET0 ;允许T0
中断
SETB EX0 ;允许INT0
中断
SETB EX1 ;允许INT1
中断
SETB EA ;开总中断;------显示、定时器启
动判断
LOOP:
MOV R1, #30H; 存储
单元
MOV R4, #01H; 位选
通
MOV R3, #03H; 三组
显示
NEXT:
MOV A , @R1 ;
MOV B , #10 ;将存储
单元转换成两高低两组的
BCD 码
DIV AB
SWAP A
ORL A, B
MOV P0, A;输出
MOV P2, R4
INC R1 ;下一单元
MOV A, R4 ;
RL A ;位移
MOV R4, A
LCALL DE5SM ;延时
0.5SM
DJNZ R3, NEXT ;全
扫描显示一偏
;------判断定时输出(只
编写了一路)
CJNE R7,
#88H,LOOP ;是8 则开,否
则、定时已关、转
;---------开
MOV A, YEAR
CJNE A, YEAR_1,
LOOP_1;年比较,不等转关
MOV A, MON
CJNE A, MON_1,
LOOP_1
MOV A, DAY
CJNE A ,
DAY_1,LOOP_1
MOV A, HOUR
CJNE A,
HOUR_1,LOOP_1
MOV A, MIN
CJNE A, MIN_1,
LOOP_1
CPL P3.0
;---------关
LOOP_1:
MOV A, YEAR
CJNE A, YEAR_11,
LOOP;年比较
MOV A, MON
CJNE A, MON_11,
LOOP
MOV A, DAY
CJNE A , DAY_11,LOOP
MOV A, HOUR
CJNE A, HOUR_11,LOOP
MOV A, MIN CJNE A, MIN_11,
LOOP
CPL P3.0
LJMP LOOP
;-----年月日显示中断子程序
SHOW:
PUSH PSW
push ACC
PUSH B
PUSH 01H
PUSH 02H
PUSH 03H
PUSH 04H MOV R2, #0FFH ;中
断扫描次数
TURN: MOV R1 ,
#33H
MOV R4 , #01H
MOV R3 , #03H
NEXT_1:
MOV A, @R1
MOV B , #10
DIV AB
SWAP A
ORL A, B
MOV P0, A
MOV P2, R4
INC R1
RL A
MOV R4 ,A
LCALL DE5SM
DJNZ R3, NEXT_1
DJNZ R2, TURN ;反
复显示一定时间后返回
POP 04H
POP 03H
POP 02H
POP 01H
POP B
POP ACC
POP PSW
RETI
;-----计数中断服务子
程序
TIME:
PUSH PSW
PUSH ACC
PUSH B
PUSH 06H
MOV TH0 , #3CH;重
装计数
MOV TL0 , #0BH;
DJNZ 20H, OUT ;转
到中断跳出pop 程序
MOV 20H, #0AH ; 重
装:100*10=1000
;-----进位程序
INC SEC
MOV R6, SEC ;
CJNE R6, #60, OUT;
比较
MOV SEC , #00 ;
INC MIN
MOV R6, MIN
CJNE R6, #60, OUT
MOV MIN , #00
INC HOUR
MOV R6 , HOUR
CJNE R6 , #25 , OUT
MOV HOUR ,#00
INC DAY
MOV R5, MON
CJNE R5, #1, MON_22;是否1 月、不是
转2 月
MOV R5, DAY
CJNE R5, #32, OUT ;
本月是否益出
INC MON
MOV DAY,#1
LJMP OUT
OUT:
POP 06H
POP B
POP ACC
POP PSW
RETI
MON_22:
MOV R5, MON
CJNE R5 , #2 ,
MON_33;是否2 月、不是
转3 月
MOV A, YEAR ;判断
是否瑞年
MOV B, #4
DIV AB
MOV A , B
JNZ OUT_1;不是则转
(A 不为零则转)
MOV R5 ,DAY
CJNE R5,#30, OUT;
如是瑞年、判断是否到29
天
INC MON
MOV DAY ,#1
LJMP OUT
OUT_1:
MOV R5, DAY
CJNE R5, #29, OUT ;
平年二月判断
INC MON
MOV DAY , #1
LJMP OUT
MON_33:
MOV R5, MON
CJNE R5, #3 ,
MON_44
MOV R5, DAY
CJNE R5 , #32, OUT
INC MON
MOV DAY , #1
LJMP OUT
MON_44:
MOV R5, MON
CJNE R5,#4,
MON_55
MOV R5, DAY
CJNE R5 ,#31,OUT
INC MON
MOV DAY , #1
LJMP OUT
MON_55:
MOV R5,MON
CJNE R5,#5,
MON_66
MOV R5,DAY CJNE R5,#32,OUT
INC MON
MOV DAY,#1
LJMP OUT
MON_66: MOV R5, MON
CJNE R5,#6,
MON_77
MOV R5, DAY CJNE R5 ,#31,OUT INC MON
MOV DAY , #1
LJMP OUT
MON_77: MOV R5, MON
CJNE R5,#7,
MON_88
MOV R5, DAY CJNE R5,#32,L1
INC MON
MOV DAY , #1
L1: LJMP OUT
MON_88:
MOV R5, MON
CJNE R5,#8,
MON_99
MOV R5, DAY
CJNE R5 ,#32,L2
INC MON
MOV DAY , #1
L2: LJMP OUT
MON_99:
MOV R5, MON
CJNE R5,#9,
MON_00
MOV R5,DAY
CJNE R5 ,#31,L3
INC MON
MOV DAY , #1
L3: LJMP OUT
MON_00:
MOV R5, MON
CJNE R5,#10,
MON_AA
MOV R5, DAY
CJNE R5 ,#32,L4
INC MON
MOV DAY , #1
L4: LJMP OUT
MON_AA:
MOV R5, MON
CJNE R5,#11,
MON_BB
MOV R5,DAY
CJNE R5,#31,L5
INC MON
MOV DAY , #1
L5: LJMP OUT
MON_BB:
MOV R5, DAY
CJNE R5 ,#32,L6
INC YEAR
MOV MON, #1
MOV DAY , #1
L6:LJMP OUT
;-------按SB2\定时器
年单元加1 子程序
SB3_2: LJMP SHOW_2 ;二路没编返回
SB3_3: LJMP SHOW_3 ;三路没编返回
SB3_1:
MOV A , YEAR_1 ;
调时年单元
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #01H
LCALL READ
LCALL DE250SM
CJNE A, 01H, SB3_1
CJNE A, #0FBH, KEY2_7 ;按SB2 转年调整LJMP MON_111 ;按
SB1 往下调月单元
KEY2_7:CJNE A,
#0FDH, SB3_1
INC YEAR_1 ; 1 路
年单元加1
MOV R5,YEAR_1
CJNE
R5,#09,SB3_1 ;益出
MOV YEAR_1, #00H
AJMP SB3_1 ;
;-------月单元加1 子
程序
MON_111:
MOV A , MON_1 ; 调
时月单元显示
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #02H
LCALL READ
LCALL DE250SM
CJNE A, 01H,
MON_111
CJNE A, #0FBH,
KEY2_8 ;按SB2 转月调整
LJMP DAY_111
KEY2_8:
CJNE
A,#0FDH,MON_111
INC MON_1 ;1 路月
单元加1
MOV R5,MON_1
CJNE
R5,#13,MON_111;益出
MOV MON_1, #01H
AJMP MON_111 ; 转
到月显
;_------日单元加1 子
程序
DAY_111:
MOV A , DAY_1 ; 调
时日单元显示提示
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #04H
LCALL READ
LCALL DE250SM
CJNE A,
01H,DAY_111
CJNE A, #0FBH, KEY2_9 ;按SB2 转日调整
LJMP HOUR_111
KEY2_9: CJNE A,#0FDH,DAY_111
INC DAY_1 ;1 组日
单元加1
MOV R5, DAY_1
CJNE
R5,#32,DAY_111;益出
MOV DAY_1, #01H
AJMP DAY_111 ; 转
到日显
;-------按SB2 时单元
加1 子程序
HOUR_111:
MOV A , HOUR_1 ;
调时时单元显示提示
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #01H
LCALL READ
LCALL DE250SM
CJNE A,
01H,HOUR_111
CJNE A, #0FBH,
KEY2_10 ; 按SB2 转时调
整
LJMP MIN_111
KEY2_10:CJNE
A,#0FDH,HOUR_111
INC HOUR_1
MOV R5,HOUR_1
CJNE
R5,#24,HOUR_111;益出
MOV HOUR_1, #00H
AJMP HOUR_111 ;
转到时显
;-------分单元加1 子
程序
MIN_111:
MOV A , MIN_1 ; 调
时分单元、并显示提示
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #02H
LCALL READ
LCALL DE250SM
CJNE A,
01H,MIN_111
CJNE A, #0FBH,
KEY2_11 ;按SB2 转分调
整
AJMP OFF_CH ;按
SB3 往下调定时:关单元
KEY2_11: CJNE A,
#0FDH, MIN_111
INC MIN_1 ;1 路分单
元加1
MOV R5, MIN_1
CJNE
R5,#60,MIN_111;益处
MOV MIN_1, #00H
AJMP MIN_111 ; 转
到分显
年单元调整
OFF_CH: MOV A , YEAR_11 ; 调时年单元
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #01H
LCALL READ
LCALL DE250SM
CJNE A, 01H,
OFF_CH
CJNE A, #0FBH, KEY2_F7 ;按SB2 转年调
整
LJMP MON_OFF ;按
SB1 往下调月单元
KEY2_F7:CJNE A,
#0FDH, OFF_CH
INC YEAR_11 ; 1 路
年单元加1
MOV R5,YEAR_11
CJNE
R5,#09,OFF_CH ;益出
MOV YEAR_11,
#00H
AJMP OFF_CH ;
;-------月单元加1 子
程序
MON_OFF:
MOV A , MON_11 ;
调时月单元显示
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #02H
LCALL READ
LCALL DE250SM
CJNE A, 01H,
MON_OFF
CJNE A, #0FBH,
KEY2_F8 ;按SB2 转月调
整
LJMP DAY_OFF
KEY2_F8:
CJNE
A,#0FDH,MON_OFF
INC MON_11 ;1 路月
单元加1
MOV R5,MON_11
CJNE
R5,#13,MON_OFF;益出
MOV MON_11, #01H
AJMP MON_OFF ;
转到月显
;_------日单元加1 子
程序
DAY_OFF:
MOV A , DAY_11 ;
调时日单元显示提示
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #04H
LCALL READ
LCALL DE250SM
CJNE A,
01H,DAY_OFF
CJNE A, #0FBH, KEY2_F9 ;按SB2 转日调
整
LJMP HOUR_OFF
KEY2_F9: CJNE A,#0FDH,DAY_OFF
INC DAY_11 ;1 组日
单元加1
MOV R5, DAY_11
CJNE
R5,#32,DAY_OFF;益出
MOV DAY_11, #01H
AJMP DAY_OFF ;
转到日显
;-------按SB2 时单元
加1 子程序
HOUR_OFF:
MOV A , HOUR_11 ;
调时时单元显示提示
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #01H
LCALL READ
LCALL DE250SM
CJNE A,
01H,HOUR_OFF
CJNE A, #0FBH,
KEY2_F10 ; 按SB2 转时
调整
LJMP MIN_OFF
KEY2_F10:CJNE
A,#0FDH,HOUR_OFF
INC HOUR_11
MOV R5,HOUR_11
CJNE
R5,#24,HOUR_OFF;益出
MOV HOUR_11,
#00H
AJMP HOUR_OFF ;
转到时显
;-------分单元加1 子
程序
MIN_OFF:
MOV A , MIN_11 ; 调
时分单元、并显示提示
MOV B ,#10
DIV AB
SWAP A
ORL A,B
MOV P0, A
MOV P2, #02H
LCALL READ
LCALL DE250SM
CJNE A,
01H,MIN_OFF
CJNE A, #0FBH,
KEY2_F11 ;按SB2 转分
调整
LJMP ON_1 ;按SB3
往下调定时:开与关
KEY2_F11: CJNE A, #0FDH, MIN_OFF
INC MIN_11 ;1 路分
单元加1
MOV R5, MIN_11
CJNE
R5,#60,MIN_OFF;益处MOV MIN_11, #00H
LJMP MIN_OFF ; 转
到分显
;-------开、关定时
ON_1:CJNE A,
#0FBH, MIN_OFF
K1: MOV A, #88H
MOV R7, A
MOV P0, A
MOV P2, #0FFH;三组
都显示开
LCALL READ
LCALL DE250SM
CJNE A, 01H, ON_1;
去抖后比较
CJNE A,
#0FBH,KEY2_12 ;按SB2
转关
LJMP OUT_A ;按
SB3 调出、处于开状态
KEY2_12: CJNE A,
#0FDH, K1
k2: MOV A, #00H; 显
示0 关
MOV R7, A
MOV P0, A
MOV P2, #0FFH;
LCALL READ
LCALL DE250SM
CJNE A, 01H, K2;去
抖后比较
CJNE A,
#0FBH,KEY2_13 ;按SB2
转开
LJMP OUT_A ;SB3
调出、处关状态
KEY2_13:
CJNE A, #0FDH, K2 ;
比较按了没
LJMP K1 ; 按了
SB2、转开
OUT_A:
POP 00H
POP B
POP ACC
POP PSW
RETI
;_------读取按键程序
READ:MOV A , P1;
读取按键
MOV R1, A
LCALL DE10MS
MOV A, P1
RET
;_----延时程序
DE5SM:
PUSH 01H
MOV R1, #0FFH
DJNZ R1,$
POP 01H
RET
DE10MS: PUSH 04H
PUSH 05H
MOV R4, #0AH
Dl1: MOV R5, #0FFH dl2: DJNZ R5,$
DJNZ R4,dl1
POP 05H
POP 04H
RET
DE250SM:PUSH
02H
PUSH 00H
MOV R0, #0FFH
DEL:MOV R2,
#0FFH
DJNZ R2,$
DJNZ R0, DEL
POP 00H
POP 02H
RET
;_---调整时间进位程
序
MIN_AD:
INC MIN
MOV R6, MIN
CJNE R6, #60, OU1
MOV MIN , #00
OU1: RET
HOUR_AD:
INC HOUR
MOV R6 , HOUR
CJNE R6 , #25 , OU2
MOV HOUR ,#00
OU2: RET
DAY_AD:
INC DAY
MOV R6, DAY
CJNE R6 , #32, OU3 ;
是否益出
MOV DAY ,#01H
OU3: RET
MON_AD:
INC MON
MOV R6, MON
CJNE R6, #13, OU4 ;
是否益出
MOV MON ,#01H
OU4: RET
YEAR_AD:
INC YEAR
MOV R6, YEAR
CJNE R6, #09, OU5;
是否益出
MOV YEAR ,#00H
OU5: RET
END
四·总结
数字电子技术与单片机的发展为我们的生活提供了许多的方便。
他们的一些发展产物发挥了单片机在智能化方面的应用。
如此次所举的数字电子钟的应用,它是一个理想的智能化的设计。
它具有一个走时精确的实时钟,可以任意设置时间,可以控制时间表的转换,时钟的显示功能等。
可以通过按键操作和数字显示。
该系统规模小,但是功能较多,操作简单,造价低,应用非常广泛。
该系统的设计为向家庭数字化方向发展又前进了一步。
同时又扩大了单片机的应用领域。
自数字电子技术与单片机出现至今,单片机技术已走过了几十年的发展路程。
纵观几十年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,拉动广泛的应用领域,表现出比微处理器更具个性的发展趋势……所以,研究并不断发展他们是对人类生活有着重要意义的。
通过此次毕业论文的设计让我对硬件电路的设计有了一定的了解,为我以后再遇到相同设计的课题时打下了一定的基础,知道应该注意些什么问题。
本次设计采用单片机作为核心技术,实现具有定时较时功能的数字电子钟,随着社会,和科学技术的发展热们对时间要求的准确性,多功能性有了更高的要求,并将其与其他技术结合应用,也因此我们的生活才能这么的丰富多彩。
数字钟已由单一计时功能发展到温度检测,湿度检测等多功能数字钟。
利用单片机作为数字电子钟的控制核心可以做到硬件电路的简单稳定减少电磁干扰和其他环境干扰充分发挥软件编程优点减少因元器件精度不够引起的误差。
通过这些天的学习让我了解了数字电子技术,单片机技术,和编程方面的技巧,让我积累了以定的设计经验,巩固了书面知识,只有在实际问题中才能发现不足,改
21
22
PB PM PS O NS NM NB
O O NS NM NM NM NM NB
O O NS NM NM NM NM NB
PM PM O NS NS NM NM NB
PB PB PM O O NM NM NB
PB PB PM PS PS O O NM
PB PB PM PM PM PS PS O
PB PB PM PM PM PS PS O
EC
U E
PB PM PS PO NO NS NM
NB。