久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
STC15F系列8051單片機(jī)模擬串口57600bps@24MHz
[打印本頁]
作者:
wudawei
時(shí)間:
2014-12-31 00:02
標(biāo)題:
STC15F系列8051單片機(jī)模擬串口57600bps@24MHz
//為何不把程序?qū)懙猛ㄋ滓锥c(diǎn)?超級(jí)代碼來了!
//參考了STC官網(wǎng)手冊(cè)中的程序,但源程序遇到RX腳一直為低電平也會(huì)收到數(shù)據(jù)0x00,這里已經(jīng)修正
//柳州市第一職業(yè)技術(shù)學(xué)校 電氣自動(dòng)化專業(yè)部 中國歐軟 China O Soft! 2012年8月3日
#include <reg52.h> //使用8052內(nèi)核單片機(jī)
sbit TX_IO=P3^1; //模擬串口發(fā)送IO
sbit RX_IO=P3^0; //模擬串口接收IO
sfr AUXR=0x8e; //STC15F系列單片機(jī)特殊寄存器,控制定時(shí)器時(shí)鐘來源頻率
bit sending,receing,received; //發(fā)送中,接收中,接收完畢標(biāo)志
unsigned char rece_bit_count; //接收位計(jì)數(shù)變量
unsigned char rece_pls_count; //接收脈沖計(jì)數(shù)變量
unsigned char send_bit_count; //發(fā)送位計(jì)數(shù)變量
unsigned char send_pls_count; //發(fā)送脈沖計(jì)數(shù)變量
unsigned char receing_data; //正在接收著的臨時(shí)數(shù)據(jù)
unsigned char byte_need_to_send; //要發(fā)送出去的字節(jié)
unsigned char byte_received; //已收到的字節(jié)
void send_byte(unsigned char byte_will_send) //發(fā)送一個(gè)字節(jié)
{ //函數(shù)開始
byte_need_to_send=byte_will_send; //傳遞要發(fā)送的數(shù)據(jù)
send_pls_count=3; //采樣倍率3
send_bit_count=8; //8位數(shù)據(jù)一位停止
TX_IO=0; //發(fā)送起始位
sending=1; //置標(biāo)志位,中斷程序開始發(fā)送該字節(jié)
while(sending); //等待數(shù)據(jù)發(fā)送完成
} //函數(shù)結(jié)束
void timer0(void) interrupt 1 //中斷服務(wù)程序
{ //函數(shù)開始
if(receing) //接收中?
{ //接收中開始
if(--rece_pls_count==0) //三次脈沖計(jì)數(shù)夠了嗎?
{ //接收一位二進(jìn)制位開始
rece_pls_count=3; //脈沖計(jì)數(shù)輔助變量復(fù)位
if(rece_bit_count) //是在接收數(shù)據(jù)位還是停止位
{ //接收數(shù)據(jù)位開始
receing_data=receing_data>>1; //向右移一位,準(zhǔn)備拼入一位二進(jìn)制數(shù)據(jù)
if(RX_IO==1){receing_data=receing_data|0x80;}//如果收到的是二進(jìn)制位"1",則拼入最高位中
rece_bit_count=rece_bit_count-1; //已接收一位,接收位計(jì)數(shù)變量計(jì)數(shù)
} //接收數(shù)據(jù)位結(jié)束
else //如果已經(jīng)收完8位數(shù)據(jù)
{ //就開始接收停止位
receing=0; //本字節(jié)已接收完畢
if(RX_IO==1) //停止位是"1"嗎
{ //是“1”
byte_received=receing_data; //將數(shù)據(jù)輸出
received=1; //搖旗示意數(shù)據(jù)正確接收完畢
} //數(shù)據(jù)輸出處理完畢
} //停止位處理完畢
} //接收一位二進(jìn)制位結(jié)束
} //接收中處理結(jié)束
else //還沒收到停止位,不是正在接收狀態(tài)
{ //等待接收開始
if(RX_IO==0) //是一個(gè)起始位到來嗎
{ //是.......
receing=1; //開始接收
rece_pls_count=3; //置接收起始位脈沖數(shù)
rece_bit_count=8; //置接收二進(jìn)制位數(shù)
} //起始位處理完畢
} //等待接收完畢
//----------------------------------------------------------------------------------------
if(sending) //是正在發(fā)送狀態(tài)嗎
{ //是……
if(--send_pls_count==0) //脈沖計(jì)數(shù)夠了嗎
{ //夠了……
send_pls_count=3; //脈沖計(jì)數(shù)復(fù)位
if(send_bit_count) //是在發(fā)送數(shù)據(jù)還是要發(fā)送停止位
{ //發(fā)送數(shù)據(jù)開始
TX_IO=byte_need_to_send&0x01; //從最低位開始發(fā)送數(shù)據(jù)
byte_need_to_send=byte_need_to_send>>1; //移動(dòng)數(shù)據(jù)準(zhǔn)備下一次發(fā)送
send_bit_count=send_bit_count-1; //已經(jīng)發(fā)送了一位二進(jìn)制數(shù)要記下來
} //發(fā)送數(shù)據(jù)結(jié)束
else //數(shù)據(jù)已經(jīng)發(fā)送完成
{ //發(fā)送停止位開始
TX_IO=1; //發(fā)送停止位
sending=0; //放下旗幟表示數(shù)據(jù)已經(jīng)發(fā)送完成
} //停止位發(fā)送完成
} //一位二進(jìn)制位處理完成
} //發(fā)送狀態(tài)處理完成
} //中斷函數(shù)結(jié)束
void main(void) //主程序
{ //開始
AUXR=0x80; //T0計(jì)時(shí)脈沖不分頻,比傳統(tǒng)8051快12倍
TMOD=0X00; //16位自動(dòng)重載模式,當(dāng)TR0=0時(shí)向TH0,TL0寫入數(shù)據(jù)將同時(shí)寫入重載寄存器
TH0=(65536-(24000000/57600/3))/256; //重載值=65536-(定時(shí)器脈沖頻率÷波特率÷3)
TL0=(65536-(24000000/57600/3))%256; //溢出率=定時(shí)器脈沖頻率÷(65536-重載值)
TR0=1; //啟動(dòng)定時(shí)器,模擬串口開始工作
EA=1; //打開總中斷
ET0=1; //打開定時(shí)器0中斷
PX0=1; //優(yōu)先保證定時(shí)器0中斷,確保模擬串口的可靠性
while(1) //主循環(huán)
{ //主循環(huán)體開始
if(received==1) //收到一個(gè)字節(jié)的數(shù)據(jù)啦?
{ //是……
received=0; //知道了……
send_byte(byte_received); //原封不動(dòng)打回原籍
} //收到字節(jié)處理完畢
} //主循環(huán)體結(jié)束
} //主程序結(jié)束
復(fù)制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
免费视频一区二区
|
黄色av免费网站
|
亚洲一区二区免费
|
精品欧美乱码久久久久久
|
国产精品美女www
|
亚洲精品久久久9婷婷中文字幕
|
日韩欧美国产成人一区二区
|
久久中文字幕电影
|
国产成人精品一区二三区在线观看
|
国产高清在线精品一区二区三区
|
久久久www成人免费精品张筱雨
|
婷婷色国产偷v国产偷v小说
|
亚洲不卡在线观看
|
在线视频 欧美日韩
|
天天看片天天干
|
激情a
|
国产精品亚洲一区二区三区在线
|
www.xxxx欧美
|
欧美一级在线
|
亚洲啪啪
|
日韩精品一区二区三区高清免费
|
成人毛片一区二区三区
|
欧美日韩18
|
久产久精国产品
|
www.夜夜骑
|
一区二区日韩
|
欧美亚洲网站
|
国产人成精品一区二区三
|
91在线精品秘密一区二区
|
国产精品乱码一区二区三区
|
日韩精品在线看
|
精品久久成人
|
一级黄色日本片
|
久久99精品久久久久久
|
国产在线不卡视频
|
www.yw193.com
|
av毛片免费
|
亚洲乱码一区二区三区在线观看
|
久久精品国产久精国产
|
亚洲精品无人区
|
可以在线观看av的网站
|