




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
任務(wù)4-1任務(wù)4-1智能小車log信息顯示功能設(shè)計智能小車log信息顯示功能設(shè)計軟件程序設(shè)計軟件程序設(shè)計軟件程序設(shè)計SCON、PCON、波特率、中斷設(shè)置單片機(jī)通過串口發(fā)送數(shù)據(jù)借助串口調(diào)試助手,測試log信息顯示功能。編寫主函數(shù),調(diào)用UART初始化和發(fā)送函數(shù),測試UART功能主函數(shù)發(fā)送函數(shù)串口初始化初始化
配置發(fā)送函數(shù)主函數(shù)任務(wù)調(diào)試功能模塊劃分軟件程序設(shè)計設(shè)置SCON:串行口控制寄存器
第一步工作方式、允許接收位串行口UART初始化設(shè)置(1)UART初始化設(shè)置SM0SM1SM2RENTB8RB8TIRI0X9F0X9E0X9D0X9C0X9B0X9A0X990X980X98SCON工作方式選擇多機(jī)通信控制位允許串行接收位發(fā)送數(shù)據(jù)的第9位發(fā)送數(shù)據(jù)的第9位發(fā)送中斷標(biāo)志接收中斷標(biāo)志軟件程序設(shè)計(1)UART初始化設(shè)置SM0SM1SM2RENTB8RB8TIRI0X9F0X9E0X9D0X9C0X9B0X9A0X990X980X98SCON工作方式選擇軟件程序設(shè)計SM0、SM1工作方式功能描述波特率00方式08位移位寄存器fosc=1201方式110位UART可變10方式211位UARTfosc/64或fosc/3211方式311位UART可變(1)UART初始化設(shè)置SM0SM1SM2RENTB8RB8TIRI0X9F0X9E0X9D0X9C0X9B0X9A0X990X980X98SCON工作方式選擇軟件程序設(shè)計SM0、SM1工作方式功能描述波特率00方式08位移位寄存器fosc=1201方式110位UART可變10方式211位UARTfosc/64或fosc/3211方式311位UART可變01(1)UART初始化設(shè)置SM0SM1SM2RENTB8RB8TIRI0X9F0X9E0X9D0X9C0X9B0X9A0X990X980X98SCON軟件程序設(shè)計多機(jī)通信控制位允許串行接收位發(fā)送數(shù)據(jù)的第9位發(fā)送數(shù)據(jù)的第9位發(fā)送中斷標(biāo)志接收中斷標(biāo)志工作方式選擇01000000SCON=0x40;(1)UART初始化設(shè)置軟件程序設(shè)計T1作為波特率發(fā)生器T1工作在方式2,即8位自動重裝載模式設(shè)置SCON:串行口控制寄存器
第一步設(shè)置波特率TMOD,PCON,TR1第二步工作方式、允許接收位串行口初始化設(shè)置(中斷)(1)UART初始化設(shè)置軟件程序設(shè)計T1作為波特率發(fā)生器T1工作在方式2,即8位自動重裝載模式串行口波特率設(shè)置76543210GATEC/TM1M0GATEC/TM1M0T1T0TMOD的格式設(shè)置TMOD的值(1)UART初始化設(shè)置軟件程序設(shè)計76543210GATEC/TM1M0GATEC/TM1M0000000T1T0TMOD的格式TMOD功能工作方式M1M013位計數(shù)器方式00016位計數(shù)器方式1018位計數(shù)器,初值自動重裝方式210分成兩個8位計數(shù)器,僅用于T0。T1停止使用方式311工作方式10TMOD=(TMOD&0x0f)|0x20;(1)UART初始化設(shè)置軟件程序設(shè)計T1作為波特率發(fā)生器T1工作在方式2,即8位自動重裝載模式串行口波特率設(shè)置TMOD的值
SMOD為0,波特率不加倍,TH1=(256-11059200/32/12/波特率)SMOD為1,波特率加倍,TH1=(256-11059200/16/12/波特率)如果(1)UART初始化設(shè)置軟件程序設(shè)計SMODPCON26543017SMOD為0,TH1=(256-11059200/32/12/波特率)SMOD為1,TH1=(256-11059200/16/12/波特率)如果PCON=0x00;PCON=0x80;TMOD=(TMOD&0x0f)|0x20;TL1=TH1=(256-11059200/32/12/波特率);//設(shè)置初始值PCON=0x00;//波特率不加倍TR1=1;//開啟定時器
波特率相關(guān)配置(1)UART初始化設(shè)置軟件程序設(shè)計設(shè)置SCON:串行口控制寄存器
第一步設(shè)置波特率TMOD,PCON,TR1第二步啟動方式、定時/計數(shù)功能、工作方式串行口初始化設(shè)置(1)UART初始化設(shè)置//串行口工作方式設(shè)置SCON=0x50;//串行口波特率設(shè)置TMOD=(TMOD&0x0f)|0x20;TL1=TH1=(256-11059200/32/12);//設(shè)置初始值TR1=1;//開啟定時器PCON=0x00;//波特率不加倍軟件程序設(shè)計76543210EAESET1EX1ET0EX0000000IE10串行口中斷允許位CPU中斷允許位ES=1;EA=1;軟件程序設(shè)計(1)UART初始化設(shè)置/**********************************************************函數(shù)名稱:uart_init
函數(shù)功能:串行口初始化輸入?yún)?shù):波特率輸出參數(shù):返回值:備注:***********************************************************/voiduart_init(unsignedintbaud){//串行口工作方式設(shè)置SCON=0x50;//串行口波特率設(shè)置TMOD=(TMOD&0x0f)|0x20;TL1=TH1=(256-11059200/32/12/baud);//設(shè)置初始值TR1=1;//開啟定時器PCON=0x00;//波特率不加倍}(1)串口初始化函數(shù)軟件程序設(shè)計/**********************************************************函數(shù)名稱:uart_send_byte
函數(shù)功能:通過串口發(fā)送單個字節(jié)數(shù)據(jù)輸入?yún)?shù):dat:-->需要發(fā)送的字節(jié)數(shù)據(jù)輸出參數(shù):返回值:備注:***********************************************************/voiduart_send_byte(unsignedchardat){SBUF=dat;while(TI==0);TI=0;}(2)發(fā)送函數(shù):單個字節(jié)(2)發(fā)送函數(shù)的編寫軟件程序設(shè)計/**********************************************************函數(shù)名稱:send_data
函數(shù)功能:按鍵掃描函數(shù),檢測按鍵的閉合和斷開狀態(tài),s_flag:0按鍵釋放s_flag:1按鍵按下輸入?yún)?shù):輸出參數(shù):返回值:備注:***********************************************************/voiduart_send_string(unsignedchar*str){unsignedinti=0;
do{uart_send_byte(*(str+i));i++;}while(*(str+i)!='\0');}(2)發(fā)送函數(shù):多個字節(jié)(2)發(fā)送函數(shù)的編寫軟件程序設(shè)計/**********************************************************函數(shù)名稱:main
函數(shù)功能:測試串口發(fā)送功能輸入?yún)?shù):輸出參數(shù):返回值:備注:***********************************************************/voidmain(){uart_init(9600);//串行口初始化
//uart_send_byte(0x01);//發(fā)送數(shù)據(jù)0x01;uart_send_string(“helloworld!”);//發(fā)送數(shù)據(jù)“hellowor1d!”while(1);}(3)主函數(shù)(3)主函數(shù)的編寫軟件程序設(shè)計
任務(wù)4-1:軟件程序#Include<reg51.h>/**********************************************************函數(shù)名稱:uart_init
函數(shù)功能:串行口初始化輸入?yún)?shù):波特率輸出參數(shù):返回值:備注:***********************************************************/voiduart_init(unsignedintbaud){//串行口工作方式設(shè)置SCON=0x50;//串行口波特率設(shè)置TMOD=(TMOD&0x0f)|0x20;TL1=TH1=(256-11059200/32/12/baud);//設(shè)置初始值TR1=1;//開啟定時器PCON=0x00;//波特率不加倍}/**********************************************************函數(shù)名稱:send_data
函數(shù)功能:按鍵掃描函數(shù),檢測按鍵的閉合和斷開狀態(tài),s_flag:0按鍵釋放s_flag:1按鍵按下輸入?yún)?shù):輸出參數(shù):返回值:備注:***********************************************************/voiduart_send_byte(unsignedchardat){SBUF=dat;while(TI==0);TI=0;}/**********************************************************函數(shù)名稱:send_data 函數(shù)功能:按鍵掃描函數(shù),檢測按鍵的閉合和斷開狀態(tài),s_flag:0按鍵釋放s_flag:1按鍵按下輸入?yún)?shù):輸出參數(shù):返回值:備注:***********************************************************/voiduart_send_string(unsignedchar*str){unsignedinti=0;do{uart_send_byte(*(str+i));//發(fā)送單個字符i++;}while(*(str+i)!='\0');}/**********************************************************函數(shù)名稱:main
函數(shù)功能:按鍵掃描函數(shù),檢測按鍵的閉合和斷開狀態(tài),s_flag:0按鍵釋放s_flag:1按鍵按下輸入?yún)?shù):輸出參數(shù):返回值:備注:***********************************************************/voidmain(){uart_init(9600);//串行口初始化
uart_send_byte(0x01);//發(fā)送數(shù)據(jù)0x01;while(1);}uart.c軟件程序設(shè)計
任務(wù)4-1:軟件程序#Include<reg51.h>/**********************************************************函數(shù)名稱:uart_init
函數(shù)功能:串行口初始化輸入?yún)?shù):波特率輸出參數(shù):返回值:備注:***********************************************************/voiduart_init(unsignedintbaud){//串行口工作方式設(shè)置SCON=0x50;//串行口波特率設(shè)置TMOD=(TMOD&0x0f)|0x20;TL1=TH1=(256-11059200/32/12/baud);//設(shè)置初始值TR1=1;//開啟定時器PCON=0x00;//波特率不加倍}/**********************************************************函數(shù)名稱:send_data
函數(shù)功能:按鍵掃描函數(shù),檢測按鍵的閉合和斷開狀態(tài),s_flag:0按鍵釋放s_flag:1按鍵按下輸入?yún)?shù):輸出參數(shù):返回值:備注:***********************************************************/voiduart_send_byte(unsignedchardat){SBUF=dat;while(TI==0);TI=0;}/**********************************************************函數(shù)名稱:send_data 函數(shù)功能:按鍵掃描函數(shù),檢測按鍵的閉合和斷開狀態(tài),s_flag:0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外賣公司加盟合同范本
- 園服購買合同范本
- 扶貧資產(chǎn)管護(hù)合同范本
- 五一勞動節(jié)主題班會
- 轉(zhuǎn)賣公寓合同范本
- 簡約風(fēng)格畢業(yè)論文答辯模板
- 2025商場店鋪裝修設(shè)計合同協(xié)議范本
- 2025房屋租賃合同書樣本范文
- 鳶飛魚躍〈四書〉經(jīng)典導(dǎo)讀知到課后答案智慧樹章節(jié)測試答案2025年春四川大學(xué)
- 北師大版二年級下冊數(shù)學(xué)《搭一搭(二)》教案
- 小學(xué)語文二年級下冊生字拼音 偏旁 結(jié)構(gòu) 組詞 造句
- 制藥廠設(shè)備安全培訓(xùn)
- 糧食工程基礎(chǔ)知識單選題100道及答案解析
- 2024版無人機(jī)消防偵察與救援服務(wù)合同3篇
- 《環(huán)境會計信息披露對企業(yè)財務(wù)管理目標(biāo)的影響實證研究》7600字(論文)
- 天津醫(yī)科大學(xué)眼科醫(yī)院招聘筆試真題2023
- 生物信息安全課件
- 《助產(chǎn)士的溝通技巧》課件
- 【MOOC】電視采訪報道-中國傳媒大學(xué) 中國大學(xué)慕課MOOC答案
- 橙色國潮風(fēng)中國非物質(zhì)文化遺產(chǎn)-剪紙主題
- 2024閥門檢驗和試驗作業(yè)指導(dǎo)書
評論
0/150
提交評論