资源简介
按K1,PWM值增加,则占空比减小,LED 灯渐暗。
按K2,PWM值减小,则占空比增加,LED 灯渐亮。
按K2,PWM值减小,则占空比增加,LED 灯渐亮。
代码片段和文件信息
/*******************************************************************/
// 利用定时器控制产生占空比可变的 PWM 波
// 按K1,PWM值增加,则占空比减小LED 灯渐暗。
// 按K2,PWM值减小,则占空比增加LED 灯渐亮。
// 当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。
/*********************************************************/
#include < reg51.h >
#include < intrins.h >
sbit K1 =P3^2 ; //增加键
sbit K2 =P3^3 ; //减少键
sbit BEEP =P3^6 ; //蜂鸣器
unsigned char PWM=0x7f ; //赋初值
void Beep();
void delayms(unsigned char ms);
void delay(unsigned char t);
/*********************************************************/
void main()
{
P0=0xff;
TMOD=0x21 ;
TH0=0xfc ; //1ms延时常数 12M
TL0=0x18 ; //频率调节
TH1=PWM ; //脉宽调节
TL1=0 ;
EA=1;
ET0=1;
ET1=1;
TR0=1 ;
while(1)
{
do{
if(PWM!=0xff)
{PWM++ ;delayms(10);}
else Beep() ;
}
while(K1==0);
do{
if(PWM!=0x02)
{PWM-- ;delayms(10);}
else Beep() ;
}
while(K2==0);
}
}
/*********************************************************/
// 定时器0中断服务程序.
/*********************************************************/
void timer0() interrupt 1
{
TR1=0 ;
TH0=0xfc ;
TL0=0x18 ;
TH1=PWM ;
TR1=1 ;
P0=0x00 ; //启动输出
}
/*********************************************************/
// 定时器1中断服务程序
/*********************************************************/
void timer1() interrupt 3
{
TR1=0 ;
P0=0xff ; //结束输出
}
/*********************************************************/
//蜂鸣器子程序
/*********************************************************/
void Beep()
{
unsigned char i ;
for (i=0 ;i<100 ;i++)
{
delay(100) ;
BEEP=!BEEP ; //Beep取反
}
BEEP=1 ; //关闭蜂鸣器
delayms(100);
}
/*********************************************************/
// 延时子程序
/*********************************************************/
void delay(unsigned char t)
{
while(t--) ;
}
/*********************************************************/
// 延时子程序
/*********************************************************/
void delayms(unsigned char ms)
{
unsigned char i ;
while(ms--)
{
for(i = 0 ; i < 120 ; i++) ;
}
}
/*********************************************************/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-10-13 20:01 PWM控制LED灯渐亮渐灭实验\
文件 4021 2019-10-13 20:00 PWM控制LED灯渐亮渐灭实验\PWMLED
文件 5277 2019-10-13 19:57 PWM控制LED灯渐亮渐灭实验\PWMLED.LST
文件 6728 2019-10-13 20:00 PWM控制LED灯渐亮渐灭实验\PWMLED.M51
文件 4440 2019-10-13 19:57 PWM控制LED灯渐亮渐灭实验\PWMLED.OBJ
文件 2136 2009-07-22 22:51 PWM控制LED灯渐亮渐灭实验\PWMLED.Uv2.bak
文件 2685 2009-07-22 22:47 PWM控制LED灯渐亮渐灭实验\PWMLED.c
文件 969 2019-10-13 20:00 PWM控制LED灯渐亮渐灭实验\PWMLED.hex
文件 29 2019-10-13 20:00 PWM控制LED灯渐亮渐灭实验\PWMLED.lnp
文件 1556 2015-12-30 21:57 PWM控制LED灯渐亮渐灭实验\PWMLED.opt.bak
文件 550 2019-10-13 20:00 PWM控制LED灯渐亮渐灭实验\PWMLED.plg
文件 56207 2019-10-13 20:01 PWM控制LED灯渐亮渐灭实验\PWMLED.uvopt
文件 13254 2019-10-13 20:01 PWM控制LED灯渐亮渐灭实验\PWMLED.uvproj
文件 1212 2009-07-22 23:01 PWM控制LED灯渐亮渐灭实验\PWMLED_Opt.Bak
文件 2148 2008-07-19 08:23 PWM控制LED灯渐亮渐灭实验\PWMLED_Uv2.Bak
文件 92 2009-07-24 14:58 PWM控制LED灯渐亮渐灭实验\实验操作说明.txt
- 上一篇:KTV数据库.zip
- 下一篇:2、红外避障单独程序-PWM调速.rar
相关资源
- 基于51单片机实时采集温度,可设置阈
- 基于51单片机空气质量检测
- 基于51单片机酒精浓度检测仪设计-源
- 基于51单片机的智能火灾报警系统-完
- 51单片机温度报警程序
- 基于AT89S51单片机的PID温度控制系统设
- 温湿度、火灾气体检测,LCD1602串口双
- 51单片机多功能电梯模拟控制系统-接
- 超声波测距仪1602显示.zip
- 基于51单片机水量检测c代码+proteus仿真
- 51单片机密码锁PROTEUS仿真
- 基于51单片机的电子密码锁设计
- 基于51单片机的心率脉搏计源码+电路
- 基于51单片机的温度警报器的设计
- 单总线温度采集与显示
- 基于C51单片机计时器
- 51单片机控制的GSM报警程序
- MQ-2烟雾传感器51单片机代码
- 基于51单片机12864显示的指纹锁
- 027 简易电子秤 LCD1602显示 超重报警
- 基于51单片机的1602万年历设计_温度
- 51单片机温度报警器设计程序及prote
- 51单片机 啤酒生产线计数器
- 基于51和hx711的电子秤
- 51单片机和1602显示18b20温度报警系统
- 51单片机 CH452驱动数码管,按键,按键
- 51单片机多任务的切换和堆栈的保护
- 基于51单片机的的电子密码锁设计.r
- 51单片机实现温度检测数码管显示,控
- 51单片机蜂鸣器音乐盒程序代码
评论
共有 条评论