找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7329|回復(fù): 4
收起左側(cè)

P00口輸出方波程序

[復(fù)制鏈接]
ID:16822 發(fā)表于 2009-9-3 18:55 | 顯示全部樓層 |閱讀模式

大家好,我現(xiàn)在想在89S51的P00口輸出25K的方波,但不知道怎么回事,總是跟我想象的結(jié)果不一樣。16M的晶振,請高手給與指點(diǎn)下,謝謝了
#include <reg52.h>
sbit P00=P0^0;
void main(void)
{
long float Freq=25000.00;
long float temp;
float tt;
int t;
temp=(2000000/3)/Freq;
tt=65536-temp;
t=(int)tt;
P00=1;
TMOD=0x01;
TH0=t/256;
TL0=t%256;
TR0=1;
 while(1)
 {
   if(TF0==1)
   {
     TF0=0;
   P00=~P00;
   TH0=t/256;
   TL0=t%256;
   }
 }

}

回復(fù)

使用道具 舉報(bào)

ID:17290 發(fā)表于 2009-9-17 17:13 | 顯示全部樓層
肯定不行了,16M的晶體的話計(jì)一個(gè)脈沖就是16/12=1.3us,而你計(jì)了65509個(gè)數(shù),也就是定時(shí)器溢出一次是1.3*65509=0.085us,
85個(gè)毫秒,周期就是170毫秒,頻率也才6HZ左右
回復(fù)

使用道具 舉報(bào)

ID:17313 發(fā)表于 2009-9-17 22:28 | 顯示全部樓層

計(jì)一個(gè)脈沖是12/16吧的時(shí)間吧

回復(fù)

使用道具 舉報(bào)

ID:17313 發(fā)表于 2009-9-17 22:34 | 顯示全部樓層
應(yīng)該是不是  TH0=(49151-20)/256
                TL0=(49151-20)%256
回復(fù)

使用道具 舉報(bào)

ID:17290 發(fā)表于 2009-9-18 08:27 | 顯示全部樓層

哦,對,算錯(cuò)了,計(jì)一個(gè)脈沖是12/16=0.75us

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表