资源简介
LED PWM控制调光程序 c51

代码片段和文件信息
#include
static char pwmdirpwmdirold;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
//sbit P0_4=P0^4;
//sbit P0_6=P0^6;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
static unsigned char pwm_f;
static unsigned char H_MAX;
static unsigned char keyvalkeyoldpwm_pulse;
void Delay(unsigned char ms);
unsigned char GetKey();
void LedShow(unsigned char value);
void Timer0_init();
void main()
{
keyval=keyold=0;
pwmdir=pwmdirold=2;
H_MAX=150;
pwm_pulse=0;
pwm_f=0;
P1=0x80;
Timer0_init();
while(1)
{
keyval=GetKey();
LedShow(keyval);
if(0==keyval)
{
continue;
}
else
{
if(5==keyval)
{
pwmdir=pwmdirold=2;
P1=0x80;
break;
}
else if(1==keyval)
{
pwmdir=1;
}
else if(2==keyval)
{
pwmdir=0;
}
else if(3==keyval)
{
H_MAX=150;
}
else if(4==keyval)
{
H_MAX=80;
}
}
}
}
void Timer0_init()
{
TMOD=0x02;
TH0=0x48;
TL0=TH0;
ET0=1;
TR0=1;
EA=1;
}
void Timer0_inter() interrupt 1
{
pwm_f++;
pwm_f%=200;
if(2!=pwmdir)
{
if(pwmdirold!=pwmdir)
{
pwmdirold=pwmdir;
P1_2=0;
P1_3=0;
Delay(100);//
if(1==pwmdir)
{
P1_2=0;
if(0==pwm_f)
{
P1_3=1;
}
else if(H_MAX==pwm_f)
{
P1_3=0;
}
}
else
{
P1_3=0;
if(0==pwm_f)
{
P1_2=1;
}
else if(H_MAX==pwm_f)
{
P1_2=0;
}
}
}
else
{
if(1==pwmdir)
{
P1_2=0;
if(0==pwm_f)
{
P1_3=1;
}
else if(H_MAX==pwm_f)
{
P1_3=0;
}
}
else
{
P1_3=0;
if(0==pwm_f)
{
P1_2=1;
}
else if(H_MAX==pwm_f)
{
P1_2=0;
}
}
}
}
}
unsigned char GetKey()
{
P2_0=0;
if(0==P2_4)
{
P2_0=1;
return 7;
}
else if(0==P2_5)
{
P2_0=1;
return 8;
}
P2_0=1;
P2_1=0;
if(0==P2_4)
{
P2_1=1;
return 5;
}
else if(0==P2_5)
{
P2_1=1;
return 6;
}
P2_1=1;
P2_2=0;
if(0==P2_4)
{
P2_2=1;
return 3;
}
else if(0==P2_5)
{
P2_2=1;
return 4;
}
P2_2=1;
P2_3=0;
if(0==P2_4)
{
P2_3=1;
return 1;
}
else if(0==P2_5)
{
P2_3=1;
return 2;
}
else
{
P2_3=1;
return 0;
}
}
void LedShow(unsigned char value)
{
switch(value)
{
case 1:
P0=0xF9;
P1_0=0;
break;
case 2:
P0=0xA4;
P1_0=0;
break;
case 3:
P0=0xB0;
P1_0=0;
break;
case 4:
P0=0x99;
P1_0=0;
break;
case 5:
P0=0x92;
P1_0=0;
break;
case 6:
P0=0x82;
P1_0=0;
break;
case 7:
P0=0xF8;
P1_0=0;
break;
case 8:
P0=0x80;
P1=0xFE;
break;
default:
break;
}
}
void Delay(unsigned char ms)
{
un
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7279 2009-06-26 19:22 PWM\pwm
文件 3038 2009-06-26 19:22 PWM\pwm.c
文件 1490 2009-06-26 19:22 PWM\pwm.hex
文件 39 2009-06-26 19:22 PWM\pwm.lnp
文件 11568 2009-06-26 19:22 PWM\pwm.LST
文件 13948 2009-06-26 19:22 PWM\pwm.M51
文件 7698 2009-06-26 19:22 PWM\pwm.OBJ
文件 1204 2009-06-26 20:57 PWM\pwm.Opt
文件 214 2009-06-28 10:26 PWM\pwm.plg
文件 2152 2009-06-26 12:45 PWM\pwm.Uv2
文件 1204 2009-06-26 18:32 PWM\pwm_Opt.Bak
文件 2148 2009-06-26 12:01 PWM\pwm_Uv2.Bak
文件 6376 2009-06-26 19:22 PWM\STARTUP.A51
文件 10762 2009-06-26 19:22 PWM\STARTUP.LST
文件 750 2009-06-26 19:22 PWM\STARTUP.OBJ
目录 0 2009-07-29 14:25 PWM
----------- --------- ---------- ----- ----
69870 16
相关资源
- STM32 led 时钟
- STC8951系列单片机中方指南
- LED灯串电路图说明
- stm32f103c8t6 4 oled.rar
- 51单片机PWM程序,占空比、周期可调整
- proteus仿真 AT89C51输出各种波形
-
Cme
taFileDC的使用示例 - 光立方制作(原理图 源程序 LED搭接方
- SG3525频率PWM控制均可调模块
- 使用OpenFileDialog打开文件对话框.rar
- [免费]基于stm32f103ze 的OLED驱动代码
- 2410的led测试程序keil可以用
- 基于AT89C51的数据采集系统设计新方法
- C51单片机汇编指令查询、学习工具集
- 基于89c51的数字钟
- 基于单片机交通灯设计
- LED背光的设计与优化
- 基于89C51计算机锁定加密键盘设计
- ChilledWindows.exe(玩笑病毒)
- 基于51单片机的计算器(C51编写,有
- 玩转Altera FPGA:基于PLL分频计数的LE
- PLL例化配置与LED之PLL的IP核配置
- 大功率LED高频驱动电路设计方案
- STM32+TMC5160代码电路图.rar
- 基于MCU+FPGA的LED大屏幕控制系统的设计
- 基于ARM7 PWM定时器的图像传感器时序信
- ARM7 GPIO LED控制实验高速GPIO与低速GP
- Numerical simulation and prediction of radio f
- FEATURE SELECTION FOR KNOWLEDGE DISCOVERY AND
- 简析led晶片基础知识
评论
共有 条评论