深圳市华胄科技有限公司 >> MCU专题 >> MCU单片机


MCU51学习例程----简单时钟



提交者 华胄斑竹  在  2008-6-23 14:09:58 

上一篇 下一篇
;=================================================
; 简单时钟
;
; 时间设定 分钟减1 SW1
; 分钟加1 SW2
; 小时减1 SW3
; 小时加1 SW4
;=================================================
;
; mcu51实验板配套学习例程
;
;=================================================
LED1 EQU 021H
LED2 EQU 022H
LED3 EQU 023H
LED4 EQU 024H


JS1 EQU 025H ;25MS (0-99)
JS2 EQU 026H ;1S (0-39)
TimeS EQU 027H ;(0-59)秒
TimeM EQU 028H ;(0-59)分钟
TimeH EQU 029H ;(0-23)小时


LedT0 EQU 030H


ORG 0000H
LJMP START;转入主程序
ORG 000BH ;定时器0中断入口


INT_TO:
PUSH ACC
PUSH PSW
;=============================时钟
INC JS1
MOV A,JS1
CJNE A,#100,INT_TIME
MOV JS1,#00


INC JS2
MOV A,JS2
CJNE A,#40,INT_TIME
MOV JS2,#00
;===========================================
;(11.0592MHz 补偿)提高精度。
;(250.6510417-250)*4000/250=10.4166672
MOV JS1,#10
;===========================================


;秒数加1
INC TimeS
MOV A,TimeS
CJNE A,#60,INT_TIME
MOV TimeS,#00
;分钟加1
INC TimeM
MOV A,TimeM
CJNE A,#60,INT_TIME
MOV TimeM,#00
;小时加1
INC TimeH
MOV A,TimeH
CJNE A,#24,INT_TIME
MOV TimeH,#00
INT_TIME:


MOV A,TimeH
CALL HEXtoBCD
MOV LED1,A
MOV LED2,B


MOV A,TimeM
CALL HEXtoBCD
MOV LED3,A
MOV LED4,B


;=============================显示


MOV A,#11110000B ;关数码管
ORL P2,A
MOV A,LedT0
CJNE A,#0,INT_T0_1
MOV A,LED1
MOVC A,@A+DPTR
MOV P0,A
CLR P2.7
MOV LedT0,#1
LJMP INT_T0_END
INT_T0_1:

MOV A,LedT0
CJNE A,#1,INT_T0_2
MOV A,LED2
MOVC A,@A+DPTR
MOV P0,A
CLR P2.6
MOV LedT0,#2


;点小数点
MOV C,TimeS.0
MOV P0.5,C
LJMP INT_T0_END
INT_T0_2:

MOV A,LedT0
CJNE A,#2,INT_T0_3
MOV A,LED3
MOVC A,@A+DPTR
MOV P0,A
CLR P2.5
MOV LedT0,#3
LJMP INT_T0_END
INT_T0_3:

MOV A,LED4
MOVC A,@A+DPTR
MOV P0,A
CLR P2.4
MOV LedT0,#0
LJMP INT_T0_END

INT_T0_END:


POP PSW
POP ACC


RETI


;========十六进制转换为十进制,A高位,B低位
HEXtoBCD:
mov b,#0ah ; HEX>BCD
div ab
anl a,#00001111b
anl b,#00001111b
RET


START:
MOV SP,#60H


CLR A
MOV JS1,A
MOV JS2,A
MOV TimeH,A
MOV TimeS,A
MOV TimeM,A


MOV TMOD,#02H ;设定T0为工作方式2,八位自动重载。
MOV TH0,#025 ;
MOV TL0,#025 ;256-(250*11.0592/12)=256-230.4=25.6 250us(11.0592)
;用25时,中断时间为250.6510417us
;
SETB TR0 ;开定时器0
SETB ET0 ;致能定时0中断
CLR TF0 ;清定时0中断标志
SETB EA ;开总中断


MOV LedT0,#00H
MOV DPTR,#TABLE


MAIN:


MOV A,#00000011B
ORL A,P3
CPL A
JZ MAIN
LCALL DELAY10MS ;去抖动
MOV A,#00000011B
ORL A,P3
CPL A
JZ MAIN


JB ACC.2,KEY_SW1
JB ACC.3,KEY_SW2
JB ACC.4,KEY_SW3
JB ACC.5,KEY_SW4
LJMP MAIN


;==============时间设定.分钟减1
KEY_SW1:
CLR C
MOV A,TimeM
SUBB A,#1
MOV TimeM,A
JNC KEY_SW1_END
;借位,表示已经减到小于0
MOV TimeM,#59
KEY_SW1_END:
AJMP KEY_END


;==============时间设定.分钟加1
KEY_SW2:
INC TimeM
MOV A,TimeM
CJNE A,#60,KEY_SW2_END
MOV TimeM,#00
KEY_SW2_END:
AJMP KEY_END


;==============时间设定.小时减1
KEY_SW3:
CLR C
MOV A,TimeH
SUBB A,#1
MOV TimeH,A
JNC KEY_SW3_END
;借位,表示已经减到小于0
MOV TimeH,#23
KEY_SW3_END:
AJMP KEY_END


;==============时间设定.小时加1
KEY_SW4:
INC TimeH
MOV A,TimeH
CJNE A,#24,KEY_SW4_END
MOV TimeH,#00
KEY_SW4_END:
AJMP KEY_END
;按键放开处理
KEY_END:
MOV A,#00000011B
ORL A,P3
CPL A
JNZ KEY_END
LJMP MAIN


DELAY10MS:
MOV R4,#20
DELAY10MSA:
MOV R5,#247
DJNZ R5,$
DJNZ R4,DELAY10MSA
RET


TABLE:
DB 00101000B ;0
DB 11101011B ;1
DB 00110010B ;2
DB 10100010B ;3
DB 11100001B ;4
DB 10100100B ;5
DB 00100100B ;6
DB 11101010B ;7
DB 00100000B ;8
DB 10100000B ;9
DB 01100000B ;A
DB 00100101B ;b
DB 00111100B ;C
DB 00100011B ;d
DB 00110100B ;E
DB 01110100B ;F
DB 11110111B ;-
DB 11111111B ;
END



单片机教程,五系列(55讲)电子书全集下载

论坛精选:
单片机教程,MCS51单片机从零开始 第一讲:初识单片机
http://bbs.huazhoucn.com/Topic.aspx?id=2539
单片机教程,MCS51单片机从零开始 第二讲:MCS-51单片机简述
http://bbs.huazhoucn.com/Topic.aspx?id=2540
单片机教程,MCS51单片机从零开始 第三讲:单片机相关常用名词解释
http://bbs.huazhoucn.com/Topic.aspx?id=2541
单片机教程,MCS51单片机从零开始 第四讲:计算机中数的表示及运算
http://bbs.huazhoucn.com/Topic.aspx?id=2542
单片机教程,MCS51单片机从零开始 第五讲:常用逻辑电路
http://bbs.huazhoucn.com/Topic.aspx?id=2544
单片机教程,MCS51单片机从零开始 第六讲:51单片机的结构及其组成
http://bbs.huazhoucn.com/Topic.aspx?id=2545
单片机教程,MCS51单片机从零开始 第七讲:51单片机的引脚
http://bbs.huazhoucn.com/Topic.aspx?id=2546
单片机教程,MCS51单片机从零开始 第八讲:8051单片机I/O引脚工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2547
单片机教程,MCS51单片机从零开始 第九讲:8051单片机的存储器结构
http://bbs.huazhoucn.com/Topic.aspx?id=2548
单片机教程,MCS51单片机从零开始 第十讲:编码及译码器工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2549
单片机教程,MCS51单片机从零开始 第十一讲:存储器的存储原理
http://bbs.huazhoucn.com/Topic.aspx?id=2550
单片机教程,MCS51单片机从零开始 第十二讲:51单片机的特殊功能寄存器
http://bbs.huazhoucn.com/Topic.aspx?id=2551
单片机教程,MCS51单片机从零开始 第十三讲:51单片机CPU的内部结构
http://bbs.huazhoucn.com/Topic.aspx?id=2552
单片机教程,MCS51单片机从零开始 第十四讲:定时器/计数器的基本结构及工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2553
单片机教程,MCS51单片机从零开始 第十五讲:51单片机的中断系统
http://bbs.huazhoucn.com/Topic.aspx?id=2554
单片机教程,MCS51单片机从零开始 第十六讲:51单片机的复位
http://bbs.huazhoucn.com/Topic.aspx?id=2555
单片机教程,MCS51单片机从零开始 第十七讲:51单片机执行指令的过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第十八讲:51单片机的延时及时序分析
http://bbs.huazhoucn.com/Topic.aspx?id=2557
单片机教程,MCS51单片机从零开始 第十九讲:汇编语言基础
http://bbs.huazhoucn.com/Topic.aspx?id=2558
单片机教程,MCS51单片机从零开始 第二十讲:汇编语言及汇编过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第二十一讲:汇编程序的基本结构
http://bbs.huazhoucn.com/Topic.aspx?id=2560
单片机教程,MCS51单片机从零开始 第二十二讲:51单片机的寻址方式
http://bbs.huazhoucn.com/Topic.aspx?id=2561
单片机教程,MCS51单片机从零开始 第二十三讲:数据传送类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2562
单片机教程,MCS51单片机从零开始 第二十四讲:算术运算类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2563
单片机教程,MCS51单片机从零开始 第二十五讲:逻辑运算及移位指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2564
单片机教程,MCS51单片机从零开始 第二十六讲:控制转移类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2565
单片机教程,MCS51单片机从零开始 第二十七讲:布尔变量操作指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2566
单片机教程,MCS51单片机从零开始 第二十八讲:伪指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2567

1 楼  提交者:Guest 在 2008-6-29 19:01:06
2 楼  提交者:Guest 在 2008-6-30 10:26:14
找到了啊
3 楼  提交者:Guest 在 2008-7-1 13:37:57
good
4 楼  提交者:flychen 在 2008-7-4 9:13:20
verygood
5 楼  提交者:zsc 在 2008-7-9 16:18:51
6 楼  提交者:Guest 在 2008-7-9 21:33:29
太好类正在找~
7 楼  提交者:学步者 在 2008-7-10 10:34:16
8 楼  提交者:Guest 在 2008-7-21 15:26:18
9 楼  提交者:Guest 在 2008-7-22 23:11:32
10 楼  提交者:Guest 在 2008-7-23 17:45:21
VERY GOOD
11 楼  提交者:Guest 在 2008-7-23 17:45:24
VERY GOOD
12 楼  提交者:ldj0626 在 2008-7-26 14:41:37
13 楼  提交者:Guest 在 2008-7-28 13:58:30
时来运转 
14 楼  提交者:xjl 在 2008-7-31 13:20:58
15 楼  提交者:Guest 在 2008-7-31 14:01:09
16 楼  提交者:Guest 在 2008-7-31 15:28:02
hao
17 楼  提交者:Guest 在 2008-8-14 20:50:28
18 楼  提交者:Guest 在 2008-8-17 10:14:49
19 楼  提交者:Guest 在 2008-8-18 17:37:52
20 楼  提交者:Guest 在 2008-8-21 1:12:17

21 楼  提交者:老三 在 2008-9-8 10:02:11
iuyi
22 楼  提交者:Guest 在 2008-9-18 14:55:23
VERY GOOD
23 楼  提交者:Guest 在 2008-9-18 16:20:39
gododdddddddddddddd
24 楼  提交者:Guest 在 2008-9-21 10:13:38
KAN
25 楼  提交者:dataie 在 2008-9-25 9:57:29
dsssdf
26 楼  提交者:Guest 在 2008-11-4 11:55:10
27 楼  提交者:szgbl 在 2008-11-5 10:07:16
C51完整版
28 楼  提交者:Guest 在 2008-11-6 10:33:42
29 楼  提交者:wxj201 在 2009-1-19 17:03:55
gre
30 楼  提交者:clqcsq 在 2009-3-22 13:21:56
上一篇 下一篇
当前第〖1〗页 共有2页 转到第 1 2