关于8279的实例
来源:互联网 发布:淘宝托管软件是真的吗 编辑:程序博客网 时间:2024/06/05 17:24
8279 是键盘、显示专用接口芯片,一般来说,它可以带动 8 个LED数码显示器和 64 个按键。
它可以自动的实现动态扫描输出,按键消抖,按键缓存等等,优点不少。
一个单片机系统,如果使用了 8279,基本就算是豪华系统了,但是近几年来,很少有这么大型的单片机系统的需求,8279 也逐渐淡出了开发者的视线。
下面给出一个用 8279 的数码显示器显示被按下的键的程序,以纪念这块光耀一时的芯片。
程序首先进行 8279 的初始化,然后检测是否有键被按下,如果没有,则循环等待;如果检测到有键被按下,则读取被按下键的代码,并把其代码送到显示RAM中。
;8279键盘显示实验
ORG 0000H
LJMP START
ORG 0100H
START:
MOV DPTR, #0CFE9H ;8279命令/状态口地址
MOV A, #11010001B ;D1H 清显示命令字
MOVX @DPTR, A ; 全部清空
LOOP1:
MOVX A, @DPTR ;读出状态
ANL A, #0FH ;低四位是FIFO中的键入字符数
JZ LOOP1 ;没有键按下则循环等待
MOV A, #10100000B ;A0H, 显示消隐命令
MOVX @DPTR, A ;显示暗
MOV A, #01000000B ;40H, 读FIFO命令
MOVX @DPTR, A ;读FIFO的0000地址
MOV DPTR, #0CFE8H ;8279数据口地址
MOVX A, @DPTR ;读键值
MOV R1, A ;保存键值
MOV DPTR, #0CFE9H ;8279命令/状态口地址
MOV A, #81H ;选中LED2
MOVX @DPTR, A ;写显示RAM命令
MOV A, R1
ANL A, #0FH ;取键值后半字节
MOV DPTR, #TAB
MOVC A, @A + DPTR ;换算出段码
MOV DPTR, #0CFE8H ;8279数据口地址
MOVX @DPTR, A ;写入显示RAM
MOV DPTR, #0CFE9H ;8279命令/状态口地址
MOV A, #80H ;选中LED1
MOVX @DPTR, A ;显示
MOV A, R1
ANL A, #0F0H ;取键值前半字节
SWAP A ;
MOV DPTR, #TAB
MOVC A, @A + DPTR ;换算出段码
MOV DPTR, #0CFE8H
MOVX @DPTR, A ;显示
MOV DPTR, #0CFE9H ;8279命令/状态口地址
SJMP LOOP1
TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;段码表
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
- 关于8279的实例
- 关于HttpSessionBindingListener的实例
- 关于编程的实例
- 关于接口的实例
- 关于ostream_iterator的实例程序
- 关于 mutex 的调试实例
- 关于《命名规范》的实例。
- 关于AOP的应用实例
- 关于实例下载的说明
- 关于AOP的应用实例
- 关于一个触发器的实例
- 两个关于委托的实例
- 关于smarty的复杂实例
- 关于枚举的一个实例
- 关于对象流的实例
- 关于asp.net的实例
- 关于抽象类的实例
- 关于popwindow的简单实例
- 关于 BCD 码减数求补的问题
- C程序翻译成汇编语言
- 数据库索引的实现原理
- Socket 短连接、长连接
- 利用单片机的定时器中断,周期性输出矩形波
- 关于8279的实例
- 在7000H--700FH中查出“00”的个数
- perl json encode_json decode_json
- 利用8031的定时/计数器T1对外部事件进行计数
- android app 快速接入支付宝流程(android studio)
- 实现每隔1秒计一个数,显示00到99
- python set集合
- 单片机实现灯左右移动和闪烁的程序
- 编写51单片机程序,输出方波,at89s52的单片机