单片机定时器实验报告doc
单片机定时器实验报告
一、实验目的1. 理解单片机定时器的工作原理和功能。
2. 掌握单片机定时器的编程方法,包括初始化、设置定时时间、启动定时器等。
3. 学会使用定时器实现定时功能,并通过实验验证其效果。
二、实验器材1. 单片机实验板2. 连接线3. 51单片机4. 计时器5. 示波器6. 电脑7. Keil软件三、实验原理定时器是单片机的一种重要外设,用于实现定时功能。
51单片机内部有两个定时器,分别为定时器0和定时器1。
定时器的工作原理是通过定时器计数器对机器周期进行计数,当计数器达到设定值时,定时器溢出,并产生中断请求。
定时器0和定时器1都具有四种工作模式,分别为:1. 模式0:13位定时器/计数器2. 模式1:16位定时器/计数器3. 模式2:8位自动重装模式4. 模式3:两个8位计数器本实验采用定时器0工作在模式1,实现50ms的定时功能。
四、实验步骤1. 将单片机实验板连接到电脑,并启动Keil软件。
2. 创建一个新的项目,并添加51单片机头文件(reg51.h)。
3. 编写定时器初始化函数,设置定时器0工作在模式1,并设置定时时间为50ms。
4. 编写定时器中断服务函数,用于处理定时器溢出事件。
5. 编写主函数,设置定时器中断,并启动定时器。
6. 编译并下载程序到单片机实验板。
7. 使用示波器观察定时器0的溢出信号。
五、实验代码```c#include <reg51.h>#define TIMER0_MODE1 0x01// 定时器0初始化函数void Timer0_Init() {TMOD &= 0xF0; // 清除定时器0模式位TMOD |= TIMER0_MODE1; // 设置定时器0工作在模式1TH0 = 0xFC; // 设置定时器0高8位初值TL0 = 0x18; // 设置定时器0低8位初值ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}// 定时器0中断服务函数void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新加载定时器0高8位初值TL0 = 0x18; // 重新加载定时器0低8位初值// ... (其他处理)}void main() {Timer0_Init(); // 初始化定时器0while(1) {// ... (其他处理)}}```六、实验结果与分析1. 编译并下载程序到单片机实验板,使用示波器观察定时器0的溢出信号,可以看到定时器0每隔50ms产生一个溢出信号。
单片机定时器实验报告
单片机定时器实验报告
单片机定时器实验报告
简介
•实验名称:单片机定时器实验
•实验目的:掌握单片机中定时器的工作原理及使用方法•实验设备:单片机开发板、电源等
实验内容
1.单片机定时器的基本概念和原理
2.单片机定时器的分类和特点
3.实验步骤和流程
–步骤1:搭建实验电路
–步骤2:编写单片机程序
–步骤3:下载程序到单片机
–步骤4:观察定时器的工作情况
4.实验结果和分析
实验结果
•在实验过程中,我们成功搭建了单片机定时器实验电路,并编写了相应的程序。
通过下载程序到单片机,观察到定时器按照预设
的时间间隔产生中断,并执行相应的任务。
•实验结果表明,我们掌握了单片机定时器的使用方法,可以实现定时功能。
实验分析
•单片机定时器是一种重要的计时和控制设备,广泛应用于各种电子设备中。
•通过本次实验,我们深入了解了单片机定时器的工作原理和使用方法,对于日后的电子设计和开发有着重要的意义。
实验总结
•通过本次实验,我们学习了单片机定时器的基本知识,掌握了单片机定时器的使用方法,并成功实现了定时功能。
•在实验过程中,我们发现了一些问题,并通过调试和修改程序进行了解决。
这对我们提高了动手实践和问题解决能力有很大帮助。
•通过本次实验,我们对于单片机定时器有了更深入的了解,为今后的学习和应用打下了坚实的基础。
参考资料
•《单片机原理与应用》
•单片机实验教材及课件。
定时器计数器应用实验报告
实验名称:定时器/计数器应用实验日期:见自己实验数据得分:同组人:不填指导教师:姓名一、实验目的1.掌握51单片机定时器/计数器的基本结构、工作原理和工作方式。
2.掌握定时器/计数器T0、T1工作在定时器和计数器两种状态下的编程方法。
3.学习和掌握定时器/计数器工作在定时器和计数器两种状态下,分别采用中断和查询方式控制的编程方法。
4.熟练掌握利用软件扩展定时器/计数器量程的原理和编程技巧。
二、实验设备PC机一台,单片机实验系统一套三、实验内容设定时器/计数器工作于定时方式,定时时间为100ms,每当100ms到申请中断。
每10秒种将A的内容循环左移一次,送P1口显示。
四、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1。
它们有两种工作状态,可以工作在定时方式和计数方式;定时是对内部的机器周期进行加法计数,计数是对外部输入的计数脉冲进行加法计数,T0的外部计数脉冲从P3.4引脚输入,T1的外部计数脉冲从P3.5引脚输入;计数满产生溢出,硬件使定时器/计数器T0、T1的中断请求标志TF0、TF1置位;如果定时器/计数器允许中断,则可以采用中断方式进行溢出处理,而如果定时器/计数器不允许中断,则可以采用查询方式进行溢出处理。
若定时器/计数器T0工作在定时状态,在实验系统的晶振频率f OSC=12MH Z时,T0工作在方式1,16位最大计数量程,最长的定时时间是65mS多,要想实现10S定时,必须对T0进行量程扩展。
实验中采用R7进行软件扩展,即R7对T0定时50mS进行计数,计数200次就是定时10S。
每10S对累加器A进行一次左移,然后送P1口显示。
实验电路连接图如图1所示。
图1 定时器/计数器应用实验接线图根据此实验原理编写的实验源程序清单见附页。
五、实验步骤1.在E盘下为工程建立文件夹姓名3;2.新建工程项目文件姓名3.uv2,保存在文件夹姓名3中,并为工程选择目标器件为AT公司的AT89S51;3.编辑源程序,建立源文件姓名3.ASM,保存在文件夹姓名3中;4.将源文件姓名3.ASM添加到工程项目组中;5.设置调试环境,选择调试模式为Proteus软件仿真;6.运行程序,根据设计的数据记录表格进行实验,观察发光管显示的状态,并记录实验现象;7.实验数据经过实验指导教师检查正确后,实验结束。
单片机实习报告定时器
单片机实习报告——定时器一、实习目的通过本次单片机实习,使我对单片机的工作原理和应用有更深入的了解,特别是定时器的工作原理和编程方法。
同时,培养我动手实践能力和团队协作能力,提高我在实际工程中的应用能力。
二、实习内容本次实习主要分为两个部分:定时器的原理学习和定时器的应用实践。
在原理学习部分,我通过阅读相关资料和教材,对定时器的工作原理、工作模式和编程方法有了深入的了解。
在应用实践部分,我参与了团队的项目,通过实际操作,对定时器的应用有了更直观的认识。
三、实习过程1. 定时器原理学习在定时器原理学习部分,我首先了解了定时器的基本概念,定时器是一种能够根据设定的时间间隔产生中断的硬件设备。
然后,我学习了定时器的工作原理,包括定时器的工作模式、计数器、控制寄存器等。
最后,我掌握了定时器的编程方法,通过编写程序实现定时器的定时功能。
2. 定时器应用实践在定时器应用实践部分,我参与了团队的项目。
我们选择了一个简单的应用场景,利用定时器实现一个周期性的信号输出。
我负责编写定时器的程序,设置定时器的工作模式和计数器值,实现定时器的定时功能。
同时,我还参与了团队的讨论,提出了改进意见和解决方案。
四、实习收获通过本次实习,我对定时器的工作原理和编程方法有了更深入的了解,掌握了定时器的应用方法。
同时,我在实际操作中培养了动手实践能力,提高了团队协作能力。
此外,我还学会了如何查阅相关资料和教材,提高了自己的自学能力。
五、实习总结本次实习让我对单片机的定时器功能有了更深入的了解,通过实际操作,使我对定时器的应用有了更直观的认识。
同时,本次实习培养了我的团队协作能力和动手实践能力,提高了我在实际工程中的应用能力。
在今后的学习和工作中,我将继续努力,不断提高自己的技能水平,为我国的电子科技事业做出贡献。
单片机原理与应用实验报告5——秒表定时器实验
大连理工大学软件学院《单片机原理与应用》实验报告姓名:学号:班级:姓名:学号:班级:组号:实验箱编号:实验时间:月日实验室:嵌入式实验室实验台:Embest Edukit-III平台指导教师:侯刚成绩:实验五:秒表定时器实验一、实验目的和要求题目:秒表定时器实验实验目的1. 学习单片机的基本接口技术。
2. 学习74HC595、74HC138使用及与51单片机的控制方法。
实验要求1.通过按键控制,完成数码管的显示计数控制。
2. 用汇编语言设计程序,完成8个数码管的显示控制。
当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。
当再次按下INT 按钮时,停止计数。
二、实验原理和内容实验内容:用汇编语言设计程序,完成8个数码管的显示控制。
当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。
当再次按下INT 按钮时,停止计数。
实验原理:1.根据原理图,分析工作原理,有P0进行取段码,P2.0 P2.1 P2.2进行取位码。
2.使用定时器进行计时。
根据所给开发板上的晶振频率,计算出计时器所付初值,设置计时器TO在模式下工作,每次计时100ms后,转入数码管显示中断处理程序。
3.实验板为共阴极数码管显示,将对应的显示0~9的电信号依次存储在“数组表”中。
4.使用key1,key2两个按键,按下key1,开始计时。
按下key2,计时停止。
5.根据实验要求,采用T0,T1两个定时器,其中T0用来增加时间显示,T1为按暂停键时为LED显示管循环上电所用。
6.每部分中断程序用寄存器间接寻址的方式获取显示数字的电信号量。
并进行循环上电,保证数字的亮度。
三、主要仪器设备及软件编程环境主要仪器:计算机编程软件,51电路开发板编程环境:uVision2 ,progisp烧写软件四、实验步骤与编程实验步骤:编写代码,编译,调试,烧写,完成实验。
51单片机定时器实验报告
51单片机定时器实验实验内容:实验内容:(1)编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。
C语言程序#include<reg52.h>#define uint unsigned int#define ucahr unsigned charsbit FM=P0^0;void main(){TMOD=0x01;TH0=(65535-50000)/256;TH0=(65535-50000)%256;EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1);}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256; FM=~FM;}汇编程序ORG 0000HJAMP MAINORG 000BHLJMP INT0_INTORG 0100HMIAN: SETB EASETB ET0AJMP $INT0_INT:MOV R2,#0FAHMOV R3,#0C8HDJNZ R3,$DJNZ R2,INT0_INTRETI(2)编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。
#include<reg52.h>#define uint unsigned int#define ucahr unsigned charuint num,num1;sbit FM=P0^7;int shi,ge,a;void delay(uint);void shumaguan();unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表void main(){TMOD=0x01;TH0=(65535-50000)/256; TH0=(65535-50000)%256; EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1){shumaguan();}}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256;num1++;if(num1==10) {num1=0;num++;shi=num/10;ge=num%10;if(num==100) {num=0;}}}void shumaguan() {P3=0x01;P2=table[shi];delay(5);P3=0x02;P2=table[ge]; delay(5);void zuoyi(){a=~P3;a=a<<1;P3=~a;if(P3==0xfb){P3=0xfe;}}void delay(uint x) {int i,j;for(i=0;i<x;i++)for(j=0;j<110;j++);}(3)编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms 使两位数码管从00、01、02……98、99每间隔500ms加1显示。
51单片机定时器计数器汇编实验报告
批阅长沙理工大学实验报告年级光电班号姓名同组姓名实验日期月日指导教师签字:批阅老师签字:内容一、实验目的四、实验方法及步骤二、实验原理五、实验记录及数据处理三、实验仪器六、误差分析及问题讨论单片机定时器/计数器实验一、实验目的1、掌握51单片机定时器/计数器的基本结构。
2、掌握定时器/计数器的原理及编程方法。
二、实验仪器1、装有keil软件的电脑2、单片机开发板三、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1,他们有四种工作方式,现以方式1举例。
若定时器/计数器0工作在方式1,计数器由TH0全部8位和TL0全部8位构成。
方式1作计数器用时,计数范围是:1-65536(2^16);作定时器用时,时间计算公式是:T=(2^16-计数初值)×晶振周期×12。
四、实验内容1、计算计数初值单片机晶振频率为6MHz,使用定时器0产生周期为120000μs等宽方波连续脉冲,并由P1.0输出。
设待求计数初值为x,则:(2^16-x)×2×10^-6 = 120000×10^-6解得x=5536。
二进制表示为:00010101 10100000B。
十六进制为:高八位(15H),低八位(A0H)。
2、设置相关控制寄存器TMOD设置为xxxx0001B3、程序设计ORG 0000HAJMP MAINORG 30HMAIN: MOV P1,#0FFH ;关闭所有灯ANL TMOD,#0F0H ;置定时器0工作方式1ORL TMOD,#01H ;不影响T1的工作MOV TH0,#15H ;设置计数初始值MOV TL0,#0A0HSETB EA ;CPU开中断SETB ET0 ;定时器0开中断SETB TR0 ;定时器开始运行LOOP: JBC TF0,INTP ;如果TF0=1,则清TF0并转到INTPAJMP LOOP ;然跳转到LOOP处运行INTP: MOV TH0,#15H ;重新设置计数初值MOV TL0,#0A0HCPL P1.0 ;输出取反AJMP LOOPEND AJMP LOOPEND4、实验仿真新建工程项目文件中,并为工程选择目标器件为AT公司的AT89S51。
中断及定时器实验报告
一、实验目的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灯闪烁频率。
单片机实验三-定时器实验
实验三 定时器实验 ——循环彩灯实验1、 实验目的1. 学习8051内部计数器的使用和编程方法。
2. 进一步掌握中断处理程序的编写方法。
2、 实验原理1. 定时常数的确定定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
比如实验中时钟频率为12MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒产生一次中断,CPU响应中断后将RO中计数值减一,令RO=0AH,即可实现0.5秒延时。
初值=65536-500002. 初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
3. 设计中断服务程序和主程序中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
3、 实验要求由8051内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。
P1口的P1.0~P1.7分别接发光二极管的L1~L8。
要求编写程序模拟一循环彩灯。
彩灯变化花样可自行设计。
建议变化花样为:L1、L2、…L8依次点亮;L1、L2、…L8依次熄灭;L1、L2、…L8全亮、全灭。
各时序间隔为0.5秒。
让发光二极管按以上规律循环显示下去。
4、 实验连线P1.0~P1.7分别接发光二极管L1~L8即可。
5、 程序org 0000hLjmp mainorg 000BhLjmp INTTorg 0100hmain:mov sp,#60h /*设置堆栈指针mov TMOD,#01h /*设置TMOD,仅由TRx控制中断,定时器模式,工作方式1mov TH0,#3CHMOV TL0,#0B0H /*设置初值x=65536-50000 (12M晶振)SETB EA /*开中断SETB ET0 /*开定时器中断T0SETB TR0 /*启动定时器MOV R1,#8 /*中断子程序工作方式1的工作次数MOV R2,#8 /*中断子程序工作方式2的工作次数MOV R3,#1 /*中断子程序工作方式3的工作次数MOV R0,#0AH /*延时次数(产生中断的次数)MOV A,#0FFHWAIT1:AJMP WAIT1INTT:MOV TH0,#3CHMOV TL0,#0B0H /*计数器赋初值DJNZ R0,RETT /*R0减1后判断延时的次数是否足够,足够顺序执行,不足够跳中断返回CJNE R1,#0,INTT1 /*判断彩灯工作方式1工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式CJNE R2,#0,INTT2 /*判断彩灯工作方式2工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式CJNE R3,#0,INTT3 /*判断彩灯工作方式3工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式 JMP INTT4 /*跳转执行第4种方式INTT1:MOV R0,#0AH /*重新向延时次数计数器赋初值CLR C /*C清零RLC A /*带进位左循环移位,低位移入0,即LED相继点亮(低电平亮)DEC R1 /*工作次数减1JMP RETT /*跳中断返回INTT2:MOV R0,#0AHSETB C /*C置1RRC A /*带进位右循环移位,高位移入1,即LED相继熄灭(低电平灭)DEC R2JMP RETTINTT3:MOV R0,#0AHMOV A,#0 /*8位LED灯全部点亮DEC R3JMP RETTINTT4:MOV R0,#0AHMOV P1,#0FFH /*8位LED灯全部熄灭MOV R1,#8MOV R2,#8MOV R3,#1MOV R0,#0AHMOV A,#0FFH /*重新装入相应初值,循环执行彩灯的四种工作方式JMP INTTRETT:MOV P1,A /*输出彩灯的各种状态RETIEND6、 结论通过本次试验掌握了8051内部计数器的使用和编程方法。
单片机定时器计数器实验报告
文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.单片机定时器计数器实验报告篇一:单片机计数器实验报告篇一:单片机计数器实验报告计数器实验报告计数器实验报告㈠ 实验目的实验目的1. 学习单片机内部定时学习单片机内部定时//计数器的使用和编程方法;计数器的使用和编程方法;2. 2.进一步掌握中断处理程序的编程方法。
进一步掌握中断处理程序的编程方法。
㈡ 实验器材实验器材1. 2. 3. 4. 5.G6W 仿真器一台仿真器一台 MCS MCS —51实验板实验板 一台一台一台 PC PC 机 一台一台一台 电源 一台一台一台 信号发生器信号发生器 一台一台㈢ 实验内容及要求实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4P3.4((T0T0)引脚进行计数,使用)引脚进行计数,使用8051的T1作定时器,作定时器,50ms 50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED 发光二极管8421码来表示),1秒后再次测试。
秒后再次测试。
㈣ 实验说明实验说明1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入引入定时器T0T0。
单片机在每个机器周期采样一次输入波形,。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
能超过机器周期频率。
2. 2. 计数脉冲由信号发生器输入(从计数脉冲由信号发生器输入(从T0端接入)。
3. 计数值通过发光二极管显示,要求:显示两位,十位用L4L4~~L1的8421码表示,个位用L8L8~~L5的8421码表示码表示4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动算出每分钟脉搏跳动次数并显示次数并显示㈤ 实验框图实验框图((见下页见下页) )程序源代码程序源代码 ORG 00000H LJMP MAIN ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOVTH1,#3CHMOV TL0,#00H;T0的中断入口地址的中断入口地址 ; ;设置T1做定时器做定时器,T0,T0做计数器,都于方式1工作工作 ; ;装入中断次数装入中断次数装入中断次数 ; ;装入计数值低装入计数值低8位 ;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断中断 SETB EA ; SETB EA ;允许CPU 中断中断 SJMP $; SJMP $;等待中断等待中断MAIN1: PUSH PSW PUSH ACC CLR TR0CLR TR1 MOV TL1,#0B0H MOV TH1,#3CHDJNZ 20H,RETUNT MOV 20H ,#14HSHOW: MOV R0,TH0 MOV R1,TL0MOV A,R1 MOV B,#0AH DIV ABMOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOVC,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0MOV P1.7,C ;保护现场保护现场;装入计数值低8位;装入计数值高8位,50ms;,50ms;允许允许T1中断中断;未到1s,1s,继续计时继续计时继续计时 ;1s ;1s 到重新开始到重新开始;显示计数器T0的值的值;;读计数器当前值读计数器当前值 ; ;将计数值转为将计数值转为十进制十进制;显示部分,将A 中保存的十位赋给L0~L3 将B 中保存的各位转移到A 中 ;将个位的数字显示在将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器将计数器T0清零清零 MOV TH0,#00H MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回中断返回在频率为1000HZ 时,时,L0~L7L0~L7显示为5050;频率为;频率为300HZ时,时,L0~L7L0~L7显示为1515,结果正确,程序可以正确运行。
单片机定时器实验报告
单片机定时器实验报告单片机定时器实验报告概述:单片机是一种集成电路,具有微处理器核心,用于控制和执行各种任务。
在嵌入式系统中,单片机的定时器是一个重要的组件,用于生成精确的时间延迟和周期性的信号。
本实验旨在通过使用单片机的定时器模块,学习和掌握定时器的基本原理和应用。
实验目的:1. 理解单片机定时器的工作原理;2. 掌握定时器的基本配置和使用方法;3. 实现定时器产生精确的时间延迟和周期性的信号。
实验器材:1. 单片机开发板;2. USB数据线;3. 电脑。
实验步骤:1. 连接单片机开发板和电脑,确保开发板与电脑正常通信;2. 打开开发板的开发环境软件,创建一个新的工程;3. 在工程中选择定时器模块,并进行基本配置,如选择定时器模式、预分频系数等;4. 编写程序代码,实现定时器功能。
可以选择定时产生一个精确的时间延迟,或者产生一个周期性的信号;5. 将程序代码下载到单片机开发板中,并运行程序;6. 观察实验结果,验证定时器的工作是否符合预期。
实验结果:经过实验,我们成功实现了单片机定时器的功能。
通过设置定时器的工作模式和预分频系数,我们可以生成精确的时间延迟和周期性的信号。
实验结果与预期一致,证明了定时器的可靠性和准确性。
实验总结:通过本次实验,我们深入了解了单片机定时器的原理和应用。
定时器作为嵌入式系统中的重要组件,具有广泛的应用前景。
掌握定时器的基本配置和使用方法,对于开发嵌入式系统和实现各种功能非常重要。
通过实验,我们不仅学到了理论知识,还掌握了实际操作的技巧和经验。
然而,单片机定时器的应用不仅仅局限于时间延迟和周期性信号的生成。
在实际工程中,定时器还可以用于测量脉冲宽度、频率计数、PWM波形生成等。
因此,我们在以后的学习和工作中,应该进一步探索和应用定时器的其他功能,以满足不同场景下的需求。
总之,单片机定时器是嵌入式系统中不可或缺的组件之一。
通过本次实验,我们对定时器的原理和应用有了更深入的了解。
单片机实验二 定时器实验程序
sbit L3=P0^7;
unsigned char keynum;
unsigned int lasttime=100;
bit bset=0;
unsigned char keyscan();
void display();
unsigned char getkey();
void set();
code unsigned char table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
sbit H1=P3^6;
sbit H2=P3^7;
sbit L1=P0^5;
void main()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
P1M1=0x00;
P1M0=0xff;
while(1)
{
keynum=keyscan();
display();
set();
}
}
void timer0() interrupt 1
{
P1=0X00;
W1=1;
W2=0;W3=1;W4=1;
P1=table[(unsigned char)(lasttime%1000/100)]|a;
}
else if(ct1<60)
{
P1=0X00;
W2=1;
W3=0;W4=1;W1=1;
P1=table[(unsigned char)(lasttime%1000%100/10)]|a;
实验三 定时器实验 实验报告
课程名称:单片机实验题目:实验三定时实验学生姓名:专业:电子信息科学与技术班级:学号:指导教师:张涛实验三 定时器实验一、实验目的1、掌握单片机系统定时器断的原理及使用方法。
二、实验原理 (一)、单片机定时器/计数器的结构 1.定时器/计数器组成框图8051单片机内部有两个16位的可编程定时器/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。
此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。
_____INT1(P3.3)_____INT0(P3.2)T1(P3.5)T0(P3.4)图 8051定时器/计数器逻辑结构图由图可知,8051定时器/计数器由定时器 T0、定时器T1、定时器方式寄存器TMOD 和定时器控制寄存器TCON 组成。
2.定时/计数器的方式寄存器和控制寄存器定时/计数器的初始化通过定时/计数器的方式寄存器TMOD 和控制寄存器TCON 完成。
1)定时/计数器方式寄存器TMODTMOD 为T1、T2的工作方式寄存器,其格式如下:TMOD D7 D6 D5 D4 D3 D2 D1 D0(89H) TMOD 的低 (1(2)T /C :功能选择位。
0/C =时,设置为定时器工作方式;1/C =时,设置为计数器工作方式。
(3)GATE :门控位。
当GA TE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须0INT (P3.2)或1INT (P3.3)为高电平方可启动定时器,即允许外中断0INT 、1INT 启动定时器。
TMOD 不能位寻址,只能用字节指令设置定时器工作方式,高4位定义T1,低4位定义T0。
复位时,TMOD 所有位均置0。
2)定时器/计数器控制寄存器TCONTCON 的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。
定时器控制字TCON 的格式如下:TCON (88H ) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H(1) TCON.7 TF1:定时器1溢出标志位。
定时器实验报告
定时器实验报告引言定时器是现代电子设备中常见的一种功能模块,它可以提供精确的时间计量和控制。
本实验旨在通过对定时器的使用和调试,深入了解定时器的工作原理和应用。
一、实验目的本次实验的主要目的有三点:1. 了解定时器的基本原理和功能;2. 学会使用定时器进行时间计量和控制;3. 掌握定时器在电子设备中的应用。
二、实验装置和器材1. 单片机开发板;2. 电源;3. 连接线。
三、实验原理定时器是一种基于震荡电路和计数器的电子模块,通过内部的晶振或外接的时钟信号驱动,能够按照设置的时间间隔产生特定的脉冲或控制信号。
四、实验操作步骤1. 将开发板上的定时器模块与电源和单片机连接好;2. 在代码中设置定时器的工作模式和计数器初值;3. 运行程序,观察定时器是否正常工作;4. 尝试调整定时器的工作参数和配置,观察其对输出信号的影响。
五、实验结果与分析在本次实验中,经过不断的尝试和调试,我们成功实现了以下几个功能:1. 使用定时器生成1秒的周期信号,并控制LED灯的闪烁。
通过观察LED灯的亮灭状态,我们可以直观地判断定时器的工作是否正常。
2. 设定定时器的计数器初值为10,并在每次触发计数器溢出时输出一个特定的脉冲信号。
通过示波器测量输出信号的时间间隔,我们可以验证定时器的精度和稳定性。
3. 调整定时器的工作参数,如工作模式、计数器分频倍数等,观察对输出信号的影响。
我们发现不同的参数设置会导致输出信号的频率、占空比等发生变化,进一步验证了定时器的灵活性和可调性。
六、实验总结通过本次实验,我们对定时器的基本原理和使用方法有了更深入的了解。
定时器作为一种常用的电子模块,广泛应用于各种电子设备中,如计时器、时钟、PWM信号发生器等。
掌握定时器的使用技巧,可以为我们在电子设备的设计与开发中提供有力的支持。
实验中我们发现,定时器的性能主要受到两个因素的影响,即晶振或时钟信号的精度和定时器的配置参数。
在实际应用中,我们需要根据具体需求选择合适的硬件和适当的软件设置,以保证定时器的稳定性和精确性。
单片机实验定时器 Timer AB
单片机原理实验报告学生姓名所在班级实验日期实验组成员实验成绩2014.5.15实验三、定时器Timer A/B【实验目的】1. 熟悉μ’nSP™IDE集成开发环境的使用方法;1. 通过实验熟悉定时器Timer A/B 的工作原理。
2. 掌握预置数单元P_TimerA/B_Data 和定时控制单元P_TimerA/B_Ctrl 的设置方法3. 掌握定时器Timer A/B 的编程方法。
【实验设备】1. 装有Windows 系统和µ’nSP™ IDE 集成开发环境的PC 机一台,µ’nSP™十六位单片机实验箱一个,示波器一台。
2. 本实验用到的实验箱硬件模块为:SPCE061A 核心及周边电路模块(包含32 个I/O 口),发光二极管电路模块。
【实验要求】1. 编程要求:编写一个汇编语言程序。
2. 实现功能:设置不同的计数初值、不同的占空比和不同的时钟源,IOB8 同时和一个发光二极管和示波器连接,用户可以通过观察二极管点亮的持续时间和熄灭持续的时间,通过示波器观察信号波形的占空比变化和频率。
3. 实验现象:计数初值不同、占空比不同、时钟源不同,发光二极管的亮灭状态变化就不同。
【实验原理】TimerA 和TimerB 定时器启动后,在预置数单元P_TimerA_Data 或P_TimerB_Data 内置入一个计数初值N 后,在所选的时钟源频率下开始向计数增加的方向计数N+1,N+2,……FFFEH,当计数到FFFFH 后,再来一个计数时钟则溢出到0000H,这时的计数时间为(FFFF-N)*1/(TimerA 或者TimerB 的时钟源频率)。
比如,当启动TimerA 定时器后,TimerA 时钟源频率选择为1024Hz,计数初值设置为0xF7FF,则它的计数时间为(FFFF-F7FF)*1/1024=2s。
产生溢出时,一方面,如果已经打开TimerA 或者TimerB中断,会产生中断请求信号TA_TimeOut_INT 或TB_TimeOut_INT,被CPU 响应后执行相应的中断服务程序。
51单片机定时器计数器汇编实验
实验三、定时器/计数器实验报告一、实验内容1、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.7接到示波器显示该方波波形;用T1作计数器对从P3.6输出的方波进行计数,计数结果通过P1口输出到发光二极管显示。
(计算机仿真)2、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.6输出的方波接到P3.5口通过T1作计数器对该方波进行计数,计数值由LED显示,用存储示波器显示P3.7输出的方波。
(实验台验证)3、设计一个60秒计时器,秒计时结果用两位LED数码管显示。
(计算机仿真)二、实验仿真图(1)脉冲计数实验程序ORG 0000HBEGIN:MOV TMOD,#51H MOV TL0,#0F0HMOV TH0,#0DBHMOV TH1,#00HMOV TL1,#00HMOV P1,#00HMOV P0,#00HMOV P2,#00HMOV R3,#00HMOV R4,#00HSETB TR0SETB TR1S1: MOV R1,#33HMOV A,R4MOV R5,TL1ADD A,R5MOV P1,AMOV R2,TL1CJNE R2,#10,S2MOV TH1,#00HMOV TL1,#00HINC R3MOV A,R3MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P2,AMOV P0,#3FHMOV A,R3MOV B,#0AHMUL ABMOV R4,AMOV P1,R4AJMP NEXTS2: MOV R1,#33HMOV DPTR,#TAB1MOV A,TL1MOVC A,@A+DPTRMOV P0,AAJMP NEXT LOOP: JBC TF0,NEXT AJMP LOOPNEXT: MOV TL0,#0F0HMOV TH0,#0DBHDJNZ R1,LOOPCPL P3.6CPL P3.7AJMP S1TAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;(SW3,SW4为:00) END(2)60秒定时器实验程序ORG 0000HBEGIN:MOV TMOD,#51HTL0,#0F0HMOVMOVTH0,#0DBHTH1,#00HMOVTL1,#00HMOVR3,#00HMOVP0,#00HMOVP2,#00HMOVSETBTR0TR1SETBS1: MOV R1,#33HR2,TL1MOVR2,#10,S2CJNETH1,#00HMOVTL1,#00HMOVR3INCR3,#06H,S4CJNER3,#00HMOVS4: MOV A,R3DPTR,#TAB1MOVA,@A+DPTRMOVCP2,AMOVMOVP0,#3FHNEXTAJMPS2: MOV R1,#33HDPTR,#TAB1MOVA,TL1MOVA,@A+DPTRMOVCMOVP0,ANEXTAJMPLOOP: JBC TF0,NEXTLOOPAJMPNEXT: MOV TL0,#0F0HTH0,#0DBHMOVR1,LOOPDJNZP3.6CPLCPLP3.7S1AJMPTAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END。
单片机实验_中断、定时器
理工大学实验报告(模板)实验时间:年月日星期时间::~ :实验室(房间号):实验台:班级::指导教师签字:成绩:实验三外部中断/INT0实验一、实验目的和要求学习、掌握单片机的中断原理。
正确理解中断矢量入口、中断调用和中断返回的概念与物理过程。
学习编写“软件防抖”程序,了解“软件防抖”原理。
对/int0、/int1两个外部中断进行编程,其中:●主程序的功能:LDE灯“全亮”、“全灭”交替进行 --------(状态2);●Int0中断服务程序功能:2个相邻的LED灯被点亮且循环左移(状态0);●Int1中断服务程序功能:1个LED灯被点亮且循环右移 ---(状态1);【注意】:实验仪上的LED灯物理位置最左侧为d0;最右侧为d7。
二、实验算法1 在主程序中利用CPL P3.3的指令驱动其电平不断地转换(由逻辑笔电路做程序状态监视)。
2 在中断服务程序中将P3.3置位(P3.3=1),实现对计数器“加1”并(通过P1口)显示的功能。
3 中断结束后回到主程序,程序继续对P3.3的电平不断取反。
三、实验电路图四、实验流程图主程序入口INT0入口设置中断允许P3.2置1设置中断优先级调用延时子程序设TCON 计数器加一并显示CLR A开中断(P0)—(A) P3.2=0?调用延时子程序调用延时子程序(A)—(A) RETI INT1同理五、程序清单ORG 0000HLJMP STARTORG 0003HLJMP INT_0ORG 0013HLJMP INT_1ORG 0100H ;主程序START: MOV SP,#60HMOV IE,#85HMOV IP,#04HMOV TCON,#05HLP1: M OV P0,ALCALL DELAYCPL ASJMP LP1INT_0: PUSH PSW ;中断T0入口PUSH ACCLCALL DELAYMOV A,#3FHLP2: M OV P0,ARR ALCALL DELAYSETB P3.2JNB P3.2,LP2LCALL DELAYPOP ACCPOP PSWRETIINT_1: PUSH PSW ;中断T1入口PUSH ACCLCALL DELAYLP3: M OV P0,ARL ALCALL DELAYSETB P3.3JNB P3.3,LP3LCALL DELAYPOP ACCPOP PSWRETIDELAY: PUSH 02HPUSH 03HMOV R2,#00HDL1: MOV R3,#00H DJNZ R3,$DJNZ R2,DL1POP 03HPOP 02HRETEND六、实验结果与分析LED灯按程序设计的规则亮灭,可调至3个状态,两个中断分高低优先级,实验成功。
C单片机定时器及数码管控制实验报告
C单片机定时器及数码管控制实验报告一、实验目的:1.理解单片机的定时器的工作原理和使用方法;2.掌握单片机控制数码管显示的方法;3.综合运用单片机定时器和数码管控制来实现对时间的计时功能。
二、实验器材:1.STC89C52单片机开发板;2.4位数码管;3.相关电源电缆;4.相关串口连接线;5.PC机。
三、实验原理:1.定时器的工作原理:定时器是单片机中的一个重要模块,它可以用来产生一定时间间隔的定时中断。
在STC89C52单片机中,有两个可编程定时器,分别是Timer0和Timer1、定时器的工作方式有两种:定时器工作模式和计数器工作模式。
通过设定定时器的工作模式、预分频系数以及计数初值,可以实现定时中断。
2.数码管的控制原理:数码管是一种常见的数码显示器材,一般由多个LED组成,通过对LED的开关控制来实现不同数字的显示。
使用单片机控制数码管可以实现数字的动态显示。
通常使用行扫描和列驱动两种方法来控制数码管的显示。
在本实验中,我们使用列驱动的方法来控制数码管的显示。
3.单片机定时器和数码管控制实验的原理流程:(1)初始化定时器设置,包括设定工作模式、预分频系数和计数初值。
(2)初始化数码管连接引脚,并将引脚置为输出状态。
(3)在定时器中断中,通过改变数码管显示的值来实现时间的动态显示。
四、实验步骤:1.硬件连线将STC89C52单片机开发板上的P0口连接到4位数码管的输入口,共7根线。
其中6根线对应4位数码管的6个段输入,另外1根线连接到4位数码管的控制端,用于控制数码管的选通位。
2.软件编程(1)定义头文件和端口变量#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit DIG1=P0^0; // 数码管第1位sbit DIG2=P0^1; // 数码管第2位sbit DIG3=P0^2; // 数码管第3位sbit DIG4=P0^3; // 数码管第4位sbit DULA=P0^4; // 数码管段选sbit WELA=P0^5; // 数码管位选uchar code ledData[16]={ // 共阳数码管动态显示数值表,共16个字符0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};(2)初始化函数void Init_Timer0(void) // 初始化定时器0TMOD,=0x01;//设定为定时器模式,工作模式1TH0=0xfc; // 给定初值,定时1msTL0=0x18;ET0=1;//打开定时器0中断TR0=1;//启动定时器0void Init_Timer1(void) // 初始化定时器1TMOD,=0x10;//设定为定时器模式,工作模式1TH1=0xf8; // 给定初值,定时10msTL1=0xcc;ET1=1;//打开定时器1中断TR1=1;//启动定时器1(3)定时器中断函数void Timer0Interrupt( interrupt 1 // 计时定时器中断函数static uchar count=0;TH0=0xfc;TL0=0x18;count++;if(count>=1000) // 1秒到count=0;LED_Place=0; // 置位数码管位置Digit_Index++; // 下一个要显示的数字if(Digit_Index>=8)Digit_Index=0;}if(LED_Place==1) // 第2位数码管LEDX=ledData[N%10];DIG2=0;DIG1=1;//第2位数码管显示}else if(LED_Place==2) // 第3位数码管LEDX=ledData[N/10%10];DIG3=0;DIG2=1;//第3位数码管显示}else if(LED_Place==3) // 第4位数码管LEDX=ledData[N/100%10];DIG4=0;DIG3=1;//第4位数码管显示}else // 第1位数码管LEDX=ledData[N/1000%10];DIG1=0;DIG4=1;//第1位数码管显示}}(4)主函数void mainInit_Timer0(; // 初始化定时器0Init_Timer1(; // 初始化定时器1EA=1;//全局中断使能while(1)//主函数其他处理}五、实验效果:经过上述步骤的硬件连接和软件编程,当单片机开始运行后,数码管将开始显示时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机定时器实验报告
篇一:单片机实验报告——定时器
实验四定时器实验
自动化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,0x
7f,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。
用一条8芯的杜邦线将单片机的P1与开发板的J3端子相连;用2条单芯杜邦线将单片机的P2.0、P2.1分别与开发板的位锁存(A)和段锁存(B)相连;用1个跳线将J50的两个端子连接,用于给数码管提供电源。
4.上机调试、运行程序。
5.记录实验程序。
6.分析实验中出现的问题。
7.独立完成实验报告。
五.实验总结:
通过本实验,我对定时器有了更深刻的理解。
更熟练的应用定时器中断。
并且我还额外扩展了本实验,实现了两位计数。
收获甚多。
篇二:51单片机定时器实验
单片机技术与应用
实验报告
实验名称:定时器实验
姓名:
学号:
班级:
指导老师:
完成时间:XX年4月25日
由8031内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。
P1口的P1.0-P1.7分别接八个发光二极管。
要求编写程序模拟一时序控制装置。
开机后第一秒钟L0,L2亮,第二秒钟L1,L3亮,第三秒钟L4,L6亮,第四秒钟L5,L7亮,第五秒L0,L2,L4,L6亮,第六秒钟L1,L3,L5,L7亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L0,L2亮,然后L1,L3亮......一直循环下去。
二.实验目的
1.学习8031内部计数器的使用和编程方法。
2. 进一步掌握中断处理程序的编程方法。
三.实验框图
程序框图:
#include
int aa,num;
char code table[]={0xfa,0xf5,0xaf,0x5F,0xAA,0x55,0x00,0xFF };
void main()
{
num=0;
aa=0;
TMOD=0x10;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET1=1;
TR1=1;
while(1)
{
if(aa==20)
{
aa=0;
if(num==8)
num=0;
P1=table[num];
num++;
}
}
}
void timer0() interrupt 3
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
五.实验总结
通过这次实验,加深了定时器的使用,以及定时器设置方法的应用,懂得了中断对于程序的作用和定时时间的设定。
在这次实验之前,我对中断的概念总是很模糊,不太明白中断子程序该在什么时候执行,直到自己动手用汇编编程,翻书仔细把书中关于中断的部分看了一遍,在结合书上的例题终于对中断有了个大致的了解。
篇三:实验四 AT89C51单片机定时器
实验四 AT89C51单片机定时器/计数器实验
实例二----航标灯控制器
一、实验目的
1.掌握AT89C51单片机定时器/计数器工作方式的设定;
2.掌握AT89C51单片机定时器/计数器程序的编写方法;
3.熟知单片机在航标灯控制器中的应用;
4.进一步练习单片机仿真器的使用.
二、实验设备
1.PC机(WINDOWS操作系统);
2.HF-MC01实验实训开发综合装置
3、伟福6000软件模拟器。
4. 伟福硬件仿真器
三、实验内容
1.认识整个航标灯控制系统的组成及组成系统的器件;
2.编程程序:
具体要求是:AT89C51的P0口作为输出(P0.0--P0.7),连接8路发光二极管L0--L7;编写软件使L0--L7亮50ms, 灭1s;周而复始。
4.仿真运行
四、实验方法步骤
1.电路设计
系统原理图参见图
4-1.
整个系统由24个器件组成,单片机的型号为ATMEL公司生产的AT89C51,其片内集成有FLASE型程序存储器,完全兼
容51系列单片机;系统使用12M晶振;复位电路采用常规的上电.手动复位电路.由于只使用片内程序存储器,/EA接+5V;P0口作为输出(P0.0--P0.7),连接8路发光二极管L0--L7,低电平驱动.
2.运行WAVE
方法可参见实验一内容
3.仿真器设置
方法可参见实验一内容
4.编写程序
自己按本实验要求编写程序,并完成程序的录入(SY4.ASM)。
(注意:录入源程序必须使用西文输入法, 保存文件时必须加上扩展名“.ASM”,并记录保存的文件夹路径。
)
5.对录入的源程序SY4.ASM进行编译
编译步骤为:点击“项目———全部编译”
若编译完成,在左下角的“信息窗口”将显示生成两个文件SY4.HEX和SY4.BIN。
若源程序在格式上有错误,则在“信息窗口”中出现错误提示,请检查源程序,修改后再进行编译,直至编译成功。
6. 硬件仿真运行接线方法
(1).将仿真器的仿真插头插入A单元的AT89C51插座;
(2).将仿真器通过串行电缆与计算机相连;
(3).将A单元的+5V.GND分别与Z单元的+5V.GND相连;
(4).将仿真器电源接入并打开.
7.硬件仿真运行
点击“仿真器——仿真器设置”
仿真器设置:①点击“仿真器——仿真器设置——语言”,选择“伟福汇编器”“混合十、十六进制”;②点击仿真器设置下的“仿真器”,选择 S51/S、 POD8X5X、8751(或AT89C51);将“使用伟福软件模拟器”选项上的“√”去掉;
③并将“通信设置”下的“使用伟福软件模拟器”选项上的“√”去掉,在通讯设置中选择正确的串行端口;④按“好”确认
如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现“硬件仿真”的对话框,并显示仿真器、仿真头的型号及仿真器的序列号。
表明仿真器初始化正确。
如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时应检查仿真器、仿着器的选择是否有错,硬件连接是否有错,检查纠正错误后,再次确认。
直至显示硬件仿真确认对话框。
观察A单元的八个发光二极管的发光情况,如果所观察到的现象不符合实验要求,则需检查并修改实验程序、检查硬件连接及仿真器设置是否正确。
五、实验报告要求
1.画出电路原理图
2.记录程序清单和执行结果。