汇编编程:矩阵键盘控制数码管切换显示0~f。
下面是电路图。要求16个键按下能显示0~f字样。
看到这样的电路和程序,不由得想起初学单片机时情景。
十几年前,是一本北航的书,里面就是这样的程序。
后来又看过几本,里面也有雷同的程序。
其实,该程序编写的很滥。
它把行列号码,算的很清。还特意弄成几个分支。
换下一行时,行号就要分别存入 00h、08h、10h、18h。
想法也太笨了,其实,只要加上 8,就可以编写成循环程序了。
程序中,还有很多应该简化的地方。
这程序学起来,的确浪费了我不少的时间。
根据题目中的电路和程序,做而论道改写的程序如下。
;
org 0000h
sjmp start
org 0030h
;--------------------------------------
duma:
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h //共阴段码
db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
;--------------------------------------
start:
mov dptr, #7f03h //8255初始化
mov a, #90h
movx @dptr, a
mov a, #16
;--------------------------------------
key1:
acall ks1 //判断有无键按下, 返回pa口状态存放在a中
jz key1 //无则返回
acall delay //调用延时子程序
acall ks1 //再次判断有无键按下
jz key1 //无则返回
;
mov r2, #0feh //初始列扫描字
mov r3, #8 //检查8次
mov r4, #0 //初始键号
lk4:
mov dptr, #7f01h //指向pb口
mov a, r2
movx @dptr, a
mov dptr, #7f00h //指向pa口
movx a, @dptr
jnb acc.0, lk3
inc r4
jnb acc.1, lk3
inc r4
mov a, r2
rl a //无则左移一位列扫描字, 继续判断下一列
mov r2, a
djnz r3, lk4
lk3:
acall ks1
jnz lk3 //判断按下的键有没有弹起, 无则原地等待继续判断
;
mov a, r4 //键号放于a中
mov dptr, #0030h //指向段码表首址
movc a, @a + dptr //键号转成相应的段码
mov dptr, #7f02h //指向pc口
movx @dptr, a //数码管显示
;
sjmp key1
;--------------------------------------
ks1:
mov dptr, #7f01h //指向pb口
mov a, #0
movx @dptr, a
mov dptr, #7f00h //指向pa口
movx a, @dptr
cpl a
anl a, #03h
ret //返回pa口数据存放在a中, 若有键按下, 则a不等于零
;--------------------------------------
delay: //延时子程序, 约10ms
mov r7, #20
d1: djnz r6, $
djnz r7, d1
ret
end
;======================================
本程序运行的仿真截图,可见前面的插图。
题目中的电路,仅仅使用了一个数码管。这和实用的场合,还有差距。
如果使用动态显示的方法,驱动多位数码管,那么,矩阵键盘的规模,就可以再扩大一些。
而做而论道在这里给出的程序,却不用增加很多,仅仅再添上三、五行即可够用。
长电科技宣布在全球范围正式启用全新标识
落地是关键!炬芯携早教机器人现身2017高交会
iPhone手机的这些隐藏功能你知道吗
NVIDIA将推出中低阶两款显卡 与AMD争夺市场
边缘计算能否成为运营商在5G时代取胜的关键
8255驱动矩阵键盘和数码管程序
机器视觉的优势及应用领域(下)
电视机@2022:降价、焦虑与机遇
蚂蚁集团暂缓上市 证监会官方定性!
星纵物联发布WTS系列气象站,为城市建设提供数据支持!
网络机顶盒哪个好用?品质超强的四大顶级旗舰
工信部装备司副司长罗俊杰:机器人是“中国制造2025”的重点发展领域
国高电气GTS双电源自动切换开关
EMC基础知识介绍:电磁兼容三要素
KKR将以约55亿元雷士照明中国照明业务70%的股权
LED灯具致命缺陷问题-浪涌电压
持续投资中国,富昌电子深圳分公司乔迁新址
断路器主回路电阻超标问题分析及解决对策
华为与中兴事件将会大大加速中国弥补短板的过程
iPhone X陷入“难产”,Face ID精度将下调