1
2
3
6
12
15
17
21
23
24
25
26
27
31
33
34
35
37
39
40
42
43
44
51
单片机
C
语言程序(二)定时
/
计数器
中断
程序一
利用定时
/
计数器
T0
从
P1.0
输出周期为
1s
的方波,
让发光二极管以
1HZ
闪烁,
#include<reg52.h>
//52
单片机头文件
#include <intrins.h> //
包含有左右循环移位子函数的库
#define uint unsigned int
//
宏定义
#define uchar unsigned char
//
宏定义
sbit P1_0=P1^0;
uchar tt;
void main()
//
主函数
{
TMOD=0x01;//
设置定时器
0
为工作方式
1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//
开总中断
ET0=1;//
开定时器
0
中断
TR0=1;//
启动定时器
0
while(1);//
等待中断产生
}
单片机系统开发,2021最新报价!立即围观!
广告 单片机系统开发意法半导体包含广泛产品线包含低成本8位单片机和具备丰富外设选择的单片机系统开发单片机。 查看详情 >
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==20)
{
tt=0;
P1_0=~P1_0;
}
}
程序二
利用定时
/
计数器
T1
产生定时时钟
,
由
P1
口控制
8
个发光二极管
,
使
8
个指示灯依次一个一个闪动,
闪动频率为
10
次
/
秒
(8
个灯依次亮一遍为一个周期
)
,循环。
#include<reg52.h>
//52
单片机头文件
#include <intrins.h> //
包含有左右循环移位子函数的库
#define uint unsigned int
//
宏定义
#define uchar unsigned char
//
宏定义
华清远见c语言单片机,新手入门-实战教学,嵌入式开发
广告 c语言单片机,华清远见自主研发,软硬件结合教学,毕业相当于拥有1-3年工作经验。 查看详情 >
sbit P1_0=P1^0;
uchar tt,a;
void main()
//
主函数
{
TMOD=0x01;//
设置定时器
0
为工作方式
1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//
开总中断
ET0=1;//
开定时器
0
中断
TR0=1;//
启动定时器
0
a=0xfe;
while(1);//
等待中断产生
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==2)
{
tt=0;
百度安全OTA-专业,可靠的单片机ota,初创企业免费申领
广告 2万台设备OTA额度面向初创企业【免费开放】,为企业降低OTA成本,提高设备安全系数。 查看详情 >
P1=a;
a=_crol_(a,1);
}
}
程序三
同时用两个定时器控制蜂鸣器发声,
定时器
0
控制频率,定时器
1
控制同个
频率持续的时间,间隔
2s
依次输出
1
,
10
,
50,100
,
200,400,800,
1k
(
hz
)的方波
#include<reg52.h>
//52
单片机头文件
#include <intrins.h> //
包含有左右循环移位子函数的库
#define uint unsigned int
//
宏定义
#define uchar unsigned char
//
宏定义
sbit beep=P2^3;
uchar tt;
uint fre,flag;
void main()
//
主函数
{
fre=50000;
活字格-企业级低代码开发平台,软博会获奖产品
广告 可视化设计,快速开发企业Web应用,帮助用户快速构建支持移动端的企业级应用程序,满足企 查看详情 >
beep=0;
TMOD=0x11;//
设置定时器
0,
定时器
1
为工作方式
1
TH0=(65536-fre)/256;
TL0=(65536-fre)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;//
开总中断
ET0=1;//
开定时器
0
中断
ET1=1;
TR1=1;
TR0=1;//
启动定时器
0
while(1);//
等待中断产生
}
void timer0() interrupt 1
//
定时器
0
中断
{
TR0=0;
//
进中断后先把定时器
0
中断关闭,防止内部程序过
多而造成中断丢失
TH0=(65536-fre)/256;
TL0=(65536-fre)%256;
tt++;
if(flag<40)
//
以下几个
if
分别用来选取不同的频率
等,希望以上内容能对你有所帮助、。