只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。7、按如下接线图连接好试验箱上的芯片引脚,主要用到器件有82558254LED8259小键盘。8254的片选接地址20820F,OUT1OUT0接灯测试用,GATE0GATE1接5V,CLK1接8259的IRQ2,CLK0接Q1212分频。8255的片选接地址21821F,实验箱已将其和小键盘相连。
fLED的片选接地址210217。
8259
8254
CLK1CLK0
IR2
CSOUT1OUT0GATE1GATE0
5V
8MHz
20820F
210217
21821F
ALS393
B
CS6个LED
Q4
CS8255PB2
。。。。。。。
小键盘
PA0图二试验接线图
五、程序流程图
主程序流程图:
f开始
8254A作为中断源产生20MS脉冲
设置堆栈
显示提示信息用INT21H35H号功能保存系统中8259A原中断向量
用INT21H35H号功能设置0A中断新的中断向量,指向年,月,日加1的中断处理程序置8259A的IMR第2位为0,允许IRQ2中断
调用键扫描子程序(KEY),键号的ASCII码在CHAR1单元中
是C键码?N是G键码?N是D键码N是P键码NN是E键码Y
Y
调用C键处理子程序
Y
调用G键处理子程序
Y
调用D键处理子程序
Y
调用P键处理子程序
用INT21H35H号功能恢复原中断向量
开中断
返回DOS图一主程序流程图
f键盘扫描程序流程图:(KEY)开始置8255A控制字,A口为输出,B口为输入
A口全输出低电平,B口读入数据从Y
列线全为高电平吗N保存列值,延时取抖动
置8255控制字,A口为输入,B口为输出往B口输出保存的列值从A口读入行值和键表比较
N
是否找到匹配键Y显示输入的字符
置8255A控制字,A口为输出,B口为输入
A口全输出低电平,从B口读入N
键释放了吗?Y返回
中断处理程序流程图:
f开始开中断Y秒个位加一
秒个位小于9N秒个位清零,秒十位加一
秒十位小于6N秒十位清零,分个位加一
Y
Y分个位小于AN分个位清零,分十位加一Y分十位小于6N分十位清零,时个位加一
时十位小于2NY时个位小于9N时个位清零,时十位加一时个位小于4N时个位清零,时十位清零Y
发中断结束命令,中断返回
六、心得体会
f附录一:参考书目附录一:1、戴梅萼,史嘉权编著微型计算机技术及应用第三版北京:清华大学出版社20032、周明德编著微型计算机系统原理及应用第四版北京:清华大学出版社20023、李顺增,吴国东,赵河明等微机原理及接口技术北京:机械工业出版社20064、杨立新微型计算机原理和应用M北京:科学技术文献出版社,1986115、李大友微型计算机原理M北京:清华大学出版社,r