導航:首頁 > 操作系統 > 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單片機程序相關的資料

熱點內容
房地產開發流程pdf 瀏覽:241
小鵬p7能耗APP怎麼查 瀏覽:241
如何代掛伺服器 瀏覽:280
安卓機拍視頻時怎麼當背景音樂 瀏覽:877
方舟編譯器華為p20pro更新 瀏覽:28
php程序漏洞 瀏覽:550
手機app怎麼轉過去 瀏覽:231
新建文件夾標記 瀏覽:484
兩處收入個稅App上怎麼申報 瀏覽:672
hive創建資料庫命令 瀏覽:832
伺服器在台灣怎麼加速 瀏覽:704
linuxparted磁碟分區命令 瀏覽:134
pdf缺點 瀏覽:837
kalilinuxu盤製作 瀏覽:924
跨雲伺服器哪個平台最好 瀏覽:882
網路上找的資源該如何解壓 瀏覽:753
視頻編譯是什麼意思 瀏覽:371
時代峰峻app怎麼用不了 瀏覽:860
泰拉瑞亞伺服器怎麼查看代碼 瀏覽:136
牛奶壓縮面膜怎麼做 瀏覽:379