图4-1 七段式LED显示部件引脚图
(3) 根据电原理图,编写简单的硬件检测程序
;------------------------------------------------------------- ; 课程设计三硬件检测: 数据采集控制与数字电压表 ;
HLXKSJC3.ASM
;------------------------------------------------------------- A8255
EQU 0602H ;PB0~PB7-->A~G.DP 段码口 EQU 0604H ;PC0~PC3-->X1~X4,PC4.PC5-->EOC EQU 0606H ;PC6-->K6电压表,PC7-->K7开机 EQU 0640H EQU 0642H EQU 0644H EQU 0646H
;ADC0809端口地址
;8254端口地址
B8255 C8255 CON8255 A8254 B8254 C8254 CON8254
ADC0809 EQU 0680H
;------------------------------------------------------------- ;------------------------------------------------------------- CODE
SEGMENT ASSUME CS:CODE
EQU 0600H ;8255端口地址:PA0~PA7-->LED.D0-D7
;------------------------------------------------------------- START: MOV DX,CON8255 ;8255控制字:PA7~PA0显示AD转换值
MOV AL,10001000B ;A口.B口,PC0~PC3输出,PC4~PC7输入 OUT DX,AL
;L0~L7灯显示01010101
;------------------------------------------------------------- BEGIN: MOV DX,A8255
MOV AL,55H OUT DX,AL MOV DX,B8255 MOV AL,5BH OUT DX,AL MOV DX,C8255
;LED数码管显示2
;-------------------------------------------------------------
MOV AL,11110101B OUT DX,AL MOV DX,CON8254 MOV AL,00100111B OUT DX,AL MOV DX,A8254 MOV AL,10H OUT DX,AL MOV DX,CON8254 MOV AL,01100111B OUT DX,AL MOV DX,B8254 MOV AL,10H OUT DX,AL
;启动秒计数
;-------------------------------------------------------------
;------------------------------------------------------------- ;------------------------------------------------------------- ALEST: MOV DX,ADC0809
OUT DX,AL
MOV DX,C8255
;检测EOC状态,判断转换是否结束
IN AL,DX
TEST AL,00110000B JZ EOC
MOV DX,ADADC0809 IN AL,DX MOV DX,A8255 OUT DX,AL JMP ALEST
ENDS
;继续
;显示AD转换结果
;转换结束,取AD转换结果
EOC:
;选择通道,启动转换
;-------------------------------------------------------------
;------------------------------------------------------------- CODE
END START
;-------------------------------------------------------------
五、软件系统设计
(1)根据课设内容的要求,画出软件系统框图;
(2)
根据软件系统框图,
分出各功能模块,
并设计各功能模块的控制流程;
1、8254和8259模块
2、中断程序
3、A/D转换部分
(3)根据程序框图设置存贮变量,编写汇编语言的控制程序; (见附录)
六、在调试过程的问题及解决办法
(1)问题:在连接好线路进行调试时,发现只有电压表的数值能够正常在8位数码管上显示,而当K6=1时,数码管上上显示的是三位乱码。
办法:在确认电路没有连错的情况下,对程序进行了修改,再进行测试的时候,秒表能够正常跳动。
(2)问题:当对秒表进行分显示的时候,通过修改线路不能完成这个任务。
办法:在程序AA3的位置增加一段显示分的程序,通过测试后,能成功运行。
七、收获与建议
刚开始接触这个课程设计,觉得自己什么都不懂,之前上的理论课里面讲的一些理论知识也没有好好掌握,觉得自己肯定做不好这个课设。但是,课设来了,还是要硬着头皮去做,开始自己按照电路图搭线,翻书看程序的功能,看各个器件的工作原理。并试着去写一小段汇编程序。
通过本次课程设计,我能更加深刻地掌握8086的编程、0809A/D转换器、8255的功能、中断控制器、模数转换及LED/LCD显示原理,用实践验证了所学理论的正确性,清楚学习过程中的不足,对于平时学的理论知识要及时复习。在课程设计的过程中遇到了不少问题,在自己的努力下和同学的帮助下,都能够得到解决,这个让我体会到了团队的重要性。
附录:
MY8254_A EQU 06C0H MY8254_B EQU 06C2H MY8254_C EQU 06C4H MY8254_MODE EQU 06C6H ;8254控制字寄存器 MY8255_A EQU 0600H MY8255_B EQU 0602H MY8255_C EQU 0604H MY8255_MODE EQU 0606H ;8255控制字寄存器
A8255 EQU 0600H ;8255端口A地址,I|O接口为IOY0 B8255 EQU 0602H ;8255端口B地址,I|O接口为IOY0 C8255 EQU 0604H ;8255端口C地址,I|O接口为IOY0 CON8255 EQU 0606H ;8255控制字寄存器地址,I|O接口为IOY0 ADC0809 EQU 0640H ;0809控制字寄存器,I|O接口为IOY1
SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS
DATA SEGMENT
DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;字形码表 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H NUM DB ? NUM1 DB ? NUM2 DB ? DATA ENDS
CODE SEGMENT ASSUME CS:CODE,SS:SSTACK,DS:DATA
START: MOV AX,DATA MOV DS,AX
;------------------------------------------------------------------------------- ;数字时钟的初始化 ;初始化8255 MOV DX,MY8255_MODE MOV AL,88H ;控制字10001000B:方式0,C口高四位输入 OUT DX,AL MOV DX,0646H ;新加的 OUT DX,AL ;新加的 MOV SI,3000H ;源变址寄存器:用来存放源数据区的偏移地址 MOV AL,00H MOV [SI],AL MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL MOV DI,3000H PUSH DS ;将DS中字数据入栈 MOV AX,0000H MOV DS,AX MOV AX,OFFSET IRQ7 ;取中断入口地址 MOV SI,003CH ;中断矢量地址 MOV [SI],AX ;填IRQ7的偏移矢量 MOV AX,CS ;段地址 MOV SI,003EH MOV [SI],AX ;填IRQ7的段地址矢量 ;CLI ;清中断允许标志位,CPU将禁止中断 POP DS ;将堆栈中字数据弹出到DS中 ;----------------------------------------------------------------------------- ;初始化主片8259 MOV AL,11H OUT 20H,AL ;ICW1 MOV AL,08H OUT 21H,AL ;ICW2 MOV AL,04H OUT 21H,AL ;ICW3 MOV AL,01H
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说医药卫生基于8086的数字电压表、与秒表的设计(2)在线全文阅读。
相关推荐: