标题: 单片机定时器、计数器实验 [打印本页]
作者: 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.蜂鸣器
六、实验步骤
- 在Keil uVision3中编译链接生成点阵.hex文件
源代码如下:
#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;
}
}

- 在Keil uVision3中编译链接生成点阵.hex文件
源代码如下:
#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
那个叫Default 右键界面可以看到
作者: 姐姐啊是 时间: 2020-5-27 13:54
有流程图吗,大佬
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |