PWM调整2个LED的亮度00--FF,255级亮度自动调节 【原创】
2015-09-26 20:52
381 查看
把STC12C5A60S2.H 、STC12C2052AD.H头文件放到 C:\Keil\C51\INC\
STC单片机头文件【51CTO-->单片机-->STC单片机官方头文件】
下载链接 链接:http://pan.baidu.com/s/1pJKK4w7 密码:a0re
![](http://s3.51cto.com/wyfs02/M01/73/CA/wKiom1YHlKqB7ndxAAL24Htv8v0539.jpg)
STC单片机头文件【51CTO-->单片机-->STC单片机官方头文件】
下载链接 链接:http://pan.baidu.com/s/1pJKK4w7 密码:a0re
![](http://s3.51cto.com/wyfs02/M01/73/CA/wKiom1YHlKqB7ndxAAL24Htv8v0539.jpg)
/* 工程创建MCU选取,Atmel89C55 单片机: STC12C5A60S2 晶振:12M 功能:PWM调整2个LED的亮度00--FF,255级亮度调节 连接说明: LED1正极串接1K 电阻到VCC,负极接 STC12C5A60S2 的4脚 P1.3 PWM0 LED2正极串接1K 电阻到VCC,负极接 STC12C5A60S2 的5脚 P1.4 PWM1 参数测量: PWM频率:23.43K hz,占空比 0% -- 99.9% -- 0% 循环无休 测量2个LED的端的电压 0 ~ 4.9V 逐渐增减变化 如果是STC12C2052AD,STC12C4052AD单片机 #include <STC12C2052AD.H> LED1正极串接1K 电阻到VCC,负极接 STC12C4052AD 的11脚 P3.7 PWM0 LED2正极串接1K 电阻到VCC,负极接 STC12C4052AD 的 9脚 P3.5 PWM1 */ #include <STC12C5A60S2.H> //PWM 初始化函数 void PWM_init (void){ CMOD=0x02;//设置PCA定时器 CL=0x00; CH=0x00; CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式 CCAP0L=0x00; //设置PWM3初始值与CCAP0H 相同 CCAP0H=0x00; //PWM3初始值为0 CCAPM1=0x42; //PWM1设置PCA工作方式为PWM方式 CCAP1L=0x00; //设置PWM3初始值与CCAP0H 相同 CCAP1H=0x00; //PWM3初始值为0 //CCAPM2=0x42; //PWM2设置PCA工作方式为PWM方式 //CCAP2L=0x00; //设置PWM3初始值与CCAP0H 相同 //CCAP2H=0x00; //PWM3初始值为0 //CCAPM3=0x42; //PWM3设置PCA工作方式为PWM方式 //CCAP3L=0x00; //设置PWM3初始值与CCAP0H 相同 //CCAP3H=0x00; //PWM3初始值为0 CR=1; //启动PCA定时器 } //占空比设置函数 void PWM0_set (unsigned char a) { CCAP0L= a; // 设置直接写入CCAP0L CCAP0H= a; // 设置直接写入CCAP0H } void PWM1_set (unsigned char a) { CCAP1L= a; // 设置直接写入CCAP0L CCAP1H= a; // 设置直接写入CCAP0H } //延时函数 void DELAY_MS (unsigned int a) { unsigned int i; while ( --a != 0 ) { for (i=0;i<=600;i++); } } void main(void){ PWM_init(); //PWM初始化 while(1){ unsigned char i; //定义占空比 unsigned int speed=10; //调整亮度变化速度 // LED1慢慢变亮, LED2慢慢变暗 // unsigned char i 的类型 0xff 的取反就是0x00 for(i=0x00;i<0xff;i++){ PWM0_set(i); // 设置占空比 PWM1_set(~i); // 设置占空比 DELAY_MS (speed); } // LED1慢慢变暗, LED2慢慢变亮 for(i=0xff;i>0;i--){ PWM0_set(i); // 设置占空比 PWM1_set(~i); // 设置占空比 DELAY_MS (speed); } } }
相关文章推荐
- iOS开发之UITableView添加数据源的两种方式
- APNS推送服务证书制做-2015 最新版本
- Cocos2d-x学习(二) 在Cocos2d-x2.2.6搭建你第一个项目
- 浅谈LLDB调试器
- TCP交互数据流
- 【html】day05_表格_表单
- js的事件流模型
- java实训感想
- [Qt] fontawesome图标
- frame框架
- Java设计模式(三)-修饰模式
- mysql jdbc 实现读写分离
- split()和join()的区别
- spring与mybatis四种整合方法
- access数据库导入到oracle中,修改oracle表的序列
- 提升ubuntu源更新速度
- 小马哥---山寨仿苹果6 主板型号E255 低端仿机 芯片6571 拆机主板图与开机界面图
- 四则运算(修改后的)
- LRU Cache
- 使用命令行编译并运行应用程序