微机原理实验报告_实验讲义_硬件实验_实验三 可编程定时计数器82532021(1)
- 格式:docx
- 大小:42.92 KB
- 文档页数:4
实验四定时计数器实验
一、实验目的
1.了解定时器8253的初始化及使用方法
2.会用逻辑笔或示波器观察8253的工作状态
二、实验要求
编写程序,使8253的定时/计数器2工作在方式3下,使逻辑笔交替显示三、实验算法
先对8253进行初始化,选择计数器2工作在方式3下,输入计数值ffH,则O2端输出以FFH为周期的方波,将O2端连到逻辑笔输入端即可观察现象。
四、实验电路图
如图所示:
五、程序清单
T IM_CTL EQU 203H
TIMER0 EQU 200H
TIMER1 EQU 201H
TIMER2 EQU 202H
MODE23 EQU 0B6H
MODE13 EQU 76H
CODE SEGMENT
ASSUME CS:CODE
START:
TT: CLI
MOV DX,TIM_CTL
MOV AL,MODE23
OUT DX,AL ;8253初始化,选择计数器2工作在方式3下 MOV DX,TIMER2
MOV AL,0FFh
OUT DX,AL
MOV AL,0FFh ;设置输入数值为FFFFH
OUT DX,AL
WT: JMP WT ;无限循环显示程序现象
CODE ENDS
END START
六、实验现象结果与分析
K0打开,逻辑笔有红绿变化
七、实验体会
通过本实验知道了如何运用8253定时计数,了解了8253的功能特点,知道了如何运用8253进行定时做事。
八、主要仪器设备
计算机、接口实验箱平台。
微机原理与接口实验报告实验名称:可编程定时器计数器实验班级:学号:姓名:指导老师:实验报告要求一.实验目的1.掌握8253芯片和微机接口的硬件连接方法。
2.掌握8253定时器/计数器的工作方式和编程原理。
二.实验仪器1.微型计算机一台。
DVCC-5286JH型微机原理与接口实验系统,排线、导线若干。
三.实验原理1、实验要求本实验原理图如图所示,8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,如端口地址表所示。
8253A的片选地址为48H~ 4FH。
因此,本实验仪中的8253A四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字。
采用8253A通道2,工作在方式3(方波发生器方式),输入时钟CLK2 为1MHZ,输出OUT0 要求为1KHZ的方波,并要求用接在GATE2引脚上的导线是接地("0"电平)或甩空("1"电平)来观察GATE对计数器的控制作用,用示波器观察输出波形,看是否有频率为1KHZ的方波输出。
实验原理图如图1所示,PB4 PB7和PC0 PC7分别与发光二极管电路L1 L12 相连,本实验为模拟交通灯实验。
交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2、4为东西方向,初始化为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。
8255A的PB4~PB7对应黄灯,PC0~PC3对应红灯,PC4~PC7对应绿灯。
8255A工作于模式0,并置为输出。
由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。
实验三8253定时/计数器实验一.实验目的了解8253的硬件连接方法,掌握8253的各种方式的编程及其原理。
二.实验要求编写程序,将8253的计数器0设置为方式3(方波),计数器1设置为方式2(分频),计数器2设置为方式2(分频);计数器0的输出作为计数器1的输入,计数器1的输出作为计数器2的输入;计数器2的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。
1. 编程时用程序框图中的三个计数初值,计算OUT2的输出频率,用手表观察LED,进行核对。
2. 修改程序中的三个计数初值,使OUT2的输出频率为1Hz,用手表观察LED,进行核对。
3. 上面计数方式选用的是16进制,现若改用BCD码,试修改程序中的三个计数初值,使LED的闪亮频率仍为1Hz。
三.实验电路及连线GATE0~GATE2连至电源+5V,从波特率开关边的f插孔用线连至CLK0,OUT0用线连至CLK1,OUT1用线连至CLK2,OUT2用线连至一个发光管(DL1),8253片选孔CS 用线连至译码处228~22FH插孔。
四.实验说明8253工作频率为0~2MHZ,所以输入的时钟频率必须在2MHZ之下。
实验板上的晶振为4.9152MHZ,需经74LS393(16分频),由Q3输出307200HZ到CLK0(将波特率开关拨至9600)。
五.实验内容(一)程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3MOV AL,00110111BOUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2MOV AL,01110101BOUT DX,ALMOV DX,229HMOV AL,18HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,22BH ;定时器2工作在方式2MOV AL,10110101BOUT DX,ALMOV DX,22AHMOV AL,0AHOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START输出频率:f=307200HZ/(200H*18H*0AH)=2HZ修改后程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTSTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3 MOV AL,00110111BOUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2 MOV AL,01110101BOUT DX,ALMOV DX,229HMOV AL,30H ;初值30HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,22BH ;定时器2工作在方式2 MOV AL,10110101BOUT DX,ALMOV DX,22AHMOV AL,0AHOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START输出频率1HZ(二)OUT1----LED1:点亮0.5s,熄灭0.5sOUT2----LED2:点亮1s,熄灭3s程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTSTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3 MOV AL,00110111B ;OUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2 MOV AL,01110111BOUT DX,ALMOV DX,229HMOV AL,35H ;35H 58hOUT DX,ALMOV AL,15H ;15H 02hOUT DX,ALMOV DX,22BH ;定时器2工作在方式2 MOV AL,10110100BOUT DX,ALMOV DX,22AHMOV AL,04H ;04hOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START。
微机原理实验报告一、实验目的本次微机原理实验的主要目的是通过实际操作和观察,深入理解微机系统的工作原理和组成结构,掌握微机系统的编程和调试方法,提高我们对微机原理的实际应用能力。
二、实验设备1、计算机一台2、微机原理实验箱一套三、实验内容1、 8255 并行接口实验了解 8255 芯片的工作原理和编程方法。
通过编程实现 8255 芯片的 A 口、B 口、C 口的输入输出控制。
2、 8253 定时/计数器实验掌握 8253 芯片的工作方式和编程要点。
利用 8253 芯片实现定时和计数功能。
3、 8259 中断控制器实验学习 8259 芯片的中断管理机制。
编写中断服务程序,实现中断响应和处理。
四、实验原理1、 8255 并行接口8255 是一种可编程的并行接口芯片,具有 A、B、C 三个 8 位端口。
通过对控制字的编程,可以设置各个端口的工作方式为输入或输出。
2、 8253 定时/计数器8253 包含三个独立的 16 位计数器,每个计数器可以工作在不同的方式下,如方式 0 到方式 5。
通过对计数器的初值设置和控制字编程,可以实现定时和计数功能。
3、 8259 中断控制器8259 用于管理外部中断请求,可实现中断优先级的判断和中断嵌套。
通过对 8259 的初始化编程,可以设置中断触发方式、中断向量等。
五、实验步骤1、 8255 并行接口实验连接实验电路,将 8255 芯片与实验箱上的相关引脚连接好。
编写程序,设置 8255 的控制字,使 A 口为输出,B 口为输入。
向 A 口输出数据,从 B 口读取数据,并观察实验结果。
2、 8253 定时/计数器实验连接实验电路,将 8253 芯片与实验箱上的相关引脚连接好。
编写程序,设置 8253 计数器 0 的工作方式为方式 2,初值为 1000。
启动计数器,观察输出引脚的波形变化。
3、 8259 中断控制器实验连接实验电路,将 8259 芯片与实验箱上的相关引脚连接好。
实验题目8253定时/计数器实验一、实验目的与要求:1。
学会8253芯片和微机接口原理和方法。
2. 掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容:1、实验原理本实验原理图如图1所示,8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,如端口地址表1所示.8253A的片选地址为48H~ 4FH。
因此,本实验仪中的8253A四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字.采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ, 输出OUTO 要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地(”0"电平)或甩空(”1"电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。
2、实验线路连接(1) 8253A芯片的CLK0引出插孔连分频输出插孔1MHZ。
(2) 8253A的GATE0接+5V.3、实验步骤(1) 按图1连好实验线路(2)运行实验程序1.按“调试”按钮2。
选“窗口”“进入示波器窗口",然后最小化3。
按“运行按钮”4.将模拟示波器窗口打开,选择“串行口2",再按ctrl+F2 按钮即可看到波形图1显示“8253-1”用示波器测量8253A的OUT2输出插孔,应有频率为1KHZ的方波输出,幅值0~4V三、实验代码:CODE SEGMENTASSUME CS:CODETCONTRO EQU 004BHTCON2 EQU 004AHCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA1 EQU 0500HSTART: JMP TCONTTCONT:CALL FORMATCALL LEDDISPMOV DX,TCONTROMOV AL,0B6H ;要使用方式2,0B6H要改为0B4HOUT DX,ALMOV DX,TCON2MOV AL,00 ;输入频率(即时间常数)OUT DX,AL ;要修改频率,只需更改送给AL的值(注意先送低8位,MOV AL,10H ;后送高8位)OUT DX,ALHLTLEDDISP:MOV AL,90H ;显示数据方式命令字送8279控制字MOV DX,CONTPORT ;8279命令状态口OUT DX,ALMOV BYTE PTR DS:[0600H],00 ;置显示位数初值为0 LED1: CMP BYTE PTR DS:[0600H],07H ;判断显示位数满8为否?JA LED2 ;满8位转子程序返回MOV BL,DS:[0600H] ;未满8位从数据区取数MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORT ;8279数据口OUT DX,ALADD BYTE PTR DS:[0600H],01H ;显示位数加1JNZ LED1LED2: RET ;子程序返回FORMAT: MOV BX,0 ;显示8253———1 MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D4FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START四、思考题若改用方式2,并改变时间常数,如何编写程序。
一前言微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。
本课程设计任务和目的是:帮助学生巩固和加深理解所学的理论知识,训练学生的实验技能,使其树立工程观点和严谨的科学作风,初步具有运用理论知识分析问题、解决问题的能力。
培养学生运用所学的理论解决实际问题的能力,使学生初步掌握分析简单电路,调试简单汇编程序以及撰写实验报告的能力。
二实验设备介绍及功能模块的介绍2.1系统组成AEDK8688ET微机教学实验系统是上海航虹高科技实业公司在继承8688T和8688TI微机教学实验机优点的基础上,广泛地吸取用户的使用意见和建议,结合8086188仿真技术,推出的新一代微机教学实验系统。
本实验系统由AEDK8688ET实验机外配计算机和其他一些附件及选配件组成该实验系统,既可以在无PC机的状态下独立运行,又可以接PC机通过串口或ISA总线运行。
在扩展功能上,可以通过实验机的25芯插座外接机电实验平台,做机电一体化实验。
系统硬件组成:主机:AEDK8688ET实验板附件:PC机缓冲驱动卡(UPCXT)、60芯联接电缆、RS-232通讯电缆、维修测试板(U88ETF)及联接电缆、硬导线一束、电源电缆。
选配件:专用电源、机电实验平台。
系统软件组成:软盘片:2张(包含串口调试软件,ISA总线调试软件和自诊断软件)2.2性能特点AEDK688ET教学实验系统集微处理器8088和外配PC/80286/386/486/586及其兼容机于一体的高科技实验系统,具有实验、开发、自诊断等功能。
该实验系统自带键盘、八位七段数码管、微处理器8088和RS-232通讯接口,可以接PC机做实验,也可以无须任何辅助设备而独立做实验。
综合下来,它具有如下性能特点:⑴独立运行的单板机配置方式。
⑵ISA总线配置方式。
可编程定时器/计数器(8253)一、实验目的1)学会8253芯片和微机接口原理和方法。
2)掌握8253定时器/计数器的基本工作原理、工作方式和编程原理。
二、实验内容按图6虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
图 6按图7连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
图 7三、编程提示1、8253控制寄存器地址283H计数器0地址280H计数器1地址281HCLK0连接时钟 1MHZ2、参考流程图(见图8、9): 开 始读计数器值显示计数值有键按下吗?开 始送计数器初值N Y结 束结 束设计数器0为工作方式0向计数器0送初值1000先送低字节后送高字节向计数器1送初值1000先送低字节后送高字节设计数器0为工作方式3设计数器1为工作方式3图 8 图 9四、实验代码1、图6电路的实验代码CODE SEGMENT ;段定义开始(CODE 段)ASSUME CS:CODE ;规定CODE 为代码段START:MOV AL,10H ;设置控制字00010000(计数器0,方式0,写两个字节,二进制计数)MOV DX,283H ;把控制寄存器地址放在DX 寄存器中OUT DX,AL ;将AL 的值送入DX 端口MOV DX,280H ;把计数器0地址放在DX 寄存器中MOV AL,0FH ;将0FH 存入AL 寄存器OUT DX,AL ;将此时AL 的值送入DX 端口LP1: IN AL,DX ;从DX 端口读入8位,放在AL 寄存器中CALL DISP ;调用DISPPUSH DX ;将DX 内容保存到堆栈段MOV AH,06H ;将06H 存入AH ,为了下句调用21中断MOV DL,0FFH ;将0FFH 存入DLINT 21H ;调用21中断POP DX ;将DX 的内容推出栈段JZ LP1 ;如果DX 的内容是0,就跳转到LP1MOV AH,4CH ;将4CH 存入AH ,为了下句调用21中断INT 21H ;调用21中断DISP PROC NEAR ;定义一个名为DISP 的子程序PUSH DX ;把DX 的内容保存到堆栈段中AND AL,0FH ;将AL 寄存器的内容与0FH 进行“与”运算,再把结果存入AL 中MOV DL,AL ;将AL 的值送入DL 寄存器CMP DL,9 ;比较DL中的值与9的大小JLE NUM ;如果DL的值小于或等于9时,则跳转到NUMADD DL,7 ;将DL的值与7进行相加后,再送入DL中NUM: ADD DL,30H ;将DL的值与30H进行相加后,再送入DL中MOV AH,02H ;将02H存入AHINT 21H ;调用DOS21中断MOV DL,0DH ;结合“MOV AH,02H”就是说输出0DHINT 21H ;调用中断指令MOV DL,0AH ;结合“MOV AH,02H”就是说输出0AHINT 21H ;调用DOS21中断POP DX ;将DX的内容推出栈段RET ;子程序在功能完成后返回调用程序继续执行DISP ENDP ;子程序结束CODE ENDS ;代码段结束END START ;程序结束2、图7电路的实验代码CODE SEGMENT ;段定义开始(CODE段)ASSUME CS:CODE ;规定CODE为代码段START:MOV DX,283H ;把控制寄存器地址放在DX寄存器中MOV AL,36H ;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口MOV AX,1000H ;该语句是立即寻址方式,就是把1000H这个数赋给AX MOV DX,280H ;把计数器0地址放在DX寄存器中OUT DX,AL ;将AL的值送入DX端口MOV AL,AH ;将AX的高8位存入AL寄存器中OUT DX,AL ;将此时AL的值送入DX端口MOV DX,283H ;把端口地址放在DX寄存器中MOV AL,76H ;设置控制字01110110(计数器1,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口MOV AX,1000H ;把1000H赋给AXMOV DX,281H ;把端口地址放在DX寄存器中OUT DX,AL ;将AX的低8位送入DX端口MOV AL,AH ;将AX的高8位存入AL寄存器中OUT DX,AL ;将AL的值送入DX端口MOV AH,4CH ;将4CH存入AHINT 21H ;调用DOS21中断CODE ENDS ;代码段结束END START ;程序结束五、实验总结通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器/计数器的基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。
微机原理实验报告实验题目:可编程定时器/计数器8253一、实验目的1、学习8253可编程定时器/计数器定时方法2、学习8253多级串联实现大时间常数定时方法二、实验内容编一个1秒定时子程序,并提示有键盘读入要计时的时间,并把数值显示在屏幕上三、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干四、实现过程1、流程图2、程序源代码;*****************************************IOY0 EQU 280H;*****************************************MY8253_COUNT0 EQU IOY0+00HMY8253_COUNT1 EQU IOY0+01HMY8253_COUNT2 EQU IOY0+02HMY8253_MODE EQU IOY0+03H;*****************************************MY8255IOY0 EQU 2A0H;*****************************************MY8255_A EQU MY8255IOY0+00HMY8255_B EQU MY8255IOY0+01HMY8255_C EQU MY8255IOY0+02HMY8255_MODE EQU MY8255IOY0+03HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTCOUNTER2 DB 0MESG1 DB 'Please input your number:',0DH,0AH,'$' ;提示语一,请输入数字MESG2 DB 'It is counting:',0DH,0AH,'$';提示语二,正在计数MESG3 DB 'Wrong input,please input again:',0DH,0AH,'$';提示语三,输入错误,请重新输入DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESG1 ;输出提示语MOV AH,9INT 21HDEAL: MOV AH,1 ;读入一个数字INT 21HCMP AL,'0'JL EXITCMP AL,'9'JG EXITMOV BL,ALSUB BL,30H ;把输入的ASCII码转化成数字ADD COUNTER2,BL ;COUNTER2+=INPUTMOV CH,00HMOV CL,COUNTER2MOV DL,0DH ;回车换行MOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HONE_SECOND:MOV AL,CL ;输出当前计数值CXADD AL,30HMOV DL,ALMOV AH,02INT 21HMOV DL,0DH ;回车换行MOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HMOV DX,MY8253_MODE ;计数器0,方式3,十进制计数MOV AL,37HOUT DX,ALMOV DX,MY8253_COUNT0 ;装入初值MOV AL,00H ;1000分频OUT DX,ALMOV AL,10HOUT DX,ALMOV DX,MY8253_MODE ;计数器1,方式0,十进制计数MOV AL,71HOUT DX,ALMOV DX,MY8253_COUNT1 ;装入初值MOV AL,00H ;1000分频MOV AL,10HOUT DX,ALMOV DX,MY8255_MODEMOV AL,89HOUT DX,ALMOV DX,MY8255_CL1: IN AL,DX ;判断PC7口是否为高,即计数一秒是否已到TEST AL,80HJZ L1DEC CXJNZ ONE_SECONDQUIT:MOV AX,4C00HINT 21HEXIT: MOV DX,OFFSET MESG3 ;输入范围错误,提示重新输入MOV AH,9INT 21HJMP DEALCODE ENDSEND START3、实验结果图五、实验改进1、说明本实验中课本上只给出了0~9秒的计数,而实际运用的时候我们经常会需要用到任意值的定时,因此我们做了改进,计时可以输入任意数,若要输出到屏幕则能计数0~992、流程图注:改进的地方是分十位和个位进行存储和输出显示六、小结1、通过本次试验,我进一步了解了8253的定时和计数功能,以及如何通过串联定时器的方式实现大时间常数的定时。
微机原理实验报告实验名称 8253可编程定时/计数器实验一、实验目的1、掌握8253芯片结构及工作方式;2、熟悉8253可编程定时/计数器的编程。
二、实验设备1、Lab6000p实验教学系统;2、IBM-PC机三、系统中的8253模块Lab6000p实验箱中的8253模块连线如图所示:图1 8253模块的连线AD0~AD7、A0、A1、/WR、/RD已分别连至系统总线DB0~DB7、AB0、AB1、/IOW、/IOR;三个通道的OUT、GATE、CLK以及CS引出留给用户连接。
三、实验内容和实验步骤1、8253计数实验1)实验要求5个脉冲后LED0亮。
2)电路连接图2 电路连线3)程序代码见附录程序3.14)实验步骤1、在Lab6000p实验箱上完成连接电路;2、开启计算机电源,开启Lab6000p实验箱电源;3、启动W A VE6000软件;4、确认W A VE6000与Lab6000p连接;5、输入源代码;6、编译源代码(F9);7、连续运行程序(Ctrl+F9),按动单脉冲按键观察LED显示情况。
2、定时实验1)实验要求在LED上实现1秒钟亮/1秒钟灭。
2)电路连接将OUT0的输出接至OUT1的输入,其余连线和实验1中相同。
3)实验代码见程序附录3.24)实验步骤1、在Lab6000p实验箱上完成连接电路;2、开启计算机电源,开启Lab6000p实验箱电源;3、启动W A VE6000软件;4、确认W A VE6000与Lab6000p连接;5、输入源代码;6、编译源代码(F9);7、连续运行程序(Ctrl+F9),按动单脉冲按键观察LED显示情况。
四、实验结果1、8253计数实验在5个脉冲后,LED0灯亮。
2、定时实验在LED上实现1秒钟亮/1秒钟灭。
五、问题思考1、若CS连至地址译码/CS3,程序该如何修改。
答:只需将相应的端口地址修改即可,CS3对应的基地址应为0b00h。
2、为什么定时/计数器初值赋4,5个脉冲后LED才亮。
8253定时器实验报告8253定时器实验报告引言:8253定时器是一种广泛应用于计时和计数领域的集成电路。
本实验旨在通过实际操作,深入了解8253定时器的工作原理和应用。
一、实验目的本实验的主要目的是:1. 理解8253定时器的基本原理和工作方式;2. 掌握8253定时器的使用方法;3. 学会通过8253定时器实现各种定时和计数功能。
二、实验器材和原理本实验所需的主要器材有:1. 一台计算机;2. 一块开发板;3. 一根连接线。
8253定时器是一种具有三个独立计数通道的定时/计数芯片。
它可以通过编程控制来实现各种定时和计数功能。
8253定时器的输入时钟信号可以来自计算机的外部时钟源或者计算机内部时钟源。
三、实验步骤1. 将开发板连接到计算机上,并确保连接正确稳定。
2. 打开计算机,并进入开发板的编程环境。
3. 编写程序,初始化8253定时器,并设置计时/计数模式。
4. 定义所需的计时/计数时间间隔。
5. 启动8253定时器,并开始计时/计数。
6. 根据需要,定时器到达预定时间后,触发相应的中断或输出信号。
7. 结束实验,关闭计算机和开发板。
四、实验结果通过本次实验,我们成功地实现了以下功能:1. 利用8253定时器实现了精确的定时功能,可以精确到毫秒级别;2. 利用8253定时器实现了计数功能,可以用于计算某个事件的发生次数;3. 利用8253定时器的中断功能,可以及时响应某个事件的发生。
五、实验总结本次实验通过实际操作,使我们更深入地了解了8253定时器的工作原理和应用。
通过编程控制8253定时器,我们可以实现各种定时和计数功能,为实际应用提供了很大的便利。
然而,在实验过程中也遇到了一些困难和问题。
比如,在设置计时/计数模式时,需要仔细阅读8253定时器的手册,理解各个寄存器的作用和设置方法。
此外,还需要注意编程时的精度和误差,以确保实验结果的准确性和可靠性。
通过本次实验,我们不仅加深了对8253定时器的理论认识,还提高了自己的实际操作能力。
实验三 8253计数器/定时器的实验一、实验目的掌握8253定时器的编程原理及应用练习使用Proteus仿真软件二、实验内容利用Proteus仿真实现8253控制LED的闪烁,要求LED点亮0.5秒,熄灭0.5秒。
三、实验步骤1、画硬件连接图(1)启动Proteus,点击开始、程序、Proteus 7 professional、ISIS 7 professional(2)放置元件,点击,再点击,出现依次输入8086 74LS373 4LS138 NAND 8253A LED-RED PULLUP(3)按下图连接电路(4)放置标号,点击,依次放置总线标号,网络标号(如上图)(5)放置电源和终端,点击(6)修改元件属性,双击LED,出现如下对话框,将Model Type 改为Digital2M2、加载软件(1)启动emu8086 4.07,生成.com文件或. Exe文件(2)在emu8086 4.07,输入程序参考程序如下;PORT_0 equ 0e8hPORT_1 equ 0eahPORT_2 equ 0echPORT_CTR equ 0eehmov al, 00110101Bmov dx, PORT_CTRout dx, almov dx, PORT_0mov ax,00hout dx,almov dx, a8253mov ax,10hout dx,almov al, 01110110Bmov dx, PORT_CTRout dx, almov dx, PORT_1mov ax,0e8hout dx,almov ax,03hout dx,al(3)编译程序,点击,生成.com文件或. Exe文件(4)加载程序,双击仿真图中的8086CPU,出现如下对话框,点击加载软件,同时将各参数修改如下图3.仿真,点击,系统开始仿真。
四实验报告要求整理好运行正确的源程序,画出程序流程图,并列出源程序清单,写出实验的心得体会。
DATA SEGMENT_8NOTE EQU0FFFH;定义八分音符的延时时长(计数)_4NOTE=_8NOTE*2;四分音符_4DNOTE=_4NOTE+_8NOTE ;四分附点音符_2NOTE=_4NOTE*2;二分音符_2DNOTE=_2NOTE+_4NOTE ;二分附点音符_1NOTE=_2NOTE*2;全音符PAUS=04FFH;每个音之间的小间隔CLK EQU32000;时钟频率;B3~C5音所对应的计数初值,由时钟频率/音频率得到B3=CLK/247C4=CLK/262D4=CLK/294E4=CLK/330F4=CLK/349G4=CLK/392A4=CLK/440B4=CLK/494C5=CLK/523;低音XI到高音DO的数码管显示码XI_=63HDO=21HRE=0F4HMI=0F1HFA=39HSO=0D9HLA=0DDHXI=61HDO_P=23HEMPT=10H;休止符-;《送别》音高谱MUSIC DB G4,E4,G4,C5 ,A4,C5,G4 ,G4,C4,D4,E4,D4,C4,D4 ,1;1为无声,休止DB G4,E4,G4,C5 ,B4,A4,C5,G4 ,G4 ,D4,E4,F4,B3,C4 ,1COUNT EQU$-MUSIC;《送别》简谱(数字显示)MUSIC_DISP DB SO,MI,SO,DO_P ,LA,DO_P,SO ,SO,DO,RE,MI,RE,DO,RE ,EMPT DB SO,MI,SO,DO_P ,XI,LA,DO_P,SO ,SO,RE,MI,FA ,XI_,DO ,EMPT;《送别》音长谱MUSIC_T DW _4NOTE,_8NOTE,_8NOTE,_2NOTE,_4NOTE,_4NOTE,_2NOTE DW _4NOTE,_8NOTE,_8NOTE,_4NOTE,_8NOTE,_8NOTE,_2DNOTE,_4NOTEDW _4NOTE,_8NOTE,_8NOTE,_4DNOTE,_8NOTE,_4NOTE,_4NOTE,_2NOTEDW _4NOTE,_8NOTE,_8NOTE,_4DNOTE,_8NOTE,_1NOTE,_2NOTEDATA ENDSSTACK SEGMENT STACK 'STACK'DB200DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKDELAY PROC FAR;延时子程序,时长由DS:[BP]的数据(音长谱)决定PUSHFPUSH CXMOV CX,DS:[BP]LOOP1:PUSH CXMOV CX,_4NOTELOOP2:LOOP LOOP2POP CXLOOP LOOP1POP CXPOPFRETFDELAY ENDPDELAY0 PROC FAR;小间断延时子程序PUSHFPUSH CXMOV DX,0EE23H;重置8253,即停止发音MOV AL,00010110BOUT DX,ALMOV CX,PAUSLOOP3:PUSH CXMOV CX,PAUSLOOP4:LOOP LOOP4POP CXLOOP LOOP3POP CXPOPFRETFDELAY0 ENDPPLAY PROC FAR;播放单音子程序MOV DX,0EE20HMOV AL,DS:[SI];输出DS:[SI](音高谱)作为计数初值OUT DX,ALMOV DX,0EE00HMOV AL,DS:[SI+COUNT];输出对应的数字码,在数码管1位上显示OUT DX,ALRETFPLAY ENDPSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXXOR AX,AXMOV DX,0EE23H;初始化8253MOV AL,00010110B;方式3,二进制计数,分频比小于255OUT DX,ALMOV DX,0EE03H;初始化8255,A,B口均为方式0输出MOV AL,80HOUT DX,ALMOV DX,0EE01H;数码管位选,固定为只有最右边的数码管显示MOV AL,01HOUT DX,ALMOV DX,0EE00H;显示清空MOV AL,00HOUT DX,ALMUS:;Music Start!MOV SI,OFFSET MUSIC ;SI指向音高数据MOV BP,OFFSET MUSIC_T ;BP指向音长数据MOV CX,COUNTRUN:CALL PLAY ;输出计数值播放单音,显示对应的数字CALL DELAY ;延时相应的时长CALL DELAY0 ;小间隔INC SI;SI、BP指向下一个音符ADD BP,2MOV AH,0BH;检测键盘输入INT21HOR AL,AL;按任意键退出JNZ EXITLOOP RUN ;否则继续循环播放JMP MUSEXIT:MOV DX,0EE23H;重置8253MOV AL,00010110BOUT DX,ALMOV AH,4CH;退出INT21HCODE ENDSEND START。
实验三可编程定时器/计数器(8253)
一、实验目的
掌握8253的基本工作原理和编程方法。
二、实验内容
本实验通过和计算机相连的实验箱来完成,实验箱和计算机通过PCl扩展线相连。
实
验软件和编程请参照如下步骤:
首先,将实验软件(PORTR, MASM, LINK, TD)拷入计算机D盘的某文件夹(文件夹名不能是中文)下;
然后,运行PORTR.EXE程序,自动获取实验箱的接口地址;
接着,重启计算机,选择DOS启动,进入DOS;
在DoS环境下,用EDIT编辑程序,用MASM,LINK,TD汇编、连接、调试程序。
基本实验任务和具体操作如下所示:
1.按图2-6虚线连接电路,将计数器。
设置为方式0,计数器初值为N (NWOFH),用手动
逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用示波器观测OUTO电平变化
(当输入N个脉冲后OUTO变高电平)。
2.按图2-7连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为IOO0, 用
示波器观测OUTl输出电平的变化(频率1HZ)。
286H*-
US
6253
CS
JLTb-JL
280H~
图2-6
OUTl
CATEl
CLKKl
OUT0
GATE0
CLK0<
IMHZ
图2-7
三、编程提示
1、8253控制寄存器地址283H
计数器O地址280H
计数器1地址281H
CLKO连接时钟IMHZ
2、参考流程图(见图2-8、图2-9)
图2-8 图2-9
3、参考程序1:(程序名:E8253_1.ASM)
ioport equ 0d400h-0280h ;0d400h为实验箱的接I I地址,应改为运行PoRTR程序自动获取的那个接I 1地址io8253_ctrl equ ioport+283h
io8253_cnt0 equ ioport+280h
code segment
assume cs:code
start :mov al, IOh ;设置8253通道0为工作方式0,二进制计数
mov dx, io8253_ctrl out dx,
al
mov dx,io8253_cnt0 raov
;送计数初值为OFH
al, Ofh
out dx, al
111: in al, dx :读计数初值
:调显示子程序
call disp push dx mov
ah,06h mov dl, Offh int 21h
pop dx jz 111
mov ah, 4ch :退出
int 21h
disp proc near ;显示子程序
push dx
and al, Ofh mov dl, al cmp dl, 9 jle num add dl,7 num: add dl l 30h mov ah,02h int 21h mov
dl,Odh int 21h mov dl, Oah int 21h pop dx ;首先取低四位
;判断是否<=9
;若是则为‘0'_9', ASCn码加30H ;否则为‘A'」F', ASCIl码加37H
;显示
;加回车符
;加换行符
ret ;子程序返回
disp endp
code ends end start
4、参考程序2:(程序名:E8253_2. ∕∖SM)
ioport equ 0d400h-0280h ;0d400h为实验箱的接口地址,应改为运行PORTR程序自动获取的那个接口地址io8253 cntθ equ ioport+280h
io8253 cntl equ ioport+28Ih io8253ctrl equ ioport+283h code segment
assume cs:code Startzmov dx,io8253ctrl mov al, 36h out dx, al mov ax, 1000
;向8253写控制字
:使0通道为工作方式3 ;写入循环计数初值IOOO
mov dx, io8253 cntθ out dx,
al
mov al, ah out dx, al
;先写入低字节;后写入高字节
mov dx,io8253ctrl
mov al, 76h out dx, al mov ax, 1000 ;设8253通道1工作方式3 ;写入循环计数初值IOoo
mov dx,io8253 cntl out dx, al mov al, ah out dx, al mov ah, 4ch
int 21h ;先写低字节
;后写高字节;程序退出
code ends
end start
附加任务:
1.改变8253的端口地址(不再是280H~283H,换其他地址),请调整8253芯片的片选/CS 的
硬件连线和相关程序;
2.基本任务2改为输出IOHZ的负脉冲序列;
3. 8253计数器0或计数器1工作在方式1和方式5,完成相应的硬件连线和编程,用示波器观
测其输出波形。