AND OUT CLD MOV MOV MOV MOV INT S14: MOV XOR LEA S12: STI MOV OUT HLT CLI MOV
STOSB LOOP
MOV XOR LEA MOV MOV MOV S13: PUSH LODSB XOR MOV MOV MOV MOV INT PUSH MOV MOV INC POP MOV MUL
AL,11111011B
21H,AL AX,DATA
ES,AX AH,0 AL,6 10H CX,640 BX,BX
DI,BUFFER1 DX,220H DX,AL AX,SI
S12 CX,640 BX,BX
DI,BUFFER2 SI,DI
AX,OFFSET BUFFERl P l,AX CX AH,AH DX,AX CX,BX AH,0CH AL,0 10H SI
SI,P1 AL,[SI] P1
SI
DL,199 DL
21
;开放 IRQ2中断
;ES指向数据段
;设置640x200的分辨率图形方 式
;采样640个点 ;存采样点缓冲区首址 ;开中断
;启动A/D转换 ;等待硬中断 ;关中断 ;存采样值 ;循环采样 ;显示的点数 ;均指向行值缓冲区
;初始化读指针P1
;行值送DX ;列值送 CX
;画点调用,抹除前1次的采样 点
;读出本次的采样值 ;读指针指向下一个采样值
MOV DIV MOV MOV SUB STOSB XOR MOV MOV MOV MOV
INT INC
POP LOOP STI MOV MOV INT JZ POP POP MOV MOV INT MOV OUT MOV MOV
INT
MOV INT ADINT PROC PUSH PUSH MOV IN MOV MOV OUT
DL,255
DL DL,AL AL,199 AL,DL AH,AH DX,AX
CX,BX AH,0CH AL,1 10H
BX CX S13 DL,0FFH AH,06 21H S14 DX DS
AL,0AH AH,25H 21H
AX,BP 21H,AL AL,2 AH, 0 10H
AX,4C00H 21H
NEAR AX DX
DX,220H AL,DX SI,AX
AL,20H 20H,AL
;计算显示行值,公式为 199—采样值*199/255
;显示行值送行值缓冲区对应单 元
;显示本次采样点
;偏移地址加1
;循环显示64O个点 ;开中断
;读键盘功能调用,若没有任何
键按下则转S14重复
;恢复原 IRQ2的中断向量
;恢复中断屏蔽寄存器的内容
;恢复正常的文本显示方式
;结束
;中断处理子程序
;读采样转换数据→SI
;发中断结束命令
22
POP DX POP AX IRET ADINT ENDP CODE ENDS END START 七、试验报告要求: 1. 写出实验步骤。 2. 根据程序一和程序二的要求分析实验结果。 3. 总结ADC0809的工作原理。
23
实验五 LED显示实验
一、实验目的:
1、了解七段数码管显示数字的原理.
2、掌握只用一个段锁存器和一个位锁存器来同时显示多位数字的技术. 二、实验内容:
编制程序实现LED显示。
1.线路图如下页:
选段锁存器(PORTSEG)地址为211H。 选位锁存器(PORTBIT)地址为210H。
2.编写程序,用七段数码管显示分、秒值。程序开始运行,时间值为00一00,每隔 1秒,时间值改变一次,从键盘上敲任意键,程序退出。 三、编程指南:
1.通过选位锁存器选择某一位数码管,显示其数字(对应段值为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在1秒钟内,每位数码管都能显示30次以上,则人眼看到的是几位数码管同时在显示。
2.主程序中等待输入任意键以结束程序。
3.定时由8253完成,8253通过 PC/XT62芯总线中IRQ2线,向CPU发中断。每隔25ms一次,即每秒40次。每次进入中断,中断服务子程序将六个数码管都显示1次,则每秒内六个数码管都被显示40次。在中断服务子程序中,还须对中断次数进行计数,每够40次中断,时间增加1秒。因此在执行下面所例举的程序时,需首先做实验1—8253计数器/定时器实验,使8253每秒40次中断。
24
25