Ⅰ 求個口串口助手控制51單片機LED亮與滅程序
#include<stc89.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1 = P1 ^ 1; //定義兩個LED燈
sbit led2 = P1 ^ 2; // 這里需要你自己定義你的I/O口
uchar a;
//void delay(uint z);
void init();
void main()
{
init();
while(1)
{
if (a == 0x31)
{
led1 = 0;
led2 = 0;
}
if (a == 0x32)
{
led1 = 1;
led2 = 1;
}
if (a == 0x33)
{
led1 = 0;
}
if (a == 0x34)
{
led1 = 1;
}
}
}
void init() //初始化
{
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
ES = 1;
EA =1;
SCON=0x50;
}
/*void delay(uint z) //延時
{
uint x,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}
*/
void Serial() interrupt 4 //串口中斷程序
{
RI = 0;
a = SBUF;
}
/*
----------------
說明:
波特率 9600
在串口助手裡面(把16進制關閉) 輸入 31 是 開啟燈亮
32 是 關閉
也可以用switch語句
----------------
*/
Ⅱ 51單片機 如何編程實現通過串口助手輸入內容
可以的,實際上就是利用串口實現輸入輸出,只需要正確設置串口波特率就行了。
void mInitSTDIO( void )
{
SCON = 0x50;
PCON = 0x80;
TMOD = 0x21;
TH1 = 0xf3; /* 24MHz晶振, 9600bps */
TR1 = 1;
TI = 1;
}
main( )
{
mInitSTDIO( ); /* 為了讓計算機通過串口監控演示過程 */
printf( "Start\n" );
while(1);
}
Ⅲ 誰能給我發一個51單片機向串口調試助手發送信息的簡答程序
#include<reg51.h>
/*
學習內容:應用串口發送接收數據
程序效果:程序實現把接收到的數據發送回去,波速率為2400。用串口調試器可觀察到數據。
注意:串口調試軟體要設置為十六進制。
單片機晶振12M 晶振不一樣修改波特率
*/
unsigned char b;
void rs_dmx() interrupt 4 using 2
{
b=SBUF;//接收數據存儲到變數b
SBUF=b;//把b發送出去,即把接收到的數據發送出去
while(TI==0);TI=0; //等待發送完畢
RI=0;
}
main()
{
TMOD=0x21;
TH1=0xF3;//波速率設置為2400
TR1=1;
EA=1;
SCON=0XD0;
ES=1;//串口中斷允許
while(1)
{
}
}
Ⅳ 單片機燒寫軟體STC ISP,裡面的串口助手怎麼用呀如何用串口助手將字元串發送給單片機,然後單片
u8/u7是STC公司銷售的兩塊編程板,新板是U8,老闆是U7,去STC官網就能找到。你用串口線下載程序時,就無所謂了。 當滑鼠放到打勾的位置時,就能彈出一個消息框了,說明U8/U7是什麼意思了。
Ⅳ 大佬們,誰會用匯編編寫一個15單片機的程序,通過串口調試助手把單片機內A寄存器的數據發送到電腦上顯
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVTMOD,#20H
MOVTH1,#0FDH
MOVTL1,#0FDH
MOVSCON,#40H
SETBTR1
LOOP:
MOVSBUF,A
JNBTI,$
CLRTI
INCA
SJMPLOOP
END
Ⅵ 用單片機串口向電腦串口調試助手發送一個字元串,用C語言編程
uchar idata SystemBuf[10]; //用於接收
uchar Rx=0; //接收數據條數
uchar code AT[]="YES,IT IS";
void UART_init (void)
{
TMOD=0x20; //用定時器1
PCON=0x00; //波特率不加倍
SCON=0x50; //串列方式1
TH1=0xFD; //9600
TL1=0xFD; //
EA=1; //
ES=1; //
TR1=1;
}
void sendchar(uchar ch) //串口送一個位元組
{
SBUF=ch;
while(TI==0);
TI=0;
}
void sendstring(uchar *p) //送字元串
{
while(*p)
{
sendchar(*p);
p++;
}
}
///////
void receive(void) interrupt 4 using 1 //中斷
{
if(RI)
{
if(Rx<10) //這兒最多收10個位元組
{
SystemBuf[Rx]=SBUF;
Rx++;
}
RI=0;
}
}
///
void main()
{
uchar i;
UART_init();
while(1)
{
if(SystemBuf=='S')
{
sendstring(AT);
for(i=0;i<10;i++) //接收清0
{
SystemBuf[i]=0;
}
Rx=0;
}
}
}
//////////如有小錯誤,自己調下,手打的,大小寫可能不正常,這是標准程序,直接用,
Ⅶ avr單片機有沒有編程助手之類的東西 誰能給一個
用code veirson編程吧,裡面有代碼自動生成功能
Ⅷ 學習單片機用什麼軟體
keil最流行
單片機開發中除必要的硬體外,同樣離不開軟體,我們寫的匯編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟體將源程序變為機器碼,用於MCS-51單片機的匯編軟體有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟體也在不斷發展,Keil軟體是目前最流行開發MCS-51系列單片機的軟體,這從近年來各模擬機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的模擬調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部份組合在一起。運行Keil軟體需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬碟空間、WIN98、NT、WIN2000、WINXP等操作系統。掌握這一軟體的使用對於使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那麼Keil幾乎就是你的不二之選(目前在國內你只能買到該軟體、而你買的模擬機也很可能只支持該軟體),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟體模擬調試工具也會令你事半功倍。
目前最新的版本是keil uv3,可下載破解版本,否則有容量限制。
Ⅸ 單片機編的計時程序,串口調試助手收到都是0.0怎麼辦謝謝大家
由於沒寫中斷處理程序當發送完成後,觸發串口中斷進入0x0023地址處運行,就相當於復位了一次一樣。所以會出現2次的情況。(第二次由於TI已經為1了所以不會觸發中斷) 解決方法 1、關閉串口中斷 EA=0; ES=0; 2、寫一個串口中斷處理函數 void UARTInt...9395
Ⅹ 怎麼用51單片機向串口調試助手發送字元串有程序解釋更好啊,求解~
ASCII碼在單片機中也是用16進制來表示的,只是解碼後顯示的是字元,你要是隨便發一個字元,串口調試助手選擇字元顯示接收就可以顯示一個字元出來(可能我們不認識這個字元)。發送一個字元串就是不停的發送直到發送完畢,51單片機有自己的串列發送埠P3.0和P3.1埠,但是它是一個位元組一個位元組發送的,發送完一個位元組會產生一個中斷(也可以用判斷TI的方式判斷是否發送完),中斷響應後再次啟動發送SBUF=0Xxx,就會自動連續的發送,再加上判斷就可以控制發送的位元組數。
串口初始化:
void uart_init()
{
TMOD=0x20;//定時器1,模式2
SCON=0x50;//串口通訊方式1
TH1=0xfd;//波特率9600
TL1=0xfd;
button=0;
delay(1);
TI=0;//發送中斷標志位清零
RI=0;//接收中斷標志位清零
TR1=1;//啟動定時器1
EA=1; //使能全局中斷
ES=1; //啟動串口中斷
}
}
void main()
{ P1=0xff;
uart_init() ;
while(1)
{
}
// 串列中斷程序
void commIntProc() interrupt 4
{
if(TI)
{
TI = 0;
if(sendPosi < sendCount) //判斷是否發送完成
{
sendPosi++; //發送一次計數器加一
SBUF = sendBuf[sendPosi];//啟動發送
}