完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 我想我也会发烧 于 2020-1-7 15:05 编辑
用pwm控制发光二极管的亮度,各位大佬帮忙看看究竟是哪里出现了问题。第一次按键按下亮,第二次按道理是会灭的,但是确实现不了,各位大佬帮忙看一下 外围电路P2.7为按键输入 P2.6为发光二极管接口 低电平亮 代码如下: #define _Function_Init_H_ #include "SC92F725x_C.H" void Delay(unsigned int xms) // 延时函数 { unsigned int x,y; for(x=xms;x>0;x--) for(y=110;y>00;y--); } void PWM_Init(void) { P2CON = 0x40; //0100 xx00 设置P2.6推挽输出 P2PH=0x80; //1000 xx00 上拉电阻设置 PWMCON = 0x04; //PWM关闭,Fsys/32频率; PWMCFG0 = 0x02; //PWM4输出到I/O PWMCFG1 = 0x00; //PWM4不反向 PWMPRD = 29; //PWM周期=(29+1) PWMDTY4 = 30; //PWM4的Duty = 30 默认关闭 PWMCON |= 0x80; //启动PWM工作 // IE1 |= 0x02; //开启PWM中断 // EA = 1; //开启总中断 } void main() { bit flag_key=0, flag_current_state; //定义按键标志,为1,为按下按键; 当前状态标志,为1时亮灯,为0灭灯 PWM_Init(); while(1) { if(P27 == 0) //按键按下 { Delay(20); //去抖动 if(P27 == 0) //确认按键按下一次 { if(flag_key == 0) {//按键刚按下时才执行,连接按则不执行 flag_current_state = !flag_current_state; flag_key = 1; } else //连续按下按键 { } } while(!P27); } else { //按键没按下 flag_key = 0; } if(flag_current_state == 1) { 此处加个PWMCFG0 = 0x02 PWM4输出到I/O P26 = 0; //发光二极管亮 { for(PWMDTY4 = 30 ;PWMDTY4>0;PWMDTY4--) //改变PWM控制发光二极管的亮度 { Delay(500); } for(PWMDTY4 = 1;PWMDTY4<30;PWMDTY4++) //改变PWM控制发光二极管的亮度 { Delay(500); } } } else { P26 = 1;此处应该加个PWMCFG0 = 0x00; PWM4不输出到I/O; } // 发光二极管灭 } } PWMCFG0 = 0x00;//关闭PWM , PWMCFG0 = 0x02;开启PWM; 这样大概可以实现,现在用其它芯片模拟已经搞得差不多了
|
|
相关推荐
1 条评论
6个回答
|
|
本帖最后由 我想我也会发烧 于 2019-12-19 18:46 编辑
#define _Function_Init_H_ #include "SC92F725x_C.H" |
|
|
|
再仔细检查一下代码,看看是不是有语法错误、逻辑错误。
|
|
4 条评论
|
|
本帖最后由 lm12041204a 于 2019-12-30 17:08 编辑
感觉你设置的状态标志之类的比较多,是不是干扰了自己的思路。 看看这段程序能实现你的功能吗。 #include #define uint unsigned int #define uchar unsigned char ***it LED = P2^6; /*定义发光二极管LED端口*/ ***it Key1 = P2^7; /*1MS为单位的延时程序*/ void delay_1ms(uchar x) { uchar j; while(x--) { for(j=0;j<125;j++) {;} } } void main() { while(1) { if(!Key1) { delay_1ms(10); if(!Key1) { delay_1ms(10); LED =~LED ; /*根据需要加入调节亮度的代码*/ delay_1ms(50); /*延时*/ } } } } |
|
7 条评论
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11780 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:22 , Processed in 0.684700 second(s), Total 99, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号