第一范文网 - 专业文章范例文档资料分享平台

C51单片机C语言程序100例 - Keil

来源:用户分享 时间:2025/8/13 3:19:31 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

{

if(S==0) //按键S按下接地,电平为0

P1=TL0;//计数器TL0加1后送P1口显示

}

TF0=0; //计数器溢出后,将TF0清0

} }

//实例45:用定时器T0的中断控制1位LED闪烁

#include // 包含51单片机寄存器定义的头文件 sbitD1=P2^0; //将D1位定义为P2.0引脚

/************************************************************** 函数功能:主函数

**************************************************************/ voidmain(void) {

EA=1; //开总中断

ET0=1; //定时器T0中断允许

TMOD=0x01; //使用定时器T0的模式2 TH0=(65536-46083)/256;//定时器T0的高8位赋初值 TL0=(65536-46083)%6;//定时器T0的高8位赋初值 TR0=1; //启动定时器T0 while(1)//无限循环等待中断

; }

/************************************************************** 函数功能:定时器T0的中断服务程序

**************************************************************/ voidTime0(void)interrupt1using0//“interrupt”声明函数为中断服务函数

//其后的1为定时器T0的中断编号;0表示使用第0组工作

寄存器 {

D1=~D1; //按位取反操作,将P2.0引脚输出电平取反 TH0=(65536-46083)/256;//定时器T0的高8位重新赋初值 TL0=(65536-46083)%6;//定时器T0的高8位重新赋初值 }

33/ 192 3

// 46 T0

//实例46:用定时器T0 的中断实现长时间定时

#include // 包含51单片机寄存器定义的头文件 sbitD1=P2^0; //将D1位定义为P2.0引脚

unsignedcharCountor;//设置全局变量,储存定时器T0 中断次数

/************************************************************** 函数功能:主函数

**************************************************************/ voidmain(void) {

EA=1; //开总中断

ET0=1; //定时器T0中断允许

TMOD=0x01; //使用定时器T0的模式2 TH0=(65536-46083)/256;//定时器T0的高8位赋初值 TL0=(65536-46083)%6;//定时器T0的高8位赋初值 TR0=1; //启动定时器T0

Countor=0; //从0开始累计中断次数 while(1)//无限循环等待中断

; }

/************************************************************** 函数功能:定时器T0的中断服务程序

**************************************************************/ voidTime0(void)interrupt1using0//“interrupt”声明函数为中断服务函数

//其后的1为定时器T0的中断编号;0表示使用第0组工作

寄存器 {

Countor++; //中断次数自加1

if(Countor==20) //若累计满20次,即计时满1s {

D1=~D1; //按位取反操作,将P2.0引脚输出电平取反 Countor=0; //将Countor清0,重新从0开始计数 }

TH0=(65536-46083)/256;//定时器T0的高8位重新赋初值 TL0=(65536-46083)%6;//定时器T0的高8位重新赋初值 }

//实例47:用定时器T1 中断控制两个LED以不同周期闪烁

#include // 包含51单片机寄存器定义的头文件 sbitD1=P2^0; //将D1位定义为P2.0引脚

334/ 192

sbit D2=P2^1; //将D2位定义为P2.1引脚

unsignedcharCountor1;//设置全局变量,储存定时器T1中断次数 unsignedcharCountor2;//设置全局变量,储存定时器T1中断次数

/************************************************************** 函数功能:主函数

**************************************************************/ voidmain(void) {

EA=1; //开总中断

ET1=1; //定时器T1中断允许

TMOD=0x10; //使用定时器T1的模式1 TH1=(65536-46083)/256;//定时器T1的高8位赋初值 TL1=(65536-46083)%6;//定时器T1的高8位赋初值 TR1=1; //启动定时器T1

Countor1=0; //从0开始累计中断次数 Countor2=0; //从0开始累计中断次数 while(1)//无限循环等待中断

; }

/************************************************************** 函数功能:定时器T1的中断服务程序

**************************************************************/ voidTime1(void)interrupt3using0//“interrupt”声明函数为中断服务函数

//其后的3为定时器T1的中断编号;0表示使用第0组工作

寄存器 {

Countor1++; //Countor1自加1 Countor2++; //Countor2自加1

if(Countor1==2) //若累计满2 次,即计时满100ms

{

D1=~D1; //按位取反操作,将P2.0引脚输出电平取反 Countor1=0; //将Countor1清0,重新从0开始计数 }

if(Countor2==8) //若累计满8 次,即计时满400ms

{

D2=~D2; //按位取反操作,将P2.1引脚输出电平取反 Countor2=0; //将Countor1清0,重新从0开始计数 }

TH1=(65536-46083)/256;//定时器T1的高8位重新赋初值 TL1=(65536-46083)%6;//定时器T1的高8位重新赋初值 }

33/ 192 5

// 48 T1 1KHz //实例48:用计数器T1 的中断控制蜂鸣器发出1KHz音频

#include // 包含51单片机寄存器定义的头文件 sbitsound=P3^7; //将sound 位定义为P3.7引脚

/************************************************************** 函数功能:主函数

**************************************************************/ voidmain(void) {

EA=1; //开总中断

ET1=1; //定时器T1中断允许

TMOD=0x10; //TMOD=0001000B,使用定时器T1的模式1 TH1=(65536-921)/256; //定时器T1的高8位赋初值 TL1=(65536-921)%6; //定时器T1的高8位赋初值 TR1=1; //启动定时器T1 while(1)//无限循环等待中断

; }

/************************************************************** 函数功能:定时器T1的中断服务程序

**************************************************************/ voidTime1(void)interrupt3using0//“interrupt”声明函数为中断服务函数 {

sound=~sound;

TH1=(65536-921)/256; //定时器T1的高8位重新赋初值 TL1=(65536-921)%6; //定时器T1的高8位重新赋初值 }

// 49 T0 \ \

//实例49:用定时器T0 的中断实现\渴望\主题曲的播放

#include //包含51单片机寄存器定义的头文件 sbitsound=P3^7; //将sound 位定义为P3.7 unsignedintC; //储存定时器的定时常数 //以下是C调低音的音频宏定义

#definel_dao262 //将“l_dao”宏定义为低音“1”的频率262Hz #definel_re 286 //将“l_re”宏定义为低音“2”的频率286Hz #definel_mi 311 //将“l_mi”宏定义为低音“3”的频率311Hz #definel_fa349 //将“l_fa”宏定义为低音“4”的频率349Hz #definel_sao392 //将“l_sao”宏定义为低音“5”的频率392Hz #definel_la440 //将“l_a”宏定义为低音“6”的频率440Hz #definel_xi 494 //将“l_xi”宏定义为低音“7”的频率494Hz

336/ 192

搜索更多关于: C51单片机C语言程序100例 - Keil 的文档
C51单片机C语言程序100例 - Keil.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8pn4b0vxbc6m3qp9xkwe9ersa9pruq00xab_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top