实验5 定时计数器实验

合集下载

微机实验报告——定时器计数器

微机实验报告——定时器计数器

实验三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. 进一步掌握中断处理程序的编程方法。

㈡实验器材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 MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H;T0的中断入口地址 ;设置T1做定时器,T0做计数器,都于方式1工作 ;装入中断次数 ;装入计数值低8位 ;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $;。

定时器的设计实验报告

定时器的设计实验报告

定时器的设计实验报告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计数器芯片的高稳定性和高精度,使得定时器的性能表现较好。

然而,该设计存在一个缺点,即计数器位数的限制。

由于计数器位数的限制,导致定时的最大时间间隔受到了限制。

定时器计数器实验

定时器计数器实验
三、实验任务
本实验所用DAIS系列MCS—51单片机仿真实验系统的设单片机的晶振为11.0592MZ。完成对接在P1、P3端口的发光二极管闪亮控制程序的设计和调试。具体要求:
1.选择定时器T0为工作方式1,定时溢出时间为50ms,使P1口的8个发光二极管循环闪亮。
2.选择定时器T0和T1为工作方式0,T0定时溢出时间为50ms,使P3.0口的发光二极管每隔0.1S交替闪亮。T1定时溢出时间为25ms,使P3.1口的发光二极管每隔0.05S交替闪亮。
3.将TO定时器设定为工作方式2,使P1.0口的1个发光二极管每隔50ms交替闪亮。
四、实验预习要求
1.根据硬件电路原理图,分析LED发光二极管点亮的条件,画出实际接线图。
2.阅读教材中有关定时/计数器的内容,熟悉定时/计数器的基本结构和工作过程;计算50ms定时/计数器时间常数;根据实验任务设计出相应的调试程序。
MOV A.P1 ; 将端口P1中值读入A中
RL A ; A中二进制数循环左移
MOV P1,A ; 控制P1端口小灯状态
AJMP LOOP ;转LOOP再循环等待50ms
END ; 结束
五、实验设备 ’
计算机(已安装MCS—51单片机仿真软件),MCS—51单片机仿真实验系统。
六、思考题
定时器工作于方式l、方式2时,其一次溢出的最大定时时间是多少(设单片机的晶振为11.0592MHz)?
七、实验报告要求
1.整理好实验任务1~3中经MCS—51单片机仿真实验系统正确运行的程序。
MOV TH0,#06H ; 赋250 s初值
MOV R0,#200 ;预置定时控制值(250 s×200=50ms)

定时器计数器实验报告

定时器计数器实验报告

定时器计数器实验报告简介:定时器是一种用来产生、计数和处理时间信号的计时装置。

在数字电路中,定时器主要分为内部定时器和外部定时器两类,内部定时器是在单片机内部实现的,外部定时器则是通过外部电路实现的。

计数器则是一种用来计数的电子元件,根据不同的使用场合和要求,计数器可以分为多种类型。

在嵌入式系统中,定时器计数器应用广泛,例如在时钟、延时、计数等方面都有很大的作用。

实验目的:1. 学习定时器和计数器的基本原理及应用。

2. 熟悉定时器和计数器在单片机中的编程方法。

3. 掌握通过定时器和计数器实现延时和计数功能的方法。

实验器材:1. STM32F103C8T6开发板2. ST-LINK V2下载器3. 电脑实验内容:一、实验1:使用定时器和计数器实现延时功能1. 在Keil C中新建一个工程,并编写以下程序代码:```#include "stm32f10x.h"void TIM2_Int_Init(u16 arr,u16 psc){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure ;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);TIM_TimeBaseStructure.TIM_Period = arr;TIM_TimeBaseStructure.TIM_Prescaler=psc;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode _Up;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM2, ENABLE);}void TIM2_IRQHandler(void){if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {TIM_ClearFlag(TIM2, TIM_FLAG_Update);GPIO_WriteBit(GPIOB,GPIO_Pin_12,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12)));}}int main(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);TIM2_Int_Init(9999,7199);while (1);}```2. 将STM32开发板连接到电脑,并下载程序到开发板中。

计数定时器应用实验

计数定时器应用实验
(2)实验电路及连线:
+5V
实验机内核
UAD7-UAD0
28
定时/计数器
D7-D0 OUT0 GATE0 CLK0 OUT1 GATE1 CLK1
R-MID
21 继电器
JD R-CLOSE
电源
GND
18
8088

统 单
228H UA0 UA1 CS8253
26 单色灯
8253
74LS240
26八位开关
PA
220H (4)实验记录
PB
222H
PC
224H
控制寄存器
226H
⑴计数值N=100,生产一箱产品需要_____________时间。

⑵ 执行程序后,L7-L0单色灯按____________码制规律变化。 ⑶ 下压暂停键,L7-L0=_____________ BL=________________
N
K7=1? Y 计 N7 N
关闭扬声
(3)实验电路及连线:
本实验7根接线:实验机内核230H与 CS8253连接;CLK0与153.8KHZ连接; GATE0与 +5V连接; OUT0与 SD连接; OUT1接在示波器CH1信号输入端。实验机 内核200H与 CS244连接;
实验机内核
UAD7-UAD0
UAD7-UAD0
28
定时/计数器
D7-D0 OUT0 GATE0 CLK0 OUT1 GATE1 CLK1
+5V
CH1 CH2
8088

示 波 器
8253
230H UA0 UA1

单 元
CS8253
A0 A1

定时计数器实验

定时计数器实验

实验四、定时/计数器实验一、实验目的1、学习51单片机内部定时计数器的使用和编程方法。

2、进一步掌握中断处理程序的编程方法。

二、实验内容1、定时器实验(1)基本部分:用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生反转。

(2)扩展部分:利用P1口控制发光二极管LED按照下面方式工作:a)从左到右奇数LED灯依次点亮;b)从右到左偶数LED灯依次点亮;c)按照以上步骤重复运行,要求灯亮的时间为1s,由定时器T1实现。

2、计数器实验8501内部定时计数T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。

将其数值按二进制数在P1口驱动LED灯上显示出来。

三、实验连线1、基础部分:JP8(P1)和JP1(LED)用8PIN排线连接起来。

计数器实验还需用杜邦线连接P3.5(JP9)与独立键(JP5).2、扩展部分:实验1的扩展部分选用P2口,即JP11(P2)和JP1(LED)用8PIN排线连接起来。

四、实验步骤与说明1、定时器实验(1)基本部分a)编写程序:由于系统的晶振是12MHZ,即机器周期为1微秒,选择定时器工作在方式1,设定定时时间为50ms,则要循环20次,计算其初值为(65536—50000/1)。

接着编写程序如下:#include<reg51.h>unsigned char i;void main(){P1=0;TMOD=0x01;EA=1; ET0=1; TR0=1;i=20;TH0=(65536-50000)/256; TL0=(65536-50000)%256;while(1);}void timer() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;i--;if(i==0){ P1=~P1;i=20;}}b)将程序烧入单片机内,观察现象。

(2)扩展部分按要求写出如下程序并烧入单片机,程序如下:#include<reg51.h>#include<intrins.h>unsigned char i=0;unsigned char sum;void main(){P2=0xfe;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1);}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;sum++;if(sum==20){sum=0;i++;if(i<4){P2=_crol_(P2,2);}if(i==4){P2=0x7f;}if((i>4) && (i<8)){P2=_cror_(P2,2);}if(i==8){P2=0xfe;i=0;}}}编译生成hex文件烧入单片机观察现象。

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

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

定时器计数器应用实验报告实验结果分析及讨论论1.实验中出现过的问题或错误、原因分析程序输入错误导致无法完全编译2.保证实验成功的关键问题保证代码输入正确以及操作正确。

弄清楚keil软件与proteus软件互相调试的原理,确保proteus软件的正常运行。

对实验自我评价价更加熟悉了keil软件和proteus软件操作,了解了定时器/计数器计数功能的使用方法。

教教师师评评阅阅1.学生实验动手能力(20分):□优秀(20~18)□较好(17~15)□合格(14~12)□不合格(11~0)2.实验报告内容(共60分)(1)实验目的、材料、原理、内容及步骤记录(20分):□正确、清晰、重点突出(20~18)□较正确、较清晰(17~15)□有少数错误(14~12)□有较多错误(11~0)(2)实验数据(现象)及结果记录、处理(20分):□清晰、正确(20~18)□较清晰、较正确(17~15)□合格(14~12)□不合格(11~0)(3)实验结果分析及讨论(20分):□结果详实、结论清晰、讨论合理(20~18)□结果正确、讨论适当(17~15)□合格(14~12)□不合格(11~0)3.学生遵循实验室规定及实验要求程度(20分):□好(20~18)□较好(17~15)□合格(14~12)□不合格(11~0)4.其它意见:教师签名:年月日课程名称单片机原理及应用实验成成绩实验名称定时器/计数器应用实验专专业电子信息科学与技术年级/班级学学号实验地点实验日期姓姓名实验类型□演示性□验证性☑综合性□设计性指导教师实实验验目目的的1.掌握定时器/计数器计数功能的使用方法。

2.掌握定时器/计数器的中断、查询使用方法。

3.掌握keil软件和proteus软件的使用方法。

4.掌握单片机系统的硬件和软件设计方法。

实验仪器及耗材材1.THDPJ-3型单片机开发综合实验装置;2.PC;3.KeiluVision4仿真软件。

4.proteus8.0软件实实验验原原理理1.实验原理:要产生周期为2ms的方波,可以利用定时器在1ms时产生溢出,再通过软件方法使P2.0引脚的输出状态取反。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验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
START:MOV TMOD,#60H
MOV TL1,#0FAH
MOV TH1,#0FAH
ORL IE,#88H
SETB TR1
MOV P1,#0FFH
LP:MOV P1,#10H
ACALL DEL1
CPL A
MOV DPTR,#PORT
MOVX @DPTR,A
AJMP LP
IT11:MOV A,#0FFH
MOV DPTR,#PORT
MOVX @DPTR,A
MOV R1,#50H
ACALL DEL1
MOV A,#00H
MOV DPTR,#PORT
MOVX @DPTR,A
RETI
DEL1:MOV R2,#200
DEL2:MOV R3,#126
DEL3:DJNZ R3,DEL3
DJNZ R2,DEL2
DJNZ R1,DEL1
MOV R1,#10
RET
现象:L5、L6不亮,持续5秒钟。

5秒后L5、L6又继续闪亮。

2、实验3程序
ORG 4000H
LJMP START
ORG 401BH
LJMP IT11
ORG 4100H
START:ANL TMOD,#0FH
ORL TMOD,#10H
MOV TL1,0AFH
MOV TH1,#3CH
MOV IE,#88H
SETB TR1
MOV A,#00H
MOV P1,A
MOV R1,#14H LOOP:CJNE R1,#00H,LOOP CPL A
MOV P1,A
MOV R1,#14H
LJMP LOOP
IT11:CLR TR1
DEC R1
MOV TL1,#0AFH
MOV TH1,#03CH
SETB TR1
RETI
END。

相关文档
最新文档