完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我用的是定时器写的,没用中断。用两个按键控制PWM的占空比变大变小。。。PWM连接P2^0输出的。但是用示波器没有出现PWM波形。望有大神解惑。初学多问,无怪!
#include #define uint unsigned int #define uchar unsigned char uchar count ,z; ***it key_1 = P3^7; ***it key_2 = P3^6; ***it PWM = P2^0; void key_control(); //这是两个按键控制变量,变化,从而控制占空比曾加减少的函数 void init (); //这是个定时器装初值函数 void create_PWM(uchar); //这是用IF语句写的,生成0,1信号的函数 void delay(uint); //这是简单的延时函数 void main () { init (); while(1); { key_control(); create_PWM(count); } } void delay(uint z) { uint x,y; for(x = z;x>0;x--) for(y = 110;y>0;y--); } void init() { TMOD = 0x10; TH1 = (65536-4608)/256;//50sm TL1 = (65536-4608)%256; TR1 = 1; } void create_PWM(uchar count) { static i; if(TF1 == 1) { TF1 = 0; TH1 = (65536-4608)/256;//50sm TL1 = (65536-4608)%256; i++; if(i == 100) i=0; if(i <= count) PWM = 1; else PWM = 0; } } void key_control() { if(key_1 ==0) { delay(10); if(key_1 == 0) { count+= 5; if(count >= 100)count = 0; } } if(key_2 ==0) { delay(10); if(key_2 ==0) { count-= 5; if(count <= 0)count =100; } } } |
|
相关推荐
3个回答
|
|
先不添加按键,给个固定值看看波是否正常,先确定是问题大概是出在哪里
|
|
|
|
没开总中断,EA=1漏写了吧
|
|
|
|
总中断没开,而且我没有记错的话,51单片机定时器设置时间到了应该是进该定时器中断的吧,单纯的依靠一个TF中断标志,不知道行不行,我没有试过
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!
1248 浏览 0 评论
【xG24 Matter开发套件试用体验】蓝牙控制板载LED
930 浏览 0 评论
1136 浏览 0 评论
电赛:mspm0l1306的开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?
1179 浏览 1 评论
【xG24 Matter开发套件试用体验】Silicon Labs 基于 EFR32MG24 Explorer Kit 开发板 开箱试用体验
914 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10546 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-8 03:13 , Processed in 0.601698 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191