文档库 最新最全的文档下载
当前位置:文档库 › 实验五定时器计数器

实验五定时器计数器

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

实验五 定时器计数器实验

1. 实验目的

1)了解MCS-51单片机定时器/计数器的工作原理与工作方式; 2)掌握T0和T1在定时和计数两种方式下的编程; 3)掌握中断和查询两种工作方式的编程 2. 实验内容

2)设置定时器1为计数器方式,采用工作方式2,每次计数到4在P1.0引脚上取反一次,通过连接LED 观察实验现象;

3) 用定时器实现交通灯控制。利用P1.0、P1.1、P1.2口控制东西交通灯,P1.3、P1.4、P1.5控制南北向交通灯,实现内容为:东西向绿灯亮 5s 后,黄灯闪烁,闪烁5 次亮红灯,红灯亮后,南北向由红灯变成绿灯,5s 后南北向黄灯闪烁,闪烁5 次后亮红灯,东西向绿灯亮,如此往复。元器件: traffic 交通灯

1)设置定时器0和1为定时器方式,编写程序在P1.0输出1HZ 方波信号及P1.1引脚上输出2HZ 方波信号,利用T0控制P1.0口LED ,利用T1控制P1.1口LED ,通过连接LED 观察实验现象;

3.实验步骤

1)按图所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;

2)编写实验程序,编译链接无误后进入调试状态;

3)运行实验内容2的程序,按单次脉冲KK1,观察发光管D0的状态,每4 次变化一次;

实验程序

实验一

#include

#define uchar unsigned char

#define uint unsigned int

sbit LED0=P1^0;

sbit LED1=P1^1;

uchar T_Count0=0;

uchar T_Count1=0;

//定时器初始化函数

void init(void)

{

TMOD = 0x11; //定时器0:定时模式,工作方式1;定时器1:定时模式,工作方式1.

TH0 = (65536 - 50000)/256;

TL0 = (65536 - 50000)%256; //计数初值为50ms

TR0 = 1;

ET0 = 1;

TH1 = (65536 - 50000)/256;

TL1 = (65536 - 50000)%256; //计数初值为50ms

TR1 = 1;

ET1 = 1;

EA = 1;

}

//主函数

void main(void)

{

init();

while(1);

}

//T0 中断函数

void LED_Flash0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256; //恢复初值

if(++T_Count0==20) //1s开关一次LED

{

LED0=~LED0;

T_Count0=0;

}

}

void LED_Flash1() interrupt 3

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%256; //恢复初值

if(++T_Count1==10) //0.5s 开关一次LED

{

LED1=~LED1;

T_Count1=0;

}

}

实验二

#include

//主程序

sbit led=P1^0;

void main()

{

TMOD=0x06; //定时器0 为计数器,工作方式1,最大计数值256 TH0=0; //初值为0

TL0=0;

TR0=1; //启动定时器

while(1)

{

if(TL0==4)

{

led=~led;

TL0=0;

}

}

}

实验三

#include

#define uchar unsigned char

#define uint unsigned int

sbit RED_A=P0^0; //东西向指示灯

sbit YELLOW_A=P0^1;

sbit GREEN_A=P0^2;

sbit RED_B=P0^3; //南北向指示灯

sbit YELLOW_B=P0^4;

sbit GREEN_B=P0^5;

//延时倍数,闪烁次数,操作类型

uchar Time_Count=0, Flash_Count=0, i=1;

//定时器0 中断函数

void T0_INT() interrupt 1

{

TL0=(65536-50000)/256;

TH0=(65536-50000)%256;

switch(i)

{

case 1: //东西向绿灯与南北向红灯亮5s

RED_A=0;YELLOW_A=0;GREEN_A=1;

RED_B=1;YELLOW_B=0;GREEN_B=0;

if(++Time_Count!=100) return; //5s(100*50ms)切换

Time_Count=0;

i=2;

break;

case 2: //东西向黄灯开始闪烁,绿灯关闭

if(++Time_Count!=8) return;

Time_Count=0;

YELLOW_A=~YELLOW_A;GREEN_A=0;

if(++Flash_Count!=10) return; //闪烁

Flash_Count=0;

i=3;

break;

case 3: //东西向红灯与南北向绿灯亮5s

RED_A=1;YELLOW_A=0;GREEN_A=0;

RED_B=0;YELLOW_B=0;GREEN_B=1;

if(++Time_Count!=100) return; //5s(100*50ms)切换

Time_Count=0;

i=4;

break;

case 4: //南北向黄灯开始闪烁,绿灯关闭

if(++Time_Count!=8) return;

Time_Count=0;

YELLOW_B=~YELLOW_B;GREEN_A=0;

if(++Flash_Count!=10) return; //闪烁

Flash_Count=0;

i=1;

break;

}

}

//主程序

void main()

{

TMOD=0x01; //T0 定时方式工作方式1

IE=0x82; //EA=1; ET0=1;

TR0=1;

while(1);

}

实验五 时序逻辑电路实验报告 计数器

实验五 时序逻辑电路实验 一、实验目的 1.掌握同步计数器设计方法与测试方法。 2.掌握常用中规模集成计数器的逻辑功能和使用方法。 二、实验设备 1.直流稳压电源、信号源、示波器、万用表、面包板 2.74LS190、74LS393、74LS04 3.1kΩ电阻、发光二极管 三、实验原理 1.计数器 计数器不仅可用来计数,也可用于分频、定时和数字运算。在实际工程应用中,一般很少使用小规模的触发器组成计数器,而是直接选用中规模集成计数器。 2.(1) 四位二进制(十六进制)计数器74LS161(74LS163) 74LSl61是同步置数、异步清零的4位二进制加法计数器,其功能表见表5.1。 74LSl63是同步置数、同步清零的4位二进制加法计数器。除清零为同步外,其他功能与74LSl61相同。二者的外部引脚图也相同,如图5.1所示。 表5.1 74LSl61(74LS163)的功能表 3.集成计数器的应用——实现任意M进制计数器 一般情况任意M进制计数器的结构分为3类,第一类是由触发器构成的简单计数器。第二类是由集成二进制计数器构成计数器。第三类是由移位寄存器构成的移位寄存型计数器。第一类,可利用时序逻辑电路的设计方法步骤进行设计。第二类,当计数器的模M较小时用一片集成计数器即可以实现,当M较大时,可通过多片计数器级联实现。两种实现方法:反馈置数法和反馈清零法。第三类,是由移位寄存器构成的移位寄存型计数器。 4.实验电路: 十进制计数器

六进制扭环计数器 具有方波输出的六分频电路 图5.1 74LS161(74LS163)外部引脚图 四、实验内容及步骤 1.集成计数器实验 (1)按电路原理图使用中规模集成计数器74LS163和与非门74LS00,连接成一个同步置数或同步清零十进制计数器,并将输出连接至数码管或发光二极管。然后使用单次脉冲作为触发输入,观察数码管或发光二极管的变化,记录得到电路计数过程和状态的转换规律。 (2)根据电路图,首先用D触发器74LS7474构成一个不能自启的六进制扭环形计数器,同样将输出连接至数码管或发光二极管。然后使用单次脉冲作为触发输入,观察数码管或发光二极管的变化,记录得到电路计数过程和状态的转换规律。注意观察电路是否能自启,若不能自启,则将电路置位有效状态。接下来再用D触发器74LS7474构成一个能自启的六进制扭环形计数器,重复上述操作。 2.分频实验 同步置数法 同步清零法

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

信息工程学院实验报告 课程名称:微机原理与接口技术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 实验单元电路图如下图所示:

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

实验三单片机定时/计数器实验 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

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.掌握同步计数器设计方法与测试方法。 2.掌握常用中规模集成计数器的逻辑功能和使用方法。 二、实验设备 设备:THHD-2型数字电子计数实验箱、示波器、信号源 器件:74LS163、74LS00、74LS20等。 三、实验原理和实验电路 1.计数器 计数器不仅可用来计数,也可用于分频、定时和数字运算。在实际工程应用中,一般很少使用小规模的触发器组成计数器,而是直接选用中规模集成计数器。 2.(1) 四位二进制(十六进制)计数器74LS161(74LS163) 74LSl61是同步置数、异步清零的4位二进制加法计数器,其功能表见表5.1。 74LSl63是同步置数、同步清零的4位二进制加法计数器。除清零为同步外,其他功能与74LSl61相同。二者的外部引脚图也相同,如图5.1所示。 表5.1 74LSl61(74LS163)的功能表 清零预置使能时钟预置数据输入输出 工作模式R D LD EP ET CP A B C D Q A Q B Q C Q D 0 ××××()××××0 0 0 0 异步清零 1 0 ××D A D B D C D D D A D B D C D D同步置数 1 1 0 ××××××保持数据保持 1 1 ×0 ×××××保持数据保持 1 1 1 1 ××××计数加1计数3.集成计数器的应用——实现任意M进制计数器 一般情况任意M进制计数器的结构分为3类,第一类是由触发器构成的简单计数器。第二类是由集成二进制计数器构成计数器。第三类是由移位寄存器构成的移位寄存型计数器。第一类,可利用时序逻辑电路的设计方法步骤进行设计。第二类,当计数器的模M较小时用一片集成计数器即可以实现,当M较大时,可通过多片计数器级联实现。两种实现方法:反馈置数法和反馈清零法。第三类,是由移位寄存器构成的移位寄存型计数器。 4.实验电路: 十进制计数器 同步清零法 同步置数法

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用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

实验5 定时计数器实验

实验5 定时/计数器实验 (1)实验1现象:第一秒钟L1、L3亮,第二秒钟L2、L4亮,第三秒钟L5、L7亮,第四秒钟L6、L8亮,第五秒钟L1、L3、L5、L7亮,第六秒钟L2、L4、L6、L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,……一直循环下去。 (2)实验程序注释 ORG 4000H 设置程序起始地址 LJMP START ORG 401BH 设置中断端口 LJMP IT11 跳转到中断程序 ORG 4100H 设置主程序起始地址 START:MOV A,#05H 将5传送到累加器A MOV R1,#03H 将3传送到R1 MOV R0,#0AH 将10传送到R0 ANL TMOD,#0FH ORL TMOD,#10H 设置TMOD的初值 MOV TL1,#0AFH MOV TH1,#3CH 设置计数初值 MOV IE,#88H 设置IE的值 SETB TR1 设置TR1的初值为1,启动定时器1的运行LOOP1:CJNE R0,#00H,DISP R0不等于0时转移到DISP MOV R0,#0AH 将10传送到R0,实现定时 INC R1 R1加1,以在后面输出不同的显示码转换LED的闪亮模式 CJNE R1,#0BH,LOOP2 R1不等于11时转移到LOOP2(设置了10种显示模式) MOV R1,#03H 将3传送到R1,重新设定R1的初值 LOOP2:MOV A,R1 将R1的值传送到累加器A MOVC A,@A+PC 将(A+PC)单元的值传送到A,即将显示码传送到A LJMP DISP 转移到DISP DB 0FAH,0F5H,0AFH,5FH,0AAH,55H,00H,0FFH 显示码 DISP:MOV P1,A将A的值传送到P1口,即将显示码传送到P1口JMP LOOP1 转移到LOOP1,继续循环 IT11:CLR TR1 以下是中断程序,本行命令是将TR1设置为0,即关闭定时器R1 DEC R0 R0减1,实现定时 MOV TL1,#0AFH MOV TH1,#3CH 设置计数器的初始值,以实现定时时间 SETB TR1 将TR1设置为1,即启动定时器R1 RETI 跳转回主程序 END 1、实验2 ORG 4000H LJMP START ORG 401BH LJMP IT11 PORT EQU 0CFA8H ORG 4100H

计数器的设计实验报告

计数器的设计实验报告 篇一:计数器实验报告 实验4 计数器及其应用 一、实验目的 1、学习用集成触发器构成计数器的方法 2、掌握中规模集成计数器的使用及功能测试方法二、实验原理 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等等。目前,无论是TTL还是

CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 1、中规模十进制计数器 CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。 图5- 9-1 CC40192引脚排列及逻辑符号 图中LD—置数端CPU—加计数端CPD —减计数端CO—非同步进位输出端BO—非同步借位输出端 D0、D1、D2、D3 —计数器输入端 Q0、Q1、Q2、Q3 —数据输出端CR—清除端 CC40192的功能如表5-9-1,说明如下:表5-9-1 当清除端CR为高电平“1”时,计数

器直接清零;CR置低电平则执行其它功能。当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3 置入计数器。 当CR为低电平,LD为高电平时,执行计数功能。执行加计数时,减计数端CPD 接高电平,计数脉冲由CPU 输入;在计数脉冲上升沿进行8421 码十进制加法计数。执行减计数时,加计数端CPU接高电平,计数脉冲由减计数端CPD 输入,表5-9-2为8421 码十进制加、减计数器的状态转换表。加法计数表5-9- 减计数 2、计数器的级联使用 一个十进制计数器只能表示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级联使用。 同步计数器往往设有进位(或借位)输出端,故可选用其进位(或借位)输出信号驱动下一级计数器。 图5-9-2是由CC40192利用进位

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 的计数功能。

定时器实验报告

定时器实验报告 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

电子信息工程学系实验报告课程名称:单片机原理及接口应用 实验项目名称: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: D7D6D5D4D3D2D1D0 GATE C/T M1 M0GATE C/T M1M0 TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。 TMOD各位的含义如下: 1. 工作方式选择位M1、M0 M1、M0的状态决定定时器的工作方式: M1M0功能说明 0 0 1 10 1 1 方式0,为13位的定时/计数器 方式1,为16位的定时/计数器 方式2,为常数自动重装入的8位定时/计数器 方式3,T0分为两个8位定时/计数器, T1在该方式时停止 3、51单片机定时器的工作过程(逻辑)方式一方式1:当M1M0=01时,定时器工作于方式1。

实验六--Verilog设计分频器计数器电路答案

实验六 Verilog设计分频器/计数器电路 一、实验目的 1、进一步掌握最基本时序电路的实现方法; 2、学习分频器/计数器时序电路程序的编写方法; 3、进一步学习同步和异步时序电路程序的编写方法。 二、实验内容 1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset(低电平复位),输出clockout为4个clock周期的低电平,4个clock周期的高电平),文件命名为fenpinqi10.v。 2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK(上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为couter10.v。 3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为couter8.v。 4、用VERILOG设计一可变模数计数器,设计要求:令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk上升沿有效,文件命名为mcout5.v。 5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR是复位输入端,高电平有效,异步清零;Q[3..0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端。 三、实验步骤 实验一:分频器 1、建立工程

实验五 定时器实验

实验五定时器实验 [实验目的] 1.熟悉ARM芯片内部定时器的配置方法 2.掌握ARM芯片定时器匹配输出应用 3. 掌握定时器的捕获用法 [实验仪器] 1.Proteus仿真的LPC2000系列的ARM处理器 2.软件:PC机操作系统Win98、Win2000或WinXP,Keil for ARM(MDK)集成开发环境 [实验原理] Lpc2000系列的ARM芯片内部定时器可以实现匹配和捕获功能。通过相关寄存器设置可以实现对应的功能。 [实验内容] 设计一个使用ARM内部定时器0的匹配输出功能,实现P0.5引脚输出方波。另一引脚P0.0用软件输出方波(非中断方式)。 [预备知识] 参照上课用的ppt的定时器一节或者参考教材定时器一章。 [实验步骤] 按照下图设计硬件,来满足本次实验的需要.(电源设置参考实验一)

器件的名称参照下表 使用Keil MDK建立一个软件工程。命名为timer0。步骤参照前面的实验。在主函数中写入一些代码: #include void timer0_init() { PINSEL0 &= ~(0x3<<6); //设定P0.3引脚作为匹配输出引脚 PINSEL0 |= (0x2<<6);

T0PR = 100000; //预分频系数为100000 T0TC = 0; T0MR0 = 10; //匹配寄存器为10,即:TC计数值到10的时候会和MR0匹配 T0MCR &= ~(0x7); T0MCR = 0x2; //010 //匹配时,复位定时器,即:重新再计数。 T0EMR |= 0x3<<4; //外部匹配,将匹配信号由mat0.0引脚输出 T0TCR =1; //启动定时器0 } void delay(int x) { while(--x); } int main() { PINSEL0 = 0x00000000; IODIR0 = 0x1; timer0_init(); while(1){ IOSET0 = 0x00000001; delay(100000); IOCLR0 = 0x00000001; delay(100000); } return 0; } 编译生成hex文件,将生成的hex文件加载到lpc2138上运行,记录一下两个LED的闪烁时间(大概计时一下)。并通过计算定时器实际定时的时间和闪烁时间比较,验证本实验的正确性。 【思考题】 1.修改程序,将定时器的匹配输出引脚设置成GPIO,当定时器匹配时利用匹配中断 完成led的闪烁操作。 2.设定一个按钮,连接到定时器0的捕获引脚上,并设定一个数码管连接到gpio上, 当发生捕获事件时,利用捕获中断服务程序将将捕获到的数值显示出来(提示:将 预分频器的值设的大一些,这样计数器计数值就会慢些,确保计数器的值不要大于 15,否则就得用多个数码管来显示了)。

实验五计数器的设计实验报告

实验五计数器的设计——实验报告 邱兆丰 15331260 一、实验目的和要求 1.熟悉JK触发器的逻辑功能。 2.掌握用JK触发器设计同步计数器。 二、实验仪器及器件 1、实验箱、万用表、示波器、 2、74LS73,74LS00,74LS08,74LS20 三、实验原理 1.计数器的工作原理 递增计数器----每来一个CP,触发器的组成状态按二进制代码规律增加。递减计数器-----按二进制代码规律减少。 双向计数器-----可增可减,由控制端来决定。 2.集成J-K触发器74LS73 ⑴符号: 图1 J-K触发器符号

⑵功能: 表1 J-K触发器功能表 ⑶状态转换图: 图2 J-K触发器状态转换图

⑷特性方程: ⑸注意事项: ①在J-K触发器中,凡是要求接“1”的,一定要接高电平(例如5V),否则会出现错误的翻转。 ①触发器的两个输出负载不能过分悬殊,否则会出现误翻。 ② J-K触发器的清零输入端在工作时一定要接高电平或连接到实验箱的清零端子。3.时序电路的设计步骤 内容见实验预习。 四、实验内容 1.用JK触发器设计一个16进制异步计数器,用逻辑分析仪观察CP和各输出波形。2.用JK触发器设计一个16进制同步计数器,用逻辑分析仪观察CP和各输出波形。3.设计一个仿74LS194 4.用J-K触发器和门电路设计一个特殊的12进制计数器,其十进制的状态转换图为:5.考虑增加一个控制变量D,当D=0时,计数器按自定义内容运行,当D=1时,反方向运行 五、实验设计及数据与处理 实验一

16进制异步计数器 设计原理:除最低级外,每一级触发器用上一级触发器的输出作时钟输入,JK都接HIGH,使得低一级的触发器从1变0时高一级触发器恰好接收下降沿信号实现输出翻转。实验二 16进制同步计数器 设计原理:除最低级外,每一级的JK输入都为所有低级的输出的“与”运算结果实验三 仿74LS194 设计原理:前两个开关作选择端输入,下面四个开关模仿预置数输入,再下面两个开关模仿左移、右移的输入,最后一个开关模仿清零输入。四个触发器用同一时钟输入作CLK输入。用2个非门与三个与门做成了一个简单译码器。对于每一个触发器,JK输入总为一对相反值,即总是让输入值作为输出值输入。对于每一个输入,当模式“重置”输出为1时,其与预置值结果即触发器输入;当模式“右移”、“左移”输出为1时,其值为上一位或下一位对应值;当各模式输出均为0时各触发器输入为0,使输出为0。 实验四 设计原理: 在12进制同步计数器中,输出的状态只由前一周期的状态决定,而与外来输入无关,因此目标电路为Moore型。而数字电路只有0和1两种状态,因此目标电路要表达12种状态需

定时计数器实验

包头师范学院信息科学与技术学院 实验报告 课程名称:单片机原理及接口技术实验项目:定时/计数器实验 指导老师:陈静老师实验室:物理楼四日期: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

实验五 计数器的设计

实验五计数器的设计 姓名:zht 学号: 班级:15自动化 日期:2016/11/11

目录 一、实验内容 (3) 二、设计过程、逻辑图及仿真 (4) ①设计过程 (4) ②逻辑图及仿真 (5) 三、实验数据及总结 (8) ①实验数据 (8) ②总结 (10)

一、实验内容 1.用JK触发器设计一个16进制异步计数器,用逻辑分析仪观察CP 和各输出的波形。 2.用JK触发器设计一个16进制同步计数器,用逻辑分析仪观察CP 和各输出的波形。 3.用JK触发器和门电路设计一个特殊的12进制同步计数器,其十进制的状态转换为从01依次计数到12,再回到01开始新一轮计数。实验仪器: 1.实验箱,示波器。 2.器件:74LS73,74LS00,74LS08,74LS20

二、设计过程、逻辑图及仿真 ①设计过程: 1.异步计数器是将CLK应用于第一个JK触发器的时钟输入上,然后将输出Q接入后一个JK触发器的时钟输入,后面的连接方式都是由前一个JK触发器的输出Q作为后一个JK触发器的时钟输入。异步计数器的原理是由于实验箱上的JK触发器是下降沿触发,第一个JK触发器的输出Q1每一个时钟周期变化一次,即经过两个时钟周期后Q1经过了一个周期。同理,由于第一个JK触发器的输出Q1是第二个的时钟输入,所以经过两个Q1周期后第二个JK触发器的输出Q2经过了一个周期,即每四个时钟周期的时间Q2经过一个周期。以此类推,则第三个JK触发器的输出Q3的周期是时钟周期的八倍,第四个JK 触发器的输出Q4是时钟周期的十六倍,因而Q4、Q3、Q2、Q1组成了一个16进制计数器。该计数器的缺点是由于传输延迟会在其中积累,会限制计数器按时钟运行的速度。 2.同步计数器将CLK应用于每个JK触发器的时钟输入上。第一个JK 触发器的输出Q连接到第二个JK触发器的J和K。此后前一个JK触发器的输出和后一个JK触发器的输出经过与门后共同作为再后一个JK触发器的J和K输入。如此一来,第二个JK触发器的J、K输入由第一个JK触发器的输出Q1控制,时钟每变化两个周期Q1会变化一个周期,而只有当Q1为0时第二个触发器在经过时钟下降沿时才会使输出Q2的状态发生改变,即Q2的周期为Q1的两倍,时钟周期的四倍。接着由于Q1和Q2经过与门后作为第三个触发器的J、K输

单片机定时器实验报告

( 2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。 在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动

将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

实验五定时计数器8253A应用

嘉应学院计算机科学与技术系 实验报告 实验地点锡昌科技楼417 课程名称实验名称定时/计数器 8253A应用 指导老师曽镜源实验时间提交时间 班级096 姓名座号 一、实验目的和要求 实验目的: 1. 学习8253A可编程定时/计数器与8088CPU的接口方法; 2.了解8253A的工作方式; 3.掌握8253A在各种方式下的编程方法。

二、实验环境、内容和方法 实验环境:DVCC实验箱 一、实验内容: 1、实验原理 本实验原理图如图3-10所示,8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,端口地址如表3-2所示。8253A的片选地址为40H~ 4FH。因此,本实验仪中的8253A四个端口地址为40H、41H、42H、43H,分别对应通道0、通道1、通道2和控制字。采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ,输出OUTO 要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地(“0”电平)或甩空(“1”电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。 二、实验线路连接 (1)8253的GATE0接+5V。 (2)8253的CLK0插孔接分频器74LS393(左上方)的T4插孔,分频器的频率源为4MHZ。 三、描述实验过程: 实验步骤 1、按图3-10连好实验线路 2、运行实验程序 (1)联机时,实验程序文件名为\DVCC\H8EXE\H85S.EXE。 (2)单机时,实验程序起始地址为F000:9180。 在系统显示监控提示符“P.”时: 输入F000 按F1键 输入9180 按EXEC键 3、用示波器测量8253左侧OUT0插孔,应有方波输出。

实验五 计数器的设计

实验五计数器的设计 刘予歆 14346015 一、实验目的 使用JK触发器设计4位计数器; 区分同步计数器和异步计数器的不同原理。如果有可能,分析两者不同的竞争和冒险的原因; 学会添加一些门电路,让普通的计数器改造成部分计数的电路; 用触发器,设计194芯片(只在 protues做原理图) 二、实验仪器 数电实验箱万用表示波器74LS73 74LS00 74LS08 74LS20 三、实验原理 2.集成J-K触发器74LS73 ⑴符号: 图1 J-K触发器符号 ⑵功能: 表1 J-K触发器功能表 功能

⑶状态转换图: 图2 J-K触发器状态转换图 ⑷特性方程: 三、实验内容 实验说明:74LS73触发器的时钟接口是在下降沿发生状态的改变。 1、设计一个16进制异步计数器 用前一个触发器,即较低位的输出接入下一个,即较高位的时钟输入,实现“频率二分”。 如下图为原理图。 这是实验过程中的波形图,

从上到下对应二进制的较低位到较高位,从A到B点对应数字:0000、0001、0010、0011、0100、0101、0111、1000、1001、1010、1011、1100、1101、1110、1111。 然而图中有一些毛刺,经过放大,图片和毛刺产生原因的分析如下:

D0~D3是D8~D11的格雷码: D8和D9的异或产生D0,D9和D10的异或产生D1,D10和D11的异或产生D2,而D11等于D3, 进过把毛刺放大,发现:毛刺边缘近似的和下方的BCD的波形图的对应的异或输入波段边缘对其。因为计数器的JK触发器是从左网右一步一步传递的有时间延迟,所以造成了BCD边沿电位相同,对格雷码产生短时间的低电位,即为毛刺。 2、设计一个16进制同步步计数器 由于JK触发器的输入和输出中间有GAP,利用时间极短的GAP,让上一个,即较低位的触发器的输出状态来作为后一个,即较高为触发器的输入,当前触发器的所有较低位的触发器输出全部为1的时候,其输出状态才会改变。 以下是原理图

嵌入式定时器实验

昆明理工大学信息工程与自动化学院学生实验报告 (2013 —2014 学年第 2 学期) 课程名称:嵌入式技术及应用开课实验室:信自楼504 2014年5月 9 日 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二、实验原理 89C51单片机有五个中断源(89C52有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0溢出中断请求、定时器/计数器0溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON和SCON中。当中断源请求中断时,相应标志分别由TCON和SCON的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在同一优先级别中,靠内部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。 中断程序由中断控制程序(主程序)和中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51的中断函数必须通过interrupt m进行修饰。在C51程序设计中,当函数定义时用了interrupt m修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51系统中断的处理方式自动把它安排在程序存储器中的相应位置。 三、实验内容 在实验板上完成如下功能: ●用定时器T0的方式1,实现第一个发光二极管以200ms的间隔闪烁; ●用定时器T1的方式1,实现数码管前两位59s循环计时。 实验板数码管电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) / 256

相关文档
相关文档 最新文档