标题: 单片机定时器、计数器实验 [打印本页]

作者: sqwwsq    时间: 2017-11-26 02:00
标题: 单片机定时器、计数器实验

一、实验名称

定时、计数器实验

二、实验目的及要求

1.掌握 51 单片机的定时/计数器工作原理。
2.编程实现定时和计数功能的控制。

三、实验主要仪器设备

PC机

单片机有 2 个 16 位的定时器/计数器,分别是 T0 和 T1。它们有两种工作状态,可以工作在定时方式和计数方式;定时是对内部的机器周期进行加法计数,计数是对外部输入的计数脉冲进行加法计数,T0 的外部计数脉冲从 P3.4 引脚输入,T1 的外部计数脉冲从 P3.5 引脚输入;计数满产生溢出,硬件使定时器/计数器 T0、T1 的中断请求标志 TF0、TF1 置位;如果定时器、计数器允许中断,则可以采用中断方式进行溢出处理,而如果定时器/计数器不允许中断,则可以采用查询方式进行溢出处理。

1.定时中断方式
2.计数器的应用
3.方波
4.蜂鸣器

六、实验步骤

源代码如下:

#include<reg51.h>
char i=100;
void main(){
              TMOD=0x01;
              TH0=0xee;
              TL0=0x00;
              P1=0x00;
              EA=1;
              ET0=1;
              TR0=1;
              while(1); { ;}
}
void time0() interrupt 1{
              TH0=0xee;
              TL0=0x00;
              i--;
              if(i<=0){
                            P1=~P1;
                            i=100;
              }
}            

源代码如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint i){
              uint j;
              for(;i>0;i--)              ;
}
void main(){
              TMOD=0X50;
              TH1=0XFF;
              TL1=0XFC;
              EA=1;
              ET1=1;
              TR1=1;
              while(1)              ;
}
void T1_int(void) interrupt 3{
              for(;;){
                            P1=0XFF;
                            delay(500);
                            P1=0;
                            delay(500);
              }
}                           



作者: 暖风798    时间: 2020-4-15 09:55
楼主,那个空心的引脚怎么弄?还有就是如何让没有连线的引脚对应起来?
作者: 陈朱联    时间: 2020-5-21 17:53
暖风798 发表于 2020-4-15 09:55
楼主,那个空心的引脚怎么弄?还有就是如何让没有连线的引脚对应起来?

那个叫Default 右键界面可以看到
作者: 姐姐啊是    时间: 2020-5-27 13:54
有流程图吗,大佬




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1