完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 eehome 于 2013-1-5 09:57 编辑
用4个键分别调节频率和占空比,频率范围是1-150HZ,每调一步加或减1HZ。占空比从1%到99%,每调一步加或减1%。晶震是24M,要求用内部定时器。频率也可以1到200HZ 晶震12M或24M都行 ***it P10=P1^0; // 输出端 ***it P11=P1^1; ***it KF0=P2^0; // 改变频率按钮+ ***it KF1=P2^1; // 改变频率按钮- ***it KW0=P2^2; // 改变占宽按钮+ ***it KW1=P2^3; // 改变占宽按钮- #include #define uint unsigned int #define uchar unsigned char uint t=0,f=15000,w=7500,u=1; ***it P10=P1^0; // 输出端 ***it P11=P1^1; ***it KF0=P2^0; // 改变频率按钮+ ***it KF1=P2^1; // 改变频率按钮- ***it KW0=P2^2; // 改变占宽按钮+ ***it KW1=P2^3; // 改变占宽按钮- void init() { EX0=1; TMOD=0x21; TH0=(65536-121)/256; TL0=(65536-121)%256; ET0=1; TR0=1; EA=1; } void delay(unsigned int cnt)//延时去抖 { while(--cnt); } void time0() interrupt 1 { TH0=(65536-121)/256; TL0=(65536-121)%256; t++; //t为66us if(t>=f) t=0; } void main() { init(); while(1) { if(KF0==0) //改变频率+ { delay(1000);//去抖 if(KF0==0) { //u=u*2; f=f-100; if(f<=100) f=100; while(KF0==0); w=f/2; } } if(KF1==0) //改变频率- { delay(1000);//去抖 if(KF1==0) { f=f+100; if(f>=15000) f=15000; while(KF 1==0); w=f/2; } } if(KW1==0) //改变占比 - { delay(1000);//去抖 if(KW1==0) { w=w+f/100; if(w>=f) w=f-f/100; while(KW1==0); } } if(KW0==0) //改变占比 { delay(1000);//去抖 if(KW0==0) { w=w-f/100; if(w<=f/100) w=f/100; while(KW0==0); } } if(t P10=1; //单个周期 P11=0; } else { P10=0; P11=1; } } } void exter0() interrupt 0 { P10=1; t=0; } 就是在调频率那里 |
|
相关推荐
|
|
stm32f407+ksz8863rlli概率性ping不通
698 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-常见网络服务搭建之NFS服务搭建
374 浏览 0 评论
求助:辉芒微芯片 FDM B11GBMH 的信息及开发环境安装
375 浏览 0 评论
918 浏览 0 评论
嵌入式 学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之输入输出重定向
774 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11306 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 05:59 , Processed in 0.532843 second(s), Total 69, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号