利用单片机STC89C52设计制作电子表汇编文档格式.docx
- 文档编号:18682524
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:17
- 大小:71.36KB
利用单片机STC89C52设计制作电子表汇编文档格式.docx
《利用单片机STC89C52设计制作电子表汇编文档格式.docx》由会员分享,可在线阅读,更多相关《利用单片机STC89C52设计制作电子表汇编文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
分”,并且“分”正常显示,“时”一闪一闪
模式3,分调整模式,显示为“时:
分”,并且“时”正常显示,“分”一闪一闪
模式4,闹铃调整模式,显示为“时:
分”,并且“时”、“分”全部一闪一闪
在此模块,程序根据R5的值进入对应模式。
在模式0和模式1,只显示,不能调整;
在模式2(模式3)可以通过按键S1、S2对时(分)进行加减操作;
在模式4,可以通过S1、S2对闹铃的时、分进行加操作(没有减的操作)
各个模式下,按键S0使模式号增加,按键S3使任何模式返回模式0
五、总结
1.本实验选用了共阴极LED显示器,而STC89C52的高电平驱动能力很差,所以需要使用晶体管放大,段码信号从基极输入。
又因为选用了PNP型晶体管,所以要Sn和段码信号都是低电平才能使LED发光,致使共阴极的LED需要共阳极的代码来驱动。
2.由于STC89C52的高电平驱动能力很差,一般都不做为驱动,所以以后的实验应尽量选择共阳极LED,因为这样可以减少晶体管的数目(本实验用了7个,如果使用共阳极LED则可以只用4个)。
3.由于定时器的工作与程序的循环查询时分开的,所以误差主要来源于单片机的自身频率和定时器初值的设定,即:
理论的初值只适合于标准的12MHz,现实的单片机频率可能不是标准值。
可以通过具体的误差反算出正确的初值。
附:
电路图
配套源程序:
ORG0000H
AJMPMAIN
ORG000BH
AJMPINT10
ORG0030H
MAIN:
MOVSP,#53H
MOVR5,#00H;
初始模式设置为模式0
SHIEQU20H
FENEQU21H
MIAOEQU22H
DSHIEQU27H;
闹铃时
DFENEQU28H;
闹铃分
XIANSHIEQU29H;
显示标志,当为全0时显示,全1不显示
MOV2AH,#00H
CPLP2.7
MOVSHI,#00H
MOVFEN,#00H
MOVMIAO,#00H
MOVDSHI,#10;
默认10:
30闹铃
MOVDFEN,#30
MOVXIANSHI,#00H;
默认为显示
MOVR2,#00H
MOVR6,#00H;
按键1(加)标志
MOVR7,#00H;
按键2(减)标志
MOVTMOD,#01H
MOVTL0,#0BEH
MOVTH0,#0F0H
SETBEA
SETBET0
SETBTR0
LOOP:
AJMPAA3;
键盘扫描及LED显示入口
INT10:
INCR2
CJNER2,#128,INT11
ACALLAA1;
半秒中断入口
INT11:
CJNER2,#0,INT2
ACALLAA2;
一秒中断入口
INT2:
RETI
AA1:
CPLP2.7;
半秒中断服务P2.7取反,使两点闪动
MOV2AH,#0FFH
RET
AA2:
一秒中断服务P2.7取反,使两点闪动
INCMIAO
MOVR0,#22H
CJNE@R0,#60,AA22
INCFEN
DECR0
INCSHI
CJNE@R0,#24,AA22
AA22:
AA3:
ACALLKT;
调用键盘扫描程序
;
返回:
K0闭合则模式号加1
K1闭合则R6=#01H
K2闭合则R7=#01H
K3闭合则模式号置1,即返回模式0
AA5:
PUSHACC
MOVA,SHI;
闹钟
CJNEA,DSHI,AA55
MOVA,FEN
CJNEA,DFEN,AA55
CLRP2.0
POPACC
AJMPAA4
AA55:
SETBP2.0
AA4:
MOVA,R5;
LED显示,模式标志位R5
RLA
MOVDPTR,#MODTAB
JMP@A+DPTR
MODTAB:
AJMPMOD0;
时分式
AJMPMOD1;
分秒式
AJMPMOD2;
时调整
AJMPMOD3;
分调整
AJMPMOD4;
闹铃设置模式
AJMPMOD5;
预留扩展模式(未定义)
AJMPMOD6;
MOD0:
开显示
MOVR3,#3;
模式0(正常模式)时分式,标志R5=0
MOVA,FEN;
显示S3
MOVB,#10
DIVAB
SWAPA
ADDA,B
MOV24H,A
ANL24H,#0FH
MOVR4,24H
ACALLPRT
DECR3;
显示S2
ANLA,#0FH
MOVR4,A
显示S1
MOVA,SHI
显示S0
AJMPLOOP;
转回键盘扫描
MOD1:
MOVXIANSHI,#00H;
模式1分秒式,标志R5=1
MOVA,MIAO;
MOD2:
MOVR0,#SHI
CJNER6,#01H,MOD21;
模式2,时调整,标志:
R5=2
CJNE@R0,#24,MOD23
MOD23:
MOVR6,#00H
MOVR7,#00H
SJMPMOD22
MOD21:
CJNER7,#01H,MOD22
CJNE@R0,#00H,MOD24
MOVSHI,#23
SJMPMOD25
MOD24:
DECSHI
MOD25:
MOD22:
MOVR3,#3
PUSHACC
MOVA,2AH;
判断显示与否;
关显示,产生一闪一闪的效果并且与两点同步
ORLXIANSHI,A
MOVXIANSHI,#00H
判断显示与否
ORLXIANSHI,A
MOD3:
MOVR0,#FEN
CJNER6,#01H,MOD31;
模式3,分调整,标志:
R5=3
CJNE@R0,#60,MOD33
MOD33:
SJMPMOD32
MOD31:
CJNER7,#01H,MOD32
CJNE@R0,#00H,MOD34
MOVFEN,#59
SJMPMOD35
MOD34:
DECFEN
MOD35:
MOD32:
MOVA,2AH
MOD4:
CJNER6,#01H,MOD41
INCDSHI
MOVR0,#DSHI
CJNE@R0,#24,MOD41
MOVDSHI,#00H
MOD41:
CJNER7,#01H,MOD42
INCDFEN
MOVR0,#DFEN
CJNE@R0,#60,MOD42
MOVDFEN,#00H
MOD42:
MOVR7,#00H
MOVR3,#3
MOVA,DFEN;
MOVA,DSHI
AJMPLOOP
MOD5:
MOVR5,#00H
MOD6:
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;
共阳极段码表
TABLE1:
DB0F7H,0FBH,0FDH,0FEH;
S码值
DELAY:
MOV25H,#10;
延时1ms
DE1:
MOV26H,#49
DJNZ26H,$
DJNZ25H,DE1
DELAY15MS:
MOV25H,#150;
延时15ms
DE2:
DJNZ25H,DE2
PRT:
MOVA,R3;
显示程序,参数为R3,R4,前者表示Sn,后者表示待显示的一位十进制数值
MOVDPTR,#TABLE1;
Sn
MOVCA,@A+DPTR
MOVP1,A
MOVA,R4;
段码
MOVDPTR,#TABLE
ORLA,XIANSHI;
MOVP3,A
ACALLDELAY
KT:
ORLP1,#0F0H;
键盘扫描程序
MOVA,P1
ORLA,#0FH
CPLA
JZKTEND;
无按键被按下
ACALLDELAY15MS;
有按键被按下,调用15ms延时程序
ORLP1,#0F0H
延时后已经无按键被按下
PUSHACC;
延时后还有按键被按下,则等待按键被松开后调用键盘功能程序,此处ACC高半字节为1的位为按下的键值
KT1:
JNZKT1
JBACC.4,K0;
此处表示了4个按键的优先级
JBACC.7,K3
JBACC.5,K1
JBACC.6,K2
KTEND:
K0:
INCR5
CJNER5,#7,K0END
K0END:
AJMPKTEND
K1:
MOVR6,#01H
K2:
MOVR7,#01H
K3:
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 单片机 STC89C52 设计 制作 电子表 汇编