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

实验三定时器、计数器操作与应用实验报告、实验目的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 xooo1OUT YOOOX0012LD3OR¥0014AN I X0025OUT Y0016OUT TO K509MPS10AHI TO11OUT Y00212MPP13ASD TO14OUT¥00315LD X00316RST CO18LD X00419OUT CO K522LD CO23OUT Y00424END3、时序图r 时序10 □ ©Si正在进荷囲1SL 金冃勖厂手祜r XI广X3厂X5厂K1Q拧应C40 J2fl MIB -380 .360 '340 -33 MW 脚 M 创Q,220,200,13Q -1«-14D ,1如■!» 如也 40 如厂「五、实验步骤1、程序的编辑、检查和修改;2、程序的变换;3、程序的离线虚拟设备仿真测试;4、程序写入PLC;5、用PLC运行程序;6、比较程序的分析结果与实际运行结果。
电气控制与PLC编程实验三 定时器实验

实验二定时器实验
一、实验目的
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流水灯程序;
实验报告
一、记录实验步骤
二、记录对应程序(梯形图和指令表)
三、记录实验现象
四、实验现象分析。
单片机实验报告

单片机实验报告学院:姓名:学号:指导老师:目录第一章实验内容、目的及要求 (2)一、内容 (2)二、目的及要求 (3)第二章实验 (3)实验一数字量输入输出实验 (3)实验二定时器/计数器实验 (4)实验三A/D、D/A转换实验 (11)实验四串行通信设计 (20)第三章实验体会 (28)第一章实验内容、目的及要求一、内容实验一数字量输入输出实验阅读、验证C语言程序功能。
使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目。
实验二定时器/计数器实验阅读、验证C语言程序功能。
使用汇编语言编程,完成实验指导书之“3.3 定时/计数器实验”基本实验项目。
提高部分:定时器控制LED灯由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。
P1口的P1.0-P1.7分别接八个发光二极管。
编写程序模拟时序控制装置。
开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去。
实验三A/D、D/A转换实验阅读、验证C语言程序功能。
使用汇编语言编程,完成实验指导书之“4.3 A/D转换实验”项目(P64)和“4.4 D/A转换实验”项目。
提高部分:(要求:Proteus环境下完成)小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A 转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。
实验四串行通讯实验阅读、调试C语言程序功能。
使用汇编语言编程,完成实验指导书之“3.7 串口通讯实验”项目。
(要求:实验仪器上完成)提高部分:(要求:Proteus环境下完成)利用单片机实验系统,实现与PC机通讯。
功能要求:将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。
STN32--定时器计数器(向上计数模式基本配置)

实验一:TIMER-1:定时器上溢,查询溢出后取反LED.故频率计算:f=(72M/(TIM_Prescaler+1)*(1+TIM_Period)) ;定时器的基本设置:1、设置预分频数,得到CK_CNT,TIM_TimeBaseStructure.TIM_Prescaler = 7199;CK_CNT 的计数频率=72M/(7199+1)=10K ;2、设置自动重装载寄存器,当计数值达到这个寄存器锁存数值时,溢出产生事件TIM_TimeBaseStructure.TIM_Period = 9999;10K/(9999+1)=1HZ ,也就是1S 溢出一次;3、设置计数模式TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;从0计数到ARR 产生溢出事件;4、 设置时间分割值TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;5、 初始化定时器2TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);6、清楚标志TIM_ClearFlag(TIM2, TIM_FLAG_Update);7、打开定时器TIM_Cmd(TIM2, ENABLE);8、在主函数中查询TIM_FLAG_Update 标志置位了就清除标志:if(TIM_GetFlagStatus (TIM2,TIM_FLAG_Update )!=RESET){TIM_ClearFlag (TIM2,TIM_FLAG_Update);if( GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_8)==0)GPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_SET);elseGPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_RESET);}时钟预分频 CK_PSC 加减计数器 CK_CNT 达到ARR 的值产生事件实验二、TIMER-1:定时器上溢,中断溢出后取反LED.利用中断的方法:步骤一:定时器的配置1、设置预分频数,得到CK_CNT,TIM_TimeBaseStructure.TIM_Prescaler = 7199;CK_CNT的计数频率=72M/(7199+1)=10K;2、设置自动重装载寄存器,当计数值达到这个寄存器锁存数值时,溢出产生事件TIM_TimeBaseStructure.TIM_Period = 9999;10K/(9999+1)=1HZ ,也就是1S溢出一次;3、设置计数模式TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;从0计数到ARR产生溢出事件;4、设置时间分割值TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;5、初始化定时器2TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);6、打开中断溢出中断TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);7、打开定时器TIM_Cmd(TIM2, ENABLE);步骤二:编写中断配置void NVIC_Configuration(void){NVIC_InitTypeDef NVIC_InitStructure;#ifdef VECT_TAB_RAM/* Set the Vector Table base location at 0x20000000 */NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);#else /* VECT_TAB_FLASH *//* Set the Vector Table base location at 0x08000000 */NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);#endifNVIC_PriorityGroupConfig(NVIC_PriorityGroup_1) ;NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);}注意:加黑的部分,如果你在RAM中编程就要定义VECT_TAB_RAM ,如果在FLASH 编程,则需要NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);如果没有这条预编译语句的话,则很可能会存在进不去中断的错误。
[调查报告]《PLC技术》实验指导书
![[调查报告]《PLC技术》实验指导书](https://img.taocdn.com/s3/m/e3393f304a73f242336c1eb91a37f111f1850d0d.png)
一台 一台 一根 一台 若干
1.写出程序梯形图、程序清单。 2.仔细观察实验现象,认真记录实验中发现的问题、错误、故障及解决方法。
第8页
《PLC 技术》实验指导书 五、实验思考题
1.写出根据实际功能编写出梯形图程序的方法或步骤。 2.本实验中的 I/O 点数为多少? 3.你是如何克服本实验程序中的双线圈的?
第4页
《PLC 技术》实验指导书 计数器的工作波形如下图所示
3、定时器/计数器实验
输入下列程序,观察其输出结果。
步序
指令
器件号 说明
0
LD
X000
X 为启动信号
1
ANI
T1
Y0 为 ls 脉冲发生器
2
OUT
T0
X1 为 Y1 的复位信号
K10
5
LD
T0
步骤:①输入程序,并检查之
6
OUT
T1
K10
9
三、实验仪器与设备
三菱 PLC 实验台 微机 SC-09 编程电缆 FX1N 主机 连接导线
四、实验报告
一台 一台 一根 一台 若干
1. 记录设置的文件路径(以后所有用户文件都在该路径下存取)。 2. 观察实验现象,认真记录实验中发现的问题错误、故障及解决方法。 3. 写出做一个实验的全过程。
五、实验思考题
第3页
《PLC 技术》实验指导书
2、计数器指令 FX2N 系列的 PLC 的计数器个数为 256 个(C0~C255),有五种类型,以编号区分。该指 令占步数为 3 或 5 步。其指令格式为: 梯形图
语名表
步序 0 1 3
指令 LD RST LD
器件号 说明 X000 X000为C0的复位信号
《电控与PLC》实验报告

《电控与PLC》实验报告实验一基本指令实验一、实验目的1、掌握常用基本指令的使用方法。
2、学会用基本逻辑与、或、非等指令实现基本逻辑组合电路的编程。
3、熟悉编译调试软件的使用。
二、实验器材1、PC机一台2、PLC实验箱一台3、编程电缆一根4、导线若干三、实验内容SIEMENS S7-200系列可编程序控制器的常用基本指令有10条。
本次实验进行常用基本指令LD、LDN、A、AN、NOT、O、ON、ALD、OLD、= 指令的编程操作训练。
先简要介绍如下:1、取指令指令符:LD 梯形图符:数据:接点号。
除了数据通道之外,PC的其余继电器号都可以。
功能:读入逻辑行(又称为支路)的第一个常开接点。
2、取反指令指令符:LDN 梯形图符:数据:同LD指令功能:读入逻辑行的第一个常闭接点。
在梯形图中,每一逻辑行必须以接点开始,所以必须使用LD或LDN指令。
此外,这条指令还用于电路块中每一支路的开始,或分支点后分支电路的起始,并与其它一些指令配合使用。
3、与指令指令符:A 梯形图符:数据:接点号。
功能:逻辑与操作,即串联一个常开接点。
4、与非指令指令符:AN 梯形图符:数据:接点号,同A指令。
功能:逻辑与非操作,即串联一个常闭接点。
5、或指令指令符:O 梯形图符:数据:接点号,范围同A指令。
功能:逻辑或操作,即并联一个常开接点。
6、或非指令指令符:ON 梯形图符:数据:接点号,范围同A指令。
功能:逻辑或非操作,即并联一个常闭接点。
7、非指令指令符:NOT 梯形图符:数据:接点号,范围同A指令。
功能:逻辑非操作,即并联一个常闭接点。
8、输出指令指令符:= 梯形图符:数据:继电器线圈号。
功能:将逻辑行的运算结果输出。
9、电路块与指令指令符:ALD 梯形图符:无数据:无功能:将两个电路块串联起来。
10、电路块或指令指令符:OLD 梯形图符:无数据:无功能:将两个电路块并联起来。
说明:LD、A、O:称为常开触点指令;LDN、AN、ON:称为常闭触点指令;当位值为1时,常开触点闭合;当位值为0时,常闭触点闭合。
第3次《单片机原理与应用》-定时计数器

定时器初始化编程:
使用定时器工作之前,先写入控制寄存器, 确定好定时器工作方式。 初始化编程格式:
MOV TMOD,# 方式字 MOV THx,#XH MOV TLx,#XL (SETB EA ) (SETB ETx) SETB TRx ;选择方式 ;装入Tx时间常数 ;开Tx中断 ;启动Tx定时器
TMOD,#01H ;设置T0为方式1定时
ACALL PT0M0
HERE: AJMP HERE
;调用初始化子程序PT0M0
;原地循环,等待中断
22
PT0M0: MOV
TL0,#0CH
;T0初始化,装初值的低8位
MOV
TH0,#0FEH
;装初值的高8位
;允许T0中断 ;总中断允许 ;启动T0 ;中断子程序,T0重装初值 ;P1.0的状态取反
本例,主程序用一条转至自身的短跳转指令来代替。
21
参考程序如下:
ORG 0000H ;程序入口 ;转主程序 ;T0中断入口 ;转T0中断处理程序IT0P ;主程序入口 ;设堆栈指针
RESET: AJMP MAIN ORG 000BH
AJMP IT0P ORG MAIN: MOV MOV 0100H SP,#60H
2)中断方式:初始化后执行其它任务,中断服务程序处理溢出。 ORG 0000H LJMP MAIN ORG 000BH(001BH) ;Tx中断入口 LJMP PTS MAIN: … ;初始化后执行其他程序 PTS: … ;溢出中断服务程序 MOV THx,#XH ;重装时间常数 MOV TLx,#XL RETI
即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务 子程序中对P1.0取反。为此要做如下几步工作。
PLC应用技术实验3 定时器和计数器器指令的应用

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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三-定时器、计数器应用实验二
定时器/计数器应用实验二
设计性试验
2012年11月21日星期三第三四节课
一、实验目的
1、掌握定时器/计数器计数功能的使用方法。
2、掌握定时器/计数器的中断、查询使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
二、设计要求
1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。
2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。
三、电路原理图
开始
系统初始化装计数初值并
启动定时器
定时?
时间到 输出取反
结束
清除溢出标志N
Y 四、实验程序流程框图和程序清单及实验结果 /*********
设计要求:(1)单片机的定时器/计数器以查询方式工作,设定计数功能,
对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0
口线状态,在P1.0口线上接示波器观察波形 编写:吕小洋
时间:2012年11月16日18:09:40 ***************/
ORG
0000H
START: LJMP MAIN
ORG
0100H MAIN: MOV SP, #2FH CLR EA ;关总中断
CLR ET1
;禁止定时器1中断
MOV TMOD, #01100000B ;设置计数器1为工作方式2 MOV TH1, #9CH ;设置计数初值 MOV
TL1, #9CH
SETB TR1
;启动计数器
LOOP: JNB TF1, LOOP ;查询计数是否溢出 CPL P1.0 ;输出取反
CLR
TF1
;清除计数溢出标志 LJMP LOOP
;重复取反
END
//C语言编程//
#include "reg52.h"
sbit P1_0=P1^0;
void main()
{
TMOD=0x50; /*T/C1工作在定时器方式1*/ TR1=1; /*启动T/C1*/
for(;;)
{
TH1=(65536-100)/256; /*装载计数初值*/
TL1=(65536-100)%256;
do /*查询等待TF1置位*/
{ }
while(!TF1);
P1_0=!P1_0; /*定时时间到P1.0取反*/
TF1=0; /*溢出标志清零*/
}
}
启动定时器
等待中断输出取反
中断返回
开始开始中断初始化TMOD初始化计数初值初始化结束
/*********
设计要求:(2)单片机的定时器/计数器以中断方式工作,设定计数功能,
对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0
口线状态
在P1.0口线上接示波器观察波形
编写:吕小洋
时间:2012年11月16日18:48:04 ***************/
ORG
0000H
START: LJMP MAIN ORG
001BH
LJMP TTC1
ORG
0100H MAIN: MOV SP,
#2FH SETB EA ;开总中断 SETB ET1
;定时器1允许中断
MOV TMOD, #60H ;设置T1为工作方式2 MOV TH1, #38H ;设置计数初值 MOV
TL1, #38H
SETB TR1
;启动定时器 HERE: LJMP HERE
;等待中断
/****中断服务程序****/
ORG
0200H TTC1: CPL P1.0
;输出取反
RETI
;中断返回
END
//C语言编程//
#include"reg52.h"
sbit P1_0=P1^0;
void main()
{
EA=1; /*开总中断*/
ET1=1; /*开T/C1中断*/
TMOD=0x50; /*T/C1工作在定时器方式1*/ TH1=(65536-200)/256; /*装载计数初值*/
TL1=(65536-200)%256;
TR1=1; /*启动T/C1*/
while(1);
}
void timer1() interrupt 3 /*T/C1中断服务程序入口*/ {
P1_0=!P1_0; /*定时时间到P1.0取反*/
TH1=(65536-200)/256; /*装载计数初值*/
TL1=(65536-200)%256;
}
开始
中断初始化TMOD初始化、定时 计数
初始化、启动T0 T1定时
?时间到 输出取反清除溢出标志N Y
输出取反中断返回开始结束
五、实验总结
通过本次试验,我掌握了定时器/计数器定时功能的使用方法,能够利用定时器/计数器以查询、中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数。
同时掌握了单片机系统的硬件和软件设计方法。
六、思考题
1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。
/*********
设计要求:利用定时器0,在P1.0口线上产生周期为200us 的连续方波
利用定时器1,对P1.0口线上波形进行计数,满50个则取反平P1.1口线状态,在P1.1口线上接示波器观察波形 编写:吕小洋
时间:2012年11月16日20:07:08
***************/ ORG 0000H START:LJMP MAIN
ORG 001BH
LJMP TTC1
ORG 0100H
MAIN:MOV SP, #2FH
MOV IE, #88H
MOV TMOD, #62H ;设置T1为计数功能(方式2) T0为定时(方式2)
MOV TL0, #9CH
MOV TH0, #9CH ;设置定时100us 初值
MOV TL1, #0CEH
MOV TH1, #0CEH ;设置计数50个初值 SETB TR0 ;启动定时器 SETB TR1 ;启动计数器 LOOP:JNB TF0, LOOP ;查询定时时间是否已到 CPL P1.0 ;输出取反 CLR TF0 ;清除计数溢出标志 LJMP LOOP
TTC1:CPL P1.1 ;输出取反
RETI END
//C语言编程//
#include "reg52.h"
sbit P1_0=P1^0;
sbit P1_1=P1^1;
void main()
{ IE=0x88;
TMOD=0x51; /*设置T1为计数功能(方式1)、T0为定时(方式1)*/ TL1=(65536-50)%256;
TH1=(65536-50)/256; /*装载计数50个的计数初值*/
TR0=1; /*启动T/C1*/
TR1=1;
for(;;)
{
TL0=(65536-100)%256;
TH0=(65536-100)/256; /*装载定时100us的计数初值*/
do /*查询等待TF1置位*/
{ }
while(!TF0);
P1_0=!P1_0; /*定时时间到P1.0取反*/
TF0=0; /*溢出标志清零*/
}
}
void timer1() interrupt 3 /*T/C1中断服务程序入口*/
{
P1_1=!P1_1; /*定时时间到P1.0取反*/
TL1=(65536-50)%256;
TH1=(65536-50)/256; /*装载计数50个的计数初值*/
}。