具体实现功能:
通过5个8*8led点阵显示数字时间,显示时分,从12点开始计时,显示时间格式为:12::00。
设计介绍
单片机介绍
51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。
设计思路
文献研究法:搜集整理相关单片机智能手环系统相关研究资料,认真阅读文献,为研究做准备;
调查研究法:通过调查、分析、具体试用等方法,发现单片机智能手环系统的现状、存在问题和解决办法;
比较分析法:比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景;
软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。
设计内容
01
仿真实现
本设计利用protues8.7软件实现仿真设计,具体如图。
Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。
02
汇编程序
本设计由汇编语言编写,主代码具体如下:
代码语言:javascript复制ORG 0000H
LJMP MAIN
ORG 0003H
LJMP PINT0
ORG 000BH
LJMP INTT0
ORG 0013H
LJMP PINT1
ORG 0030H
MAIN: MOV SP,#60H
MOV TMOD,#01H
MOV TL0,#0e0H
MOV TH0,#0b1H
MOV IE,#87H
MOV 30H,#01H ;时十位
MOV 31H,#02H ;时个位
MOV 32H,#0AH ;光标点位
MOV 33H,#00H ;分十位
MOV 34H,#00H ;分个位
MOV 35H,#00H ;秒十位
MOV 36H,#00H ;秒个位
SETB IT0
SETB IT1
SETB PT0
SETB TR0
LOOP0: LCALL DISP
LJMP LOOP0
INTT0: MOV TL0,#0e0H
MOV TH0,#0b1H
PUSH ACC
PUSH PSW
INC 36H
MOV A,36H
CJNE A,#25,PLL
MOV 32H,#0BH
PLL: CJNE A,#50,ENDD ;1S
MOV 32H,#0AH
MOV 36H,#00H
INC 35H
MOV A,35H
CJNE A,#60,ENDd ;分个位
MOV 35H,#00H
INC 34H
MOV A,34H
CJNE A,#0AH,ENDd ;分个位
MOV 34H,#00H
INC 33H
MOV A,33H
CJNE A,#06H,ENDd ;分十位
MOV 33H,#00H
INC 31H
MOV A,30H
CJNE A,#02H,END1
MOV A,31H
CJNE A,#04H,END1 ;时个位
MOV 31H,#00H
MOV 30H,#00H
END1: MOV A,31H
CJNE A,#0AH,ENDd ;时个位
MOV 31H,#00H
INC 30H
ENDd: POP PSW
POP ACC
RETI
DISP: PUSH ACC
PUSH PSW
MOV A,30H ;显示要显示的数字
MOV B,#08H
MUL AB
MOV 3BH,A
MOV R4,#00H
MOV R5,#08H
LOOP00: MOV A,3BH
MOV DPTR,#TABE
MOVC A,@A DPTR
MOV P2,R4
MOV P0,A
MOV P1,#0FEH
INC 3BH
INC R4
LCALL DELAY
DJNZ R5,LOOP00
MOV A,31H ;显示要显档的数字
MOV B,#08H
MUL AB
MOV 3BH,A
MOV R4,#00H
MOV R5,#08H
LOOP11: MOV A,3BH
MOV DPTR,#TABE
MOVC A,@A DPTR
MOV P2,R4
MOV P0,A
MOV P1,#0FDH
INC 3BH
INC R4
LCALL DELAY
DJNZ R5,LOOP11
MOV A,32H ;显示要显档的数字
MOV B,#08H
MUL AB
MOV 3BH,A
MOV R4,#00H
MOV R5,#08H
LOOP22: MOV A,3BH
MOV DPTR,#TABE
MOVC A,@A DPTR
MOV P2,R4
MOV P0,A
MOV P1,#0FBH
INC 3BH
INC R4
LCALL DELAY
DJNZ R5,LOOP22
MOV A,33H ;显示要显档的数字
MOV B,#08H
MUL AB
MOV 3BH,A
MOV R4,#00H
MOV R5,#08H
LOOP33: MOV A,3BH
MOV DPTR,#TABE
MOVC A,@A DPTR
MOV P2,R4
MOV P0,A
MOV P1,#0F7H
INC 3BH
INC R4
LCALL DELAY
DJNZ R5,LOOP33
MOV A,34H ;显示要显档的数字
MOV B,#08H
MUL AB
MOV 3BH,A
MOV R4,#00H
MOV R5,#08H
LOOP44: MOV A,3BH
MOV DPTR,#TABE
MOVC A,@A DPTR
MOV P2,R4
MOV P0,A
MOV P1,#0EFH
INC 3BH
INC R4
LCALL DELAY
DJNZ R5,LOOP44
POP PSW
POP ACC
RET
DELAY: MOV 37H,#50
DEL: MOV 38H,#4
DJNZ 38H,$
DJNZ 37H,DEL
RET
TABE: ;0
DB 00H,18H,24H,24H,24H,24H,18H,00H
;1
DB 00H,10H,30H,10H,10H,10H,38H,00H
;2
DB 00H,18H,24H,04H,18H,20H,3CH,00H
;3
DB 00H,18H,24H,18H,04H,24H,18H,00H
;4
DB 00H,08H,18H,28H,7CH,08H,08H,00H
;5
DB 00H,1CH,10H,18H,04H,24H,18H,00H
;6
DB 00H,18H,24H,38H,24H,24H,18H,00H
;7
DB 00H,3CH,28H,08H,10H,10H,10H,00H
;8
DB 00H,18H,24H,18H,24H,24H,18H,00H
;9
DB 00H,18H,24H,24H,1CH,24H,18H,00H
;:
DB 00H,00H,18H,18H,00H,18H,18H,00H
;
DB 00H,00H,00H,00H,00H,00H,00H,00H
RET
PINT0: MOV 4AH,#20
DJNZ 4AH,$
JB P3.2, END_DD
MOV 36H,#00H
INC 34H
MOV A,34H
CJNE A,#0AH,END_DD ;分个位
MOV 34H,#00H
INC 33H
MOV A,33H
CJNE A,#06H,END_DD ;分十位
MOV 33H,#00H
END_DD: RETI
PINT1: MOV 4AH,#20
DJNZ 4AH,$
JB P3.3,END_D
INC 31H
MOV A,30H
CJNE A,#02H,END_1
MOV A,31H
CJNE A,#04H,END_1 ;时个位
MOV 31H,#00H
MOV 30H,#00H
END_1: MOV A,31H
CJNE A,#0AH,END_d ;时个位
MOV 31H,#00H
INC 30H
END_D: RETI
END