1、C8051f的UART0是異步、全雙工串口。其波特率發生器規定由定時器1定時器提供。可配置為8位UART或9位UART(多機通訊第九位用于片選作用)。SYSCLK=24.5MHZ(我的板子采用內部晶振頻率作為系統時鐘) BAUDRATE=115200(波特率)
2、初值TH1 Tl1配置
由上述公式可計算初值:TH1 = 256-(SYSCLK/BAUDRATE/2)而程序內是TH1 = -(SYSCLK/BAUDRATE/2),這兩種是相同的。第一種是以正數的二進制形式保存在計算機內。第二種是負數,取反加1求得補碼保存在計算機中。結果是相同的。每當TL1中的值溢出后 TH1存儲的重裝載值裝載到TL1中開始計數。
3、初始化程序(以后使用可直接調用此初始化函數)。SYSCLK與BAUDRATE參數修改即可
void UART0_Init (void)
{
SCON0 = 0x10; // SCON0: 8-bit variable bit rate
// level of STOP bit is
// 使能RX接收
// ninth bits are zeros
// 清除接收和發送中斷
if (SYSCLK/BAUDRATE/2/256 《 1) {
TH1 = -(SYSCLK/BAUDRATE/2);
CKCON |= 0x10; // T1M = 1; SCA1:0 = xx
} else if (SYSCLK/BAUDRATE/2/256 《 4) {
TH1 = -(SYSCLK/BAUDRATE/2/4);
CKCON |= 0x01; // T1M = 0; SCA1:0 = 01
CKCON &= ~0x12;
} else if (SYSCLK/BAUDRATE/2/256 《 12) {
TH1 = -(SYSCLK/BAUDRATE/2/12);
CKCON &= ~0x13; // T1M = 0; SCA1:0 = 00
} else {
TH1 = -(SYSCLK/BAUDRATE/2/48);
CKCON |= 0x02; // T1M = 0; SCA1:0 = 10
CKCON &= ~0x11;
}
TL1 = 0xff; // 定時器1加1 TL1溢出 此時TH1中的重裝載值加載 //到TL1中
TMOD |= 0x20; //定時器1設置為8位自動重裝載模式
TMOD &= ~0xD0;
TR1 = 1; //開啟定時器1
TI0 = 1; // 發送結束 此發送中斷位置1
}
上一篇:51單片機學習感悟與51單片機上拉電阻心得
下一篇:keil C51存儲區域類型是什么
推薦閱讀
史海拾趣
隨著科技的不斷進步,超音意識到技術創新對于公司發展的重要性。因此,公司加大了研發投入,積極引進高端人才,不斷推出具有創新性和競爭力的產品。其中,超音的一款高端音響產品憑借其卓越的音質和精美的外觀設計,在市場上獲得了廣泛的好評。此外,超音還積極與其他科技公司合作,共同研發新產品,不斷拓寬產品線。
隨著市場需求的不斷增長,安碁科技開始尋求擴大產能和全球化布局。1999年,公司正式量產電壓控制振蕩器(VCXO),并購置了更大的廠房以擴大產能。隨后,安碁科技陸續在美國和中國大陸設立子公司和辦事處,進一步拓展國際市場。這一系列的舉措,不僅提高了公司的產能和效率,也使其能夠更好地服務全球客戶,實現業務的快速增長。
普芯達電子自創立之初,就立志成為國產高品質、高性價比的IC產品供應商。在成立初期,公司面臨著資金緊張、技術積累不足以及市場競爭激烈等多重挑戰。然而,憑借著創始人對集成電路行業的深厚理解和堅定信念,普芯達電子逐步克服了這些困難,通過引進優秀人才、加大研發投入以及不斷優化產品質量,逐漸在市場上嶄露頭角。
企業文化和團隊建設是企業持續發展的基石。普芯達電子注重企業文化建設和團隊建設,倡導“誠信、創新、協作、共贏”的價值觀,營造了一個積極向上、團結和諧的工作氛圍。公司注重員工的培訓和發展,為員工提供了廣闊的發展空間和良好的福利待遇。同時,普芯達電子還建立了完善的激勵機制和績效考核體系,激發了員工的工作積極性和創造力。這些措施的實施為公司的持續發展提供了有力的保障。
請注意,以上僅為故事框架的概述,你可以根據這些框架進一步擴展和詳細化每個故事的內容。
ARBOR公司一直致力于電子技術的研發與創新。在某個時期,公司研發團隊成功開發出一款具有顛覆性的電路板技術,這項技術在信號傳輸速度和穩定性上實現了重大突破。憑借這一技術,ARBOR公司迅速占領了高端電子市場,成為行業內的技術領導者。公司股價隨之飆升,吸引了大量投資者的關注。
北京亞嵌教育研究中心(暨嵌入式培訓中心) 招聘 北京亞嵌(AKAE)教育研究中心簡介: 北京亞嵌(AKAE)教育研究中心是國內最早從事嵌入式技術教育和培訓的專業研究機構。亞嵌(AKAE)發源于1998年在清華大學成立的AKA組織(www.aka.org.cn) ...… 查看全部問答∨ |
1.語言可以直接 edit > change 2.原理圖庫簡單直接的建立ctrl+N, 3.原理圖庫器件編輯的整體局部移動的快捷,快捷工具欄Select object inside aera > 右鍵 Move 后確認即可,勿需再次撤銷選擇的重復動作 4.熱鍵ctrl+X/C/v/Z等快捷幫助你完成 ...… 查看全部問答∨ |
電池驅動USB插拔造成display power off的問題 最近在寫battery驅動,發現設置ACLineStatus后會造成LCD關閉。但是點擊Touchpanel或者按鍵,LCD又會重新打開。就像是進入systemidle關閉屏幕一樣。如果將ACLineStatus 設置為AC_LINE_UNKNOWN,即不設置AC ON/OFF狀態就沒有此現象。 在battery驅動 ...… 查看全部問答∨ |
在MSP430 定時的時候,在設置為增計數模式的時候 ,CCRO=m,設置定時時間,定時時間長短怎么計算,即,m怎么計算? 請高手幫幫忙! 謝啦!… 查看全部問答∨ |
應用89C51,晶振12M 寫延時8MS程序 4000=0FA0H 超出一個8位寄存器所能容納的范圍,所以使用兩個寄存器R4、R3分別存放高字節0FH與低字節A0H,但在中斷服務子程序中.當R4、R3=0101H,再減1, 則R4、R3=0100H,但實際上程序使R4、R3=0000H,即R4多減一次, ...… 查看全部問答∨ |
|
實驗內容:通過STM32的USB端口在PC上虛擬一個COM口,當虛擬成功后,可通過串口調試軟件 發送控制命令,去點亮板子上相應的LED燈,同時輸出調試信息。 工程文件: 在PC機的設備管理器中可看到虛擬出的COM口 串口調試軟件的輸出狀態 ...… 查看全部問答∨ |
|
打算用Cyclone IV做一塊 Mobile DDR 的開發板,但不知道是否支持Mobile DDR? 本人想用ALTERA Cyclone IV的EP4CE55F23做一塊開發板,手頭上有一4G bit nand flash+4G bit LPDDR1的MCP芯片,不知道Cyclone IV能不能支持這種Mobile DDR。或者有沒有相應的IP核?特發此貼請前輩指點。… 查看全部問答∨ |
最近在學用IAR和proteus仿真arm7,自己搞不來啊,以前仿真51的時候都行,現在仿真arm7時,選擇聯調會報錯, 誰有proteus仿真過arm7的經驗。交流交流 … 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 一個AD采集1602顯示的程序,自己封裝了一個1602頭文件,有點粗糙,拿來與大家交流~
- 跟著wince5 help 實做Create a Device Driver時遇到的問題
- 麥克風的輸出電壓一般幅度多大?
- 誰有合適的PADS2007,發個給我 謝謝 上網沒搜到
- 請教各位大蝦!stm8PB口與中斷沖突問題!
- 深度資料|5G NR無線通信技術
- 突然想問個很童年的問題。。。走過路過進來看看啊。。。。
- 破解DXP2004
- 如何實現nand flash 存取 LOGO(在EBOOT中)?
- ======WINCE6.0下這些異常怎么定位解決---Exception 'Undefined Instruction'++++Exception 'Pref