单片机按键问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:55:30
在P10口加一个开关,使它按一下,数码管显示0,然后按一次显示1
再按一次显示2
最好提供完整的程序
谢谢!!!

用共阳级的数码管,数码管的a,b,c……,g,dp分别接51的p0.1,p0.2,……,p0.7口。
程序如下:
t1 equ 30h ;做计数用
org 0000h
jmp main
org 0050h
main:
mov dptr,#table
mov p0,#0ffh ;LED灯全灭
mov t1,#00h
loop:
mov acc,p1
anl acc,#00000001b ;看开关是否按下
jz loop_01 ;为0有键按下
jmp loop
loop_01:
mov a,t1
acall chang
mov p0,a
xrl a,#03h
jnz loop
mov t1,#00h
jp loop

chang:
movc a,@dptr+a
ret

table:
db 0c0h,0f9h,0a4h

end

你的显示是用LED数码管做的吗?最好说明一下你的显示LED是直接接在I/O上还是用了译码芯片,不然程序没法编哦!

设计好硬件电路图没有?数码管是静态显示还是动态显示的?不同的显示方式对应不同的硬件电路,而不同的硬件电路当然需要编写不同的程序了。

你要求用什么语言编呀,是汇编还是用C语言编呢?KEIL编的可以吗?如果可以的话我可以替你编写