全球旧事资料 分类
i
cludereg52hdefi
eucharu
sig
edchardefi
eui
tu
sig
edi
t
ucharsmg_du0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x71ucharsmg_we0x080x180x280x380x480x580x680x78有一篇74HC573必须为高电平
812M频率下大约50US延时

voiddelay_50usui
tt

ucharj
fort0t
forj19j0j

voiddelay_50msui
tt

ucharj
fort0t
forj6245j0j
这个程序可以不用松手检测,因为我们程序首选判断键是否按下然后发现按下后我们延时5MS,然后再检测。确实是按下啦。我们再执行在第二个循环假如我们继续检测,那么消耗时间10MS这个短时间中我们的按键已经松手啦。不会在执行后面的。

voidmai


ucharkey_lkey_h
ucharkey
while1

P30xf0首先给P3口赋值
key_lP3
从p3口读一个数据到key_l
key_lkey_l0xf0ifkey_l0xf0如果不等于的话,说明有按键按下去
delay_50us100稍微延时一下
ifkey_l0xf0

fkey_lP30xf011100000再读一次P3的值然后和0xf0相与
key_lkey_l0x0f
11101111
P3key_l在把key_l的值送给P3口
此时P3口的值为11101111,而正在此时我们把键按下啦因此按下的键为11101110与
11101111相与还是11101110;key_hP3再读一次P3口,键还是按下,可以得到行的值。
key_hkey_h0x0f00001110
key_lkey_l0xf011100000
keykey_lkey_h11101110

switchkey
case0xeeP1smg_du0breakcase0xdeP1smg_du1breakcase0xbeP1smg_du2breakcase0x7eP1smg_du3breakcase0xedP1smg_du4breakcase0xddP1smg_du5breakcase0xbdP1smg_du6breakcase0x7dP1smg_du7breakcase0xebP1smg_du8breakcase0xdbP1smg_du9breakcase0xbbP1smg_du10breakcase0x7bP1smg_du11breakcase0xe7P1smg_du12breakcase0xd7P1smg_du13breakcase0xb7P1smg_du14breakcase0x77P1smg_du15break

fr
好听全球资料 返回顶部