女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]我們學(xué)習(xí)串口通信主要是要實現(xiàn)單片機和電腦之間的信息交互,可以用電腦控制單片機的一些信息,可以把單片機的一些信息狀況發(fā)給電腦上的軟件。下面我們就做一個簡單的例程,實現(xiàn)單片機串口調(diào)試助手發(fā)送的數(shù)據(jù),在我們

我們學(xué)習(xí)串口通信主要是要實現(xiàn)單片機和電腦之間的信息交互,可以用電腦控制單片機的一些信息,可以把單片機的一些信息狀況發(fā)給電腦上的軟件。下面我們就做一個簡單的例程,實現(xiàn)單片機串口調(diào)試助手發(fā)送的數(shù)據(jù),在我們開發(fā)板上的數(shù)碼管上顯示出來。

#includesbitADDR3=P1^3;sbitENLED=P1^4;unsignedcharcodeLedChar[]={//數(shù)碼管顯示字符轉(zhuǎn)換表0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};unsignedcharLedBuff[7]={//數(shù)碼管+獨立LED顯示緩沖區(qū)0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};unsignedcharT0RH=0;//T0重載值的高字節(jié)unsignedcharT0RL=0;//T0重載值的低字節(jié)unsignedcharRxdByte=0;//串口接收到的字節(jié)voidConfigTimer0(unsignedintms);voidConfigUART(unsignedintbaud);voidmain(){EA=1;//使能總中斷ENLED=0;//選擇數(shù)碼管和獨立LEDADDR3=1;ConfigTimer0(1);//配置T0定時1msConfigUART(9600);//配置波特率為9600while(1){//將接收字節(jié)在數(shù)碼管上以十六進制形式顯示出來LedBuff[0]=LedChar[RxdByte&0x0F];LedBuff[1]=LedChar[RxdByte>>4];}}/*配置并啟動T0,ms-T0定時時間*/voidConfigTimer0(unsignedintms){unsignedlongtmp;//臨時變量tmp=11059200/12;//定時器計數(shù)頻率tmp=(tmp*ms)/1000;//計算所需的計數(shù)值tmp=65536-tmp;//計算定時器重載值tmp=tmp+13;//補償中斷響應(yīng)延時造成的誤差T0RH=(unsignedchar)(tmp>>8);//定時器重載值拆分為高低字節(jié)T0RL=(unsignedchar)tmp;TMOD&=0xF0;//清零T0的控制位TMOD|=0x01;//配置T0為模式1TH0=T0RH;//加載T0重載值TL0=T0RL;ET0=1;//使能T0中斷TR0=1;//啟動T0}/*串口配置函數(shù),baud-通信波特率*/voidConfigUART(unsignedintbaud){SCON=0x50;//配置串口為模式1TMOD&=0x0F;//清零T1的控制位TMOD|=0x20;//配置T1為模式2TH1=256-(11059200/12/32)/baud;//計算T1重載值TL1=TH1;//初值等于重載值ET1=0;//禁止T1中斷ES=1;//使能串口中斷TR1=1;//啟動T1}/*LED動態(tài)掃描刷新函數(shù),需在定時中斷中調(diào)用*/voidLedScan(){staticunsignedchari=0;//動態(tài)掃描索引P0=0xFF;//關(guān)閉所有段選位,顯示消隱P1=(P1&0xF8)|i;//位選索引值賦值到P1口低3位P0=LedBuff[i];//緩沖區(qū)中索引位置的數(shù)據(jù)送到P0口if(i<6){//索引遞增循環(huán),遍歷整個緩沖區(qū)i++;}else{i=0;}}/*T0中斷服務(wù)函數(shù),完成LED掃描*/voidInterruptTimer0()interrupt1{TH0=T0RH;//重新加載重載值TL0=T0RL;LedScan();//LED掃描顯示}/*UART中斷服務(wù)函數(shù)*/voidInterruptUART()interrupt4{if(RI){//接收到字節(jié)RI=0;//手動清零接收中斷標(biāo)志位RxdByte=SBUF;//接收到的數(shù)據(jù)保存到接收字節(jié)變量中//接收到的數(shù)據(jù)又直接發(fā)回,叫作-"echo",//用以提示用戶輸入的信息是否已正確接收SBUF=RxdByte;}if(TI){//字節(jié)發(fā)送完畢TI=0;//手動清零發(fā)送中斷標(biāo)志位}}

大家在做這個實驗的時候,有個小問題要注意一下。因為 STC89C52 下載程序是使用了 UART 串口下載,下載完程序后,程序運行起來了,可是下載軟件最后還會通過串口發(fā)送一些額外的數(shù)據(jù),所以程序剛下載進去不是顯示00,而可能是其他數(shù)據(jù)。大家只要把電源開關(guān)關(guān)閉,重新打開一次就好了。

細(xì)心的同學(xué)可能會發(fā)現(xiàn),在串口調(diào)試助手發(fā)送選項和接收選項處,還有個“字符格式發(fā)送”和“字符格式顯示”,這是什么意思呢?

先拋開我們使用的漢字不談,那么我們常用的字符就包含了0~9的數(shù)字、A~Z/a~z 的字母、還有各種標(biāo)點符號等。那么在單片機系統(tǒng)里面我們怎么來表示它們呢? ASCII 碼(American Standard Code for Information Interchange,即美國信息互換標(biāo)準(zhǔn)代碼)可以完成這個使命:我們知道,在單片機中一個字節(jié)的數(shù)據(jù)可以有0~255共256個值,我們?nèi)∑渲械?~127共128個值賦予了它另外一層涵義,即讓它們分別來代表一個常用字符,其具體的對應(yīng)關(guān)系如表11-3所示。

表11-3 ASCII 碼字符表

ASCII控制ASCII字符ASCII字符ASCII字符000NUL字符032(space)064值@096?001SOH033!065A097a002STX034"066B098b003ETX035#067C099c004EOT036$068D100d005END037%069E101e006ACK038&070F102f007BEL039'071G103g008BS040(072H104h009HT041)073I105i010LF042*074J106j011VT043+075K107k012FF044,076L108l013CR045-077M109m014SO046.078N110n015SI047/079O111o016DLE0480080P112p017DC10491081Q113q018DC20502082R114r019DC30513083S115s020DC40524084T116t021NAK0535085U117u022SYN0546086V118v023ETB0557087W119w024CAN0568088X120x025EM0579089Y121y026SUB058:090Z122z027ESC059;091[123{028FS060<092|124|
029GS061=093]125}030RS062>094^126~031US063?095_127DEL

這樣我們就在常用字符和字節(jié)數(shù)據(jù)之間建立了一一對應(yīng)的關(guān)系,那么現(xiàn)在一個字節(jié)就既可以代表一個整數(shù)又可以代表一個字符了,但它本質(zhì)上只是一個字節(jié)的數(shù)據(jù),而我們賦予了它不同的涵義,什么時候賦予它哪種涵義就看編程者的意圖了。ASCII 碼在單片機系統(tǒng)中應(yīng)用非常廣泛,我們后續(xù)的課程也會經(jīng)常使用到它,下面我們來對它做一個直觀的認(rèn)識,同學(xué)們一定要深刻理解其本質(zhì)。

對照上述表格,我們就可以實現(xiàn)字符和數(shù)字之間的轉(zhuǎn)換了,比如還是這個程序,我們發(fā)送的時候改成字符格式發(fā)送,接收還是用十六進制接收,這樣接收和數(shù)碼管好做一下對比。

我們用字符格式發(fā)送一個小寫的 a,返回一個十六進制的 0x61,數(shù)碼管上顯示的也是61,ASCII 碼表里字符 a 對應(yīng)十進制是97,等于十六進制的 0x61;我們再用字符格式發(fā)送一個數(shù)字1,返回一個十六進制的 0x31,數(shù)碼管上顯示的也是31,ASCII 表里字符1對應(yīng)的十進制是49,等于十六進制的 0x31。這下大家就該清楚了:所謂的十六進制發(fā)送和十六進制接收,都是按字節(jié)數(shù)據(jù)的真實值進行的;而字符格式發(fā)送和字符格式接收,是按 ASCII 碼表中字符形式進行的,但它實際上最終傳輸?shù)倪€是一個字節(jié)數(shù)據(jù)。這個表格,當(dāng)然不需要大家去記住,理解它,用的時候過來查就行了。

通信的學(xué)習(xí),不像前邊控制部分那么直觀了,通信部分我們的程序只能獲得一個結(jié)果,而其過程我們卻無法直接看到,所以慢慢的可能大家就會知道有示波器和邏輯分析儀這類測量儀器。如果學(xué)校實驗室或者公司里有示波器或者邏輯分析儀這類儀器,可以拿過來抓一下串口波形,直觀的了解一下。如果暫時還沒有這些儀器,先知道這么回事,有條件再說。因為工具類設(shè)備有的比較昂貴,有條件可以盡量使

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

8位單片機在嵌入式設(shè)計領(lǐng)域已經(jīng)成為半個多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機依然不斷發(fā)展,積極應(yīng)對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關(guān)鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計與硬件實現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠(yuǎn)程升級等不同場景。...

關(guān)鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細(xì)情況有所認(rèn)識,或者想要增進對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: 單片機 開發(fā)板 Keil

隨著單片機系統(tǒng)越來越廣泛地應(yīng)用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴(yán)重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機 電磁兼容

以下內(nèi)容中,小編將對單片機的相關(guān)內(nèi)容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機 復(fù)位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機 異常復(fù)位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關(guān)報道,通過閱讀這篇文章,大家可以對它具備清晰的認(rèn)識,主要內(nèi)容如下。

關(guān)鍵字: 單片機 仿真器

單片機將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關(guān)情況以及信息有所認(rèn)識和了解,詳細(xì)內(nèi)容如下。

關(guān)鍵字: 單片機 中斷 boot

一直以來,單片機都是大家的關(guān)注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C的相關(guān)介紹,詳細(xì)內(nèi)容請看下文。

關(guān)鍵字: 單片機 數(shù)字信號 模擬信號
關(guān)閉