资源简介
按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单片机通信采样proteus仿真方波转化
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
评论
共有 条评论