14281030_方学毅_8253A不同工作方式的实验
- 格式:docx
- 大小:391.45 KB
- 文档页数:5
可编程定时器/计数器(8253)一、实验目的 1)学会8253芯片和微机接口原理和方法。
芯片和微机接口原理和方法。
2)掌握8253定时器定时器//计数器的基本工作原理、工作方式和编程原理。
二、实验内容按图6虚线连接电路,将计数器0设置为方式0,计数器初值为N (N ≤0FH 0FH)),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
图 6按图7连接电路,连接电路,将计数器将计数器0、计数器1分别设置为方式3,计数初值设为10001000,用逻辑笔观察,用逻辑笔观察OUT1输出电平的变化(频率1HZ 1HZ))。
图 7三、编程提示1 1、、8253控制寄存器地址控制寄存器地址283H计数器0地址地址 280H 计数器1地址地址 281HCLK0连接时钟连接时钟 1MHZ2 2、参考流程图(见图、参考流程图(见图8、9): 开 始读计数器值显示计数值有键按下吗?开 始送计数器初值N Y结 束结 束设计数器0为工作方式0向计数器0送初值1000先送低字节后送高字节向计数器1送初值1000先送低字节后送高字节设计数器0为工作方式3设计数器1为工作方式3图 8 图图 9四、实验代码1、图6电路的实验代码电路的实验代码CODE SEGMENT ;CODE SEGMENT ;段定义开始(段定义开始(段定义开始(CODE CODE 段)段)ASSUME CS:CODE ; ASSUME CS:CODE ;规定规定CODE 为代码段为代码段START:MOV START:MOV AL,10H ;AL,10H ;AL,10H ;设置控制字设置控制字0001000000010000(计数器(计数器0,方式0,写两个字节,二进制计数)二进制计数)MOV DX,283H ; MOV DX,283H ;把控制寄存器地址放在把控制寄存器地址放在DX 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV DX,280H ; MOV DX,280H ;把计数器把计数器0地址放在DX 寄存器中寄存器中MOV AL,0FH ; MOV AL,0FH ;将将0FH 存入AL 寄存器寄存器OUT DX,AL ; OUT DX,AL ;将此时将此时AL 的值送入DX 端口端口LP1: IN AL,DX ;LP1: IN AL,DX ;从从DX 端口读入8位,放在AL 寄存器中寄存器中CALL DISP ; CALL DISP ;调用调用DISP PUSH DX ; PUSH DX ;将将DX 内容保存到堆栈段内容保存到堆栈段MOV AH,06H ; MOV AH,06H ;将将06H 存入AH AH,为了下句调用,为了下句调用21中断中断MOV DL,0FFH ; MOV DL,0FFH ;将将0FFH 存入DLINT 21H ; INT 21H ;调用调用21中断中断POP DX ; POP DX ;将将DX 的内容推出栈段的内容推出栈段JZ LP1 ; JZ LP1 ;如果如果DX 的内容是0,就跳转到LP1MOV AH,4CH ; MOV AH,4CH ;将将4CH 存入AH AH,为了下句调用,为了下句调用21中断中断INT 21H ; INT 21H ;调用调用21中断中断DISP PROC NEAR ;DISP PROC NEAR ;定义一个名为定义一个名为DISP 的子程序的子程序PUSH DX ; PUSH DX ;把把DX 的内容保存到堆栈段中的内容保存到堆栈段中AND AL,0FH ;AL,0FH ;将将AL 寄存器的内容与0FH 进行“与”运算,再把结果存入AL 中MOV DL,AL ; MOV DL,AL ;将将AL 的值送入DL 寄存器寄存器CMP DL,9 ; CMP DL,9 ;比较比较DL 中的值与9的大小的大小JLE NUM ; JLE NUM ;如果如果DL 的值小于或等于9时,则跳转到NUM ADD DL,7 ; ADD DL,7 ;将将DL 的值与7进行相加后,再送入DL 中NUM: ADD DL,30H ;NUM: ADD DL,30H ;将将DL 的值与30H 进行相加后,再送入DL 中 MOV AH,02H ; MOV AH,02H ;将将02H 存入AHINT 21H ; INT 21H ;调用调用DOS21中断中断MOV DL,0DH ; MOV DL,0DH ;结合“结合“结合“MOV AH,02H MOV AH,02H MOV AH,02H”就是说输出”就是说输出0DHINT 21H ; INT 21H ;调用中断指令调用中断指令调用中断指令MOV DL,0AH ; MOV DL,0AH ;结合“结合“结合“MOV AH,02H MOV AH,02H MOV AH,02H”就是说输出”就是说输出0AHINT 21H ; INT 21H ;调用调用DOS21中断中断POP DX ; POP DX ;将将DX 的内容推出栈段的内容推出栈段RET ; RET ;子程序在功能完成后返回调用程序继续执行子程序在功能完成后返回调用程序继续执行 DISP ENDP ; DISP ENDP ;子程序结束子程序结束子程序结束CODE ENDS ; CODE ENDS ;代码段结束代码段结束代码段结束END START ; END START ;程序结束程序结束程序结束2、图7电路的实验代码电路的实验代码CODE SEGMENT ;CODE SEGMENT ;段定义开始(段定义开始(段定义开始(CODE CODE 段)段)ASSUME CS:CODE ; ASSUME CS:CODE ;规定规定CODE 为代码段为代码段START:MOV DX,283H ;START:MOV DX,283H ;把控制寄存器地址放在把控制寄存器地址放在DX 寄存器中寄存器中MOV AL,36H ; MOV AL,36H ;设置控制字设置控制字0011011000110110(计数器(计数器0,方式3,写两个字节,二进制计数)二进制计数)OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV AX,1000H ; MOV AX,1000H ;该语句是立即寻址方式,就是把该语句是立即寻址方式,就是把1000H 这个数赋给AX MOV DX,280H ; MOV DX,280H ;把计数器把计数器0地址放在DX 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV AL,AH ; MOV AL,AH ;将将AX 的高8位存入AL 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将此时将此时AL 的值送入DX 端口端口MOV DX,283H ; MOV DX,283H ;把端口地址放在把端口地址放在DX 寄存器中寄存器中MOV AL,76H ; MOV AL,76H ;设置控制字设置控制字0111011001110110(计数器(计数器1,方式3,写两个字节,二进制计数)二进制计数) OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV AX,1000H ; MOV AX,1000H ;把把1000H 赋给AXMOV DX,281H ; MOV DX,281H ;把端口地址放在把端口地址放在DX 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将将AX 的低8位送入DX 端口端口MOV AL,AH ; MOV AL,AH ;将将AX 的高8位存入AL 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV AH,4CH ; MOV AH,4CH ;将将4CH 存入AHINT 21H ; INT 21H ;调用调用DOS21中断中断CODE ENDS ;CODE ENDS ;代码段结束代码段结束代码段结束END START ; END START ;程序结束程序结束程序结束五、实验总结通过实验,学会通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器定时器//计数。
实验三、8253的各种工作方式测试实验一、实验内容1、编写程序分别显示0,2,3几种工作方式下的波形本实验使用8253A的定时/计数器2,GATE2接高电平,CLK2接1MHZ的时钟脉冲,OUT2接示波器观测输出波形。
实验中,要求记录定时器的时间常数,测试方式2和方式3下的输出周期信号的频率和周期。
2、采用图3-2来产生1秒的时钟周期(此内容不做要求,根据实验的时间确定)图3-2为定时器的级联方式,主要用于产生长时间的定时操作。
图3-2实际上对输入时钟进行了两次分频。
三、实验线路连接io8253aequ 200hio8253bequ 201hio8253cequ 203hcode segmentassumecs:codestart:mov dx,io8253c ;向8253写控制字mov al,36h ;使0通道为工作方式3outdx,almov ax,0 ;写入循环计数初值1000mov dx,io8253aout dx,al ;先写入低字节moval,ahout dx,al ;后写入高字节mov ah,4ch ;程序退出int 21hcode endsend start实验四、利用8255A实现LED的流水点亮实验一、实验内容PC口接8个拨动开关K1-K8,PB口接8个LED。
初始由开关K1-K8设定8位不同的值,当执行程序后LED按K1-K8初始设定的值点亮,并向右流动(8255A工作在0方式),同时在数码管上显示“8255A”(数码管的片选信号自定)。
关于数码管的编程方法请看实验平台介绍(TPC-386EX学生实验指导书)。
二、实验接线图将8255A的片选信号8255CS插孔和译码输出210H-21FH插孔相连。
三、实验编程提示根据难易程度,学生可以选择完成下列两个程序之一:1、LED右流水仅仅取决于第1次开关的位置,一旦LED流水开始,LED流水的次序将不再理睬开关位置的重新变化。
2、在LED右流水中,如果开关的位置发生了变化,LED右流水从变化的位置重新开始。
北理工微机原理与接口技术之8255,8253实验报告微机原理与接口技术实验报告———8253可编程定时器8255并行接口实验实验一8255并行接口实验一,实验内容8255的A口作为输入口,与逻辑电平开关相连。
8255的B口作为输出口,与发光二极管相连。
编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
二,实验目的(1)掌握8255的工作原理。
(2)掌握编写8255并行接口初始化及编程实现的方法。
三,实验仪器微机实验教学系统实验箱、8086CPU模块四,实验步骤(1)连线8255的PA0—PA7分别与逻辑电平开关的K1—K8相连?PB0—PB7分别与发光二极管电路的LED1—LED8相连?CS0与8255的片选CS8255相连其它线路均已连好具体如图所示:(2)编辑程序,编译链接后,单步运行,调试程序。
(3)调试通过后,全速运行,观察实验结果。
(4)撰写实验报告。
五,实验源程序如下CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,90H ;写8255的控制字,A组工作在方式0,A口输入,C口高4位输出,B组工作在方式0,B口及C口的低4位均工作在输出OUT DX,AXSTART1:MOV DX,04A0HIN AX,DX ;读取A口数据MOV DX,04A2HOUT DX,AX ;将从A口读取的数据从B口输出,控制LED灯JMP START1CODE ENDSEND START六,实验现象LED灯低电平有效。
当某一开关拨到低电平时,对应的LED灯点亮。
当某一开关拨到高电平时,对应的LED灯熄灭七,思考题1.将片选线接到CS1—CS7;重新编写程序。
CS0对应地址是04A0---O4AF, CS1对应地址是04B0---O4BF.现将片选线接到CS1,重新编程:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04B6H ;CS1对应的地址MOV AX,90HOUT DX,AXSTART1:MOV DX,04B0HIN AX,DXMOV DX,04B2HOUT DX,AXJMP START1CODE ENDSEND START实验现象:如同片选线接到CS02.交换A B接线,A口输出、B口输入;重新编写程序。
中断方式的A/D采集系统一、实验目的该实验使用了8259A,ADC0809,数码管来完成一个数据采集系统的设计,目的是了解中断方式的A/D采集数据的实现方法,掌握硬件设计和中断程序的编写方法,是对学生综合实验能力的训练。
二、实验内容使用ADC0809的通道0,接入0-5V的直流电压,用WR电位器调整模拟电压值,A/D 的转换结束信号EOC接在主8259A的IR5上,采集100个数据并存入内存中,同时将采集的16进制数据显示在数码管上。
请多次调整0-5V的电压值(旋动W1旋钮),进行A/D采集,并观测内存中的数据的变化情况。
三、实验现象每次采集的100个数据可能是相同的(数码管的数据也可能不变),当WR旋动时可以采到不同的数据。
四、实验接线图图1-6 实验连线图四、程序源代码PAGE 60,78CRLF MACRO ;回车换行宏定义MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HNT 21HENDMDA TA SEGMENTINR DB ?RESULT DB ?BUFF DB 600 DUP(?)XORG DW 100DA TA ENDSSTACK SEGMENT STACK 'STACK'DB 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA, SS:STACK, ES:DATA START: MOV AX,DATAMOV DS,AXMOV DI, OFFSET BUFF ;MOV AL,0AHMOV AH,35HINT 21H ;取IRQ2中断服务程序入口地址ES:BX PUSH ES ;保护ES,BX,DSPUSH BXPUSH DSMOV AX,SEG ADINT ;填写中断向量表(N=0AH)MOV DS,AXMOV DX,OFFSET ADINTMOV AL,0AHMOV AH,25HINT 21HPOP DS ;恢复DSIN AL,21HMOV BP,AX ;保护中断屏蔽寄存器内容于BP中AND AL,11111011BOUT 21H,AL ;允许IRQ2中断MOV CX,300HMOV DX,203H ;8253初始化,0通道方式3MOV AL,36HOUT DX,ALMOV DX,200HMOV AL,10H ;初值得0010HOUT DX,ALMOV AL,00HOUT DX,ALCCC: STIMOV DX,220HOUT DX,AL ;启动一次A/D转换HLTCLI ;关中断MOV AX,SI ;取A/D转换结果PUSH DSMOV BX,6000H ;写入6000H:0~2FFH区域MOV DS,BXMOV BX,CXDEC BXMOV [BX],ALAND AL,0F0H ;高位十六进制转ASCII码PUSH CXMOV CL,04HSHR A L CLPOP CXADD AL,30HCMP AL,39HJBE AS1ADD AL,07HAS1:MOV DL,AL ;显示高位MOV AH,02HINT 21HMOV [DI],AL ;INC DIMOV AL,[BX]AND AL,0FHADD AL,30HCMP AL,39HJBE AS2ADD AL,07HAS2:MOV DL,AL ;显示低位MOV AH,02HINT 21HMOV [DI],ALINC DIMOV DL,20H ;显示两个空格MOV AH,02HINT 21HINT 21HPOP DSLOOP CCCPOP DX ;恢复IRQ2中断向量POP DSMOV AL,0AHMOV AH,25HINT 21HMOV AX,BP ;恢复中断屏蔽寄存器内容OUT 21H,ALWAIT_IN:MOV AH,1 ;程序暂停,等待键入INT 21HMOV SI,OFFSET BUFFCALL CRTSETLL: MOV AH,0CH ;写像素MOV BH,0MOV CL,10MOV CX,XORG ;初始列值INC XORGMOV DH,0MOV DL,[SI]INC SIINT 10HCMP XORG,400JLE LLEXIT:;MOV AX,2;INT 10H ;恢复80*25文本显示方式MOV AX,4C00H ;结束INT 21HADINT PROC NEAR ;中断服务程序PUSH AX ;保护AXPUSH DX ;保护DXMOV DX,220H ;读A/D转换结果IN AL,DXMOV SI,AX ;送SIMOV AL,20HOUT 20H,AL ;发中断结束命令POP DXPOP AX ;恢复IRETADINT ENDPCRTSET PROC ;屏幕设置子程序MOV AX,12HINT 10HMOV AH,0BHMOV BX,9INT 10HRETCRTSET ENDPCODE ENDSEND START五、主程序流程图主程序流程图如下图。
8253计数器实验报告8253计数器实验报告引言:实验报告是对实验过程和结果的详细记录和分析,通过实验报告,可以总结出实验的目的、方法、数据和结论,为进一步研究和实践提供参考。
本文将对8253计数器实验进行报告,介绍实验目的、实验步骤、实验结果和结论。
实验目的:本次实验的目的是熟悉8253计数器的工作原理和使用方法,掌握8253计数器的基本功能和应用场景。
实验步骤:1. 准备实验材料:8253计数器、示波器、电源等。
2. 搭建实验电路:根据实验要求,将8253计数器与示波器和电源相连,确保电路连接正确。
3. 设置实验参数:根据实验要求,设置8253计数器的工作模式、计数范围等参数。
4. 运行实验程序:编写实验程序,通过编程控制8253计数器的工作状态,观察实验结果。
5. 记录实验数据:使用示波器等仪器,记录实验过程中的数据和波形图。
6. 分析实验结果:根据实验数据和波形图,分析8253计数器的工作状态和性能。
实验结果:通过实验,我们观察到了8253计数器的不同工作模式下的输出结果。
在定时器模式下,我们设置了不同的计数范围和计数频率,观察到了计数器的计数过程和计数结果。
在计数器模式下,我们设置了不同的计数方向和计数初始值,观察到了计数器的增减过程和最终的计数结果。
结论:通过本次实验,我们对8253计数器的工作原理和使用方法有了更深入的了解。
我们掌握了8253计数器的基本功能和应用场景,能够根据实际需求设置计数器的工作模式和参数。
实验结果表明,8253计数器具有较高的计数精度和稳定性,在计时、计数等领域有广泛的应用前景。
总结:实验报告是对实验过程和结果的详细记录和分析,通过实验报告,可以总结出实验的目的、方法、数据和结论,为进一步研究和实践提供参考。
本次实验报告对8253计数器的实验进行了详细介绍,包括实验目的、实验步骤、实验结果和结论。
通过本次实验,我们对8253计数器有了更深入的了解,掌握了其基本功能和应用场景。
微机接口 8253定时器实验报告浙江工业大学计算机学院实验名称 8253定时器实验姓名学号班级教师日期一、实验内容与要求1.1 实验内容计数器方式2实验:将8253芯片的计数器0的工作方式设置为方式2,计数器初值为N,用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用TPC-USB平台上的LED灯观察OUT0电平变化(当输入第N倍数个脉冲后OUT0变低电平,LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态)。
计数器方式3实验:将计数器0、计数器1的工作方式分别设置为方式3,计数初值设为1000,并同时用TPC-USB平台上的LED灯观察OUT1电平变化(频率1Hz)。
1.2 实验要求(1) 具有一定的汇编编程的基础,能编写一些基本语句来实现实验。
实验前根据实验流程图,写出对应代码;(2) 要了解8253定时/计数器芯片内部结构和外部引脚,了解芯片的硬件连接方法、时序关系、各种模式的编程及应用,能熟练地对其进行编程;(3) 熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4) 计数器方式2实验:连接PC与TPC-USB平台,用微机实验软件运行程序,用手动开关逐个输入单脉冲,在屏幕上能一次显示计数值,当输入第N倍数个脉冲后OUT0变低电平,TPC-USB平台上的LED灯由亮变灭,其余脉冲OUT0都是高电平,LED 灯都处于亮状态;(5) 计数器方式3实验:连接PC与TPC-USB平台,用微机实验软件运行程序,TPC-USB平台上的LED灯能周期性地亮灭,频率为1Hz。
二、实验原理与硬件连线2.1 实验原理1、8253定时/计数器芯片的内部结构:1数据总线缓D7-D0冲器CLK0计数器0GATE0OUT0A0读/写控制A1逻辑1CLKRDWR计数器1GATE1OUT1CS控制字CLK2寄存器计数器2GATE2OUT2图1 8253内部结构图(1)数据总线缓冲器:三态双向8位寄存器,与系统数据总线相连,可寄存以下3种数据: , CPU向8253/8254写入的工作方式命令字;, CPU向计数寄存器写入的计数初值;, 从计数器读出的当前计数值。
电子琴课程设计报告1.. 实验目的用汇编语言编写一段程序,通过按电脑键盘模拟电子琴的发声:高音区:qwertyui;中音区:asdfghj;低音区:zxcvbnm;超过按键将无声2. 实验要求在本次程序设计过程中,在界面上显示所有操作的提示信息,用户可以根据个人喜好自己弹奏音乐或者收听所列出的音乐。
如果用户选择自己弹奏音乐,当从键盘上敲击q~u时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的重低音节;当从键盘上敲击a~j时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的低音节;当从键盘上敲击z~m 时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的中音节;超过按键则无声。
3. 实验原理3.1 8253工作原理图3-1 8253引脚图下面介绍8253引脚图和内部结构及引脚定义等。
8253由以下几个部分组成:(1) 数据总线缓冲器(8位、三态、双向);(2) 读/写控制逻辑;CS:片选信号,低电平有效;RD:读信号,低电平有效;WR:写信号,低电平有效A1A0:端口选择信号(3) 三个通道( 0 ~ 2);(4) 一个控制寄存器;当A1A0分别为00 01 10 11时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连Intel 8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。
每个通道都可以编程设定6种工作方式之一种;由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。
表3-1 控制功能表计数器(0 ~ 2)即三个计数器/定时器通道。
每个通道包括:8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。
中断方式的A/D采集系统一、实验目的该实验使用了8259A, ADC0809,数码管来完成一个数据采集系统的设计,目的是了解中断方式的A/D采集数据的实现方法,掌握硬件设计和中断程序的编写方法,是对学生综合实验能力的训练。
二、实验内容使用ADC0809的通道0,接入0-5V的直流电压,用WR电位器调整模拟电压值,A/D 的转换结束信号EOC接在主8259A的IR5上,采集100个数据并存入内存中,同时将采集的16进制数据显示在数码管上。
请多次调整0-5V的电压值(旋动W1旋钮),进行A/D采集,并观测内存中的数据的变化情况。
三、实验现象每次采集的100个数据可能是相同的(数码管的数据也可能不变),当WR旋动时可以采到不同的数据。
四、实验接线图图1-6 实验连线图四、程序源代码PAGE 60,78CRLF MACRO ;回车换行宏定义MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02H21HNTENDMDATA SEGMENTINR DB ?RESULT DB ?BUFF DB 600 DUP(?)XORG DW 100DATA ENDSSTACK SEGMENT STACK 'STACK'DB 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATASTART: MOV AX,DATAMOV DS,AXMOV DI, OFFSET BUFF ;MOV AL,0AHMOV AH,35HINT 21H ;取IRQ2中断服务程序入口地址ES:BXPUSH ES ;保护ES,BX,DSPUSH BXPUSH DSMOV AX,SEG ADINT ;填写中断向量表(N=0AH)MOV DS,AXMOV DX,OFFSET ADINTMOV AL,0AHMOV AH,25HINT 21HPOP DS ;恢复DSIN AL,21HAND AL,11111011BOUT 21H,AL ;允许 IRQ2 中断 MOV CX,300HMOV DX,203H;8253初始化,0通道方式3 MOV AL,36HOUT DX,ALMOV DX,200HMOV AL,10H;初值得 0010H OUT DX,ALMOV AL,00HOUT DX,ALCCC: STIMOVDX,220H OUTDX,AL ;启动一次A/D 转换 HLTCLI;关中断 MOVAX,SI ;取 A/D 转换结果 PUSHDS MOVBX,6000H ;写入 6000H:0~2FFH 区域 MOVDS,BX MOVBX,CX DECBX MOV[BX],AL ANDAL,0F0H ;高位十六进制转ASCII 码 PUSHCX MOVCL,04H SHRAL CLPOP CXCMP AL,39HMOV BP,AX;保护中断屏蔽寄存器内容于BP 中JBE AS1ADD AL,07HAS1:MOV DL,AL ;显示高位MOV AH,02HINT 21HMOV [DI],AL ;INC DIMOV AL,[BX]AND AL,0FHADD AL,30HCMP AL,39HJBE AS2ADD AL,07HAS2:MOV DL,AL ;显示低位MOV AH,02HINT 21HMOV [DI],ALINC DIMOV DL,20H ;显示两个空格MOV AH,02HINT 21HINT 21HPOP DSLOOP CCCPOP DX ;恢复IRQ2中断向量POP DSMOV AL,0AHMOV AH,25HMOV OUT AX,BP21H,AL;恢复中断屏蔽寄存器内容WAIT_IN:MOV AH,1 ;程序暂停,等待键入INT 21HMOV SI,OFFSET BUFFCALL CRTSETLL: MOV AH,0CH ;写像素MOV BH,0MOV CL,10MOV CX,XORG ;初始列值INC XORGMOV DH,0MOV DL,[SI]INC SIINT 10HCMP XORG,400JLE LLEXIT:;MOV AX,2;INT 10H ;恢复80*25文本显示方式MOV AX,4C00H ;结束INT 21HADINT PROC NEAR ;中断服务程序PUSH AX ;保护AXPUSH DX ;保护DXMOV DX,220H ;读A/D转换结果IN AL,DXMOV SI,AX ;送SIMOV AL,20HOUT 20H,AL ;发中断结束命令POP DXPOP AXIRETADINT ENDP CRTSET PROCMOV AX,12H INT 10HMOV AH,0BH MOV BX,9INT 10HRETCRTSET ENDP CODE ENDSEND START 五、主程序流程图主程序流程图如下图;恢复;屏幕设置子程序b)中断般务。
实验一8253A定时/计数器(一)一、实验目的1. 学会8253芯片和微机接口原理和方法。
2. 掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容实验原理图本实验原理图如上所示,8253A的A0、A1接系统地址总线A0、A1,故8253A有四个端口地址,如端口地址表5-2所示。
8253A的片选地址为48H~ 4FH。
因此,本实验仪中的8253A四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字。
采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ,输出OUTO 要求为1KHZ的方波,并要求用接在GA TE0引脚上的导线是接地("0"电平)或甩空("1"电平)来观察GA TE对计数器的控制作用,用示波器观察输出波形。
1、实验线路连接(1) 8253A芯片的CLK0引出插孔连分频输出插孔1MHZ。
(2) 8253A的GA TE0接+5V。
2、实验步骤(1) 按图连好实验线路(2) 运行实验程序在系统显示"DVCC-86H"状态下,按任意键,系统显示命令提示符"-"。
按GO键,系统显示"1000 XX"输入F000 :B290再按EXEC键,显示"8253-1"用示波器测量8253A的OUT0输出插孔,应有频率为1KHZ的方波输出。
幅值0~5V。
实验二8259单级中断控制器实验一、实验目的1.掌握8259中断控制器的接口方法.2.掌握8259中断控制器的应用编程.二、实验内容1、本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F。
2实验原理图使用8259单级中断控制实验原理图根据实验原理图,8259A和8088系统总线直接相连,8259A上连有一系统地址线A0,故8259A有2 个端口地址,本系统中为20H、21H。
实验一8253A不同工作方式的实验
一、实验目的
学生在课堂上仅仅通过了理论的学习,还需要对所学知识有个直观而生动的了解,这个实验可以使学生更深刻的理解8253A定时/计数器的各种工作方式的特点;通过观察实验波形,可直观地了解这几种工作方式的异同。
二、实验内容
编写程序分别显示0,2,3几种工作方式下的波形。
要求2方式的输出频率为1000Hz,3方式的输出频率为2000Hz,0方式的定时长度为。
本实验使用8253A的定时/计数器2,GATE2通过K1接到+5V或地,CLK2接1MHZ的时钟脉冲,OUT2接示波器观测输出波形,并在数码管上显示“8253---A”。
三、实验线路连接
图1-1 实验连线图
注意:8253的片选信号设备已经连接好。
四、实验编程
2方式
循环计数初值为1MHZ/1000Hz=1000=3E8H
MOV AL,10110100B 计数器2,方式2
MOV DX,203H 将命令寄存器地址送到DX
OUT DX,AL
MOV AX,3E8H 写入计数器初值
MOV DX,202H 选择计数器2
OUT DX,AL 先写低字节
MOV AL,AH
OUT DX,AL 再写高字节
●3方式
输出频率2000Hz
循环计数初值为1MHz/2000H=500=1F4H
MOV AL,10110110B 计数器2,方式3
MOV DX,203H 把寄存器的地址送到DX
OUT DX,AL
MOV AX,1F4H 写入循环计数初值
MOV DX,202H 计数器2
OUT DX,AL 先写低字节
MOV AL,AH
OUT DX,AL 再写高字节
●0方式
MOV AL,10110000B 计数器2,方式0
MOV DX,203H 将命令寄存器地址送给DX
OUT DX,AL
MOV AX,00H
MOV DX,202H
OUT DX,AL 先写低字节
MOV AL,AH
OUT DX,AL 再写高字节
●在数码管上显示“8253-A”
.model small
.386
data segment
led_cs equ 200h
ledcode db 77H,40H,4FH,6DH,5BH,7FH // 7段数码管显示16进制数字形的编码
buf dw ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov buf,55aah
ttt:
lea si,ledcode
ttl: mov bl,[si] //段码
mov cl,01h //位码
lll: call disp
cmp cl,40h //如果位码已到最左,则表示一次输出结束 jnz lll //位码没到最左,继续调用disp
jmp ttt //位码已到最左,重新装入初始段码,位码disp proc
push dx
push ax
mov al,bl //装段码
lp1: mov dx,led_cs //装偶地址,在偶地址下课输出段码
out dx,al //输出段码
mov al,cl //装位码
lp2: mov dx,led_cs
inc dx //变为奇地址,才可以输出位码
out dx,al
call delay
sal cl,1 //位码加1,向左移一位
INC SI
MOV BL,[SI] //段码加1,使右移一位显示下一个字符
pop ax
pop dx
ret
disp endp
delay proc
push cx
push dx
code ends
end start
五、实验步骤
a)根据原理图正确连接实验线路(需要连接粗黑线)。
b)正确理解实验原理。
c)编写实验程序,并上机调试,观察实验结果。
六、实验结果
8253A如下图显示,红灯闪烁视频见附件视频
七、思考题
观测到的0方式是怎样的波形,为什么会出现这种现象。
高电平时,LED灯亮,低电平时,LED灯灭。
在0方式下,OUT在计数器初始化之前为高电平,计数器开始工作后转化为低电平,待计数结束后重新变为高电平。
所以,LED 灯会先亮,然后暗一下,继续亮。