历史上的今天
今天是:2025年01月11日(星期六)
2018年01月11日 | 74922应用于键盘控制及六位数显示程序
2018-01-11 来源:eefocus
74922应用于键盘控制及六位数显示程序
org 00h ;清除显示器存储器30H~35H
start: MOV r4,#06h
MOV r0,#30h
clear: MOV @r0,#00h
inc r0
djnz r4,clear
l1: jb p1.4,keyin ;检测74138的DA脚=1? DA=1表示有键按下
call disp ;调用显示子程序
jmp l1
keyin: jb p1.4,$ ;按键放开否?
MOV a,p1 ;是则读入74922的按键值
anl a,#0fh ;取低4位(74922 A~D)
MOV dptr,#table ;到table取码
MOV c a,@a+dptr
MOV 20h,a ;暂存入(20H)
xrl a,#0ah ;是否按"*"?是则清除屏幕
jz start
MOV a,20h
xrl a,#0bh ;是否按"#"?是则清除屏幕
jz start
MOV a,20h ;除"*"和"#"其余都为数字键
xch a,30h ;现按键值存入(30H)
xch a,31h ;旧(30H)值存入(31H)
xch a,32h ;旧(31H)值存入(32H)
xch a,33h ;旧(32H)值存入(33H)
xch a,34h ;旧(33H)值存入(34H)
xch a,35h ;旧(34H)值存入(35H)
call disp ;调用扫描子程序
jmp l1
disp: MOV a,35h ;(35H)显示器D6地址
add a,#50h ;D6数据值加上74138扫描值
MOV p0,A ;显示D6
call delay ;扫描延时
MOV a,33h ;(33h)显示器D4地址
add a,#30h ;显示数据值加上74138扫描值
MOV p0,a ;显示D4
call delay ;扫描延时
MOV a,32h ;(32H)显示器D3地址
add a,#20h ;D2数据值加上74138扫描值
MOV p0,a ;显示D2
call delay ;扫描延时
MOV a,30h ;(30H)显示器D1扫描值
add a,#00h ;D1数据值加上74138扫描值
MOV p0,a ;显示D1
call delay ;扫描延时
ret
delay: MOV r7,#06 ;显示器扫描时间3毫秒
d1: MOV r6,#248
djnz r6,$
djnz r7,D1
ret
org 300h
table: db 01h,01h,03h,0ffh ;键盘码
db 04h,05h,06h,0ffh
db 07h,08h,09h,0ffh
db 0ah,00h,0bh,0ffh
end
上一篇:单片机六首歌曲的音乐门铃程序
史海拾趣
|
flash 驱动的SECTOR, block的size,BlockNum配置问题 最近这个把我搞得头痛死了,一直没搞定。 用的是nor flash ,J3 32M 换成S29 128M 看到网上高手的以前回的一些贴子大致明白应该怎么改: 1 在OEMAddressTable中将32MB改成128MB,这样才能在虚拟内存地址中保留足够的地址空间 2 正确 ...… 查看全部问答> |
|
evc有没有打开文件夹对话框的api啊,SHBrowseForFolder()这个函数在evc里编译不过啊,还有没有其他的方法啊。 wince不会只能打开文件吧。 各位大虾帮帮忙啊!… 查看全部问答> |
|
EVC(wince)如何开发不规则窗体(请成功过的朋友指教)? 问:EVC(wince)如何开发不规则窗体? 请成功过的朋友指教,我现在的问题是使用SetWindowRgn这类区域方法后可以不规则窗体。 但窗体上的按钮等控件都不都使用。效果就好象是将窗体不规则后直接截了个图然后复制到桌面一样。 请指教! 注:请不要 ...… 查看全部问答> |
|
1。磁珠的单位是欧姆,而不是亨特,这一点要特别注意。因为磁珠的单位是按照它在某一频率产生的阻抗来标称的,阻抗的单位也是欧姆。磁珠的 DATASHEET上一般会提供频率和阻抗的特性曲线图,一般以100MHz为标准,比如1000R@100MHz,意思就是在100MH ...… 查看全部问答> |
|
死区时间是PWM输出时,为了使H桥或半H桥的上下管不会因为开关速度问题发生同时导通而设置的一个保护时段。通常也指pwm响应时间。 由于IGBT(绝缘栅极型功率管)等功率器件都存在一定的结电容,所以会造成器件导通关断的延迟现象。一般在设计 ...… 查看全部问答> |




