搜档网
当前位置:搜档网 › 可编程定时器计数器(8253)(微机实验报告)

可编程定时器计数器(8253)(微机实验报告)

可编程定时器计数器(8253)(微机实验报告)
可编程定时器计数器(8253)(微机实验报告)

可编程定时器/计数器(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地址281H

CLK0连接时钟 1MHZ

2、参考流程图(见图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 ;调用DISP

PUSH DX ;将DX 内容保存到堆栈段

MOV AH,06H ;将06H 存入AH ,为了下句调用21中断

MOV DL,0FFH ;将0FFH 存入DL

INT 21H ;调用21中断

POP DX ;将DX 的内容推出栈段

JZ LP1 ;如果DX 的内容是0,就跳转到LP1

MOV 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时,则跳转到NUM

ADD DL,7 ;将DL的值与7进行相加后,再送入DL中

NUM: ADD DL,30H ;将DL的值与30H进行相加后,再送入DL中

MOV AH,02H ;将02H存入AH

INT 21H ;调用DOS21中断

MOV DL,0DH ;结合“MOV AH,02H”就是说输出0DH

INT 21H ;调用中断指令

MOV DL,0AH ;结合“MOV AH,02H”就是说输出0AH

INT 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赋给AX

MOV DX,281H ;把端口地址放在DX寄存器中

OUT DX,AL ;将AX的低8位送入DX端口

MOV AL,AH ;将AX的高8位存入AL寄存器中

OUT DX,AL ;将AL的值送入DX端口

MOV AH,4CH ;将4CH存入AH

INT 21H ;调用DOS21中断

CODE ENDS ;代码段结束

END START ;程序结束

五、实验总结

通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器/计数

器的基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。实验中,连接电路,利用代码控制实验电路,深对课本理论的理解。

PLC实验定时器计数器实验

实验二定时器、计数器实验 一、目的要求 1、了解和熟悉编程软件的使用方法。 2、了解写入和编辑用户程序的方法。 3、掌握定时器、计数器的使用。 二、实验设备 台达可编程序控制器一台;PLC实验箱一台;装有WPL编程软件和开发软件的计算机一台;编程连接电缆一根。 三、实验内容 1、实验原理 定时器相当于继电器电路中的时间继电器,可在程序中作延时控制。 可编程控制器中的定时器是根据时钟脉冲累积计时的,时钟脉冲有 1ms、10ms、100ms等不同规格。(定时器的工作过程实际上是对时钟脉冲计数)因工作需要,定时器除了占有自己编号的存储器位外,还占有一个设定值寄存器(字),一个当前值寄存器(字)。设定值寄存器(字)存储编程时赋值的计时时间设定值。当前值寄存器记录计时当前值。这些寄存器为16位二进制存储器。其最大值乘以定时器的计时单位值即是定时器的最大计时范围值。定时器满足计时条件开始计时,当前值寄存器则开始计数,当当前值与设定值相等时定时器动作,常开触点接通,常闭触点断开,并通过程序作用于控制对象,达到时间控制的目的。 TMR为十六位定时器,当该指令执行时,其所指定的定时器线圈受电,定时器开始计时,当到达所指定的定时值(计时值≥设定值),其接点动作如下:CNT为十六位计数器,当该指令由Off→On执行,表示所指定的计数器线圈由失电→受电,则该计数器计数值加1,当计数到达所指定的定数值(计数值 = 设定值),其接点动作如下:?? 当计数到达之后,若再有计数脉冲输入,其接点及计数值均保持不变,若要重新计数或作清除的动作,请利用RST指令。 编程使PLC输出Y0输出3秒的脉冲,PLC输入1对脉冲计数,计数值为10时,PLC输出Y1输出为1,第11个脉冲清零。 OUTPUT00

实验三单片机定时计数器实验

实验三单片机定时/计数器实验 1、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 2、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 3、实验仪器和条件 计算机 伟福实验箱(lab2000P) 4、实验内容 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 4、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD

用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 5、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 五、思考题 1、使用其他方式实现本实验功能; 2、改为门控方式外部启动计数; 3、如果改为定时间隔为200us,如何改动程序; 4、使用其他方式实现本实验功能,例如使用方式1,定时间隔为10ms,如何改动程序。 六、源程序修改原理及其仿真结果 思考题一:使用其他方式实现本实验功能 方法一: movTMOD, #00000100b;方式0,记数器 movTH0, #0 movTL0, #0 setbTR0;开始记数;由于方式0的特点是计数时使用TL0的低五位和八位 TH0,故用加法器a用“与”(ANL)取TL0的低五位,再用yiwei子程序实现TH0的低三位变为高三位与TL0相加,这样赋给P1时就是八位计数的结果。 Loop: mova,TL0 anla,#1fh

实验报告五 定时器计数器实验

信息工程学院实验报告 课程名称:微机原理与接口技术Array 实验项目名称:定时器/计数器实验实验时间: 班级:姓名:学号: 一、实验目的 1. 掌握8254 的工作方式及应用编程。 2. 掌握8254 典型应用电路的接法。 二、实验设备 PC 机一台、TD-PITD+实验系统一套。 三、实验原理 8254 是Intel 公司生产的可编程间隔定时器。是8253 的改进型,比8253 具有更优良的性能。8254 具有以下基本功能: (1)有 3 个独立的16 位计数器。 (2)每个计数器可按二进制或十进制(BCD)计数。 (3)每个计数器可编程工作于 6 种不同工作方式。 (4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。 (5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=f CLKi ÷f OUTi、其中f CLKi 是输入时钟脉冲的频率,f OUTi 是输出波形的频率。 图5-1 是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。8254 的工作方式如下述: (1)方式0:计数到0 结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。

图5-1 8254 的内部接口和引脚 8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表5-1~5-3 所示。 表5-1 8254 的方式控制字格式 表5-2 8254 读出控制字格式 表5-3 8254 状态字格式 8254 实验单元电路图如下图所示:

8254定时计数器应用实验报告

XX 大学实验报告 课程名称: 实验项目名称:8254定时/计数器应用实验学院:信息工程学院 专业:通信工程 指导教师: 报告人:学号:班级: 实验时间: 实验报告提交时间:

教务处制

单元的内容外,还可以读出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=fCLKi÷fOUTi、其中fCLKi 是输入时钟脉冲的频率,fOUTi 是输出波形的频率。 图(1)是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。 图(1)8254的内部借口和引脚8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表

1所示。 表1 8254的方式控制字 表2 8254 读出控制字格式 表3 8254 状态字格式 8254 实验单元电路图如下图所示:

五、实验步骤及相应操作结果 1. 计数应用实验 编写程序,将8254 的计数器0 设置为方式3,计数值为十进制数4,用单次脉冲KK1+ 作为CLK0 时钟,OUT0 连接MIR7,每当KK1+按动5 次后产生中断请求,在屏幕上显示字符“M”。 实验步骤: (1)实验接线如图2所示。 (2)编写实验程序,经编译、链接无误后装入系统。 (3)运行程序,按动KK1+产生单次脉冲,观察实验现象。(4)改变计数值,验证8254 的计数功能。

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。TMOD各位的含义如下: 1. 工作方式选择位M1、M0 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: .设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为:0001 0110,即0x16。 .设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256;TLx = a % 256; .确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1;EA = 1; 还需要编写中断服务函数: void T0_srv(void)interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段} .启动定时器:TR0(TR1)= 1。 四、实验内容过程及结果分析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。然后设计00-59的两位秒表显示程序。 (1)实现个位秒表,9-0

单片机实验之定时器计数器应用实验二

一、实验目的 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 三、电路原理图 六、实验总结 通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。 七、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。 答:程序见程序清单。

四、实验程序流程框图和程序清单。 1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态。 汇编程序: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV IE, #00H MOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1 LOOP: JNB TF1, LOOP CLR TF1 CPL P1.0 AJMP LOOP END C语言程序: #include sbit Y=P1^0; void main() { EA=0; ET1=0; TMOD=0x60; TH1=0x9C; TL1=0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } } 开始 TMOD初始化 计数初值初始化 中断初始化 启动定时器 计数溢出 清计数溢出标志 Y N P1.0口线取反

8254定时与计数器实验

XX学院 实验报告 实验名称 姓名 学号 班级 教师 日期

一、实验容与要求 1.1 实验容 本次实验分为如下2个子实验: (1)计数应用实验:编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按 下‘KK1+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’; (2)定时应用实验:编写程序,应用8254的定时功能,产生一个1s的方波,并用本装置的 示波器功能来观察。 1.2 实验要求 本次实验中2个子实验的实验要求如下: (1)计数应用实验:将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲 KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏 幕上显示字符“M”; (2)定时应用实验:将8254的计数器0和计数器1都设置为方式3,用信号源1MHz作为 CLK0时钟,OUT0为波形输出1ms方波,再通过CLK1输入,OUT1输出1s方波。 二、实验原理与硬件连线 2.1 实验原理 8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能: (1)有三个地理的16位计数器。 (2)每个计数器可按二进制或十进制(BCD)计数。 (3)每个计数器可编程工作于6种不同的工作方式。

(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。 (5)8254有读回命令(8253,没有),除了可以读出当前计数单元的容外,还可以读出状态寄 存器的容 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=f CLKi÷f OUTi,其中f CLKi是输入时钟脉冲的频率,f OUTi是输出波形的频率。 图2-1是8254的部结构框图和引脚图,它是由与CPU的接口,部控制电路和三个计数器组成。8254的工作方式如下述: (1)方式0:计数到0结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式 D:[7: RD A0 A1 CS CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2图2-1 8254部结构图

单片机实验-定时器计数器应用实验二教学文稿

单片机实验-定时器计数器应用实验二

定时器/计数器应用实验二 一、实验目的和要求 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、实验内容或原理 1、利用单片机的定时器/计数器以查询方式计数外 部连续周期性矩形波并在单片机口线上产生某一频率的连续周期性矩形波。 2、利用单片机的定时器/计数器以中断方式计数外 部连续周期性矩形波并在单片机口线上产生某一频率的连续周期性矩形波。 三、设计要求 1、用Proteus软件画出电路原理图,单片机的定时 器/计数器以查询方式工作,设定计数功能,对 外部连续周期性脉冲信号进行计数,每计满100 个脉冲,则取反P1.0口线状态,在P 1.0口线上 接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时 器/计数器以中断方式工作,设定计数功能,对 外部连续周期性脉冲信号进行计数,每计满200

个脉冲,则取反P1.0口线状态,在P 1.0口线上 接示波器观察波形。 四、实验报告要求 1、实验目的和要求。 2、设计要求。 3、电路原理图。 4、实验程序流程框图和程序清单。 5、实验结果(波形图)。 6、实验总结。 7、思考题。 五、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续 方波,利用定时器1,对 P1.0口线上波形进行计数,满 50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。 原理图:

程序清单: /*功能:用计数器1以工作方式2实现计数(查询方式)每计满100个脉冲,则取反P1.0口线状态*/ ORG 0000H START:MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH MOV IE,#00H SETB TR1

定时计数器实验

包头师范学院信息科学与技术学院 实验报告 课程名称:单片机原理及接口技术实验项目:定时/计数器实验 指导老师:陈静老师实验室:物理楼四日期:2011,5,13 专业:电子信息科学与技术班级:08电子姓名:刘宁学号0814830007 一﹑实验目的及要求 1.学习80C51内部定时/计数器使用方法 2.学习计数器各种工作方式的用法 3.进一步掌握中断处理程序的编写方法 二﹑实验仪器及设备 THDPJ-1/2型单片机开发综合实验箱 THKL-C51型仿真器 ISP下载线 计算机一台 三﹑实验内容及原理 内容:定时器与计数器的使用。 四﹑实验步骤(或过程) 实验(一):计数器 1.用8P数据线连接80C51 MCU模块的P1口到八位逻辑电平显示模块的JD1E5口,用二号导线连接80C51 MCU模块的T0口到单次脉冲模块的任一输出端。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到80C51 MCU模块的40P锁紧插座中,请注意仿真器的方向:缺口朝上。 3.将80C51 MCU模块的电源扭子开关S1C拨到上端。将直流稳压电源模块的直流控制开关S1G1打到ON,本实验所用到的相关模块的电源指示灯VCC亮。 4.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH4_计数器.ASM”源程序,进行编译,编译无误后,全速运行程序。 5.实验现象:连续按动单次脉冲的按键,8位发光二极管显示按键次数。

6.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52芯片中运行(注意:芯片缺口朝上)。(ISP烧录器的使用查看附录二) 源程序如下: 实验(一):计数器 ORG 0000H LJMP START ORG 0030H START:MOV TMOD, #01H ;置T0计数器方式1 MOV TH0,#00H ;置T0高八位、低八位均赋值初值为0 MOV TL0,#00H SETB TR0;T0运行 LOOP: MOV P1,TL0 ;记录P1口脉冲个数 LJMP LOOP ;返回 END 流程图如下: 1.用二导线连接80C51 MCU模块的P1.0到八位逻辑电平显示模块的任一只发光二极管上。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到80C51 MCU模块的40P锁紧插座中,请注意仿真器的方向:缺口朝上。 3.将80C51 MCU模块的电源扭子开关S1C拨到上端。将直流稳压电源模块的直流控制开关S1G1打到ON,本实验所用到的相关模块的电源指示灯VCC亮。 4.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH4_定时器.ASM”源程序,进行编译,编译无误后,全速运行程序。 5.实验现象:发光二极管隔一秒点亮一次,点亮时间为一秒。 6.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52芯片中运行(注意:芯片缺口朝上)。(ISP烧录器的使用查看附录二) 实验(二)源程序:定时器 Tick EQU 5000 ; 10000 x 100us = 1s; 10000用于将100us的定时中断重复10000次即为1sec钟 T100us EQU 156 ; 100us时间常数(12M) 156这个定时常数用于定100us就定时器中断一次 C100us EQU 5H ; 100us记数单元 LEDBuf BIT 00H LED BIT P1.0 ORG 0000H LJMP START

单片机定时计数器实验

实验三单片机定时/计数器实验 一、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 二、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 三、实验仪器和条件 计算机 伟福实验箱(lab2000P ) 四、实验内容与软件流程图 实验3-1⑴、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 ⑵、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 ⑶、流程图 ⑷、实验电路及连线 实验3-2①、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 ②、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD 用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 ③、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 ④、软件流程图

实验报告定时器计数器实验

实验报告 班级学号姓名同组人 实验日期室温大气压成绩

一、实验目的 1、掌握定时器1计数实验的程序,并能作出简单的修改并实现其功能; 2、通过本次实验,了解对定时器的计数功能和看门狗的喂狗过程及其错误喂狗产生的中断的功能; 3、掌握将CAP1.2的下降沿捕获改成CAP1.3的下降沿捕获,并且实现在按KEY3计数的 同时,LED1根据T1TC的值闪烁相应的次数,当T1TC的值大于9时,LED1闪烁相 应的次数后,系统会错误喂狗产生中断,中断执行蜂鸣器报警。 二、实验设备 微型电子计算机(含软件H-JTAG V0.3.1和ADSv1_2)、Easy ARM2131开发板。 三、实验原理

四、实验内容(对书上299页的程序进行修改,阴影部分为修改部分) #include "config.h" #define BEEP 1 << 7 // P0.7控制蜂鸣器,低电平蜂鸣 #define WDT 0// WDT中断号 const uint32 LED1 = (1 << 18); // P1.18控制LED1,低电平点亮 ********************************************************************************************* ************ ** 函数名称:main() for CAP1.2 ** 函数功能:Timer1的计数器实验-CAP1.2下降沿 ** 调试说明:需要将跳线JP10连接KEY2。 ******************************************************************************* void __irq WDT_Int (void) { uint32 i; T1TC=0; IO0CLR = BEEP; // 蜂鸣器报警 for (i=0; i<0x7fffff; i++); IO0SET = BEEP; VICIntEnClr = 1 << WDT; // 看门狗喂狗中断,只能通过禁止VIC中断的方法返回} void DelayNS (uint32 dly) { uint32 i; for ( ; dly>0; dly--) for (i=0; i<50000; i++); } int main (void) { uint32 cnt,cnt2,i; PINSEL0 = 0x00000000; // P0.7管脚连接GPIO PINSEL1 = 1 << 4; // P0.18连接捕获1.3 PINSEL2 = PINSEL2 & (~0x08); // P1[25:16]连接GPIO IO1DIR = LED1; // 设置LED1控制口为输出 IO1SET = LED1; // LED1熄灭 IO0DIR = BEEP; // 蜂鸣器控制口输出 IO0SET = BEEP;

接口 定时器与计数器实验(8253)-- 8253定时器实验

同组同学学号: 同组同学姓名: 实验日期:2012 年 3月 26日交报告日期:2012 年 5月 30日实验(No. 1_1 )题目:定时器与计数器实验(8253)-- 8253定时器实验 实验目的及要求: 实验目的: 1、学习8253可编程定时器/计数器定时方法。 2、学习8253多级串联实现大时间常数的定时方法。 3、学习8088/86控制8253可编程定时器的方法。 实验要求: 用8253对标准脉冲信号进行计数,就可以实现定时功能。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。 实验电路及连线: 连线连接孔1 连接孔2 1 8253_CS CS4 2 8253_OUT0L0 3 8253_GATE0VCC 4 8253_CLK08253_OUT1 5 8253_GATE1VCC 6 8253_CLK1F/4(1M) 7 4MHz Fin 实验说明: 1、本实验工作方式0,计数值减完后输出一个脉冲宽度的高电平。而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。直到下一次计数值减完。这样输出的波形为方波。 2、由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为100和10000。将计数器的输出接到计数器0输入。计数器0 的输出接到LED0。

实验框图: 主程序框图 源程序及分析: CONTROL equ 0c003h ;设置命令寄存器 COUNT0 equ 0c000h ;设置计数器0 COUNT1 equ 0c001h ;设置计数器1 COUNT2 equ 0c002h ;设置计数器2 code segment assume cs:code start proc near ;第一次定时器设定: mov al, 36h; ; 计数器0,16位,方式3,二进制(00110110B=36h) mov dx, CONTROL out dx, al mov ax, 1000 mov dx, COUNT0

实验三_8253定时器计数器实器

实验三 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 是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz用+5V 单电源供电。8253 的六种工作方式: ⑴方式0:计数结束中断⑷方式3:方波频率发生器 ⑵方式l:可编程频率发生⑸方式4:软件触发的选通信号 ⑶方式2:频率发生器⑹方式5:硬件触发的选通信号8253 初始化编程 1. 8253 初始化编程 8253 的控制寄存器和 3 个计数器分别具有独立的编程地址,由控制字的内容确定使用的是哪个计数器以及执行什么操作。因此8255 在初始化编程时,并没有严格的顺序规定,但在编程时,必须遵守两条原则: ①在对某个计数器设置初值之前,必须先写入控制字; ②在设置计数器初始值时,要符合控制字的规定,即只写低位字节,还是只写高位字节,还是高、低位字节都写(分两次写,先低字节后高字节)。

可编程定时器计数器 实验报告

实验名称 可编程定时器/计数器(8253) 学生姓名 学生学号 专业班级 指导老师 2015-1-7

实验六可编程定时器/计数器(8253) 一、实验目的 掌握8253芯片和微机接口原理和方法,掌握8253定时器/计数器的工作方式和编程原理。 二、实验内容 1.设计8253定时器/技术器仿真电路图; 2.根据仿真电路图,编写代码,对8253定时器/计数器进行仿真。 三、实验要求 1.要求计数器2工作于模式1(暂稳态触发器),计数初值为1250; 2.计数器0工作于方式3(方波模式),输出一个1KHz的方波, 8253的输入 时钟为1MHz,计数初始值格式为BCD。 3.8253与系统的连接如所示。 图 1计数器8253与8086连接原理图 注:实验过程中,发现有误。应将8253定时器/计数器右边部分的电阻R2与按钮交换位置。 四、实验原理 8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输

入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。 8253的工作方式3被称作方波发生器。任一通道工作在方式3,只在计数值n 为偶数,则可输出重复周期为n、占空比为1:1的方波。 进入工作方式3,OUTi输出低电平,装入计数值后,OUTi立即跳变为高电平。如果当GATE为高电平,则立即开始减“1”计数,OUTi保持为高电平,若n为偶数,则当计数值减到n/2时,OUTi跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUTi端输出的周期为n×CLKi周期,占空比为1:1的方波序列;若n为奇数,则OUTi端输出周期为n×CLKi周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。 8253定时器/计数器控制字决定这定时器0,1,2的工作模式。一旦CPU对控制字进行写操作,且对相应的定时器有效,则相应定时器改变工作模式,可能准备接收计时初值。控制字的格式如所示。 图 2 8253控制字格式 8253有4个端口,且通过A[1…0]引脚控制着4个端口。访问端口如所示。

单片机定时器计数器实验报告

单片机定时器计数器实验报告 篇一:单片机计数器实验报告 计数器实验报告 ㈠实验目的 1. 学习单片机内部定时/计数器的使用和编程方法; 2. 进一步掌握中断处理程序的编程方法。 ㈡实验器材 1. 2. 3. 4. 5. G6W仿真器一台 MCS—51实验板一台 PC机一台电源一台信号发生器一台 ㈢实验内容及要求 8051内部定时计数器,按计数器模式和方式1工作,对 P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms 中断一次,看T0内每50ms来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。 ㈣实验说明 1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入 定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电

平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。 2. 计数脉冲由信号发生器输入(从T0端接入)。 3. 计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421 码表示,个位用L8~L5的8421码表示 4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动 次数并显示 ㈤实验框图(见下页) 程序源代码 ORG 00000H LJMP MAIN ORG 001BH AJMP MAIN1 MAIN: MOV SP,#60H MOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H ;T0的中断入口地址 ;设置T1做定时器,T0做计数器,都于方式1工作 ;装入中断次数 ;装入计数值低8位 ;装入计数值高8位 MOV TH0,#00H SETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $;

单片机实验三报告定时计数器实验

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:?验证?综合■设计?创新实验日期:实验成绩: 实验三定时计数器实验 (一)实验目的 1.掌握单片机中断原理; 2.掌握定时器的初始化和定时模式编程。 (二)设计要求 1.采用定时器0/1做16位自动重装(方式0),中断频率为1000HZ; 2.中断函数从取反输出500HZ方波信号; 3.如果由于频率问题实验现象无法观察,请在中断程序中想办法实现。 (三)实验原理 1.单片机定时/计数器(T0/T1)的结构和工作原理 IAP15W4K58S4单片机内部有5个16位的定时/计数器,即T0、T1、T2、T3和T4。T0、T1结构框图如下图(图一)所示,TL0、TH0是定时/计数器T0的低8位、高8位状态值,TL1、TH1是定时/计数器T1的低8位、高8位状态值。TMOD是T0、T1定时/计数器的工作方式寄存器,由它确定定时/计数器的工作方式和功能;TCON是TO、T1定时/计数器的控制寄存器,用于控制T0、T1的启动与停止以及记录T0、T1的计满溢出标志;AUXR称为辅助寄存器,其中T0x12、T1x12 用于设定T0、T1内部计数脉冲的分频系数。、分别为定时/计数器T0、T1的外部计数脉冲输入端。 T0、T1定时/计数器的核心电路是一个加1计数器,如下图(图二)所示。加1计数器的脉冲有两个来源:一个是外部脉冲源:T0、T1,另一个是系统的时钟信号。计数器对两个脉冲源之一进行输入计数,每输入一个脉冲,计数值加1,当计数到计数器为全1时,再输入一个脉冲就使计数值回零,同时使计数器计满溢出标志位TF0或TF1置1,并向CPU发出中断请求。 (图一)

定时器、计数器操作与应用实验报告

实验三 定时器、计数器操作与应用实验报告 一、实验目的 1、了解和熟悉FX系列可编程序控制器的结构和外部接线方法; 2、了解和熟悉GX Developer Version 7.0软件的使用方法; 3、掌握可编程序控制器梯形图程序的编制与调试。 二、实验要求 仔细阅读实验指导书中关于编程软件的说明,复习教材中有关内容,分析程序运行结果。 三、实验设备 1、FX系列可编程序控制器一只 2、开关量输入/输出实验箱一只 3、计算机一台 4、编程电缆一套 5、GX Developer Version 7.0软件一套 注意: 1)开关量输入/输出实验箱内的钮子开关用来产生模拟的开关量输入信号; 2)开关量输入/输出实验箱内的LED用来指示开关量输出信号; 3)编程电缆在连接PLC与计算机时请注意方向。 四、实验内容 1、梯形图

2、梯形图程序 3、时序图

五、实验步骤 1、程序的编辑、检查和修改; 2、程序的变换; 3、程序的离线虚拟设备仿真测试; 4、程序写入PLC; 5、用PLC运行程序; 6、比较程序的分析结果与实际运行结果。 六、实验报告 1、实验梯形图程序的编写; 2、梯形图程序的理论分析与结果; 3、梯形图程序的实际运行结果; 4、结论。 七、实验心得 通过这样一次实验,我对GX Developer Version 7.0软件的使用方法更加的熟悉了,也了解到在实验中需要我们集中精力,仔细认真地完成。 七、思考题

1、自锁的作用? 起保停电路和置位、复位有相同的作用,都是具有记忆功能的电路,经验编程法主要就是使用起保停电路实现。以转换为中心的编程思想是用置位、复位指令实现的。 2、通用定时器与积算定时器的比较? 通用定时器:100ms定时器T0—T199共200点,每个设定值范围为0.1-327.67s。10ms定时器T200-T245共46点,每个设定值范围 0.01-327.67s。驱动输入X0断开或发生断电时,计数器复位,输出接 点也复位。 积算定时器:1ms积算定时器T246—T249共4点,每个设定值范围为0.001-32.767s。100ms积算定时器T250-T255共6点,每点设定值范围0. 1-3276.7s。积算定时器只有复位信号X2接通时,计数器和输出点才复位。 3、计数器与定时器的比较? 计数器(C)用于对各种软元件接点的闭合次数进行计数。计数器 可分为两大类:内部信号计数器和外部信号计数器(即高速计数器)。 定时器(T)在PLC中的作用相当于一个时间继电器。它有一个设定 值寄存器(一个字长),一个当前值寄存器(一个字长)以及无限个 姐姐点(千个位)。对于每一个定时器,这3个量只用同一地址编号 名称,但使用场合不一样,其所指也不一样。通常在一个PLC中有几 十至数百个定时器T。

单片机定时器计数器应用实验

ORG 0000H MAIN: MOV TMOD, #02H MOV TH0, #9CH MOV TL0, #9CH SETB TR0 LOOP0: JBC TF0, LOOP1 AJMP LOOP0 LOOP1: CPL AJMP LOOP0 END ORG 0000H START: LJMP MAIN ORG 000BH LJMP LOOP1 ORG 0100H MAIN: MOV TMOD, #02H MOV TH0, #88H MOV TL0, #88H SETB EA SETB ET0 LOOP: SETB TR0 HERE: SJMP HERE LOOP1: CPL RETI ORG 0000H MOV TMOD, #20H MOV IE, #00H MOV TH1, #38H MOV TL1, #38H LOOP4: MOV TH0, #0F6H MOV TL0, #13H SETB TR0 CLR TR1 CPL LOOP0: JBC TF0, LOOP1 AJMP LOOP0 LOOP1: SETB TR1 CLR TR0 CPL

LOOP5: JBC TF1, LOOP4 AJMP LOOP5 END ORG 0000H MOV IE, #00H MOV TMOD, #02H MOV TH0, #38H MOV TL0, #38H LOOP1: MOV TH1, #0F0H MOV TL1, #0CH SETB TR0 SETB TR1 LOOP3: JBC TF0, LOOP0 AJMP LOOP3 LOOP0: CLR TR0 CPL LOOP4: JBC TF1, LOOP5 AJMP LOOP4 LOOP5: CLR TR1 CPL LJMP LOOP1 END ORG 0000H MOV SP, #2FH MOV IE, #00H MOV TMOD, #20H MOV TH1, #9CH MOV TL1, #9CH SETB TR1 LOOP: JNB TF1, LOOP LOOP1: INC A CLR TF1 CJNE A , #02, LOOP2 CPL LOOP2: CJNE A , #05, LOOP CPL CLR A LJMP LOOP END

单片机实验3中断、定时器计数器实验

西南科技大学实验报告 课程名称:单片机原理及应用A 实验名称:中断、定时器/计数器实验姓名: 学号: 班级:生医1401 指导教师:雷华军 西南科技大学信息工程学院制

实验题目 数码管动态扫描显示驱动、键盘动态扫描驱动 一、实验目的 1、熟练巩固单片机开发环境KEIL界面的相关操作和PROTUES仿真软件的操 作,会使用HEX文件进行单片机的仿真。 2、了解定时器的原理和四种工作方式的使用方法,学习定时器的相关应用,包括产生信号和 计数,利用定时器进行延时等。 3、进一步掌握熟练单个数码管以及多位数码管的显示原理,学会将0~1000的数字进行显示。 4、掌握利用单片机产生矩形方脉冲的相关原理。 二、实验原理 1、定时器结构和原理 图① 上图①为定时器T0、T1的结构,其中振荡器经12分频后作为定时器的时钟脉冲,T为外部计数脉冲输入端,通过开关K1选择。反相器,或门,与门共同构成启/停控制信号。TH 和TL为加1计数器,TF为中断标志。每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF将被置1。计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD和TCON。 2、定时器工作方式? 定时器共有四种工作方式分别为方式0——方式3。? 方式0:13位计数器,最大计数值为213个脉冲。? 方式1:16位计数器,最大计数值为216个脉冲。? 方式2:8位自动重装计数器。该方式下,TL进行计数工作,TH用于存放计数初值,当产生溢出中断请求时会自动将TH中的初值重新装入TL,以使计数器继续工作。? 方式3:仅限于T0计数器,在方式3下,T0计数器被分成两个独立的8为计数器TL0和TH0。 3、定时器间隔1ms产生一个脉冲 利用单片机1 口进行脉冲的输出,通过定时器进行端口定时控制,实现每1ms高低电平变换。就可以实现一个占空比为50%的矩形脉冲输出。对于定时器的定时功能实现,需要进行定时器模式选择,定时器初值设定。 4、利用中断进行脉冲的计数

相关主题