51汇编程序
来源:互联网 发布:硫化硅橡胶 淘宝 编辑:程序博客网 时间:2024/04/28 16:50
一个晚上坚持写代码和调试,一步一步前进,终于通过四个阶段完成了在有8255扩展接口的51开发板上调试成功我自己编的4*4矩阵键盘扫描并在led上显示键值的汇编程序(几乎100行代码)。。。好欣慰。。。今晚睡个好觉吧。。。
org 0000h
ljmp start
org 0030h
start:
mov dptr,#6fffh
mov a,#81h
movx @dptr,a ;8255设置
main:
mov dptr,#0fffh
mov a,#0ffh
movx @dptr,a ;关显示
mov dptr,#4fffh
mov a,#00h
movx @dptr,a ;所有行值拉低
mov dptr,#4fffh
movx a,@dptr ;读取列值
mov b,a
cjne a,#0fh,m ;判断是否有键按下 ,有就转消抖
ljmp main ;没有就继续扫描
m:
lcall delay ;延时消抖
h1: ;扫描第一行
mov dptr,#4fffh
mov a,#0efh
movx @dptr,a
mov dptr,#4fffh
movx a,@dptr ;读取列值
anl a,#0fh
cjne a,b,h2
ljmp x1
x1: mov b,#0e0h
orl a,b
mov dptr,#0fffh
movx @dptr,a
ljmp main
h2: ;扫描第二行
mov dptr,#4fffh
mov a,#0dfh
movx @dptr,a
mov dptr,#4fffh
movx a,@dptr ;读取列值
anl a,#0fh
cjne a,b,h3
ljmp x2
x2: mov b,#0d0h
orl a,b
mov dptr,#0fffh
movx @dptr,a
ljmp main
h3: ;扫描第三行
mov dptr,#4fffh
mov a,#0bfh
movx @dptr,a
mov dptr,#4fffh
movx a,@dptr
anl a,#0fh
cjne a,b,h4
ljmp x3
x3: mov b,#0b0h
orl a,b
mov dptr,#0fffh
movx @dptr,a
ljmp main
h4: ;扫描第四行
mov dptr,#4fffh
mov a,#7fh
movx @dptr,a
mov dptr,#4fffh
movx a,@dptr
anl a,#0fh
cjne a,b,default
ljmp x4
x4: mov b,#70h
orl a,b
mov dptr,#0fffh
movx @dptr,a
ljmp main
default: ;都不是
mov b,#0ffh
orl a,b
mov dptr,#4fffh
movx @dptr,a
ljmp main
delay:
mov r0,#3
d: mov r1,#225
djnz r1,$
djnz r0,d
ret
end
- 51汇编程序
- 汇编程序
- 汇编程序
- 汇编程序
- 51单片机模拟电梯汇编程序
- 51单片机一位数码管汇编程序
- 51汇编程序之点亮全部led
- 51汇编程序编写的一些原则
- n久前的51汇编程序
- 电子钟-汇编程序
- 汇编程序格式
- 响铃,汇编程序
- 红绿灯汇编程序
- 嵌入汇编程序
- 单片机汇编程序
- 汇编程序语言
- 宏汇编程序
- 汇编程序框架
- 准备考试
- 使用xml的五种场合
- xml应用
- xml例子1
- 今天贴一些上上个星期看的JavaScript的基础知识
- 51汇编程序
- 唉,不懂的东西,终于做完了
- java基础Integer与Integer比较
- Java.util.date 与 java.sql.date区别和转换
- dreamweave
- 超强的编程图书大全,肯定对你有作用
- sqlite实例
- 。。。
- 有关ASP.NET中timer控件的所有用法