導航:首頁 > 操作系統 > stc89c52單片機程序

stc89c52單片機程序

發布時間:2022-12-22 08:17:53

㈠ stc89c52單片機如何燒程序

利用串口燒寫,和電腦連接硬體可以是RS232轉TTL,也可以是USB轉232,再轉TTL,也可以直接用uSB轉TTL,最後一種最簡單,開發板還可以用轉換線提供的電源。硬體搭建好後,打開STC提供的燒寫軟體,經簡單設置即可進行下載。

㈡ stc89c52單片機下載程序時一直停在 「正在檢測目標單片機」 怎麼解決

stc89c52單片機下載程序時一直停在 「正在檢測目標單片機」,是設置錯誤造成的,解決方法如下:

1、首先打開電腦中的keil軟體,點擊「工程」新建一個工程,命名為「點亮LED」,點擊確定。

㈢ STC89C52單片機C語言程序求解

你的問題是什麼,要大膽說出來啊

㈣ 怎樣用stc89c52單片機控制蜂鳴器發出音樂的c語言程序

#include #include //本例採用89C52,晶振為11.0592MHZ //關於如何編制音樂代碼,其實十分簡單,各位可以看以下代碼. //頻率常數即音樂術語中的音調,而節拍常數即音樂術語中的多少拍; //所以拿出譜子,試探編吧! sbitBeep=P1^5; unsignedcharn=0;//n為節拍常數變數 unsignedcharcodemusic_tab[]={ 0x18,0x30,0x1C,0x10,//格式為:頻率常數,節拍常數,頻率常數,節拍常數, 0x20,0x40,0x1C,0x10, 0x18,0x10,0x20,0x10, 0x1C,0x10,0x18,0x40, 0x1C,0x20,0x20,0x20, 0x1C,0x20,0x18,0x20, 0x20,0x80,0xFF,0x20, 0x30,0x1C,0x10,0x18, 0x20,0x15,0x20,0x1C, 0x20,0x20,0x20,0x26, 0x40,0x20,0x20,0x2B, 0x20,0x26,0x20,0x20, 0x20,0x30,0x80,0xFF, 0x20,0x20,0x1C,0x10, 0x18,0x10,0x20,0x20, 0x26,0x20,0x2B,0x20, 0x30,0x20,0x2B,0x40, 0x20,0x20,0x1C,0x10, 0x18,0x10,0x20,0x20, 0x26,0x20,0x2B,0x20, 0x30,0x20,0x2B,0x40, 0x20,0x30,0x1C,0x10, 0x18,0x20,0x15,0x20, 0x1C,0x20,0x20,0x20, 0x26,0x40,0x20,0x20, 0x2B,0x20,0x26,0x20, 0x20,0x20,0x30,0x80, 0x20,0x30,0x1C,0x10, 0x20,0x10,0x1C,0x10, 0x20,0x20,0x26,0x20, 0x2B,0x20,0x30,0x20, 0x2B,0x40,0x20,0x15, 0x1F,0x05,0x20,0x10, 0x1C,0x10,0x20,0x20, 0x26,0x20,0x2B,0x20, 0x30,0x20,0x2B,0x40, 0x20,0x30,0x1C,0x10, 0x18,0x20,0x15,0x20, 0x1C,0x20,0x20,0x20, 0x26,0x40,0x20,0x20, 0x2B,0x20,0x26,0x20, 0x20,0x20,0x30,0x30, 0x20,0x30,0x1C,0x10, 0x18,0x40,0x1C,0x20, 0x20,0x20,0x26,0x40, 0x13,0x60,0x18,0x20, 0x15,0x40,0x13,0x40, 0x18,0x80,0x00 }; voidint0()interrupt1//採用中斷0控制節拍 {TH0=0xd8; TL0=0xef; n--; } voiddelay(unsignedcharm)//控制頻率延時 { unsignedi=3*m; while(--i); } voiddelayms(unsignedchara)//豪秒延時子程序 { while(--a);//採用while(--a)不要採用while(a--);各位可編譯一下看看匯編結果就知道了! } voidmain() {unsignedcharp,m;//m為頻率常數變數 unsignedchari=0; TMOD&=0x0f; TMOD|=0x01; TH0=0xd8;TL0=0xef; IE=0x82; play: while(1) { a:p=music_tab[i]; if(p==0x00){i=0,delayms(1000);gotoplay;}//如果碰到結束符,延時1秒,回到開始再來一遍 elseif(p==0xff){i=i+1;delayms(100),TR0=0;gotoa;}//若碰到休止符,延時100ms,繼續取下一音符 else{m=music_tab[i++],n=music_tab[i++];}//取頻率常數和節拍常數 TR0=1;//開定時器1 while(n!=0)Beep=~Beep,delay(m);//等待節拍完成,通過P1口輸出音頻(可多聲道哦!) TR0=0;//關定時器1 } } 你參考這個吧

㈤ STC89C52單片機C程序求解(有完整程序)

我給你解釋一下吧 希望幫得上你

#include <reg52.h> // 頭文件

#define uint unsigned int //宏定義 把uint 等價為 unsigned int
#define uchar unsigned char

sbit CS = P2^0; //定義三個特殊功能位, 我感覺應該是驅動一個東西吧,CS
sbit CLK = P2^1; 是片選 高選中或者低選中, CLK是通信的時鍾線,
sbit SDO = P2^2; SDO應該是驅動晶元的數據輸出口, 不過應該有輸入口的??
怎麼沒看到程序里有????
void DELAY(void) //簡單的延時子程序
{
uint x,y;
for(y = 5;y > 0;y--)
for(x = 110;x > 0;x--);
}

void main(void)
{
uint i = 0;
uint j = 0;
uint k = 0; 定義三個變數
TMOD = 0X20;
TH1 = 0XF3; 定時器工作方式 和初值
TL1 = 0XF3;
TR1 = 1; 打開定時器
REN = 1; REN SM0 SM1 是串口這里的設置 具體的你自己看文檔 我就不
SM0 = 0; 細說了
SM1 = 1;

while(1)
{
CLK = 0;
CS = 1;
SDO = 0;

DELAY();

for(i=0;i<16;i++) 循環16次 應該是要傳輸2個位元組的數據吧吧
{
CS = 0; 這個片選貌似應該放在循環外面
CLK = 1; 時鍾線的控制
DELAY();
k = SDO; 把驅動晶元輸出的數據賦值給K
j = j + k;
j = j << 1; 剛才的K 只是一個位, 這里兩句是要把它整理成uint型的即16位的,
DELAY();
CLK = 0; 進行延時 和CLK時鍾控制,即模擬驅動晶元的驅動時序
DELAY();
DELAY();
}

CS = 1; 選中或者取消片選 我感覺應該是取消

SBUF = (j >> 8) & 0XFF; 把剛才從驅動晶元里讀出的uint 16位數據 取高八位 送入
while(!TI); 串口的SBUF 寄存器 貌似是要傳給電腦 或者上位機軟體
TI = 0; 等待傳輸完成 清 標志位

SBUF = j & 0XFF; 把剛才從驅動晶元里讀出的uint 16位數據 取低八位 送入
while(!TI); 串口的SBUF 寄存器 貌似是要傳給電腦 或者上位機軟體
TI = 0; 等待傳輸完成 清 標志位

上面這次 正好把 UINT型的 16位 2個位元組全部傳輸到上位機

SBUF = 0XFF; 最後在傳輸0xff 這個數據給上位機
while(!TI);
TI = 0;
}
}

好了 回答完了 , 希望能幫得上你。

㈥ STC89C52單片機避障小車程序編寫

void	Avoid()
{
while(S<400)//小於避障距離就停車同時報警
{
beep=0;//使能蜂鳴器
stop();//停車
}
beep=1;//一直到移除障礙,則關閉蜂鳴器報警回到主程序。
}

閱讀全文

與stc89c52單片機程序相關的資料

熱點內容
java電商訂單支付源碼 瀏覽:102
android手機滑鼠 瀏覽:465
php支付項目經驗 瀏覽:929
中國人民銀行在哪裡下載app 瀏覽:560
松餅pdf 瀏覽:667
萌新如何獲得命令 瀏覽:138
java設計模式及代碼 瀏覽:7
命令恢復資料庫 瀏覽:192
linuxoracle11gr2 瀏覽:972
攜程APP簽到在哪裡 瀏覽:389
dwg解壓方法 瀏覽:422
雲伺服器數據溝通 瀏覽:849
android地圖定位源碼 瀏覽:632
鴻蒙系統如何解除app安裝限制 瀏覽:497
阿里雲伺服器應用鏡像選哪個 瀏覽:343
win7策略更新命令 瀏覽:299
android源碼分析之設計模式 瀏覽:294
qq郵箱上的文件怎麼解壓在電腦上 瀏覽:504
業余學python是如何掙錢的 瀏覽:416
方舟伺服器連接超時顯示什麼 瀏覽:226