任務(wù) 任務(wù) 智能小車 log 信息顯示功能設(shè)計 智能小車 log 信息顯示功能設(shè)計軟件程序 設(shè)計 軟件程序 設(shè)計_第1頁
任務(wù) 任務(wù) 智能小車 log 信息顯示功能設(shè)計 智能小車 log 信息顯示功能設(shè)計軟件程序 設(shè)計 軟件程序 設(shè)計_第2頁
任務(wù) 任務(wù) 智能小車 log 信息顯示功能設(shè)計 智能小車 log 信息顯示功能設(shè)計軟件程序 設(shè)計 軟件程序 設(shè)計_第3頁
任務(wù) 任務(wù) 智能小車 log 信息顯示功能設(shè)計 智能小車 log 信息顯示功能設(shè)計軟件程序 設(shè)計 軟件程序 設(shè)計_第4頁
任務(wù) 任務(wù) 智能小車 log 信息顯示功能設(shè)計 智能小車 log 信息顯示功能設(shè)計軟件程序 設(shè)計 軟件程序 設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論