目录
具体实现功能:
通过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可选。
设计思路
文献研究法:搜集整理相关单片机智能手环系统相关研究资料,认真阅读文献,为研究做准备;
调查研究法:通过调查、分析、具体试用等方法,发现单片机智能手环系统的现状、存在问题和解决办法;
比较分析法:比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景;
软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。
设计内容
仿真实现
本设计利用protues8.7软件实现仿真设计,具体如图。
Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。

汇编程序
本设计由汇编语言编写,主代码具体如下:
ORG 0000HLJMP MAINORG 0003HLJMP PINT0ORG 000BHLJMP INTT0ORG 0013HLJMP PINT1ORG 0030HMAIN: MOV SP,#60HMOV TMOD,#01HMOV TL0,#0e0HMOV TH0,#0b1HMOV IE,#87HMOV 30H,#01H ;时十位MOV 31H,#02H ;时个位MOV 32H,#0AH ;光标点位MOV 33H,#00H ;分十位MOV 34H,#00H ;分个位MOV 35H,#00H ;秒十位MOV 36H,#00H ;秒个位SETB IT0SETB IT1SETB PT0SETB TR0LOOP0: LCALL DISPLJMP LOOP0INTT0: MOV TL0,#0e0HMOV TH0,#0b1HPUSH ACCPUSH PSWINC 36HMOV A,36HCJNE A,#25,PLLMOV 32H,#0BHPLL: CJNE A,#50,ENDD ;1SMOV 32H,#0AHMOV 36H,#00HINC 35HMOV A,35HCJNE A,#60,ENDd ;分个位MOV 35H,#00HINC 34HMOV A,34HCJNE A,#0AH,ENDd ;分个位MOV 34H,#00HINC 33HMOV A,33HCJNE A,#06H,ENDd ;分十位MOV 33H,#00HINC 31HMOV A,30HCJNE A,#02H,END1MOV A,31HCJNE A,#04H,END1 ;时个位MOV 31H,#00HMOV 30H,#00HEND1: MOV A,31HCJNE A,#0AH,ENDd ;时个位MOV 31H,#00HINC 30HENDd: POP PSWPOP ACCRETIDISP: PUSH ACCPUSH PSWMOV A,30H ;显示要显示的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP00: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0FEHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP00MOV A,31H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP11: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0FDHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP11MOV A,32H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP22: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0FBHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP22MOV A,33H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP33: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0F7HINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP33MOV A,34H ;显示要显档的数字MOV B,#08HMUL ABMOV 3BH,AMOV R4,#00HMOV R5,#08HLOOP44: MOV A,3BHMOV DPTR,#TABEMOVC A,@A+DPTRMOV P2,R4MOV P0,AMOV P1,#0EFHINC 3BHINC R4LCALL DELAYDJNZ R5,LOOP44POP PSWPOP ACCRETDELAY: MOV 37H,#50DEL: MOV 38H,#4DJNZ 38H,$DJNZ 37H,DELRETTABE: ;0DB 00H,18H,24H,24H,24H,24H,18H,00H;1DB 00H,10H,30H,10H,10H,10H,38H,00H;2DB 00H,18H,24H,04H,18H,20H,3CH,00H;3DB 00H,18H,24H,18H,04H,24H,18H,00H;4DB 00H,08H,18H,28H,7CH,08H,08H,00H;5DB 00H,1CH,10H,18H,04H,24H,18H,00H;6DB 00H,18H,24H,38H,24H,24H,18H,00H;7DB 00H,3CH,28H,08H,10H,10H,10H,00H;8DB 00H,18H,24H,18H,24H,24H,18H,00H;9DB 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,00HRETPINT0: MOV 4AH,#20DJNZ 4AH,$JB P3.2, END_DDMOV 36H,#00HINC 34HMOV A,34HCJNE A,#0AH,END_DD ;分个位MOV 34H,#00HINC 33HMOV A,33HCJNE A,#06H,END_DD ;分十位MOV 33H,#00HEND_DD: RETIPINT1: MOV 4AH,#20DJNZ 4AH,$JB P3.3,END_DINC 31HMOV A,30HCJNE A,#02H,END_1MOV A,31HCJNE A,#04H,END_1 ;时个位MOV 31H,#00HMOV 30H,#00HEND_1: MOV A,31HCJNE A,#0AH,END_d ;时个位MOV 31H,#00HINC 30HEND_D: RETIEND
9736

被折叠的 条评论
为什么被折叠?



