㈠ stc89c52單片機如何燒程序
利用串口燒寫,和電腦連接硬體可以是RS232轉TTL,也可以是USB轉232,再轉TTL,也可以直接用uSB轉TTL,最後一種最簡單,開發板還可以用轉換線提供的電源。硬體搭建好後,打開STC提供的燒寫軟體,經簡單設置即可進行下載。
㈡ stc89c52單片機下載程序時一直停在 「正在檢測目標單片機」 怎麼解決
stc89c52單片機下載程序時一直停在 「正在檢測目標單片機」,是設置錯誤造成的,解決方法如下:
1、首先打開電腦中的keil軟體,點擊「工程」新建一個工程,命名為「點亮LED」,點擊確定。
㈢ STC89C52單片機C語言程序求解
你的問題是什麼,要大膽說出來啊
㈣ 怎樣用stc89c52單片機控制蜂鳴器發出音樂的c語言程序
#include
㈤ 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;//一直到移除障礙,則關閉蜂鳴器報警回到主程序。
}