欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
求助!51單片機輸出方波問題
[打印本頁]
作者:
2602482600
時間:
2020-3-15 17:00
標題:
求助!51單片機輸出方波問題
題目:12晶振 輸出周期1s 占空比70%的方波;
我的代碼:
#include "reg51.h"
#define uchar unsigned char //數(shù)據(jù)類型宏定義
#define uint unsigned int
/*********************引腳定義********************/
#define TICK 10000
#define T100us 256-100
uchar C100us;
sbit out=P1^6;
/*********************主函數(shù)**********************/
void main(void)
{
TMOD&=0xf0;
TMOD|=0x02;
TH0=T100us;
TL0=T100us;
TR0=1;
EA=1;
ET0=1;
C100us=TICK;
while(1);
}
void timer0int(void) interrupt 1
{
C100us--;
if(C100us==3000)
{
out=~out;
}
if(C100us==0)
{
C100us=TICK;
out=~out;
}
}
作者:
2602482600
時間:
2020-3-15 17:00
仿真出來的方波是50%的,為什么會這樣呢
作者:
wanghz12
時間:
2020-3-15 18:22
#define TICK 10000 #define T100us 256-100 uchar C100us;
作者:
wanghz12
時間:
2020-3-15 18:23
#define TICK 10000 uchar C100us; TICK如何給 C100us賦值;數(shù)據(jù)類型不對
作者:
人中狼
時間:
2020-3-15 19:45
uchar C100us;,變量類型錯了吧,uchar應(yīng)該最大只到255,應(yīng)該要用uint
作者:
tyrl800
時間:
2020-3-15 19:54
改成
void timer0int(void) interrupt 1
{
C100us--;
if(C100us<=3000)
{
out=1;
}
else out=0;
if(C100us==0)
{
C100us=TICK;
}
}
作者:
YYB_123456
時間:
2020-3-15 20:32
uchar C100us; 數(shù)據(jù)類型裝不下10000,也比較不出3000,倒是可以比較0。改成uint吧
作者:
odfggf
時間:
2020-3-15 22:17
out=~out;總在取反,占空比當然就是50%了,另外 C100us要定義成uint
作者:
odfggf
時間:
2020-3-15 22:26
本帖最后由 odfggf 于 2020-3-16 08:40 編輯
改寫成這樣也行
uchar C100us=0;
void timer0int() interrupt 1
{
if(C100us<3000)
{ out=1; }
else
{ out=0; }
C100us++; C100us%=10000;
}
作者:
wulin
時間:
2020-3-16 08:14
2602482600 發(fā)表于 2020-3-15 17:00
仿真出來的方波是50%的,為什么會這樣呢
#include "reg51.h"
#define uchar unsigned char //數(shù)據(jù)類型宏定義
#define uint unsigned int
/*********************引腳定義********************/
#define TICK 10000
#define T100us 256-100
sbit out=P1^6;
uint C100us;
/*********************主函數(shù)**********************/
void main(void)
{
TMOD&=0xf0;
TMOD|=0x02;
TH0=T100us;
TL0=T100us;
TR0=1;
EA=1;
ET0=1;
C100us=0;
while(1);
}
void timer0int(void) interrupt 1
{
C100us++;
if(C100us<=7000)
out=1;
if(C100us>7000)
out=0;
if(C100us==TICK)
C100us=0;
}
復制代碼
作者:
2602482600
時間:
2020-3-19 18:22
謝謝大家,是類型不對
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1