定时器实验实验报告

定时器实验实验报告
定时器实验实验报告

定时器实验实验报告

一、实验目的

1、了解定时器的工作原理和四种工作方式的使用方法

2、学习定时器的相关应用(产生信号、计数等)

二、实验原理

1、定时器的结构和原理

上图是定时器T0、T1的结构,振荡器经过12分频后作为定时器的时钟脉冲,T 为外部计数脉冲输入端,通过开关K1选择。反相器,或门,与门共同构成启/停控制信号。TH和TL为加1计数器,TF为中断标志。每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF将被置1。计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD和TCON

2、定时器的工作方式

方式0:13位定时/计数器

方式1:16位定时/计数器

方式2:8位重复定时/计数器

方式3:8位定时/计数器,仅T0

三、实验内容

1、通过查询定时器状态,在P1.0产生近似10kHz的方波

2、利用计数器测量信号发生器产生的不同频率的方波周期,并在寄存器中显示结果。

四、电原理图

本实验无需接线

五、实验流程图

六、实验代码

1、

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN:

SETB P1.0 ;给P1.0一个初始状态

MOV TMOD,#01H ;T0工作于定时方式1

MOV TH0,#0FFH

MOV TL0,#0D2H

SETB TR0

BACK:

JBC TF0,BACK1 ;定时时间到,跳转

SJMP BACK ;定时时间未到,继续查询

BACK1:

MOV TH0,#0FFH

MOV TL0,#0D2H ;重新设置定时器

CPL P1.0 ;反转P1.0

SJMP BACK

END

2、

RUTL EQU 70H

RUTH EQU 71H

CONT EQU 72H

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN:

MOV TMOD,#15H ;T0工作于计数方式1,T1工作于定时方式1 MOV TH0,#00H

MOV TL0,#00H ;T0计数清零

MOV TH1,#4CH

MOV TL1,#00H ;定时46080个脉冲(50ms)

MOV CONT,#14H ;中断20次

SETB TR0 ;启动T0计数

SETB TR1 ;启动T1计时

BACK1:

JNB TF1,BACK1

CLR TF1 ;计数器溢出标志清0

MOV TH1,#4CH

MOV TL1,#00H ;重新定时50ms

DEC CONT ;中断次数减1

MOV A,CONT

JNZ BACK1

CLR TR0 ;完成20次中断,停止计数

MOV RUTH,TH0

MOV RUTL,TL0 ;存结果

SJMP $

END

七、实验记录

八、实验分析

1、实验所用单片机的时钟频率为11.0592MHz,机器周期为11.0592/12=921.6kHz。实验中定时器T0工作于方式1,要产生10kHz方波,则需要给定时器置的初值

满足:216?N×2

921.6=1

10

,得到N=FFD2H。但是在实验中可以发现当给TL0

赋的值为D2H时,P1.0口测得的频率为9.94kHz,当给TL0赋的值为D3H时,P1.0口测得的频率为10.08kHz,都十分接近10kHz。当TL0赋其它值时,实验结果就与10kHz相差较大了。分析可知,当TL0值D2H时,测得的理论频率应该为10.01kHz,与实验结果不符,可能的原因有:代码采用查询TF0的方式完成方波反转,查询代码需要时间;示波器的测量存在误差,有偶然因素在里面,尤其实验时发现测量的频率不是很稳定,有时会不断跳转,这时只能取一个值作为测量结果。

2、实验2中可以看出,测量误差整体还是比较小的。实验中是用1s时间内测得外部脉冲数目作为外部信号的频率。由于测得的脉冲数目只能是整数值,所以当测量的频率较低,且不为整数值时,测量的误差可能就较大,例如实验数据中测量35.79Hz时误差为2.2%。当测量频率较高时,实验误差就比较小,均在0.1%以下,但在高频时信号并不稳定,且信号发生器只能精确到0.01kHz,因此还是有误差的。实验中,由于16位计数器的限制,测量范围为1Hz~65535Hz。如果想要提高测量范围,可以相应缩短测量时间,如0.5s,但是会使精度减小;也可以将T0的进位保存下来以提高测量范围,此时精度不会改变。如果想要提高精度,较小误差,可以延长测量时间,但测量范围会减小。但无论用何种方法,最终测量上限都不会超过机器周期,即921.6kHz。

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

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

2、梯形图程序 0LD xooo 1OUT YOOO X001 2LD 3OR¥001 4AN I X002 5OUT Y001 6OUT TO K50 9MPS 10AHI TO 11OUT Y002 12MPP 13ASD TO 14OUT¥003 15LD X003 16RST CO 18LD X004 19OUT CO K5 22LD CO 23OUT Y004 24END 3、时序图

r 时序10 □ ?Si 正在进荷囲1SL 金冃勖厂手祜r XI广X3厂X5厂K1Q拧应C 40 J2fl MIB -380 .360 '340 -33 MW 脚 M 创Q,220,200,13Q -1?-14D ,1如■!? 如也 40 如厂「 五、实验步骤 1、程序的编辑、检查和修改; 2、程序的变换; 3、程序的离线虚拟设备仿真测试; 4、程序写入PLC; 5、用PLC运行程序; 6、比较程序的分析结果与实际运行结果。 六、实验报告 1、实验梯形图程序的编写; 2、梯形图程序的理论分析与结果; 3、梯形图程序的实际运行结果; 4、结论。 七、实验心得 通过这样一次实验,我对GX Developer Version 7.0 软件的使用方 法更加的熟悉了,也了解到在实验中需要我们集中精力,仔细认真地完成■XDU "Tlr-.Ll-t-1!- D LJ D-IT--1 z?E I4J 一 — Ti ll IL — 」 ill-t-ll-r — 1

定时器实验报告

定时器实验报告 文档编制序号:[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。

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

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

C51单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (201 — 201学年第1 学期) 课程名称:单片机技术

一、实验目的 1.掌握定时器T0、T1 的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 2.掌握LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0 溢出中断请求、定时器/计数器0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON 和SCON 中。当中断源请求中断时,相应标志分别由TCON 和SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在

同一优先级别中,靠部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过interrupt m 进行修饰。在C51 程序设计中,当函数定义时用了interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51 系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m 的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 89C51 单片机设置了两个可编程的16 位定时器T0 和T1,通过编程,可以设定为定时器和外部计数方式。T1 还可以作为其串行口的波特率发生器。

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/7e1572820.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.360docs.net/doc/7e1572820.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

定时器实验报告

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

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 姓名:学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;显示精度伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计#include<> #include""

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4; sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) {

555定时器实验报告

一、实验目的 二、实验原理 555 定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。555 定时器的内部电路框图和外引脚排列图分别如图 2.9.1 和图2.9.2 所示。它内部包括两个电压比较器,三个等值串联电阻,一个 RS 触发器,一个放电管T 及功率输出级。它提供两个基准电压VCC /3 和 2VCC /3 555 定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS 触发器和放电管的状态。在电源与地之间加上电压,当 5 脚悬空时,则电压比较器 C1 的同相输入端的电压为2VCC /3,C2 的反相输入端的电压为VCC /3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2 的输出为0,可使RS 触发器置1,使输出端OUT=1。如果阈值输入端 TH 的电压大于2VCC/3,同时 TR 端的电压大于VCC /3,则C1 的输出为 0,C2 的输出为1,可将RS 触发器置 0,使输出为 0 电平。 它的各个引脚功能如下: 1脚:外接电源负端VSS或接地,一般情况下接地。

8脚:外接电源VCC,双极型时基电路VCC的范围是4.5 ~ 16V,CMOS 型时基电路VCC的范围为3 ~ 18V。一般用5V。 3脚:输出端Vo 2脚:低触发端 6脚:TH高触发端 4脚:是直接清零端。当端接低电平,则时基电路不工作,此时不论、TH处于何电平,时基电路输出为“0”,该端不用时应接高电平。 5脚:VC为控制电压端。若此端外接电压,则可改变内部两个比较器的基准电压,当该端不用时,应将该端串入一只0.01μF电容接地,以防引入干扰。 7脚:放电端。该端与放电管集电极相连,用做定时器时电容的放电。 在1脚接地,5脚未外接电压,两个比较器A1、A2基准电压分别为的情况下,555时基电路的功能表如表6—1示。 三、实验内容 四、思考题

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

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

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

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

实验名称可编程定时器/计数器(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所示。 图1计数器8253与8086连接原理图

注:实验过程中,发现图1有误。应将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所示。

单片机定时器实验报告

XXXX大学信息工程与自动化学院学生实验报告 (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

51单片机实验报告

实验一数据传送实验 实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV @R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 思考题: 1. 按照实验内容补全程序。 2. CPU 对8031内部RAM存储器有哪些寻址方式? 直接寻址,立即寻址,寄存器寻址,寄存器间接寻址。 3. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH ___0A0H~0AFH______________________ 内部RAM 50H~5FH___0A0H~0AFH_______________________ 实验二多字节十进制加法实验

实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。源程序清单:ORG 0000H RESET: AJMP MAIN ORG 0100H MAIN: MOV SP, #60H MOV R0, #31H MOV @R0, #22H DEC R0 MOV @R0, #33H MOV R1, #21H MOV @R1, #44H DEC R1 MOV @R1, #55H MOV R2, #02H ACALL DACN HERE: AJMP HERE DACN: CLR C DAL: MOV A, @R0 ADDC A, @R1 DA A MOV @R1, A INC R0 INC R1 DJNZ R2,DAL CLR A MOV ACC.0 , C RET 思考题: 1. 按照实验内容补全程序。 2. 加数单元、被加数单元和结果单元的地址和内容为? 3130H,2120H,6688H 3. 如何检查双字节相加的最高位溢出? 看psw.3 的溢出标志位ov=1 则溢出 4. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

C51单片机定时器及数码管控制实验报告

昆明理工大学信息工程与自动化学院学生实验报告 ( 201 —201学年第1 学期) 课程名称:单片机技术 开课实验室: 年月日

一、实验目的 1. 掌握定时器 T0、T1 的方式选择与编程方法,了解中断服务程序的设计方法, 学会实时程序的调试技巧。 2. 掌握 LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别就是外部中断请求 0、外部中断请求 1、定时器/计数器 0 溢出中断请求、定时器/计数器 0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器 TCON 与 SCON 中。当中断源请求中断时,相应标志分别由 TCON 与SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在同一优先级别中,靠内部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器 IE、IP、TCON (用六位)与 SCON(用二位), 分别用于控制中断的类型、中断的开/关与各种中断源的优先级别。中断程序由中断控制程序(主程序)与中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过 interrupt m 进行修饰。在 C51 程序设计中,当函数定义时用了 interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段与尾段,并按 MCS-51 系统中断的处理方式自动把它安排在 程序存储器中的相应位置。 在该修饰符中,m 的取值为 0~31,对应的中断情况如下: 0——外部中断 0 1——定时/计数器 T0 2——外部中断 1 3——定时/计数器 T1 4——串行口中断 5——定时/计数器 T2 其它值预留。 89C51 单片机内设置了两个可编程的 16 位定时器 T0 与 T1,通过编程,可以设定为定时器与外部计数方式。T1 还可以作为其串行口的波特率发生器。 2. 定时器 T0 由特殊功能寄存器 TL0 与 TH0 构成,定时器 T1 由 TH1 与TL1 构成, 特殊功能寄存器 TMOD 控制定时器的工作方式,TCON 控制其运行。定时器的中断由中断允许寄存器 IE,中断优先权寄存器 IP 中的相应位进行控制。定时器 T0 的中断入口地址为 000BH,T1 的中断入口地址为 001BH。 定时器的编程包括: 1) 置工作方式。 2) 置计数初值。

单片机实验报告——定时器

实验四定时器实验 自动化121班1202100236 张礼 一.实验目的 掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。 二.实验仪器 单片机开发板一套,计算机一台。 三.实验任务 编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。 开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。而U2的锁存使能端LE由P2.1控制,所

以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。 汇编语言程序流程如图4-2: 四.实验步骤: 1.数码管的0~9的字型码表如下: 2.参考图4-2所给的程序流程图编写实验程序。(注:以下程序为两位60秒计数程序) #include sbit wei=P2^0; sbit duan=P2^1; char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

51单片机信号发生器实验报告

微控制器技术创新设计实验报告姓名:学号:班级: 一、项目背景 信号发生器也叫做振荡器或是信号源,在现在的科技生产实践中有着广泛而重要的应用。现在的特殊波形发生器在价格上不够经济,有些昂贵。而基于AT89C51单片机的函数信号发生器可以满足此要求。根据傅里叶变换,各种波形均可以用三角函数的相关式子表示出来。函数信号发生器能够产生多种波形,如三角波、锯齿波、矩形波、方波和正弦波。 二、项目整体方案设计 可以利用单片机编程的方法来实现波形的输出。可选用AT89C51作为控制器,输出相应波形的数字信号,再用D/A 转换器输出相应波形的模拟信号。用DAC0832作为D/A转换器,再经过两级放大后输出,最终在示波器上显示。可以使用按键扫描来实现波形的变化

三、硬件设计 四、软件设计 #include #define uchar unsigned char #define uint unsigned int Const tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff ,0xff,0xff,0xff,0xff,0xff,0xff}; void delay(void) { uchar i; for(i=230;i>0;i--); }

void main() { uchar i; while(1) { for(i=0;i<18;i++) { P1=tab[i]; delay(); } } } 五、实验结果

六、项目总结 通过这次实验设计,锻炼我们综合运用知识,提出问题,分析问题,及解决问题的能力。我感慨颇多,在着手设计的这段日子里,我又学到了很多东西。特别是理论联系实际。我认为掌握单片机的应用及开发技术是最基本的也是必要的。单片机是以后从事相关嵌入式研发最为基本的入门芯片。所以学好单片机是我们电子类的必要任务。通过这次单片机课程设计的顺利完成,离不开付老师指导,也离不开班上同学的耐心帮助。在此,我对所有帮助过我的老师和同学表示我真挚的感谢!

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

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

一、实验目的 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;

相关文档
最新文档