毕业设计正文 雷洋 电气化15-1(修改)(10)
时间:2025-07-08
时间:2025-07-08
塔里木大学毕业设计
键盘中断 入口 主程序入口 设置 F1 标志 从 X1242 中读出所有系统参数放入 RAM 中 (包括时钟值) 初始化所有端口, 定时器及其它控制寄存器 设置 F2 标志 设置 F3 标志 根据上次设置的显示模 式及标志显示应有的参数, 完成相应的工作 Y 设置 F4 标志 是 F4? Y 是 F3? N Y 是 F2? N Y 是 F1? N
F 是标志复 进行复位操作 位
N 图 5-1 主程序流程图 是数字键及 Enter 键位?
根据 F 标志修改相 应的变量
返回 中断
图 5-2
键盘中断流程
9
塔里木大学毕业设计
INT0 中断入口
Timer 中断 入口
速度计数器+1 完成一次数据采集 并经行数据滤波 速度计数 器 > 给 定 值 M? Y 各统计量完成一次积分累计, 并求出皮带测量值速度计数器清零 中断返回 N 求出瞬时值
中断返回
图 5-4 Timer0 中断流
程图
图 5-3 INT0 中断流程图
10
第六章系统程序设计
6.2动态显示和按键扫描处理程序实现
动态显示和按键扫描处理,因对时间有较高的要求,故定时中断服务程序来处理。采用T1定时器0(T0),来实现二者功能。动态显示功能是在某一瞬间,只让某一位的字位线处于选通状态,即共阴极的为低电平,同时字段线上输出相应位要显示字符的字段码。而其他各位的字位线处于悬空状态,不显示。同样在下一瞬时,只显示下一位LED,如此循环每位LED。虽然这些字符是在不同的瞬时轮流显示出来的,但由于人眼的视觉残留效应,看到的是每位同时显示字符。1ms的初值要装入定时器,然后将程序计数器的内容(断点地址)压入堆栈保护起来,然后将对应的定时器T0中断矢量装入程序计数器PC,使程序转向T0中断矢量地址000BH,执行该中断服务程序。 动态显示和按键扫描处理程序如下:
MAIN: MOV SP,#6FH 指定堆栈起始地址
MOV 8,#20H 指定工作寄存器组,即R0组从20H单元开始 MOV 0AH, #0
PGTO: MOV TL0, #LOW(65536-1000) 中断入口,定时时长10ms MOV TH0, #HIGH(65536-1000)
SET RS0 ;选工作寄存器组R0 PUSH ACC 保存现场 PUSH PSW MOV A, @R0 MOVX @R0, A
MOV A, P2 ;选通芯片 ANL A, #0F8H ORL A,R1 MOV P2,A INC R0 INC R1
CJNE R0, #26H, X MOV R0, #20H MOV R2, #0
MOV A, P1 按键扫描以及抖动处理 ORL A, #0F0H XCH A, 17H XCH A, 18H CJNE A, 17H, X CJNE A, 18H, X CPL A
MOV 19H, A
X: MOV A, 19H
JNZ P 执行按键操作 6.3键盘子程序实现
键盘电路设计成4×4矩阵式,由键盘编码方式可以得出 0,1,2,3,4,5,6,7,8,9,小数点,F1,F2,F4,F4,回车键,各键对应的键值:
0D8H, 0D0H, 0D1H, 0D2H, 0C8H, 0C9H, 0CAH, 0C0H,
0C1H, 0C2H,0C3H, 0CBH, 0D3H, 0DBH, 0DAH, 0D9H 。
下一篇:电气设备维修管理论文