实验3 定时器0
- 格式:docx
- 大小:16.95 KB
- 文档页数:5
实验二定时器实验
一、实验目的
l. 掌握定时指令的使用。
2. 掌握由计数器构成的典型环节。
3. 熟悉软件的调试方法,监控模式的使用。
二、实验器材
1. DICE-PLC02-A/B型可编程序控制器实验台/箱l台
2. FX一l0P-E编程器(可选)l只
3. 编程电缆l根
4. 连接导线若干
三、实验内容与步骤
一)实验原理
FX2N系列PLC有定时器256个(T0~T199),定时器的时基脉冲为l00ms(T25~T199、T250~T255)、10ms(T200~T245)、1ms(T246~T249),其中1ms(T246~T249)和l00ms(T250~T255)为累计(积算)型定时器。
每个定时器的定时范围从1×T~32767×Ts,T为时基脉冲周期。
二)实验内容与步骤:
1、编程实现按键按下后1s后接通LED,然后2s后断开LED,记录梯形图和指令表,然后打开监控模式,观察各元件的动态表现。
监控模式下的现象记录:
2)改变定时器的编号(地址)观察累计型和非累计型定时器的区别,然后打开监控模式,观察各元件的动态表现。
监控模式下的现象记录,累计型与非累计型的区别:
3)编写由定时器构成的闪烁(震荡)程序
分析:振荡器的高低电平/频率分别由什么控制。
4)编写8 LED流水灯程序;
实验报告
一、记录实验步骤
二、记录对应程序(梯形图和指令表)
三、记录实验现象
四、实验现象分析。
实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。
二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。
2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。
3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。
5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。
三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。
当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。
E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。
综上,画出实验电路原理图。
2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。
图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。
实验5程序流程图如图3-5,3-6所示。
图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。
单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化121班 36 张礼一.实验目的掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。
二.实验仪器单片机开发板一套,计算机一台。
三.实验任务编写程序,使用单片机开发板上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};int i,j,k,num,shi,ge; void delay(int a) {for(i=0;i void display(int shi,int ge){wei=1;P1=0xfe;wei=0;duan=1;P1=table[shi];duan=0;wei=1; delay(5);P1=0xfd;wei=0; duan=1;P1=table[ge];duan=0; }void main() {TMOD=0x01;TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; num=0; while(1) {delay(5);display(shi,ge); } }void T0_time() interrupt 1 {TH0=(65536-45872)/256; TL0=(65536-45872)%256; k++; if(k==20) { k=0; num++;if(num==60)num=0; shi=num/10; ge=num%10; } }3.实验接线,如图4-1。
一、实验目的1. 理解中断和定时器的基本概念及工作原理。
2. 掌握51单片机中断系统和定时器的配置方法。
3. 学会使用中断和定时器实现特定功能,如延时、计数等。
4. 培养动手实践能力和问题解决能力。
二、实验原理中断是计算机系统中的一种机制,允许CPU在执行程序过程中,暂停当前程序,转去执行另一个具有更高优先级的程序。
51单片机具有5个中断源,包括两个外部中断(INT0、INT1)、两个定时器中断(定时器0、定时器1)和一个串行口中断。
定时器是51单片机内部的一种计数器,可以用于产生定时中断或实现定时功能。
51单片机有两个定时器,即定时器0和定时器1。
定时器可以工作在模式0、模式1、模式2和模式3。
三、实验内容及步骤1. 实验内容一:外部中断实验(1)实验目的:掌握外部中断的使用方法,实现按键控制LED灯的亮灭。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置外部中断,实现按键控制LED灯的亮灭。
2. 实验内容二:定时器中断实验(1)实验目的:掌握定时器中断的使用方法,实现LED灯闪烁。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断,实现LED灯闪烁。
3. 实验内容三:定时器与外部中断结合实验(1)实验目的:掌握定时器与外部中断结合使用的方法,实现按键控制LED灯闪烁频率。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断和外部中断,实现按键控制LED灯闪烁频率。
四、实验结果与分析1. 外部中断实验:成功实现了按键控制LED灯的亮灭。
当按下按键时,LED灯亮;松开按键时,LED灯灭。
2. 定时器中断实验:成功实现了LED灯闪烁。
LED灯每隔一定时间闪烁一次,闪烁频率可调。
3. 定时器与外部中断结合实验:成功实现了按键控制LED灯闪烁频率。
微机原理实验实验⼀ 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) 掌握分⽀、循环程序的结构。
PLC 应用技术实验指导书
1 实验3 定时器和计数器指令的应用
一、实验目的
1. 熟悉CPM2A 型PLC 的交流和直流电源的连接,熟悉输入开关板和I/O 端子的连接。
2. 通过实验程序熟悉定时器和计数器指令的基本应用方法。
二、实验内容
1. 认真阅读实验程序,理解并熟悉实验程序的功能。
2. 输入程序。
3. 调试并监控程序运行。
三、实验步骤
1. 正确连接PLC 所需的各种电源。
连接实验程序的需要的输入开关板和I/O 的接线端子。
2. 输入用定时器指令编写的延时10s 导通的定时程序(见图1)。
运行、监控并调试,观察结果。
3. 输入用计数器指令编写的计数10次的计数程序(见图2)。
运行、监控并调试,观察结果。
4. 用定时器和计数器器指令编写一个既有定时器,又有计数器的延时10s 导通的定时电路程序。
输入、修改、运行、监控并调试,观察结果。
●自编梯形图程序:
四、实验总结及思考
1. 总结本次实验中各个程序运行的结果。
2. 写出上述梯形图程序的指令语句表。
3. 若延时时间修改为50s ,应该修改定时器的什么值,如何修改?
4. 按现在的程序,计数电路中的1.02输入端子上应该接动合还是动断按钮?为什么?
00000 00002 00005
图1 延时10s 的定时电路的梯形图 00000 00004 00007 图2 计数10次的计数电路的梯形图。
实验三定时器及外部中断实验一、实验目的1)熟悉VC5416的定时器工作原理。
2)掌握VC5416定时器的编程控制方法。
3)学会使用定时器的中断方式来控制程序执行方法。
4)掌握外部中断的编程控制方法,理解DSP对于中断的响应的过程。
5)了解并学习混合编程的实现方法。
二、实验设备1)计算机一套,DSP硬件仿真器一台,实验箱一台。
2)CCS4.1-CCS5.5软件版本。
3)源程序及链接命令文件见:D:\ EXPER\EXP3目录下的.asm 、.cmd、.C 和.lib文件。
三、实验步骤(一)、连接仿真器,将仿真器插接到C5416的JTAG接口上,另一头插接到电脑的USB接口上,因为仿真器是金属外壳,容易和箱子内部的电路触碰造成短路,从而对实验箱造成损坏,这个要特别注意,也不允许在机箱打开电源情况下插拔仿真器。
(二)、实验箱配置及连线:C5416DSP核心板上的SW1的1-6的开始设置为off off off off on on(上电后工做于1/2分频器方式,其它实验也按照此设置不变,我试验过改为PLL*2方式仿真器就连接不上了),SW2设置为on on on on。
将DSP核心板所在试验箱引脚连线区的BCANRX(C54的XF)引脚,与指示灯连线区LAMP的L1连接起来,这样就可以通过XF控制这个L1这个方光管的亮灭了。
将DSP核心板所在试验箱引脚连线区的INT0(C54的外部中断0输入)引脚与单脉冲按键PAULSE的P-(按下输出负脉冲)连接起来,这样按下按键时,就会给DSP的INT0中断引脚发送一个负脉冲。
连线照片见程序目录中的图片文件。
(二)、打开实验箱电源开关。
(三)、使用给定的文件,按照实验一的步骤建立实验项目,例如工作区目录为D:\ exp3 中建立一个exp3的实验项目,添加所有的给定的文件。
(四)、仿真调试方法1、通过菜单Project- Build All 对项目进行编译和链接,如下:如果有错误会出现在problem 窗口中。
实验三定时器中断一.实验目的1.掌握定时器典型应用方法,了解相应寄存器的作用和编程应用;2. 了解TMS320F2812的中断结构和对中断的处理流程。
二.实验设备1.PC机一台,操作系统为WindowsXP (或Windows98、Windows2000),安装了ccs3.1;2.TI 2000系列的TMS320F2812 eZdsp开发板一块;3.扩展实验箱一台。
三.实验原理1.TMS320F2812器件上有3个32位定时器(图3.1)(TIMER0/1/2)。
CPU定时器1和2预留给系统(如DSP-BIOS)使用,CPU定时器0可以在用户应用程序中使用。
在F2812芯片中,定时器中断信号(TINT0、TINT1、TINT2)的连接如图3.2。
图3.1 CPU定时器图3.2 CPU定时器中断信号和输出信号CPU 定时器的通常操作如下:定时器时钟经过预定标计数器(PSCH:PSC)递减计数,预定标计数器产生溢出后向定时器的32位计数器(TIMH:TIM)借位,定时器计数器产生溢出后使定时器向CPU发送中断。
每次预定标计数器产生溢出后使用分频寄存器(TDDRH:TDDR)中的值重新装载,32位周期寄存器(PRDH:PRD)为32位计数器提供重新装载值。
表3.1中列出的寄存器用于配置定时器。
表3.1 CPU 定时器0、1、2 配置和控制寄存器2.中断响应过程一般分为四步:a.接受中断请求。
必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。
b.响应中断。
必须能够响应中断请求。
如果中断是可屏蔽的,则必须满足一定的条件,按照一定的顺序去执行。
而对于非可屏蔽中断和软件中断,会立即作出响应。
c.准备执行中断服务程序并保存寄存器的值。
d.执行中断服务子程序。
调用相应得中断服务程序ISR,进入预先规定的向量地址,并且执行已写好的ISR。
中断类别分为可屏蔽中断、不可屏蔽中断。
实验3 定时器0和定时器1
一、实验目的
1、学会用C语言进行定时器应用程序的设计。
二、实验内容
1、在同一个程序中实现:用定时器0的方式1实现第一个LED灯以1000ms间隔闪烁,用定时器1的方式1实现数码管前两位59秒循环计时。
三、实验步骤
1、硬件连接
(1)使用MicroUSB数据线,将实验开发板与微型计算
机连接起来;
(2)在实验开发板上,用数据线将相应接口连接起来;
2、程序烧入软件的使用
使用普中ISP软件将HEX文件下载至单片机芯片内。
查看结果是否正确。
四、实验结果——源代码
#include <reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit led = P2^0;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u16 t1;
u16 t2;
u8 sec;
u8 DisplayData[2];
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void Time0Init()
{
TMOD |= 0x01;
TH0=0xFc;
TL0=0x18;
EA=1;
ET0=1;
TR0=1;
}
void Time1Init()
{
TMOD |= 0x10;
TH1=0Xd8;
TL1=0Xf0;
EA=1;
ET1=1;
TR1=1;
}
void delay(u16 i)
{
while(i--);
}
void datapros()
{
DisplayData[0]=smgduan[sec%10];
DisplayData[1]=smgduan[sec/10]; }
void DigDisplay()
{
u8 i;
for(i=0;i<2;i++)
{
switch(i)
{
case 0:LSA=0;LSB=0;LSC=0;break;
case 1:LSA=1;LSB=0;LSC=0;break;
}
P0=DisplayData[i];
delay(100);
P0=0x00;
}
}
void main()
{
Time0Init();
Time1Init();
while(1);
}
void Time0() interrupt 1
{
TH0=0xFC;
TL0=0x18;
t1++;
if(t1==1000)
{
t1=0;
led=~led;
}
}
void Time1() interrupt 2
{
TH1=0Xd8;
TL1=0Xf0;
t2++;
if(t2==100)
{
t2=0;
sec++;
if(sec>=60)
{
sec=0;
}
}
datapros();
DigDisplay();
}
五、实验体会——结果分析
位定义P2.0、P2.2、P2.3、P2.4口,P2.0控制第一个LED灯,初始化定时器0,选择工作方式1,也就是16位定时/计数器,赋初值为1ms,编写定时器0中断函数,定义全局变量t1,当t1自增到1000即计数了1000次,每次1ms,重置定时器0,并使第一个LED灯状态翻转,实现第一个LED灯以1000ms间隔闪烁;定时器1初始化方式同定时器0,但初值为10ms,定义全局变量t2,当t2自增到100即计数100次每次10ms相当于1s时,使全局变量sec自增1,当sec 增加到第60s时,数码管重新以00开始计时,数码管段选保存在数组里,位选只有1和2位,因为只显示0-59s计数,通过循环选择。
现象为:第一个LED灯以1000ms间隔闪烁,数码管的前两位以00开始计数到
59再重新以00开始不断循环。