电路图如下
做了单定时器控制和双定时器控制两个程序,电路图一样。
单定时器控制程序
#include
#include
int count0=1000;
bit A=0;
sbit IN1=P3^4;
sbit IN2=P3^5;
sbit INTR=P3^2;
sbit wr=P3^6;
sbit rd=P3^7;
sbit PB1=P3^0;
int T0_H,T0_L;
char TAB[11]={0xc0,0xf9,0xa4,0xb0,0x99,
void delay(int);
void display(void);
main()
{int i,DATA;
}
void t0(void)interrupt 1
{if(A==0)
else
}
void display(void)
{int i,j,per,scan;
}
void delay(int x)
{int i,j;
for(i=0;i
}
双定时器控制的程序
#include
#include
#define LED P2
int count1=0;
int count0=10000;
#define T0_H (65535-count0)/256
#define T0_L (65535-count0)%6
#define T1_H (65535-count1)/256
#define T1_L (65535-count1)%6
sbit IN1=P3^4;
sbit IN2=P3^5;
sbit INTR=P3^2;
sbit wr=P3^6;
sbit rd=P3^7;
char TAB[11]={0xc0,0xf9,0xa4,0xb0,0x99,
void delay(int);//1ms
void display(void);
void T(int);
main()
{int i;
}
void t1(void)interrupt 3
{TH1=T1_H;TL1=T1_L;
}
void t0(void)interrupt 1
{count0=10000-count1;
}
void T(int Tw)
{ Tw=Tw<<5;
}
void display(void)
{int i,j,per,scan;
}
void delay(int x)
{int i,j;
for(i=0;i
}
不足之处:这两种方法实现都有一个问题,输出PWM波的周期时长与期望有一定相差,期望一周期10ms,仿真后得到波形周期为12.5ms左右,具体的解决办法不是很清楚,希望有高人路过,不吝赐教!
上一篇:一种智能路灯节能控制器的设计与实现
下一篇:关于单片机的仿真
推荐阅读最新更新时间:2024-03-16 14:35
设计资源 培训 开发板 精华推荐
- 2024年Automechanika Shanghai海量同期活动刷新历届记录,汇聚行业智慧,共谋未来发展
- 企业文化分享 如何培养稀缺的硅IP专业人员?SmartDV开启的个人成长与团队协作之旅
- 恩智浦发布首个超宽带无线电池管理系统解决方案
- 北交大本科生探秘泰克先进半导体开放实验室,亲历前沿高科技魅力
- 新帅上任:杜德森博士(Dr. Torsten Derr)将于2025年1月1日出任肖特集团首席执行官
- 边缘 AI 如何提升日常体验
- 苹果要首发!台积电宣布2nm已准备就绪
- AMD有望用上全新芯片堆叠技术:延迟大幅减少、性能显著提升
- 宁德时代发布10月战报
- 2024年10月电池行业:增长势头不减!