C语言按键蜂鸣器响灯亮,AT89C52单核A2单片机按下独立按键蜂鸣器响流水灯左移松开按键蜂鸣器不响流水灯右移...
ADRLED? ? ? ? EQU? ? ? ? 8700H? ? ? ? ? ? ? ? ;LED工作地址
ORG ? ? ? ? 0000H
LJMP ? ? ? ? MAIN
ORG? ? ? ? 1BH
JMP? ? ? ? T1INT? ? ? ? ? ? ? ? ;定時器1中斷入口地址
ORG ? ? ? ? 0100H
MAIN:? ? ? ? MOV ? ? ? ? SP,#60H
MOV? ? ? ? R0,#0AH? ? ? ? ? ? ? ? ;R0為0.1秒的次數
ANL? ? ? ? TMOD,#0FH? ? ? ? ;定時器1置為方式1
ORL? ? ? ? TMOD,#10H
MOV? ? ? ? TL1,#0B0H? ? ? ? ;置定時器1的中斷時間為0.1S
MOV? ? ? ? TH1,#3CH
ORL? ? ? ? IE,#88H? ? ? ? ? ? ? ? ;允許定時器1中斷
MOV? ? ? ? R2,#0? ? ? ? ? ? ? ? ;置R2初值,R2對應顯示字符的字形碼相對地址
MOV? ? ? ? R5,#16? ? ? ? ? ? ? ? ;置顯示的字符數初值
SETB? ? ? ? P3.4? ? ? ? ? ? ? ? ;使蜂鳴器的負端為高不鳴叫
CLR? ? ? ? P3.5? ? ? ? ? ? ? ? ;使數碼管的共陰極為低電平
NEXT:? ? ? ? MOV? ? ? ? DPTR,#TAB? ? ? ? ;置字形碼表首地址
MOV? ? ? ? A,R2
MOVC? ? ? ? A,@A+DPTR? ? ? ? ;取出相應的字形碼
MOV ? ? ? ? DPTR,#ADRLED? ? ? ? ;數碼管段碼地址
MOVX ? ? ? ? @DPTR,A? ? ? ? ? ? ? ? ;送數碼管段碼(字形碼)
SETB? ? ? ? TR1? ? ? ? ? ? ? ? ;啟動定時器1
LOOP:? ? ? ? CJNE? ? ? ? R0,#00H,LOOP? ? ? ? ;不夠1秒,轉LOOP
INC? ? ? ? R2
MOV? ? ? ? R0,#0AH? ? ? ? ? ? ? ? ;重置R0為10
DJNZ? ? ? ? R5,NEXT? ? ? ? ? ? ? ? ;16個字符沒有顯示1遍,轉NEXT顯示下一字符
CLR? ? ? ? P3.4? ? ? ? ? ? ? ? ;使蜂鳴器的負端為低其鳴叫
MOV? ? ? ? A,#0FFH? ? ? ? ? ? ? ? ;報警之后數碼管顯示全亮
MOV ? ? ? ? DPTR,#ADRLED? ? ? ? ;數碼管段碼地址
MOVX ? ? ? ? @DPTR,A? ? ? ? ? ? ? ? ;送數碼管段碼(字形碼)
CLR? ? ? ? TR1? ? ? ? ? ? ? ? ;定時器停止計數
SJMP? ? ? ? $? ? ? ? ? ? ? ? ;死循環
T1INT:? ? ? ? CLR? ? ? ? TR1? ? ? ? ? ? ? ? ;定時器1中斷,首先停止計數
DEC? ? ? ? R0? ? ? ? ? ? ? ? ;次數減1
MOV? ? ? ? TL1,#0B0H? ? ? ? ;重置定時器1時間常數
MOV? ? ? ? TH1,#3CH
SETB? ? ? ? TR1? ? ? ? ? ? ? ? ;恢復定時器1計數
RETI
TAB:? ? ? ? DB? ? ? ? 3FH,06H,5BH,4FH,66H,6DH,7DH,07H? ? ? ? ? ? ? ? ;字形碼表
DB? ? ? ? 7FH,6FH,77H,7CH,58H,5EH,79H,71H
END
總結
以上是生活随笔為你收集整理的C语言按键蜂鸣器响灯亮,AT89C52单核A2单片机按下独立按键蜂鸣器响流水灯左移松开按键蜂鸣器不响流水灯右移...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 库存积压 生产疲软 预计小米23年手机出
- 下一篇: 计算指数c语言2的n次方,计算2的N次方