proteus
proteus,即EDA工具软件。Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是比较好的仿真单片机及外围器件的工具。虽然国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。
本文简单学习一下并行接口芯片8255A的应用—键盘与数码管:
(1)并行接口芯片8255A的使用。
(2)翻转法行列式键盘与七段数码管的运用。
一、实验内容:
(1)在Pruteus中绘制电路图。已知图中8086主频为1.5MHz。
(2)加载源程序。
IO3 EQU 30H CODE SEGMENT ASSUME CS:CODE,DS:CODE MAIN PROC FAR START: MOV AX,CODE MOV DS,AX L: MOV AL,10000001B MOV DX,IO3+6 OUT DX,AL MOV DX,IO3+4 MOV AL,00 OUT DX,AL NOKEY: IN AL,DX AND AL,0FH CMP AL,0FH JZ NOKEY CALL DELAY10 IN AL,DX MOV BL,0 MOV CX,4 LP1: SHR AL,1 JNC LP2 INC BL LOOP LP1 LP2: MOV AL,10001000B MOV DX,IO3+6 OUT DX,AL MOV DX,IO3+4 MOV AL,00 OUT DX,AL IN AL,DX AND AL,0F0H CMP AL,0F0H JZ L MOV BH,0 MOV CX,4 LP3: SHL AL,1 JNC LP4 INC BH LOOP LP3 LP4: MOV AX,4 MUL BH ADD AL,BL MOV DX,IO3+2 OUT DX,AL MOV BX,OFFSET SEGDATA XLAT MOV DX,IO3 OUT DX,AL MOV CX,0 J1: LOOP J1 JMP L RET MAIN ENDP DELAY10 PROC MOV CX,882 LOOP $ RET DELAY10 ENDP SEGDATA DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H 7FH,6FH,77H,7CH,39H,5EH,79H,71H CODE ENDS END START
(3)运行Pruteus仿真软件,按下按键,观察二极管和数码管显示。
(1)仿真结果
仿真截图与文字说明
当按下一行一列按键时对应二进制0000灯全灭,一行二列则对应二进制01第一个一个灯亮,一行三列对应二进制0010第二个灯亮,一行四列对应二进制0011第一个的灯和第二个灯亮,二行一列对应二进制0100第三个灯亮。以此类推数码管相对应的二进制数。显示灯是否亮的依据:高电平1时灯亮,低电平0灯灭。
仿真截图
(2)仿真分析
若改变8086主频为2MHz,能否通过修改软件保证消除按键抖动仍然保持10ms?如果能,说明改变方法;如果不能,说明原因。
可以,当检测出按键闭合后即执行一个延时程序,产生5ms~10ms 的延时,让前沿抖动消失后再一次检测按键的状态,如果仍保持闭合状态电平,则确认为有按键按下。当检测到按键释放后,也要给5ms~10ms 的延时,待后沿抖动消失后才能转入该按键的处理程序。
DELAY10 PROC MOV CX,882 LOOP $ RET DELAY10 ENDP