实验四 定时器实验
DSP实验四、TMS320F28335 定时器 中断 IO中断 控制LED亮灭
继续我的第四个实验;实现定时器中断函数处理LD4翻转、按键IO中断控制LD3翻转;学习目的:中断寄存器的设置,IO中断、定时器中断的使用,F28335共有三个定时器:timer0、timer1、timer2(timer2也可用于DSP/BIOS);功能描述:上电默认LD3、LD4灭;初始化完成后,LD4以1HZ(1S)频率做状态翻转;LD3接受按键控制,每触发一次按键,状态翻转一次。
电路连接说明:LD4、LD3设置为通用GPIO 上拉输出初始化后默认为输出LED灯灭状态;LD4、LD3控制LED灯的负极,如下图;本次实验选用定时器0,程序时刻读取计数器的值,当值为0时,产生定时器0中断,LD4状态翻转;IO按键SW12中断控制LD3状态翻转。
定时器0中断程序设计说明:步骤一、定时器0的预定标寄存器和计数器设置:定时器输入时钟为sysclkout(=135MHz),1、如果定时1S(即1Hz)中断一次(即计数结束),1Hz=135Mhz/1350/100000预定标寄存器(即分频器)设为1350,计数器设为100000;2、如果定时1ms(即1000Hz)中断一次,计算公式为:1000Hz=135Mhz/1350/100预定标寄存器同样设为1350,计数器设为100;赋值语句如下://定时器0 设为1Hz = 135MHz/(1350*100000)CpuTimer0Regs.PRD.all= 100000;//计数周期寄存器,100000周期后计数器减为0CpuTimer0Regs.TPR.bit.TDDR= 1350& 0xFF;//0x546 预定标寄存器(预分频器)CpuTimer0Regs.TPRH.bit.TDDRH = (1350>>8) & 0x00FF;//0x546 预定标寄存器(预分频器)步骤二、a)设置定时器0相关中断寄存器使能定时器0中断,即CpuTimer0Regs.TCR.bit.TIE= 1; //使能定时器0中断b)设置PIE级相关中断寄存器定时器0中断所在PIE组使能,即PIEIERx寄存器设置c)设置CPU级中断相关寄存器CPU级使能上述PIE对应的通道,即IER寄存器设置步骤三、中断向量入口映射位置设置,如下:EALLOW; // This is needed to write to EALLOW protected registersPieVectTable.TINT0 = &cpu_timer0_isr; //将中断函数物理地址赋值给中断向量入口PieVectTable.XINT3 = &key_GPIO50_isr;EDIS; // This is needed to disable write to EALLOW protected registersIO中断程序设计说明:步骤一、设置IO引脚功能复用寄存器为普通IO、设为上拉、输入状态、使能引脚滤波功能;外部中断源选择寄存器设置:如GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL=50;//按键引脚编号设置步骤二、使能外部中断源中断;XIntruptRegs.XINT3CR.bit.ENABLE=1;//使能中断设置触发方式:XIntruptRegs.XINT3CR.bit.POLARITY=0;//下降沿触发剩余步骤同定时器0中断的设置。
实验四 定时器计数器实验 091001
�
博学而笃志,切问而近思,仁在其中矣.(孔子)
三,实验内容 1,在P1.0脚上输出 脚上输出2KHz的方波. 的方波. , 脚上输出 的方波 2KHz的方波需要定时器产生 的方波需要定时器产生0.25ms连续的 的方波需要定时器产生 连续的 定时信号,可选用T0方式 方式2, 定时信号,可选用 方式 ,自动装入定时 初值的8位定时方式 位定时方式. 初值的 位定时方式.其中单片机的主频为 11.0592MHz. . 定时器初始值的计算公式: 定时器初始值的计算公式: (28-X)x11.0592/12=0.25x1000 定时器初始值应为: 定时器初始值应为 256-0.25×1000×11.0592/12=26=1AH × ×
博学而笃志,切问而近思,仁在其中矣.(孔子)
三,实验内容 1,参考程序: ,参考程序:
ORG 0000H AJMP START ORG 000BH ;T0中断入口地 中断入口地 CPL P1.0 RETI ORG 0100H START: MOV SP,#2FH MOV TMOD,#02H ;置T0为方式 为方式2 置 为方式 MOV TL0,#1AH ;延时 延时0.25mS的定时器初始值 延时 的定时器初始值 MOV TH0,#1AH SETB PT0 SETB TR0 SETB ET0 SETB EA ;开中断 开中断 SJMP $ 运行程序,用示波器观察波形的脉宽和周期. 运行程序,用示波器观察波形的脉宽和周期.
二,实验仪器 1,自制的C51实验开发板 ,自制的 实验开发板 2,直流稳压电源 , 3,仿真器(EASYPROBE) ,仿真器( ) 4,PC机 , 机 5,示波器 , 1块 块 1台 台 1只 只 1台 台 1台 台
博学而笃志,切问而近思,仁在其中矣.(孔子)
定时器计数器实验
本实验所用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)
实验四定时器实验
• (4)检查并修改源文件中的错误 • 修改后重新编译,Project→REBuild target • (5)运行
• 思考 • 1 、 程序ZYADV.ASM可以实现什么功能? • 2 、开机后第一秒钟L1,L3亮,第二秒 钟L2,L4亮,第三秒钟L5,L7亮,第四秒 钟L6,L8亮,第五秒L1,L3,L5,L7亮, 第六秒钟L2,L4,L6,L8亮,第七秒钟八 个二极管全亮,第八秒钟全灭,以后又从 头开始,L1,L3亮,然后L2,L4亮...... 一直循环下去 。 怎样实现?
实验四
定时器实验
实验目法。 • 2.进一步掌握中断处理程序的编程方法
实验要求
• P1口做输出口,接八只发光二极管,编写程序,使其 循环点亮。 • 以单脉冲输出端做为中断申请,当产生外部中断时, 使发光二极管全亮,延时1秒后返回中断之前的状态, 如上述一直循环下去。 • 由8031内部定时器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亮, 第七秒钟八个二极管全亮,第八秒钟全灭,以后又从 头开始,L1,L3亮,然后L2,L4亮......一直循环下去
• 程序二
• • • • • • • • • • • • • • • • • • • • ORG 0 MAIN:MOV DPTR,#TAB MOV R1,#0AHH,10个状态 LOOP:MOV A,#00H MOVC A,@A+DPTR MOV P1,A; 取第一个状态值 ACALL DELAY; 调用1S延迟程序,2×250×200×10 INC DPTR DJNZ R1,LOOP LJMP MAIN DELAY:MOV R2,#250 MOV R3,#200 MOV R4,#10 DE:DJNZ R2,$ DJNZ R3,DE DJNZ R4,DE RET TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH DB 0FFH ,00H END
单片机定时器实验报告doc
单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化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。
单片机定时器实验报告
单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化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。
实验四 定时计数器实验
实验四 定时/计数器实验一、实验目的熟悉8051定时/计数功能,掌握定时/计数初始化编程方法。
二、实验器材装有Keil μVision4 IDE 集成开发环境和Proteus 的计算机。
三、实验内容使用定时/计数器作为延时控制时,要求在亮灯P0.0和P0.1之间按1互相闪烁。
四、流程图及源程序由于定时器直接延时的最大时间166max (20)12/(122)65536t s μ=-⨯⨯=,为延时1s ,必须采用循环计数方式实现。
,方法为,定时器每延时50ms ,单片机内部寄存器加1,然后定时器重新延时,当内部寄存器计数达20次时,表示已延时1s 。
使用定时器T0工作在方式1,延时50ms ,则TMOD 为01H ,TH0=4CH ,TL0=00H 。
1.程序流程图2汇编源程序:ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,#60H ;初始化堆栈;给定时器T0赋初值MOV TMOD,#01H ;T0采用方式1MOV TH0,#4CH ;初始化定时器T0的溢出间隔时间为50msMOV TL0,#00H ;TH0为高位,TL0为低位SETB TR0 ;启动定时器T0SETB P0.0CLR P0.1MOV R7,#00H ;用R7计数LOOP: JNB TF0,LOOP ;当计数溢出时,硬件置位TF0为1,程序向下执行;否则调用LOOPMOV TH0,#4CH ;初始化定时器T0的溢出间隔时间为50msMOV TL0,#00H ;TH0为高位,TL0为低位INC R7CLR TF0CJNE R7,#14H,LOOPACALL LOOP1 ;20次循环闪烁一次AJMP LOOPLOOP1:MOV R7,#00HCPL P0.0 ;让接P0.0的发光二极管按50ms闪烁CPL P0.1RETEND五、实验步骤1.建立一个工程项目选择芯片确定选项(同实验一的实验步骤1)。
实验四 8253定时计数器应用
实验四8253定时/计数器应用1.实验目的掌握8253命令字的设置及初始化和8253的工作方式及应用编程2.实验内容8253是INTEL公司生产的通用外围接口芯片之一,它有3个独立的16位计数器,计数频率范围为0-2MHZ。
它所有的计数方式和操作方式都可通过编程控制。
其功能是延时终端、可编程频率发生器、事件计数器、倍频器、实时时钟、数字单稳和复杂的电机控制器。
3.实训步骤实现方式0的电路图。
设8253端口地址为:40H-43H要求:设定8253的计数器2工作方式为0 ,用于事件计数,当计数值为5时,发出中断请求信号,8088响应中断在监视设备上显示M。
本实训利用KK1作为CLK输入,故初值设为5时,需按动KK1键6次,可显示一个M.实验七 8253定时/计数器应用实验一.实验目的1.熟悉8253在系统中的典型接法。
2.掌握8253的工作方式及应用编程。
二.实验设备TDN86/88教学实验系统一台三.实验内容(一)系统中的8253芯片图7-1 8253的内部结构及引脚1. 8253可编程定时/计数器介绍8253可编程定时/计数器是Intel公司生产的通用外围芯片之一。
它有3个独立的十六位计数器,计数频率范围为0-2MHz。
它所有的计数方式和操作方式都通过编程的控制。
8253的功能是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253的工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253的内部结构及引脚如图7-1所示,8253的控制字格式如图7-2所示。
图7-2 8253的控制字8253的初始化编程如下图:2. 系统中的8253芯片系统中装有一片8253芯片,其线路如图7-3所示。
DW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART: IN AL,21HAND AL,7FHOUT 21H,ALMOV AL,____HOUT 43H,AL ;8253控制口地址A1: MOV AL,____HOUT 42H,ALHLTSTIJMP A1HLTSTIJMP A1MOV AX,014DHINT 10H ;显示’M’MOV AX,0120HINT 10H ;显示空格MOV AL,20HOUT 20H,ALIRETCODE ENDSEND START实验步骤(1)按图接线。
定时器dsp实验报告
实验四定时器实验实验目的与要求:1、熟悉C54的定时器;2、掌握C54定时器的控制方法;3、学会使用定时器中断方式控制程序流程。
一.实验设备计算机,CCS2.0版软件,DSP硬件仿真器,实验箱。
二.实验步骤和内容1、运行CCS软件,调入样例程序,装载并运行;2、定时器试验通过数字量输入输出单元的LED6~LED13来显示;3、启动CCS2.0,并打开工程exp04.pjt,编译,加载,运行。
启动CCS 2.0,并加载“exp04.out”;单击“Run”运行,可观察到LED灯(LED6~LED13)以一定的间隔时间不停摆动;单击“Halt”,暂停程序运行,LED灯停止闪烁;单击“Run”,运行程序,LED灯又开始闪烁;关闭所有窗口,本实验完毕。
三.问题及流程图一:在程序initial.asm 中:1、第12行中,注释为“set C5402 DSP clock to 10MHz”,为什么?如果: 要求“set C5402 DSP clock to 150MHz”,怎么修改。
答:软件可编程PLL受时钟方式寄存器CLKMD的控制,CLKMD用来定义PLL时钟模块中的时钟配置。
0xF7FF中第11位为0,PLLMUL即第15~12位为15,选择了PLL乘系数为1,芯片的工作频率等于输入时钟CLKIN乘以PLL的乘系数,即10M*1=10M。
设置PLL的乘系数为15,PLLMUL=14,PLLDIV=0,即E7FF,可使得频率为150M。
2、第13行中,STM 0x3FA0, PMST ; 注释为:vectors at 3F80h,是指什么?中断向量地址是多少?答:中断向量地址是由PMST寄存器中的IPTR(9位中断向量指针)和左移2位后的中断向量序号所组成。
0x3FA0h的高9位为0011 1111 1,后7位补0即为0x3F80h。
内部定时器0中断的中断序号为19,即001 0011,左移2位后为100 1100,中断向量地址是0011 1111 1100 1100,即为0x3FCCh。
实验四定时器计数器应用实验二.doc
定时器/计数器应用实验二设计要求1、用Proteus 软件凼出电路原理图,单片机的定时器/计数器以杏询万式丁.作,设定计数功 能,对外部连续周期性脉冲信兮进行计数,每计满100个脉冲,则取反P1.0 口线状态,在 P 1.0 口线上接示波器观察波形。
f=lkhzTM0D 初始化选择定时方式给计数初值赋初值中断初始化10#include<reg52. h> sbit plO=Pl 0; void main(void){TM0D=0X60; TR1=1; for(;;) {THl=0x9c; TLl=0x9c; do { } while(!TFl);TF1=O; pl0=!pl0;}}2、用Proteus 软件凼出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功 能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则収反P1.0 口线状态,在 P 1.0 口线上接示波器观察波形。
等待中断_6_2123 11 ui(P3.^r i>\JU1TM0D 初始化29 30 31五、思考题1、利用定时器0,在P1.0 口线上产生周期为200微秒的连续方波,利用定吋器1,对P1.0 U 线上波形进行计数,满50个,则取反Pl. 1 U 线状态,在Pl.l U 线上接示波器 观察波形。
开始Hh 33uF12M10kA 33u191831ORG OOOOHSTART: LJMP MAINORG 001BH UMPTIMEl开始MAIN:ORG ()l()()H MOV TMOD. #62H#OCEH ;50#OCEH #9CH ;100 #9CH #88H TIME1:CPL Pl.ORETI END输出取反中断返回。
单片机实验4-定时器实验
下次实验内容: 下次实验内容 预习要求: 预习要求:
中断扩展实验
1.查资料设计硬件电路。 查资料设计硬件电路。 查资料设计硬件电路 2.写出实验源程序 写出实验源程序 实验要求: 实验要求 1.利用定时器 扩展一个外部中断 并使定时器 的中断优先级处于高 利用定时器0扩展一个外部中断 并使定时器0的中断优先级处于 利用定时器 扩展一个外部中断,并使定时器 的中断优先级处于高 优先级. 优先级 2.定时器 的外部中断、89C51的外部中断 处于下降沿触发方式 分 定时器0的外部中断 的外部中断0处于下降沿触发方式 定时器 的外部中断、 的外部中断 处于下降沿触发方式,分 别连接实验箱K1、 别连接实验箱 、K2. 3. P2口连接 口连接LED1-LED8。当定时器0收到一有效外部中断请求时 。当定时器 收到一有效外部中断请求时,8 口连接 收到一有效外部中断请求时 闪烁8次显示 只LED闪烁 次显示 当外部中断 收到一有效外部中断请求信号 闪烁 次显示; 当外部中断1收到一有效外部中断请求信号 流水显示一次。 时,LED流水显示一次。 流水显示一次 4.在响应外部中断 时,即LED流水显示过程中 如定时器 收到有效中 在响应外部中断0时 即 流水显示过程中,如定时器 在响应外部中断 流水显示过程中 如定时器0收到有效中 断请求信号,则中断 断请求信号 则中断INT0的流水显示 只LED闪烁显示 次. 的流水显示,8只 闪烁显示8次 则中断 的流水显示 闪烁显示
D7 D6 D5 D4 D3 D2 D1 D0 TMOD GATE C/ T M1 M0 GATE C/ T M1 M0 (89H) )
定 中断一次, 所以,TMOD为01H。每50ms中断一次,延 为 。 中断一次 需中断80次 延时1S需中断 需中断20次 时4S需中断 次,延时 需中断 次。 需中断
实验四 定时器实验
上海电力大学单片机原理应用
实验名称:实验四定时器实验(中断实验)专业班级
学生姓名:学号:
实验四 定时器实验(中断控制)
一、实验目的
1. 掌握单片机定时器的使用方法
2. 掌握中断的使用方法
二、实验内容
采用中断方式控制定时器。
使得单片机P0.0口产生周期为1S 的方波,控制发光二极管D1以1S 为周期闪烁(即亮、灭的时间各为0.5S )。
单片机P0.1口产生周期为20S 的方波,控制发光二极管D2以20S 为周期闪烁(即亮、灭的时间各为10S )
三、
实验说明
中断定时时间可设置为50ms ,计时50ms 时间到即进入中断子程序。
同时,程序设置两个计数器,进入中断子程序则计数器10减1,计数器10减为0则定时时间为0.5s ,此时可将P0.0口的值取反,产生周期为1s 的方波;而当0.5s 时间到,计数器20可减1,当减为0则定时时间为10s ,此时可将P0.1口的值取反,产生周期为20s 的方波。
四、 实验程序框图
图(4-1)
中断子程序: 主程序:
五、实验步骤
1. 调试、运行程序。
2.观察D1以及D2的闪烁情况。
实验四定时器
说明:绿色实验原理,蓝色为对应的实验代码,红色为特别注意实验四用定时器实现数字振荡器实验目的:学习数字振荡器的DSP实现原理掌握定时器的工作的原理和定时器的操作学习C54x定时器使用以及中断服务程序编写实验要求:本实验利用定时器产生一个2kHz 的正弦信号。
定时器被设置成每25uS 产生一次中断(等效于采样速率为40K)。
利用该中断,在中断服务程序中用叠代算法计算出一个SIN 值,并利用CCS 的图形显示功能查看波形。
实验器材: PC机,DSP54XX教学实验系统,CCS软件实验原理:(1)数字振荡器原理设一个传递函数为正弦序列sinkωT,其z 变换为其中,A=2cosωT, B=-1, C=sinωT。
设初始条件为0,求出上式的反Z 变换得:y[k]=Ay[k-1]+By[k-2]+Cx[k-1]这是一个二阶差分方程,其单位冲击响应即为sinkωT。
利用单位冲击函数x[k-1]的性质,即仅当k=1 时,x[k-1]=1,代入上式得:k=0 y[0] = Ay[-1] + By[-2] + 0 = 0k=1 y[1] = Ay[0] + By[-2] + c = ck=2 y[2] = Ay[1] + By[0] + 0 = Ay[1]k=3 y[3] = Ay[2] + By[1] .k=n y[n]= Ay[n-1] + By[n-2]在k>2 以后,y[k]能用y[k-1]和y[k-2]算出,这是一个递归的差分方程。
根据上面的说明,我们可以开始数字振荡器的设计。
设该振荡器的频率为2kHz,采样率为40kHz(通过定时器设置,每隔25us 中断一次,即产生一个y[n]),则递归的差分方程系数为:A=2cosωT=2cos (2 x PI x 2000 / 40000)=2 0.95105 x 652B=-1C=sinωT=sin (2 x PI x 2000 / 40000)=0.30901699为了便于定点DSP 处理,我们将所有的系数除以2,然后用16 位定点格式表示为:这便是本实验中产生2KHz 正弦信号的三个系数。
实验四定时器计数器实验
实验四定时器/计数器实验【实验目的】1.学会单片机定时器/计数器的使用方法;2.掌握定时器中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。
【实验内容】1.假设单片机时钟频率采用12MHZ,用定时器T0使P1口各位都输出周期为100ms的方波,同时使LED闪烁。
(选作:方波周期改为200ms)2.把单片机P3.5口接入实验箱脉冲输出口(实验箱C2区),按动按钮AN0产生脉冲,使用T1计脉冲数,把5s时间内的脉冲数在LED灯上显示出来。
3.把单片机P3.5口接入实验箱脉冲输出口125K(实验箱C2区),使用T1计数,T0定时1ms,把1ms 时间内的脉冲数在LED灯上显示出来。
(选作)【实验原理与设计】1.硬件电路本次实验使用实验箱上的E1、E5和C2模块电路,如图4-1所示。
C2模块是脉冲产生电路,可以通过按钮AN0产生单脉冲,也可以通过分频电路对8M频率进行分频,产生不同频率的连续脉冲,如图4-2所示。
图4-1 实验箱E1 E5C2(a)8M脉冲产生电路(b)分频电路(c)单脉冲产生电路图4-2 脉冲产生电路根据实验要求,用T1对脉冲计数,所以把P3.5口接入单脉冲输出口或输出频率为125K口,L1-L8的接线与实验三相同。
2.程序设计要点(1) 定时器初始化包括以下五步:①声明定时器中断入口地址(T0的入口地址是000BH,T1的入口地址是001BH),并存放跳转中断子程序的指令。
②确定工作方式,写入工作模式寄存器TMOD中;例如选用T0作定时器, T1作计数器,工作方式选定方式1,则TMOD的设置如下:MOV TMOD,#01010001B;或MOV TMOD,#51H;③将定时器计数初值装入TL0、TH0中。
例如:定时50ms,则有MOV TL0,#LOW(65536-50000);MOV TH0,#HIGH(65536-50000);④开中断:SETB ET0SETB ET1SETB EA⑤启动定时器/计数器工作:SETB TR0SETB TR1(2)实验1的编程:T0定时50ms(半个周期),中断后在中断服务子程序中对P1口取反,即可产生周期为100ms的方波。
实验四定时器实验
DSP实验定时器中断实验(精)
实验四定时器中断实验一:实验目的1.熟悉定时器初始化的步骤;2.熟悉定时器控制寄存器(TCR)的含义和使用;3。
熟悉定时器的原理和应用。
二:实验内容本实验要求编写一个简单的定时器中断程序,设置一定的周期控制与XF引脚相连的LCD指示灯.当定时器中断产生时可以观察到LCD周期性闪烁。
三:实验原理1.定时器SRESET。
C54xx 系列的 DSP 都具有一个或两个预定标的片内定时器,这种定时器是一个倒数定时器,它可以被特定的状态位实现停止、重启动、重设置或禁止。
定时器在复位后就处于运行状态,为了降低功耗可以禁止定时器工作。
应用中可以用定时器来产生周期性的 CPU 中断或脉冲输出。
定时器的功能方框图如图 9.1 所示,其中有一个主计数器( TIM )和一个预定标计数器( PSC )。
TIM 用于重装载周期寄存器PRD 的值, PSC 用于重装载周期寄存器 TDDR 的值。
图5。
1中有一个信号,是在器件复位时,DSP向外围电路(包括定时器)发送的一个信号,此信号将在定时器上产生以下效果:寄存器TIM和PRD装载最大值(0FFFFH);TCR的所有位清0;结果是分频值为0,定时器启动,TCR的FREE和SOFT为0。
图5.1定时器的功能方框图定时器实际上是有20bit的周期寄存器。
它对CLKOUT信号计数,先将PSC(TCR 中的D6~D9位)减1,直至PSC为0,然后把TDDR(TCR中的低4位)重新装载入PSC,同时将TIM减1,直到TIM减为0。
这时CPU发出TINT中断,同时在TOUT引脚输出一个脉冲信号,脉冲宽度与CLKOUT一致,然后将PRD重新装入TIM,重复TSS下去直到系统或定时器复位。
定时器产生中断的计算公式如下:1PRD+1TINT的频率= × × (其中tc为 CLKOUT的周期定时器由三个寄存器组成:TIM、PRD、TCR.TIM:定时器寄存器,用于装载周期寄存器值并自减1。
实验4:定时与中断系统实验
实验四:定时与中断系统实验一、实训目的1.利用单片机的定时与中断方式,实现对信号灯的复杂控制。
2.通过定时器程序调试,学会定时器方式1的使用。
3.通过中断程序调试,熟悉中断的基本概念。
二、实验仪器、材料1.微型计算机(PⅣ以上)2.编程、汇编与模拟平台软件Keil uVision33.电子技术专业仿真软件protues运行平台4.单片机实训开发电路板三、实验内容和步骤1.定时器查询方式1)要求:信号灯循环显示,时间间隔为1秒。
2)方法:用定时器方式1编制1秒的延时程序,实现信号灯的控制。
系统采用12M晶振,采用定时器T1方式1定时50ms,用R3做50ms计数单元,其源程序可设计如下:ORG 0000HCONT:MOV R2,#07HMOV A,#0FEHNEXT:MOV P2,AACALL DELAYRL ADJNZ R2,NEXTMOV R2,#07HNEXT1:MOV P2,ARR AACALL DELAYDJNZ R2,NEXT1SJMP CONTDELAY:MOV R3,#14H ;置50ms计数循环初值MOV TMOD,#10H ;设定时器1为方式1MOV TH1,#3CH ;置定时器初值MOV TL1,#0B0HSETB TR1 ;启动T1LP1:JBC TF1,LP2 ;查询计数溢出SJMP LP1 ;未到50ms继续计数LP2:MOV TH1,#3CH ;重新置定时器初值MOV TL1,#0B0HDJNZ R3,LP1 ;未到1s继续循环RET ;返回主程序END2.定时器中断方式1)要求:信号灯循环显示,时间间隔为1秒。
2)方法:用定时器中断方式编制1秒的延时程序,实现信号灯的控制。
采用定时器T1中断定时50ms,用R3做50ms计数单元,在此基础上再用08H位作1s 计数溢出标志,主程序从0100H开始,中断服务程序名为CONT。
可设计源程序如下:ORG 0000H ;程序入口AJMP 0100H ;指向主程序ORG 001BH ;定时器T1中断入口AJMP CONT ;指向中断服务程序ORG 0100HMAIN:MOV TMOD,#10H ;置T1为工作方式1MOV TH1,#3CH ;置50ms定时初值MOV TL1,#0B0HSETB EA ;CPU开中断SETB ET1 ;定时器T1开中断SETB TR1 ;启动T1CLR 08H ;清1s计满标志位MOV R3,#14H ;置50ms循环初值DISP:MOV R2,#07HMOV A,#0FEHNEXT:MOV P2,AJNB 08H,$ ;查询1s时间到否CLR 08H ;清标志位RL ADJNZ R2,NEXTMOV R2,#07HNEXT1:MOV P2,AJNB 08H,$CLR 08HRR ADJNZ R2,NEXT1SJMP DISPCONT:MOV TH1,#3CH ;重置50ms定时初值MOV TL1,#0B0HDJNZ R3,EXIT ;判1s定时到否MOV R3,#14H ;重置50ms循环初值SETB 08H ;标志位置1EXIT:RETIEND四、实训总结与分析1.定时器查询方式和前面的实验相比,硬件电路一致,效果一样,但二者软件的编制方法不同。
实验四 定时器计数器实验
二、实验仪器: 实验仪器:
1、C51实验开发板 、 1块 实验开发板 块 2、直流稳压电源 1台 、 台 3、仿真器(EASYPROBE) 、仿真器( ) 4、PC机 1台 、 机 台 5、示波器 1台 、 台
1只 只
实验内容: 三、实验内容
1、在P1.0脚上输出 、 脚上输出2KHz的方波: 的方波: 脚上输出 的方波 2KHz的方波需要定时器产生 的方波需要定时器产生0.25ms连续的定时信号,可 连续的定时信号, 的方波需要定时器产生 连续的定时信号 选用T0方式 方式2,自动装入参数的8位定时方式 位定时方式, 选用 方式 ,自动装入参数的 位定时方式,用示波器观察 波形, 语言实现同样的功能。 波形, 定时器初值 = M - tc/T 。用C语言实现同样的功能。 语言实现同样的功能 参考程序: 参考程序:ORG 0000H AJMP START ORG 000BH ;T0中断入口地 中断入口地 CPL P1.0 RETI ORG 0100H START: MOV SP,#2FH MOV TMOD,#02H ;置T0为方式 为方式2 置 为方式 MOV TL0,#1AH ;延时 延时0.25mS的定时器初始值 延时 的定时器初始值 MOV TH0,#1AH SETB PT0 SETB TR0 SETB ET0 SETB EA ;开中断 开中断 SJMP $
实验四、 实验四、定时器计数器实验
实验目的: 一、实验目的:
1、掌握单片机定时器的工作原理,体会定时器的使用特点; 、掌握单片机定时器的工作原理,体会定时器的使用特点; 2、学习 内部定时/计数器的使用和编程方法 、学习8031内部定时 计数器的使用和编程方法; 内部定时 计数器的使用和编程方法; 3 、进一步掌握中断的技术编程方法和特点; 进一步掌握中断的技术编程方法和特点; 4、体会定时器中断提高键盘扫描和动态显示 效率。 、体会定时器中断提高键盘扫描和动态显示CPU效率。 效率
定时计数器实验
实验四定时/计数器实验一、实验目的1.学习80C51 内部定时/计数器使用方法2.学习计数器各种工作方式的用法3.进一步掌握中断处理程序的编写方法二、实验说明关于内部定时/计数器的编程主要是定时常数的设置和有关控制寄存器的设置。
内部计数器在单片机中主要有定时器和计数器两个功能。
定时/计数器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。
TMOD 用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。
TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
三、实验电路图本实验用到80C51 MCU 模块(C 区),八位逻辑电平显示模块(E5 区)和单次脉冲模块(G3 区)。
80C51 MCU 模块电路原理参考附录三,八位逻辑电平显示模块电路原理图参考实验一图1.1,单次脉冲模块电路原理参考实验三图3.1。
四、实验步骤实验(一):计数器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 烧录器的使用查看附录二)实验(二):定时器1.用二导线连接80C51 MCU 模块的P1.0 到八位逻辑电平显示模块的任一只发光二极管上。
MSP430单片机定时器实验报告
实验四定时器实验实验目的:MPS430F5529片内集成的定时器A的使用,学习计数器的补捕获比较模块的使用。
实验内容:定时器采用辅助时钟ACLK作为计数脉冲,fACLK=32768Hz,实现以下功能:1.定时器TA0延时1s,点亮或熄灭LED6,即灯亮1s灭1s,如此循环,采用中断服务程序实现。
2.定时器TA0延时1s,点亮或熄灭LED4,采用捕获比较器CCR0的比较模式,设定输出方式,输出方波,不用中断服务程序3.采用捕获比较器CCR1的比较模式LED5,设定输出方式,输出PWM波形,使LED 亮2s,灭1s。
4.用定时器实现30s倒计时,在液晶模块上显示,每过一秒显示数字变化一次。
5.使用TA1的捕获比较器CCR0捕获按键的间隔时间,在液晶模块上显示。
程序代码:程序1:#include <msp430f5529.h>void main(){WDTCTL = WDTPW + WDTHOLD; //关看门狗P1DIR |= BIT3; //设置P1.0口方向为输出。
TA0CCTL0 = CCIE; //设置捕获/比较控制寄存器中CCIE位为1,//CCR0捕获/比较功能中断为允许。
TA0CCR0 = 32767; //捕获/比较控制寄存器CCR0初值为32767TA0CTL = TASSEL_1 + MC_1+TACLR; //设置定时器A控制寄存器TACTL,//使时钟源选择为SMCLK辅助时钟。
//进入低功耗模式LPM0和开总中断_BIS_SR(LPM0_bits +GIE);}//定时器A 中断服务程序区#pragma vector=TIMER0_A0_VECTOR__interrupt void Timer_A (void){P1OUT ^= BIT3; //P1.0取反输出}实验现象:实验开始后,实验板上LED6亮灭闪烁,间隔为1s。
程序2:#include <msp430f5529.h>void main(void){WDTCTL = WDTPW + WDTHOLD; // 关狗P1DIR |= BIT1; // P1.1 设置为输出P1SEL |= BIT1; // P1.1 输出使能TA0CCR0 = 60000; // PWM PeriodTA0CCTL0 = OUTMOD_4; // CCR1 模式4TA0CCR1 = 30000; // CCR1 PWM duty cycleTA0CTL = TASSEL_1 + MC_1 + TACLR; // ACLK, up mode, clear TAR__bis_SR_register(LPM3_bits); // Enter LPM3__no_operation(); // For debugger}实验现象:实验开始后,实验板上LED4亮灭闪烁,间隔为1s。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1、熟悉LF2407的定时器;
2、掌握LF2407定时器的控制方法;
3、学会使用定时器中断方式控制程序流程。
二、实验设备
计算机,CCS 2.0版软件,DSP硬件仿真器,Exp4实验箱。
三、实验源程序
#include "DspRegDefine.h"
#define UCHARunsigned char
asm(" nop ");
asm(" nop ");
asm(" nop ");
}
void Delay(int numbers)
{int i,j;
for(i=0;i<4000;i++)
for(j=0;j<numbers;j++);
}
void set_t0()
{
asm(" ssbx intm");
*(unsigned int*)TCR=0x0010;
*(unsigned int*)SWCR=0x0001;
*(unsigned int*)BSCR=0xf800;
asm(" ssbx intm "); //Disable all mask interrupts
*(unsigned int*)IMR=0x0;
*(unsigned int*)IFR=0xffff;
cpu_init();
asm(" nop ");
set_t0();
asm(" nop ");
for(;;)
{
if(flag==1)
port8001=OUTH;
else
port8001=OUTL;
}ห้องสมุดไป่ตู้
}
interrupt void Tint0()
{
TIMER++;
if(TIMER%50==0)
flag=flag^1;
#define UINT16unsigned int
#define UINT32unsigned long
#define TRUE1
#define FALSE0
#define OUTH 0x5555
#define OUTL 0xaaaa
ioport UINT16 port8001; //定义输出io端口为0x8001;
}
四、实验结果说明
LF2407的通用定时器功能强大,除了做通用定时使用外,还可以配合事件管理器模块产生PWM波形。可以被特定的状态位实现停止、重新启动、重设置或禁止,可以使用该定时器产生周期性的CPU中断。
在本系统中,时钟频率为40MHz,设置相应寄存器,使得到每1/1000秒中断一次,通过累计1000次中断,就能产生1秒钟的定时。
unsigned int flag;
unsigned int TIMER=0;
void cpu_init(void);
void set_t0();
void Delay(int numbers);
void cpu_init(void)
{
asm(" nop ");
asm(" nop ");
asm(" nop ");
*(unsigned int*)PRD=0x30d3;
*(unsigned int*)IMR=*(unsigned int*)IMR|0x0008;
*(unsigned int*)IFR=*(unsigned int*)IFR;
asm(" rsbx intm");
}
void main()
{
flag=0;
*(unsigned int*)CLKMD=0x0;
while(((*(unsigned int*)CLKMD)&01)!=0);
*(unsigned int*)CLKMD=0x07ff;
*(unsigned int*)PMST=0x3FF2;
*(unsigned int*)SWWSR=0x7fff;