///P2^0控制頻率10HZ到50HZ,?新聞變化
//P2 1控件占10%到90%,按變化。
//假設晶振是12MHz?
# include & ltreg52.h & gt
#定義?uint?未簽名?(同Internationalorganizations)國際組織
#定義?烏恰爾?未簽名?茶
uint?t=0,f=100,w = 50
sbit?p10=p1^0;?//?輸出端
sbit?kf=p2^0;//?改變頻率按鈕
sbit?kw=p2^1;//?更改寬度按鈕
作廢?初始化()
{
TMOD = 0x 21;
TH0 =(65536-1000)/256;
TL0 =(65536-1000)% 256;
ET0 = 1;
TR0 = 1;
EA = 1;
}
作廢?time0()?打斷?1
{
TH0 =(65536-1000)/256;
TL0 =(65536-1000)% 256;
t++;?//t是1 ms。
if(t & gt;=f)?t = 0;?
}
作廢?主()
{
init();
while(1)
{
如果(KF==0)?//更改頻率
{ f = f-10;
if(f & lt;= 10)f = 100;
while(KF = = 0);
w = f/10;
}
if(KW==0)?//改變比例
{ w = w+f/10;
如果(w & gt=f)?w = f/10;
while(KW = = 0);
}
if(t & lt;w)p 10 = 1;//單周期
不然呢?p 10 = 0;
}
}
如果看不清圖片,請先“查看大圖”,然後保存到電腦上查看大圖。
****************************
後補:根據妳的“問題補”,需要加壹個AD轉換器。常用的並口有ADC0809,串口有ADC0834。單片機對AD轉換輸出的數據進行掃描,並發送給上述兩個變量:頻率f和比值w,妳可以改變。幅度變化很簡單,直接用電位器的分壓輸出即可。寫完整個故事需要壹定的篇幅,給妳提供思路。希望妳能多使用電腦,取得滿意的效果。