智能仪器原理及其应用总结(2)

2018-11-23 12:57

主程序:

MOV DPTR,#0FDFFH MOV A,DATA?

MOVX @DPTR,A ;输出高8位数据 DEC DPH?

MOV A,DATA+1?

MOVX @DPTR,A ? ;输出低4位数据 MOV DPTR,#7FFFH?

MOVX @DPTR,A ;12位数据同时送DAC寄存器

3.键盘与接口

①.独立式键盘及其接口程序

?

AJMP MAIN

ORG 0003H

? AJMP KEYJMP

ORG 0100H

ORG 0000H ?

; 上电后转主程序 ; 外部中断0入口 ; 指向中断服务程序

MAIN:SETB IT0 ? ? ? ?

; 选择边沿触发方式

SETB EX0 ; 允许外部中断0 SETB EA ; 允许CPU中断

MOV DPTR,#EF00H ; 送8155命令口地址 MOV A, #02H

; 模拟主程序 ; 中断服务程序 ; 设循环次数

? MOVX @DPTR, A ; 控制字写入 HERE: AJMP HERE ORG 0120H KEYJMP:MOV R3, #08H ?

MOV DPTR,#0EF01H ; 送A口地址

? MOV R4, #00H ; 计数器清零 ? MOVX A, @DPTR ; 读入按键状态 KEYAD1:RRC A ; 状态字右移一位

? JNC KEYAD2 ; C=0,转KEYAD2 ? INC R4 ; 计数器加1 ? DJNZ R3, KEYAD1 KEYRET:RETI

KEYAD2:MOV DPTR, #JMPTBL ? MOV A, R4 ? RL A

? JMP @A+DPTR ; 转相应功能处理 JMPTBL:AJMP SB0 ; 入口地址表 ? AJMP SB1 ? AJMP SB2 ? AJMP SB3 ? AJMP SB4 ? AJMP SB5 ? AJMP SB6 ? AJMP SB7?

②.矩阵式键盘接口电路和程序

㈠. 行扫描法

(1).判是否有键按下。使端口 C所有的行输出均为低电平,然后从端口A读入列值。如果

没有键按下,读入值应为FFH,如果有键按下,则不为FFH。 (2).若有键按下,则延时10ms,再判断是否确实有键按下。

(3).若确实有键按下,则求出按下键的键值。其实现方法是对键盘进行逐行扫描。即先令PC0为0,读入列值,若列值等于FFH,说明该行无键按下,再令PC1为0,对下一行进行扫描;若列值不等于FFH,说明该行有键按下,求出其键值。

求键值时要设置行值寄存器和列值寄存器。每扫完一行,若无键按下,则行值寄存器加上08H;若有键按下,行值寄存器保持原值,转而求相应的列值。求列值的方法是,将列值右移,每移位一次列值寄存器加1,直至移出位为低电平为止。最后将行值和列值相加即得键值。若需要十进制键值,可进行DAA修正。

(4).为保证按键每闭合一次CPU只做一次处理,程序需等闭合的键释放后再对其做处理 ORG 0200H ?

KEYPR:MOV DPTR, #0100H ; 8155初始化? MOV A,#0CH?

MOVX @DPTR, A ; 控制字写入?

MOV R3, #00H ; 列寄存器清零? MOV R4, #00H ; 行寄存器清零? ACALL KEXAM ; 检查有无键按下? JZ KEND ; 无键按下返回? ACALL D10ms? ACALL KEXAM ; 再次检查有无键按下? JZ KEND? MOV R2 #0FEH ; 输出使X?0为0? KEY1: MOV DPTR, #0103H ; 送C口地址? MOV A, R2? MOVX @DPTR, A ; 扫描某一行? MOV DPTR, #0101H ; 送A口地址? MOVX A, @DPTR ; 读列值模型? CPL A? ANL A, #0FFH?

JNZ KEY2 ; 有键按下,求列值 MOV A, R4 ; 无键按下,行+8? ADD A, #08H ? MOV R4,A? MOV A, R2 ; 求下列为低电平模型? RL A? MOV R2,A? JB ACC.4, KEY1 ; 判是否已全扫描? AJMP KEND?

KEY2: CPL A ; 恢复列模型? KEY3: INC R3? RRC A ?

JC KEY3?

KEY4: ACALL D10ms ? ACALL KEXAM ? JNZ KEY4 ; 等待键释放? MOV A, R4 ; 计算键值? ADD A, R3? MOV BUFF, A ; 键值存入BUFF? KEDN:RET?

BUFF:EQU 30H?

D10ms:MOV R5,#14H ; 延时子程序? DL: MOV R6,#0FFH? DL0: DJNZ R6,DL0? DJNZ R5,DL? RET?

KEXAM:MOV DPTR,#0103H ;检查是否有键按下子程序? MOV A, #00H? MOVX @DPTR, A? MOV DPTR,#0101H? MOVX A, @DPTR? CPL A? ANL A,#0FFH? RET?

㈡线路反转法 ③.键盘分析程序 ㈠直接分析法

㈡.状态分析法

状态分析法可分为以下四步进行:

(1) 用状态图准确表述按键操作序列的定义;

(2)由上述状态图导出的状态表。 状态表状态表是键盘分析程序的核心。

(3) 固化状态表:为了让微处理器能使用状态表,应将其转变成可供微处理器查询的形式。

(4) 设计键盘分析程序的设计

4.LED显示及接口 ①.7段LED显示器及接口

②.静态显示接口电路


智能仪器原理及其应用总结(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《稍复杂的分数乘除法应用题》评课稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: