微机原理实验-定时器实验
微机原理综合实验报告

微机原理综合实验报告目录一.8255并行口实验二.8259中断实验(一)三.8253定时/计数器实验四.A/D转换实验五.步进电机实验六.综合实验:十字路口交通灯实验七.实验体会四.8255并行口实验1.实验目的:(1)学习利用并行接口芯片8255构成并行接口电路的基本方法(2)熟悉掌握并行接口芯片8255的基本性能及在时间应用中的硬件连接、初始化编程方法2.实验内容:编写程序,使8255的PB口为输出口,PA口为输入口,从PA口将K0~K7作为一个字节读入,在从PB口输出这一反码字节。
3.实验程序:CODE SEGMENTASSUME CS:CODESTART:MOV DX,21BH ;8255初始化命令字MOV AL,90HOUT DX,ALBG: MOV DX,218H ;从PA口读入数据IN AL,DXXOR AL,FFH ;求反MOV DX,219HOUT DX,AL ;从PB口输出JMP BGCODE ENDSEND START4.实验框图5. 实验电路图6.实验方法说明通过8255控制字设定PA口为输入口,PB口为数据输出口,读取PA口的数值并通过求反指令将数据取反后,经由PB口输出。
8259中断实验(一)1.实验目的:(1)了解PC机的中断结构及8259中断控制器的初始化(2)熟悉8259中断控制器的工作原理和硬件连线方法(3)了解8259的应用和硬件编程方法了解8259中断屏蔽2.实验内容:编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0~L7指示灯全亮,中断服务程序从PB口输出0FFH,L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。
3.实验程序INT0 EQU 220hINT1 EQU 221hP8255B EQU 219HP8255K EQU 21BHSTACK SEGMENTSTA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:CLIMOV AX,TOPMOV SP,AXPUSH DSMOV AX,0000H ;定义IRQ0中断MOV DS,AXMOV AX,OFFSET IRQ0ADD AX,0000HMOV SI,20HMOV [SI],AXMOV AX,CSMOV SI,22HMOV [SI],AXPOP DSMOV AL,13H ;对8259进行初始化ICW1MOV DX,INT0OUT DX,ALMOV AL,8 ;对8259进行初始化ICW2 MOV DX,INT1OUT DX,ALMOV CX,0FFFFHLOOP $MOV AL,9 ;对8259进行初始化ICW4 MOV DX,INT1OUT DX,ALMOV CX,0FFFFHLOOP $MOV DX,INT1MOV AL,0FEH ;对8259进行初始化OCW1OUT DX,ALMOV CX,0FFFFHLOOP $MOV DX,INT0 ;对8259进行初始化OCW2,普通EOI返回MOV AL,20HOUT DX,ALMOV CX,0FFFFHLOOP $STIMOV DX,P8255K ;对8255进行初始化MOV AL,90HOUT DX,ALDSP: MOV AL,0FFHMOV DX,P8255BOUT DX,ALJMP DSPIRQ0: STIMOV CX,0FFFFHLOOP $MOV AL,0FHMOV DX,P8255BOUT DX,ALMOV DX,INT0MOV AL,20HOUT DX,ALMOV CX,0FFFFHLOOP $MOV CX,0FFFFHLOOP $IRETCODE ENDSEND START4.实验框图5. 实验电路图6. 实验方法说明主程序使8255输出高电平,实现L0~L7指示灯全亮。
单片机定时器实验报告

一、实验目的1. 理解单片机定时器的工作原理和功能。
2. 掌握单片机定时器的编程方法,包括初始化、设置定时时间、启动定时器等。
3. 学会使用定时器实现定时功能,并通过实验验证其效果。
二、实验器材1. 单片机实验板2. 连接线3. 51单片机4. 计时器5. 示波器6. 电脑7. Keil软件三、实验原理定时器是单片机的一种重要外设,用于实现定时功能。
51单片机内部有两个定时器,分别为定时器0和定时器1。
定时器的工作原理是通过定时器计数器对机器周期进行计数,当计数器达到设定值时,定时器溢出,并产生中断请求。
定时器0和定时器1都具有四种工作模式,分别为:1. 模式0:13位定时器/计数器2. 模式1:16位定时器/计数器3. 模式2:8位自动重装模式4. 模式3:两个8位计数器本实验采用定时器0工作在模式1,实现50ms的定时功能。
四、实验步骤1. 将单片机实验板连接到电脑,并启动Keil软件。
2. 创建一个新的项目,并添加51单片机头文件(reg51.h)。
3. 编写定时器初始化函数,设置定时器0工作在模式1,并设置定时时间为50ms。
4. 编写定时器中断服务函数,用于处理定时器溢出事件。
5. 编写主函数,设置定时器中断,并启动定时器。
6. 编译并下载程序到单片机实验板。
7. 使用示波器观察定时器0的溢出信号。
五、实验代码```c#include <reg51.h>#define TIMER0_MODE1 0x01// 定时器0初始化函数void Timer0_Init() {TMOD &= 0xF0; // 清除定时器0模式位TMOD |= TIMER0_MODE1; // 设置定时器0工作在模式1TH0 = 0xFC; // 设置定时器0高8位初值TL0 = 0x18; // 设置定时器0低8位初值ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}// 定时器0中断服务函数void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新加载定时器0高8位初值TL0 = 0x18; // 重新加载定时器0低8位初值// ... (其他处理)}void main() {Timer0_Init(); // 初始化定时器0while(1) {// ... (其他处理)}}```六、实验结果与分析1. 编译并下载程序到单片机实验板,使用示波器观察定时器0的溢出信号,可以看到定时器0每隔50ms产生一个溢出信号。
微机实验报告——定时器计数器

实验三8253定时器/计数器实验一、实验目的1.学会8253芯片与微机接口的原理和方法。
2.掌握8253定时器/计数器的工作原理和编程方法。
二、实验内容编写程序,将8253的计数器0设置为方式2(频率发生器),计数器1设置为方式3(方波频率发生器),计数器0的输出作为计数器1的输入,计数器1的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。
1.编程时用程序框图中的二个计数初值,计算OUT1的输出频率,用表观察LED,进行核对。
2.修改程序中的二个计数初值,使OUT1的输出频率为1Hz,用手表观察LED,进行核对。
3.上面计数方式选用的是 16 进制,现若改用 BCD 码,试修改程序中的二个计数初值,使LED的闪亮频率仍为1Hz。
三、实验区域电路连接图CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1;GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz;(单脉冲与时钟单元)四、程序框图8253方式控制字五、编程程序code segmentassumecs:codeorg 1000hstart:mov dx,43h /控制字地址/ mov al,00110100boutdx,almov dx,40h /计时器0地址/mov al,0F4houtdx,almov al,01h /计数器0写入初值01F4H/outdx,almov dx,43hmov al,01110110boutdx,almov dx,41h /计时器1地址/mov al,0E8houtdx,almov al,3h /计数器1写入初值03E8H/out dx,al /分两次赋值,先低八位0E8H,后高八位03H/jmp $ /8253自行控制led灯/code endsend start六、实验步骤1. 按连线图连接好,检查无误后打开实验箱电源。
定时器的设计实验报告

定时器的设计实验报告1. 引言定时器是一种常见的计时装置,广泛应用于各个领域,如电子设备、工业自动化、交通运输等。
本实验通过设计一个基于脉冲计数的定时器电路,旨在研究其工作原理,探索其在实际应用中的可行性和性能表现。
2. 原理及设计2.1 工作原理脉冲计数定时器是一种通过计数器累加输入脉冲信号的数量来实现计时的装置。
其基本原理是利用脉冲信号的频率和计数器的计数速度之间的关系,通过计数器的累加值计算时间间隔。
2.2 设计步骤1. 确定定时器的时间基准。
时间基准可以选择外部脉冲输入或者由稳定的晶振产生。
2. 设计计数器的位数。
根据计时的范围确定计数器的位数,以保证计数范围的覆盖。
3. 计算计数器的计数速度。
根据计时的最大时间间隔和计数器的位数,计算所需的输入脉冲频率。
4. 根据计数器的位数和计数速度,选择合适的计数器芯片。
5. 配置计数器芯片的工作模式和输入脉冲的触发方式。
6. 连接电路并验证设计是否符合要求。
2.3 接线图_______________input > Counter > output________ Display_________3. 实验结果及分析3.1 实验设置- 输入脉冲频率:1kHz- 计数器位数:4位- 计数器芯片:74HC163- 时间基准:晶振(频率为10MHz)3.2 实验结果在实验过程中,我们通过将输入脉冲接到74HC163计数器芯片的CP 输入端,将74HC163的输出接到数码显示器,观察并记录实时的计数结果。
在实验进行中,我们发现计数器芯片的最大计数范围是15(4位二进制),对应的时间间隔为15ms(1kHz输入脉冲时)。
3.3 实验分析通过实验结果可以看出,该定时器电路能够准确计时,实际测量的时间结果与理论计算非常接近。
由于74HC163计数器芯片的高稳定性和高精度,使得定时器的性能表现较好。
然而,该设计存在一个缺点,即计数器位数的限制。
由于计数器位数的限制,导致定时的最大时间间隔受到了限制。
微机原理实验 可编程定时器计数器82548253实验

图2 8253/8254定时器/计数器实验连线图
六、实验源程序清单
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START:MOV AL, 00010110B;控制字00-计数器0,01-低8位,011-方式3,0-二进制
OUT 03H,AL;将控制字写入控制寄存器
实验报告(45)
总分
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
图1可编程定时器/计数器8253/8254原理图
(2).计数器都有6种工作方式:
方式0—计数过程结束时中断;
方式1—可编程的单拍脉冲;
方式2—频率发生器;
方式3—方波发生器;
方式4—软件触发;
方式5—硬件触发。
(3)6种工作方式主要有5点不同:
一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GATE对计数操作的影响不同;三是OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同。
九、实验总结
硬件实验相对来说趣味性大了很多,同时也使得程序没那么复杂不过存在的问题突出表现于受到硬件实验条件的制约,硬件上的小问题就有可能导致不能出显预想的结果这也就使得在硬件连接上要很小心。
十、思考题
1.若8254模块选通线CS连到MCU主模块的地址A12,则应如何修改程序?
答:改变了存储芯片的地址范围所以将程序对应的地址范围改过即可。接A12对应地址范围是6800~6FFFH;接A14对应地址范围是3800~3FFFH。
微机原理实验

微机原理实验实验⼀ MASM For Windows 的使⽤及顺序程序设计⼀、实验⽬的1、熟悉在PC机上建⽴、汇编、连接、调试和运⾏8086汇编语⾔程序的过程。
2、熟悉masm for windows调试环境及DEBUG常⽤命令的使⽤⼆、实验内容1.DEBUG常⽤命令(U、R、D、E、F、T、G、Q)的操作使⽤2.编程实现两个16位⽆符号数的加、减、乘、除运算。
有两个两字节⽆符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显⽰。
相加若有进位不存⼊存储单元。
三、实验设备PC机⼀台四、实验准备1) 分析题⽬,将程序中的原始数据和最终结果的存取⽅法确定好。
2) 画出流程图。
3) 写出源程序。
4) 对程序中的结果进⾏分析,并准备好上机调试与⽤汇编程序及汇编调试的过程。
五、实验步骤1) 输⼊源程序。
2) 汇编、连接程序,⽣成 .EXE⽂件,执⾏⽂件,检查结果。
六、学⽣实验报告的要求1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。
2) 说明程序中各部分所⽤的算法。
3) 说明主要符号和所⽤到寄存器的功能。
4) 上机调试过程中遇到的问题是如何解决的。
5) 对调试源程序的结果进⾏分析。
4) 说明标志位CF、SF和OF的意义。
DEBUG的常⽤命令1、R 显⽰或修改寄存器的内容命令格式:-R2、 D 显⽰存储单元的内容命令格式:-D[地址1, 地址2]3、E修改存储单元的内容命令格式:-E[地址1, 地址2]命令格式:-U[地址1, 地址2]5、T单步执⾏命令格式:-T6、G连续执⾏命令格式:-G[=起始地址, 结束地址]A⼩汇编命令格式:-A7、Q退出DEBUG,返回DOS实验⼀源程序 EXAM1-2 .ASMDATA SEGMENTA DB 34H,18H,2 DUP(0),’$’B DB 56H,83HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AXMOV AL,AMOV BL,BADD AL,BLMOV AH,A+1MOV BH, B+1ADC AH, BHMOV A, ALMOV A+1, AHMOV CX, 0004HMOV DI, OFFSET AMOV DX, [ DI]ADD DI,03NEXT: MOV AX, DXAND AX,000FHCMP AL,0AHJB QQQADD AL, 07HMOV [DI], ALDEC DIPUSH CXMOV CL, 04SHR DX, CLPOP CXLOOP NEXTMOV DX, OFFSET AMOV AH, 09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START执⾏程序EXAM1-2·EXE,屏幕上显⽰结果:9B8A实验⼆分⽀、循环程序设计⼀、实验⽬的1) 掌握分⽀、循环程序的结构。
微机原理实验---定时计数器应用实验

深圳大学实验报告课程名称:微机计算机设计实验项目名称:8254 定时/计数器应用实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:**********班级:<1>班实验时间:2011. 05. 26实验报告提交时间:2011. 06. 09教务处制一、实验目的1. 掌握8254 的工作方式及应用编程。
2. 掌握8254 典型应用电路的接法。
二、实验要求1. 计数应用实验。
编写程序,应用8254 的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’5 次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。
三、实验设备PC 机一台,TD-PITE 实验装置或TD-PITC 实验装置一套。
四、实验原理1、8254 是Intel 公司生产的可编程间隔定时器。
是8253 的改进型,比8253 具有更优良的性能。
8254 具有以下基本功能:(1)有3 个独立的16 位计数器。
(2)每个计数器可按二进制或十进制(BCD)计数。
(3)每个计数器可编程工作于6 种不同工作方式。
(4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。
(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为:n=fCLKi÷fOUTi、其中fCLKi 是输入时钟脉冲的频率,fOUTi 是输出波形的频率。
计数器组成。
8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
(3)方式2:频率发生器方式。
(4)方式3:方波发生器。
(5)方式4:软件触发选通方式。
(6)方式5:硬件触发选通方式。
8254 的内部结构框图和引脚图2、8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。
微机原理8254定时器完整实验报告

实验4 8254定时器实验
实验时间2019年11月20日
实验类型■验证性□设计性□综合性
1.实验目的
1.掌握8254的应用编程及工作方式
2.掌握8254典型应用电路接法
2. 实验内容及过程(主要内容、操作步骤)
计数应用实验,编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘kk+’七次后,小灯亮
3. 测试数据及实验结果
4. 实验分析及总结(主要考察内容)
1.本次实验选择的是计数器1和工作方式1,所以系统控制字就是52H(01010010),读写格式是从低八位开始,因为高八位没有被用到。
因为按键次数是从0开始计数的,所以按键7次是06H。
2.代码中AA1是比较7次按键和实际按键的次数,当按键次数等于7时,就执行AA2,使灯发亮;如果按键次数不等于7,就继续执行AA1,直到按键次数等于7
时。
3.因为GATE1没有独立的供电系统,所以使用GATE1时,要借用GATE0的独立供电系统
教师评阅。
微机原理实验报告

微机原理实验报告西安电⼦科技⼤学实验报告班级:1303018学号:130********姓名:李胜东地点: EII-312批次:第批时间: 2015.11-2015.12实验⼀汇编语⾔编程实现1.实验⽬的(1)掌握汇编语⾔的编程⽅法(2)掌握DOS功能调⽤的使⽤⽅法(3)掌握汇编语⾔程序的调试运⾏过程2.实验内容(1)将指定数据区的字符串数据以ASCII码形式显⽰在屏幕上,并通过DOS功能调⽤完成必要提⽰信息的显⽰。
(2)在屏幕上显⽰⾃⼰的学号姓名信息。
(3)循环从键盘读⼊字符并回显在屏幕上,然后显⽰出对应字符的ASCII码,直到输⼊”Q”或“q”时结束。
实验中使⽤的DOS功能调⽤: INT 21H3.实验步骤及原理(1)运⾏QTHPCI软件,根据实验内容编写程序,参考程序流程如下图所⽰。
(2)使⽤“项⽬”菜单中的“编译”或“编译连接”命令对实验程序进⾏编译、连接。
(3)“调试”菜单中的“进⾏调试”命令进⼊Debug调试,观察调试过程中数据传输指令执⾏后各寄存器及数据区的内容。
按F9连续运⾏。
(4)更改数据区的数据,考察程序的正确性。
4.实验源代码DATA SEGMENTNUMBER DB 'SNO:130********',0AH,'NAME:lishengdong',0DH,0AH,'$';0DH (回车))0AH(换⾏)24H($)结束MSG1 DB 0AH,0DH,'If you want to leave,please input: q or Q ',0AH,0DH,'$'MSG2 DB 0AH,0DH,0AH,0DH,'Input: $'RESULT DB 0AH,0DH,'ASCII is: $'SD DB ' 'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV SI,OFFSET DATAMOV CX,5A:MOV AL,DS:[SI]AND AL,0F0HCMP AL,0A0HJB A1ADD AL,07HA1:SHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV AH,02HMOV DL,ALINT 21HMOV AL,DS:[SI]AND AL,0FHCMP AL,0AHJB A2ADD AL,07HA2:OR AL,30HMOV AH,02HMOV DL,ALINT 21HINC SILOOP AMOV AX,DATAMOV DS,AXMOV DX,OFFSET NUMBERMOV AH,09HINT 21HMOV DX,OFFSET MSG1 MOV AH,09H INT 21HC1: MOV DX,OFFSET MSG2 MOV AH,09H INT 21HMOV AH,01HINT 21HCMP AL,'Q'JZ EXITCMP AL,'q'JZ EXITMOV SD,ALMOV DX,OFFSET RESULTMOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:[SI]AND AL,0F0HMOV CL,4SHR AL,CLCMP AL,0AHJB C2ADD AL,07HC2: ADD AL,30HMOV DL,ALMOV AH,02HINT 21HMOV AL,DS:[SI]AND AL,0FHCMP AL,0AHJB C3ADD AL,07HC3: ADD AL,30HMOV DL,ALMOV AH,02HINT 21Hloop C1EXIT: MOV AX,4C00HINT 21HCODE ENDSEND START实验⼆数码转换实验1.实验⽬的(1)掌握不同进制数及编码相互转换的程序设计⽅法。
实验三 定时器实验 实验报告

课程名称:单片机实验题目:实验三定时实验学生姓名:专业:电子信息科学与技术班级:学号:指导教师:张涛实验三 定时器实验一、实验目的1、掌握单片机系统定时器断的原理及使用方法。
二、实验原理 (一)、单片机定时器/计数器的结构 1.定时器/计数器组成框图8051单片机内部有两个16位的可编程定时器/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。
此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。
_____INT1(P3.3)_____INT0(P3.2)T1(P3.5)T0(P3.4)图 8051定时器/计数器逻辑结构图由图可知,8051定时器/计数器由定时器 T0、定时器T1、定时器方式寄存器TMOD 和定时器控制寄存器TCON 组成。
2.定时/计数器的方式寄存器和控制寄存器定时/计数器的初始化通过定时/计数器的方式寄存器TMOD 和控制寄存器TCON 完成。
1)定时/计数器方式寄存器TMODTMOD 为T1、T2的工作方式寄存器,其格式如下:TMOD D7 D6 D5 D4 D3 D2 D1 D0(89H) TMOD 的低 (1(2)T /C :功能选择位。
0/C =时,设置为定时器工作方式;1/C =时,设置为计数器工作方式。
(3)GATE :门控位。
当GA TE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须0INT (P3.2)或1INT (P3.3)为高电平方可启动定时器,即允许外中断0INT 、1INT 启动定时器。
TMOD 不能位寻址,只能用字节指令设置定时器工作方式,高4位定义T1,低4位定义T0。
复位时,TMOD 所有位均置0。
2)定时器/计数器控制寄存器TCONTCON 的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。
定时器控制字TCON 的格式如下:TCON (88H ) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H(1) TCON.7 TF1:定时器1溢出标志位。
微机原理 单片机 实验4 定时计数器应用

MOV TH0,# H MOV TL0,# H SETB ET0 SETB EA SETB ET1 MOV TH1,# H MOV TL1,# H SETB TR0 SETB TR1 SJMP $ DVT0 :MOV TH0,# H MOV TL0,# H CPL P1.7 RETI DVT1: MOV TH1,# H MOV TL1,# H CPL P1.6 RETI END
mov mov mov setb ajmp int_timer0: mov mov djnz mov djnz mov cpl l1: reti end
ie,#82h 30h,#10 31h,#6 tr0 $
;设置中断允许寄存器
;30H和31H是两个软件计数器。 ;启动定时 ;原地踏步 ;定时器0中断服务程序。 th0,#high (65536-50000) tl0,#low(65536-50000) ;重设50MS定时。 30h,l1 30h,#10 31h,l1 31h,#6 ;软件计数 p1.1 ;10*6*50MS=3000MS时间到,P1.1取反 ;中断返回
实验四 定时计数器应用
一、实验目的:
1、单片机系统中,可以用软件或硬件定时,当定时时 间较长,定时准确率要求较高时,应采用硬件定时。 MCS—51系列单片机中有2个16位的可编程定时/计 数器T0和T1,通过本实验要求掌握T0、T1的初始化 编程和应用。 2、熟悉XLISP系列 单片机综合仿真试验仪的组成和 使用方法。学会应用XLISP仿真试验和keil-uvision2集 成调试软件进行仿真实验。掌握仿真实验的步骤并能 得到正确的实验结果。
Байду номын сангаас
4、思考题: P1口接8个LED灯循环点亮(间隔1s),P3.2接键盘, 按下后实现中断,使全部LED灯闪烁(间隔0.5s)5次 后继续循环点亮。 间隔时间(1s和0.5s)用定时计数器定时实现。
微机原理硬件实验三:8253计数器_定时器的应用

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。
微机原理机接口技术-定时器实验实验报告

实验报告课程名称微机原理及接口技术实验名称实验报告(四):定时器实验实验目标:利用定时器中断方式实现以下功能:单片机开机后8盏小灯处于熄灭状态,5秒后,8盏小灯全部点亮。
请图文结合详细描述实验流程与实验结果(绘制程序流程图),给出带注释的源代码以及实验结论等。
1.实验流程(1)根据实验目标:利用定时器中断方式实现以下功能实现单片机开机后8盏小灯处于熄灭状态,5秒后,8盏小灯全部点亮的要求,画出程序流程图如下:(2)进入Keil4软件建立工程、创建后缀名为.asm的文件并添加到Source Group 1中。
根据实验流程图用汇编语言写出对应的代码并进行编译结果如下:(3)点击Project之后选择Options for Target’Target1’选项,进入界面选择生成.hex文件,过程如下:(4)将.hex文件烧录到单片机中,实现定时器中断实验。
2.实验结果单片机程序烧录成功后,可以观察到单片机开机后8盏小灯处于熄灭状态,5秒后,8盏小灯全部点亮,即利用定时器中断方式可以实现控制开始时8盏小灯处于熄灭状态,5秒后,8盏小灯全部点亮的功能。
3.带注释的源代码4. 实验结论、建议和意见实验结论:利用Keil的仿真实验环境,可以通过利用定时器中断方式可以实现控制开始时8盏小灯处于熄灭状态,5秒后,8盏小灯全部点亮的功能。
//建议和意见:·注意程序文件后缀名为“.asm”·注意将文件添加到“Source Group 1”中,将程序文件与工程文件联系。
·注意软硬件调试环境的创建以及单片机型号的选择。
·由于计时器本身计时有上限值,注意在程序中设置循环以实现5s计时。
PLC实验三:定时器实验报告

实验三:定时器实验报告15电气2班陈泽南10 李梓灏 22吴建全30 肖子浩32 钟智威38 一.实验目的:1.熟悉三菱plc的定时器T的用途。
2.掌握定时器T的运用:振荡电路,占空比可调振荡电路和定时启动二.实验设备及仪器:1.PC机 1台2.三菱plc型号FX-1N 1台三.实验内容1.振荡电路1)要求:当X0开关闭合时候,定时器T0每隔1s发出一个脉冲,Y0变化一次电平。
2)外部接线图和时序图振荡电路的接线图时序图3)梯形图实验现象:当X0开关闭合时候,经过1s后Y0指示灯亮,亮灭间隔1s闪烁。
梯形图工作原理分析:当X0开关闭合,定时器T0得电开始计时,1s后T0常闭触点断开,常开触点闭合,此时Y0得电,Y0常开常闭触点动作,T0失电复位开始计时,第二条支路形成自锁:1s后T0常闭触点断开,常开触点闭合,Y0失电复位,T0失电复位开始计时。
如此循环产生每隔1s的一个脉冲,Y0变化一次电平。
2.占空比可调振荡电路1)要求:当X0开关闭合时候,定时器T0发出为占空比60%的方波,Y0随着T0的变化。
改变占空比再次观察。
(占空比为40%)2)外部接线图和时序图可调占空比接线图时序图3)梯形图实验现象:把T0设为K20,T1设为K30,产生的方波信号占空比60%,当X0闭合,经过2s 指示灯开始Y0亮3s灭2s闪烁;把T0设为K30,T1设为K20,产生的方波信号占空比40%,当X0闭合,经过3s指示灯开始Y0亮2s灭3s闪烁。
梯形图工作原理分析:以占空比为60%为例,当X0闭合,T0得电开始计时,2s后T0常开触点动作,Y0得电高电平,T1开始计时,3s后T1常闭触点动作T0复位,T1和Y0复位,T0又开始计时2s,如此循环产生占空比为60%的方波信号。
3.定时启动(1)为了保证运行安全,在机械启动之前需要用电铃和蜂鸣器输出报警信号,预示机器即将启动,警告人们迅速退出危险地段。
1) 要求:当启动X0处的开关SB1,定时器T0开始计时,Y0得电且延时3s断开,后电机得电并自锁。
东南大学微机报告8253定时器

东南大学《微机实验及课程设计》实验报告实验五8253 计数器/定时器姓名:学号:专业:实验室:实验时间:2014年5月29日报告时间:2014年6月5日评定成绩:审阅教师:一. 实验目的与内容实验目的:1.掌握计数器/定时器8253的基本工作原理和编程使用方法;2.了解掌握8253的计数器/定时器典型应用方法。
实验内容:(1)8253 计数器参考图3.6-1 虚线连接电路,将计数器0 设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0 电平变化(当输入N+1 个脉冲后OUT0 变高电平)。
(2)8253 定时器按图3.6-2 连接电路,将计数器0、计数器1 分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1 输出电平的变化(频率1Hz)。
(3)在实验2的基础上,利用输出的1Hz的方波接入计数器2,设置计数器2初值为4,根据键盘输入的数字(0~5)来设置计数器2的工作方式,并将GATE2信号进行相应的连接(接+5V或接单脉冲)用逻辑笔观察OUT2电平的变化。
要求可以响应键盘的连续变化,直到按ESC键退出。
(4)在实验2的基础上,将8253计数器1的工作方式改为方式0,输出OUT1接入8255的PA0,PC0连接任意一个发光二级管,8255A的CS接288H。
编程使得发光二极管亮5秒,灭2秒,一直循环直到按任意键退出。
(提示:PA0查询OUT1输出电平,PC0输出开关量控制二极管发光)二. 基本实验原理电路图如下:程序框图如下:三. 方案实现与测试实验1:ioport equ 0ec00h-280h io8253a equ ioport+283h io8253 equ ioport+280hstacks segment stackdb 100 dup(?)stacks endscode segmentassume cs:code,ss:stacks main proc farstart:mov ax,stacksmov ss,axmov al,10hmov dx,io8253aout dx,almov dx,io8253mov al,0fhout dx,alzzz: in al,dxcall dispmov ah,06hint 21hmov dl,0ffhcmp al,dlpop dxjnz zzzmov ah,4chint 21hmain endpdisp proc nearpush dxand al,0fhmov dl,alcmp dl,9jle numadd dl,7num: add dl,30hmov ah,02hint 21hmov dl,0dhint 21hmov dl,0ahint 21hpop dxretdisp endpcode endsend start实验2ioport equ 0ec00h-0280h io8253a equ ioport+280h io8253b equ ioport+281h io8253 equ ioport+283h stacks segment stackdb 100 dup(?)stacks endscode segmentassume cs:code,ss:stacks main proc farstart:mov ax,stacksmov ss,axmov dx,io8253mov al,36hout dx,almov ax,1000mov dx,io8253aout dx,almov al.ahout dx,almov dx,io8253mov al,76hout dx,almov ax,1000mov dx,io8253bout dx,almov al,ahout dx,almov ah,4chint 21hmain endpcode endsend start实验3:ioport equ 0ec00h-0280h io8253a equ ioport+280h io8253b equ ioport+281hio8253c equ ioport+282h io8253 equ ioport+283h stacks segment stackdb 100 dup(?)stacks endscode segmentassume cs:code,ss:stacks main proc farstart:mov ax,stacksmov ss,axmov dx,io8253mov al,36hout dx,almov ax,1000mov dx,io8253aout dx,almov al.ahout dx,almov dx,io8253mov al,76hout dx,almov ax,1000mov dx,io8253bout dx,almov al,ahout dx,alinput:mov ah,1int 21hcmp al,1bhje exitsub al,30hmov cl,2mul cladd al,0b0hout dx,almov ax,4mov dx,io8253cout dx,almov al,ahout dx,aljmp inputexit:mov ah,4chint 21hmain endpcode endsend start实验4:ioport equ 0ec00h-280hio8253a equ ioport+280h; io8253b equ ioport+281h; io8253 equ ioport+283h;io8255a equ ioport+288h; io8255 equ ioport+28bh;io8255c equ ioport+28ah; stacks segment stackdb 100 dup(?)stacks endscode segmentassume cs:code,ss:stacks main proc farstart:mov ax,stacksmov ss,axmov dx,io8255mov al,90h;out dx,al;mov dx,io8253;mov al,36h;out dx,al;mov ax,1000;mov dx,io8253a;out dx,al;mov al.ah;out dx,al;mov dx,io8253;mov al,70h;out dx,al;inout: mov ax,2000;mov dx,io8253b;out dx,al;mov al,ah;out dx,al;mov dx,io8255a;in al,dx;mov dx,io8255c;out al,dx;mov cx,5000;delay:loop delay;mov dl,0ffh;mov ah,06h;int 21h;jz inout;mov ah,4ch;int 21h;main endp;code ends;end start;四.提高与创新研究1.图3.6-2系统中最大定时时间为多长,如果需要获得20秒的精确定时该如何处理?CLK0:0.0000001sCLK1、OUT0:0.0001sCLK2、OUT1:1s所以最大定时时间为一秒。
实验二定时器计数器实验

实验二定时器计数器实验1.实验目的①掌握8051的定时器、中断系统编程方法;②了解定时器的应用、实时程序的设计和调试技巧。
2.预习要求①理解定时器的四种工作方式的异同点;②理解TMOD寄存器中GATE、C/T控制位的作用;③理解定时器中断服务程序的响应过程;④理解定时器实现精确定时的方法;⑤认真预习本节实验内容,设计出器件之间的实验连接线,自行编写程序,填写实验报告。
3.实验设备计算机1台;ZDGDTH-1型80C51实验开发系统1套;2号导线、8P数据线若干条;4.基础型实验内容①如图2-1所示,假设采用P1.0口控制外部LED,用拨动开关控制外部中断,用二号导线将D2区80C51/C8051F020MCU模块的 P1.0、P3.2口分别与A 5区八位逻辑电平显示模块的L0、C6区八位逻辑电平输出K0相连。
在Keil环境运行以下程序,分别拨动K0于高低电平位置,观察实验现象,并说明所发生实验现象的原因。
图2-1 外部中断及LED显示电路ORG 0000HLJMP MAINORG 000BHLJMP TIMER0ORG 0030HMAIN: CLR P1.0MOV TMOD,#0AHMOV TL0,#50HMOV TH0,#50HSETB TR0SJMP $TIMER0: CPL P1.0RETIEND②用二号导线将80C51/C8051F020 MCU模块的P1.0与八位逻辑电平显示模块的任意一只发光二极管相连,全速运行下列程序,发光二极管隔一秒点亮一次,点亮时间为一秒。
流程图为:主程序框图定时中断子程序图源程序:Tick equ 10000 ; 10000 x 100us = 1sT100us equ 20 ; 100us时间常数(6M)C100us equ 5h ; 100us记数单元LEDBuf BIT 00HLED BIT P1.0org 0000Hljmp Startorg 000BHLJMP T0IntORG 0100HT0Int: push PSWmov a, C100us+1jnz Goondec C100usGoon: dec C100us+1mov a, C100usorl a, C100us+1jnz Exit ; 100us 记数器不为0, 返回mov C100us, #HIGH(TICK);#high(Tick)mov C100us+1, #LOW(TICK);#low(Tick)cpl LEDBuf ;100us 记数器为0, 重置记数器,取反LEDExit: pop PSWretiStart: mov TMOD, #02h ; 方式2, 定时器mov TH0, #t100usmov TL0, #t100usmov IE, #10000010b ; EA=1, IT0 = 1setb TR0 ; 开始定时clr LEDBufclr P1.0mov C100us, #high(Tick)mov C100us+1, #low(Tick)Loop: mov c, LEDBufmov P1.0, csjmp Loopend5.设计型实验内容①编程使第1~4和5~8发光二极管循环点亮的时间分别为0.25s、0.5s、0.75s、1s。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
思考题
(1) 若 去 掉 连 线 6 与 连 线 7 , 改 为 “ 4MHz ” 与 “ 8253_CLK1 ” 相 连 , 请 修 改 程 序 , 实 现 本 实 验 的 功 能 ( LED 灯 亮 一 秒 灭 一 秒 ) 答 : 将 两 个 计 数 器 的 计 数 值 改 为 2000 即 可 。 (2) 若 希 望 OUT1 输 出 频 率 为 1KHz 的 方 波 , 请 画 出 连 线 图 , 重 新 连 线 , 并 修 改 程 序 实 现 。 答 : 以 输 入 4MHZ 为 例 , 使 用 一 个 计 数 器 0 , 并 将 计 数 值 改 为 4000 即 可 。
实验说明
1、本实验与实验三相似,实验三用的工作方式 0,计数值减完后输出一个脉冲宽度的高 电平。而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高) 。直到下 一次计数值减完。这样输出的波形为方波。 2、由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为 100 和 10000。将计数器的输出接到计数器 0 输入。计数器 0 的输出接到 LED0。
广州大学学生实验报告
开课学院及实验室:实验中心电子信息楼
学 院 机电 年级、专 业、班 微机原理实验 硬件实验七 定时器实验 姓名
2013 年 11 月 28 日
学号 成绩 指导 教师
实验课程名称 实验项目名称 一、实验目的
二、实验原理(实验相关基础知识、理论) 三、实验过程原始记录(程序界面、代码、设计调试过程描述等) 四、实验结果及总结
start proc mov mov out mov mov out mov out mov mov out mov mov out
; 计数器低字节 ; 计数器高字节
al, 76h; 01110110B ; 计数器 1,16 位,方式 3,二进制 dx, CONTROL dx, al ax, 1000 dx, COUNT1 dx, al
四、实验结果及总结 实验结果:执行“全速执行”后,可以看到 LO 亮一秒灭一秒。
实验分析:本次实验中利用 8253 对标准脉冲信号进行计数,使用两个计数器对 1MHZ 的信号分频,在定时器的管脚 OUT0 上输出 1 秒钟高/1 秒钟低 的脉冲信号,从而实现定时功能。(将 8253 可编程计数器/定时器的 时间常数设在 1000000 次,就可以因为 8253 每个计数器只有十六位, 要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发 生一次反转。) 体会:在这次实验中我们学习到了 8088/86 与 8253 的连接方法及对 8253 的控制 方法,更加深入的了解到如何利用 8253 实现定时的技术原理。
一、实验目的
1.学习 8253 可编程定时器/计数器定时方法。 2.学习 8253 多级串联实现大时间常数的定时方法。 3.学习 8088/86 控制 8253 可编程定时器的方法。
二、实验原理(实验相关基础知识、理论)
实验要求
用 8253 对标准脉冲信号进行计数,就可以实现定时功能。用板上的 1MHz 做为标准 信号,将 8253 可编程计数器/定时器的时间常数设在 1000000 次,就可以在定时器的 管脚上输出 1 秒钟高/1 秒钟低的脉冲信号。因为 8253 每个计数器只有十六位,要用两 个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。
; 计数器低字节
mov out
al, ah dx, al
; 计数器高字节
jmp $ start endp code ends end start
开始
设置计数器 0 模式控制字
设置计数器 0 定时常数
设置计数器 1 模式控制字
设置计数器 1 定时常数
等待
实验步骤
(1) (2) (3) (4) (5) 在实验箱断电的情况下连好线。 输入程序并检查,保存程序。 “编译”程序。 “全速执行”程序。 记录实验结及分析。实验参考程序、框图
CONTROL COUNT0 COUNT1 COUNT2 code equ equ equ equ 0c003h 0c000h 0c001h 0c002h
segment assume cs:code near al, 36h; 00110110B ; 计数器 0,16 位,方式 3,二进制 dx, CONTROL dx, al ax, dx, dx, al, dx, 1000 COUNT0 al ah al
实验电路及连线
连线 1 2 3 4 5 6 7 连接孔 1 8253_CS 8253_OUT0 8253_GATE0 8253_CLK0 8253_GATE1 8253_CLK1 4MHz 连接孔 2 CS4 L0 VCC 8253_OUT1 VCC F/4(1M) Fin 1MHz
三、实验过程原始记录(程序界面、代码、设计调试过程描述等)