導航:首頁 > 操作系統 > 115200hz單片機編程教程

115200hz單片機編程教程

發布時間:2022-12-27 19:26:36

『壹』 51單片機 設置串口波特率115200初值怎麼弄 呢 單片機是11.0592的晶振

void UartInit(void) //[email protected]
{
PCON &= 0x7f; //波特率不倍速
SCON = 0x50; //8位數據,可變波特率
AUXR |= 0x40; //定時器1時鍾為Fosc,即1T
AUXR &= 0xfe; //串口1選擇定時器1為波特率發生器
TMOD &= 0x0f; //清除定時器1模式位
TMOD |= 0x20; //設定定時器1為8位自動重裝方式
TL1 = 0xFD; //設定定時初值
TH1 = 0xFD; //設定定時器重裝值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
}

void UartInit(void) //[email protected]
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位數據,可變波特率
AUXR &= 0xbf; //定時器1時鍾為Fosc/12,即12T
AUXR &= 0xfe; //串口1選擇定時器1為波特率發生器
TMOD &= 0x0f; //清除定時器1模式位
TMOD |= 0x20; //設定定時器1為8位自動重裝方式
TL1 = 0xFF; //設定定時初值
TH1 = 0xFF; //設定定時器重裝值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
}

『貳』 51單片機編程

#include <reg51.h>

int flag = 0;
int tag = 0;
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0C8; //計數14286: 20Hz = 50ms 50/7*2*1000
TL0 = 0x32;
EA = 1;
ET0 = 1;
TR0 = 1;
}

void main(void)
{
InitTimer0();
P1.0 = 1;
while(1)
{
if(tag==1)
{
P1.1 = ~P1.1;
tag = 0;
}
}

void Timer0Interrupt(void) interrupt 1
{
if(flag==0)
{
TH0 = 0x74;
TL0 = 0x7E;
flag = 1;
}

else
{
TH0 = 0x0C8;
TL0 = 0x32;
flag = 0;
}

tag = 1;
}

『叄』 52單片機 如何用T2來設波特率為115200的 串口接收 要用C語言寫

void UART_init()
{
//初始化串列口和波特率發生器
SCON =0x64; //選擇串口工作方式,打開接收允許
TMOD =0x21; //定時器1工作在方式2,定時器0工作在方式1
TH1 =0xfd; //實現波特率115200(系統時鍾11.0592MHZ)
TR1 =1; //啟動定時器T1
ET2 =1; //允許T2中斷
ES=1; //允許串列口中斷
PS=1; //設計串列口中斷優先順序
EA =1; //單片機中斷允許
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: com_interrup()串口接收中斷處理函數
// 函數功能: 接收包括起始位'S'在內的十位數據到數據緩沖區
//--------------------------------------------------------------------------------------------------
com_interrupt(void) interrupt 4 using 3
{
unsigned char RECEIVR_buffer;
if(RI) //處理接收中斷
{
RI=0; //清除中斷標志位
RECEIVR_buffer=SBUF; //接收串口數據
if(point==0) //如果還沒有接收到起始位
{
if(RECEIVR_buffer=='S') //判斷是否起始標志位
point++; //是准備接收下一位
else
point=0; //不是,繼續等待起始位
}
else if(point>0&&point<10) //判斷是否接收夠十位數據
buffer[point++]=RECEIVR_buffer; //不夠,把接收到的數據放入接收緩存區
else point=0; //緩沖區已滿,清除緩存區內數據重新接收
}
If(TI) //處理發送中斷
{
TI=0;
}
}
//

『肆』 給100分,stc89c52單片機,用11.0592的晶振,產生115200的波特率

如果STC單片機處於6T模式,RCAP2H=0xFF,RCAP2L=0xD0。如果為12T方式RCAP2H=0xFF,RCAP2L=0xE8。然後設置T2CON=0x34即完成對串口的初始化,其餘的操作就和普通串口一樣了。

『伍』 單片機串口用T2做定時器 晶振為:22。1184 比特率:115200 匯編程序怎麼寫

初始化程序如下:
MOV SCON, #50H ;設置串口方式1,允許接收.
MOV T2CON, #00110100B ;設置T2
MOV T2MOD, #0
MOV RCAP2H, #0FFH
MOV RCAP2L, #0FAH
MOV TH2, #0FFH
MOV TL2, #0FAH
……

『陸』 編程實現stm32單片機串口的數據收發

int main(void)
{
u16 t;
u16 len;
u16 times=0;
delay_init(); //延時函數初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優先順序,2位響應優先順序
uart_init(115200); //串口初始化為115200
LED_Init(); //LED埠初始化
KEY_Init(); //初始化與按鍵連接的硬體介面
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的數據長度
printf("\r\n您發送的消息為:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1發送數據
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待發送結束
}
printf("\r\n\r\n");//插入換行
USART_RX_STA=0;
}
}
}

『柒』 C51單片機程序:數碼管左邊兩位顯示秒,右邊兩位顯示毫秒。串口波特率設置為115200串口助手發送

就說你要求的串口波特率為115200,除了STC10以上系列的單片機實物可以達到。對於傳統的51單片機,不論模擬還是實物開發板都實現不了。

『捌』 89C52單片機怎樣產生115200波特率

採用11.0592M的晶體或者22.1184M的的晶體
89C52是INTEL公司MCS-51系列單片機中基本的產品,它採用ATMEL公司可靠的CMOS工藝技術製造的高性能8位單片機,屬於標準的MCS-51的HCMOS產品。它結合了CMOS的高速和高密度技術及CMOS的低功耗特徵,它基於標準的MCS-51單片機體系結構和指令系統,屬於89C51增強型單片機版本,集成了時鍾輸出和向上或向下計數器等更多的功能,適合於類似馬達控制等應用場合。89C52內置8位中央處理單元、256位元組內部數據存儲器RAM、8k片內程序存儲器(ROM)32個雙向輸入/輸出(I/O)口、3個16位定時/計數器和5個兩級中斷結構,一個全雙工串列通信口,片內時鍾振盪電路。此外,89C52還可工作於低功耗模式,可通過兩種軟體選擇空閑和掉電模式。在空閑模式下凍結CPU而RAM定時器、串列口和中斷系統維持其功能。掉電模式下,保存RAM數據,時鍾振盪停止,同時停止晶元內其它功能。89C52有PDIP(40pin)和PLCC(44pin)兩種封裝形式。

閱讀全文

與115200hz單片機編程教程相關的資料

熱點內容
手機app調音器怎麼調古箏 瀏覽:501
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:17
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:274
冒險島什麼伺服器好玩 瀏覽:541
如何在伺服器上做性能測試 瀏覽:793
命令序列錯 瀏覽:259
javaif的條件表達式 瀏覽:576
手機app上傳的照片怎麼找 瀏覽:531
雲伺服器面臨哪些威脅 瀏覽:748
c語言各種編譯特點 瀏覽:177
路由器多種加密方法 瀏覽:604
程序員阻止電腦自動彈出定位 瀏覽:168
如何做伺服器服務商 瀏覽:761
su剖切命令 瀏覽:726
devc編譯背景 瀏覽:211