完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 朱枫 于 2014-5-9 10:07 编辑
小弟写了一个PWM程序 T=200HZ 占空比分100个等级 0~100连续可调。数码管显示占空比。现遇到个问题 1.单独运行PWM程序 一切正常 ,用示波器监测输出PWM波形很稳定 ,加上显示程序后,PWM端口输出的波形是个杂波。、 现将程序贴上来望 大虾们/工头们赐教: #include #define uint unsigned int #define uchar unsigned char uchar pp,num=1; ***it K1=P1^0;//按下开始测量 ***it K2=P1^1;//放电电流十位调整 ***it K3=P1^2;//放电电流个位调整 ***it PWM=P1^6;//PWM波形输出端口 ***it PC2=P1^7;//蜂鸣器驱动端口 ***it CD11=P2^0; ***it CD12=P2^1; ***it CD13=P2^2; ***it CD14=P2^3; uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极数码管0~9编码 void delayms(uint xms)//短暂延时 { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void display_pwm()//占空比显示 { uchar shi,ge; shi=num/10; ge=num%10; CD13=0; P0=table[shi]; delayms(5); CD13=1; CD14=0; P0=table[ge]; delayms(5); CD14=1; } void keyscan() { if(K2==0) //占空比十位调整 {delayms(5); if(K2==0) { while(!K2) display_pwm(); num=num+10; if(num>=100) num=0+num%10; }} if(K3==0)//占空比个位调整 {delayms(5); if(K3==0) { while(!K3) display_pwm(); num++; if(num==100) num=0;}} } void init() //初始化程序 { PC2=0; TMOD=0x12; TH0=206; TL0=206; EA=1; ET0=1; TR0=1; } void main() { init(); while(1) { keyscan(); if((num!=0)&&(num!=100)) { if(pp<=num) PWM=1; else PWM=0; } else if(num==0) PWM=1; else if(num==100) PWM=0; if(pp==100) pp=0; display_pwm(); } } void t0_time()interrupt 1 { pp++;} 来自小组: 码农
|
|
相关推荐
3个回答
|
|
这个问题主要是你把PWM波形端口的变化放在了主程序。没有显示程序的时候PWM变化程序运行频率很高,扫描速度很快。因此能正常显示。而加显示程序的时候。因为显示程序运行时间很长。那么循环一次的时间也变长了,因此PWM变化程序运行的频率就很低了,那么就会出现PWM端口的状态还来不及变化,定时器中断又被触发了,PP的值被改变了。那么它显示的波形就不正确了。
具体程序怎么改还得你自己动手,我只是发一个中断函数的程序给你参考,其他的你自己改。
最佳答案
|
|
|
|
不错,我来看下 |
|
|
|
学习学习!!!!!!!!!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
151 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1043 浏览 0 评论
836 浏览 0 评论
874 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
869 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11824 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 02:09 , Processed in 0.474541 second(s), Total 50, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号