freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)串口通信設(shè)計(jì)方案-文庫吧資料

2025-05-01 13:37本頁面
  

【正文】 1口 sbit LCD_BUSY=LCD_DATA^7。 //將BCD碼的個(gè)十百千萬位分別轉(zhuǎn)成ASCII碼 LCD_prints(amp。 k++) a[k]=a[k]+39。 //取數(shù)據(jù)轉(zhuǎn)化成BCD后的萬位到數(shù)組a[4] for(k=0。 //取數(shù)據(jù)轉(zhuǎn)化成BCD后的百位到數(shù)組a[2] a[3]=(t/10)%10。 //取數(shù)據(jù)轉(zhuǎn)化成BCD后的個(gè)位到數(shù)組a[0]a[1]=(t/1000)%10。 //定義一個(gè)5位數(shù)組,用于存放BCD碼的個(gè)十百千萬位char k。本系統(tǒng)中主機(jī)和從機(jī)的顯示部分主要用到了一下功能函數(shù)[7][14]:void LCD_initial(void) //初始化LCDvoid LCD_set_position(unsigned char x) //LCD顯示定位到x處void LCD_printc(unsigned char lcd_data) //輸出一個(gè)字符到LCDvoid LCD_prints(unsigned char *lcd_string) //輸出一個(gè)字符串到LCD在進(jìn)行數(shù)據(jù)顯示時(shí),要將單片機(jī)處理的十六進(jìn)制數(shù)轉(zhuǎn)化成BCD碼,BCD碼各位再轉(zhuǎn)化成ASCⅡ碼,LCD才能進(jìn)顯示。 //選擇負(fù)跳變來觸發(fā)外中斷 EA=1。 //11011000 串口工作方式3,REN=1允許串行接受 EX0=1。 //SMOD=1,波特率加倍 TR1=1。 //計(jì)數(shù)初值243 TH1=0xf3。 void init_serial() { TMOD=0x20。根據(jù)系統(tǒng)設(shè)定的波特率求定時(shí)器T1的計(jì)數(shù)初值,串行通信工作方式模式3的波特率計(jì)算公式[8]如下:波特率=4800bps其中為定時(shí)器的計(jì)數(shù)初值。它的波特率是由定時(shí)器T1的溢出頻率和波特率倍增位SMOD共同決定的[15]。其結(jié)構(gòu)是按功能劃分為若干個(gè)基本模塊;各模塊之間的關(guān)系盡可能簡(jiǎn)單,在功能上相對(duì)獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成;其模塊化實(shí)現(xiàn)的具體方法是使用子程序。本系統(tǒng)的程序采用C51模塊化程序編寫,主要包括串行通信初始化、LCD液晶顯示部分,硬件接口部分、主機(jī)程序和從機(jī)程序等幾部分組成。其次,給出了系統(tǒng)原理圖的連線和器件清單。至此完成了仿真原理圖的繪制工作,完整的原理圖見附件一。設(shè)置電容的值為22Pf,PCB封裝信息為CAP10。 電氣檢測(cè)結(jié)果對(duì)于串行通信原理圖中的每一個(gè)元器件,都有對(duì)應(yīng)的編號(hào)。采用同樣的方法完成原理圖中的其他的網(wǎng)絡(luò)標(biāo)號(hào)。在字符名稱后中輸入網(wǎng)絡(luò)標(biāo)號(hào)“L0”,單“OK”即可完成“L0網(wǎng)絡(luò)編號(hào)”。 整體編號(hào)結(jié)果 整體編號(hào)對(duì)話框8. 網(wǎng)絡(luò)標(biāo)號(hào)由于串行通信原理圖中器件較多,都進(jìn)行直接連線比較麻煩,而且容易造成連線錯(cuò)誤,因此采用網(wǎng)絡(luò)表號(hào)的方法,將部分要連接的端口,使其具有電氣聯(lián)系。單擊自動(dòng)布線圖標(biāo) ,自動(dòng)布線有效,根據(jù)原理圖中器件的接線,單擊要連線的起點(diǎn)和終點(diǎn),系統(tǒng)便會(huì)自動(dòng)以直角走線,成連線。同樣的方法把對(duì)象選擇器中的其他器件放入原理圖編輯區(qū)中,以備原理圖連線。同樣的方法把原理圖中的其他器件放入對(duì)象選擇器中,以備畫原理圖時(shí)調(diào)用。在“Keyword”欄中輸入元器件“AT89C51”,則可元器件列表。單擊“System/Set Sheet Size”,,選擇“User(自定義)”復(fù)選框,定義長(zhǎng)為16in,寬位8in,點(diǎn)擊“OK”。 創(chuàng)建新設(shè)計(jì)文件單擊工具按鈕 ,取文件名“串行通信原理圖”,后綴為DSN是系統(tǒng)自動(dòng)加上去是,然后單擊保存按鈕,則完成新建文件操作。單擊菜單欄中的“FILE/NEW DESIGN”,(Create New Design)對(duì)話框。ISIS原理圖輸出流程包括設(shè)置編輯環(huán)境、原理圖連線、建立網(wǎng)絡(luò)表、報(bào)表輸出等過程。原理圖中所有器件及其標(biāo)稱值、數(shù)量和代號(hào)如表5所示。根據(jù)選擇的設(shè)計(jì)方案,以及系統(tǒng)框圖,可將硬件作如下連接:主、從機(jī)系統(tǒng)的液晶顯示器的數(shù)據(jù)I/,液晶顯示器的RW讀/寫選擇端、RS數(shù)據(jù)/、。具體的電路模塊設(shè)計(jì)說明將在本文第六部分AT89C51最小系統(tǒng)的外圍電路中詳細(xì)介紹,在此不再累述。表 4 控制指令表指令名稱指令功能D7D6D5D4D3D2D1D0模式設(shè)置設(shè)置為162,57點(diǎn)陣,8位數(shù)據(jù)接口00111000開/關(guān)及光標(biāo)設(shè)置D=1開顯示;D=0關(guān)顯示00001DCBC=1顯示光標(biāo);C=0不顯示光標(biāo)00001DCBB=1光標(biāo)閃爍;B=0光標(biāo)不顯示00001DCB輸入模式設(shè)置N=1光標(biāo)右移;N=0光標(biāo)左移000001NSS=1文字移動(dòng)有效;S=0文字移動(dòng)無效000001NS 電路原理圖設(shè)計(jì)是在實(shí)現(xiàn)系統(tǒng)功能基礎(chǔ)之上,進(jìn)行器件選型、器件值計(jì)算以及整合模塊功能電路。 1602引腳圖 表3 1602引腳使用說明編號(hào)符號(hào)引腳說明使用方法1VSS電源地2VDD電源3V0對(duì)比度信號(hào)調(diào)整端外接分壓電阻,調(diào)節(jié)屏幕亮度4RS數(shù)據(jù)/命令選擇端RS=1時(shí)選擇數(shù)據(jù)寄存器,RS=0時(shí)選擇指令寄存器5RW讀/寫選擇端RW=1時(shí)執(zhí)行讀操作,RW=0時(shí)執(zhí)行寫操作6E使能信號(hào)端高電平使能714D0D7數(shù)據(jù)I/O雙向數(shù)據(jù)輸入與輸出15BLA背景光源正極接到或通過10Ω左右電阻接到VDD16BLK背景光源負(fù)極接到VSS對(duì)1602顯示字符控制,通過訪問1602內(nèi)部RAM地址實(shí)現(xiàn),1602內(nèi)部控制具有80 字節(jié)RAM。當(dāng)RS和RW同時(shí)為低電平時(shí),可以寫入指令或顯示地址;當(dāng)RS為低電平,RW為高電平時(shí),可以讀忙信號(hào);當(dāng)RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù)。1602采用標(biāo)準(zhǔn)的16引腳接口,其功能如表3所示。每一個(gè)字符都有一個(gè)固定的代碼,這個(gè)代碼就是對(duì)應(yīng)字符的ASCⅡ碼。1602液晶模塊帶標(biāo)準(zhǔn)字庫,內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)57點(diǎn)陣字符圖形,32個(gè)510點(diǎn)陣字符圖形。在Flash存儲(chǔ)器編程期間,該引腳用于施加編程電壓Vpp[13]。當(dāng)保持高電平時(shí),先訪問片內(nèi)ROM,當(dāng)PC的值超過4KB時(shí),自動(dòng)轉(zhuǎn)向執(zhí)行片外ROM中的程序。/VPP(31):內(nèi)、外ROM選擇/編程電源。(29):外部ROM讀選通信號(hào)。ALE/(30):地址鎖存/編程脈沖。(4)控制線引腳RST(9):復(fù)位輸入端。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表2所示:表2 P3口的第二功能:端 口 引 腳 第 二 功 能 RXD (串行輸入口) TXD (串行輸出口) (外中斷0)P33 (外中斷1) T0 (定時(shí)/計(jì)數(shù)器0) T1 (定時(shí)/計(jì)數(shù)器1) (外部數(shù)據(jù)存儲(chǔ)器寫選通) (外部數(shù)據(jù)存儲(chǔ)器讀選通) (3) 時(shí)鐘引腳XTAL1(19):振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。P3口:是一組帶有內(nèi)部上拉電阻的8位雙向I/O口,P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。作為輸出口用時(shí),每位能以吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫“1”可作為高阻抗輸入端用。GND(20):接地端。(10)一個(gè)片內(nèi)振蕩器和時(shí)鐘電路。(8)2個(gè)16位定時(shí)器/計(jì)數(shù)器。(6)4個(gè)8位可編程I/O口(P0、PP2和P3)。(4)程序計(jì)數(shù)器PC,是獨(dú)立的16位專用寄存器,內(nèi)容為將要執(zhí)行的指令地址。(2)128B的內(nèi)部數(shù)據(jù)存取存儲(chǔ)器(內(nèi)部RAM),其地址空范圍00H7FH。功能強(qiáng)大AT89C51單片機(jī)可提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。 本系統(tǒng)的兩大核心器件位AT89C51單片機(jī)和LCD液晶顯示器,AT89C51單片機(jī)完成系統(tǒng)的功能控制部分,液晶顯示器完成通信過程中數(shù)據(jù)的實(shí)時(shí)顯示。根據(jù)總體設(shè)計(jì)方案框圖,總系統(tǒng)由4個(gè)分系統(tǒng)組成,1個(gè)上位機(jī)系統(tǒng),3個(gè)下位機(jī)系統(tǒng)。從機(jī)的數(shù)據(jù)通過外部中斷輸入,數(shù)據(jù)從0開始每來一次中斷數(shù)據(jù)加1,加到9數(shù)據(jù)清0,再從0到9進(jìn)行循環(huán)。 串行通信系統(tǒng)框圖 本系統(tǒng)主要完成的功能是上位機(jī)和下位機(jī)的半雙工通信,可以通過接收/發(fā)送選擇開關(guān)來控制上位機(jī)是處于接收狀態(tài)還是發(fā)送狀態(tài)。上位機(jī)系統(tǒng)的發(fā)送/接收狀態(tài)可以通過接收/發(fā)送選擇開關(guān)進(jìn)行控制,處于發(fā)送數(shù)據(jù)狀態(tài)時(shí),由中斷發(fā)送信號(hào)按鈕決定是否給從機(jī)發(fā)送數(shù)據(jù)。三個(gè)下位機(jī)系統(tǒng)的構(gòu)成完全相同主要有AT89C51單片機(jī)串行通信最小系統(tǒng)、LCD1602顯示器和中斷數(shù)據(jù)加1按鈕組成。但本系統(tǒng)只進(jìn)行單片機(jī)之間的數(shù)據(jù)傳送,不涉及復(fù)雜的數(shù)據(jù)處理,因此本系統(tǒng)軟件采用C語言編寫[8]。 用C語言來編寫目標(biāo)系統(tǒng)軟件,會(huì)大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進(jìn)和擴(kuò)充,從而研制出規(guī)模更大、性能更完備的系統(tǒng)。方案二:采用C語言編寫,C語言是一種結(jié)構(gòu)化的高級(jí)語言。但是匯編語言可讀性差,而且不同的CPU,其匯編語言可能有所差異,也不易移植。 軟件編程語言的選擇方案一:采用匯編語言編寫,匯編語言是一種用文字助記符來表示機(jī)器指令的符號(hào)語言,是最接近機(jī)器碼的一種語言。方案三:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字、圖形、符號(hào)顯示多樣,清晰可見。方案一:采用LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字合適,采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),雖然占用的單片機(jī)口線少,但連線還需要花費(fèi)一點(diǎn)時(shí)間,所以也不用此種作為顯示。采用Flash ROM,內(nèi)部具有4KB ROM 存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS51系列單片機(jī)完全兼容,可反復(fù)進(jìn)行系統(tǒng)實(shí)驗(yàn)[12]。它既繼承了MCS51原有的功能,又擁有自己是獨(dú)特功能是目前應(yīng)用廣泛的主流單片機(jī)。但是,MCS51系列單片機(jī)在實(shí)際應(yīng)用中使用較少。方案一:采用MCS51芯片,MCS51是Intel公司單片機(jī)的典型代表,內(nèi)部有4KB ROM空間。為了能夠?qū)崿F(xiàn)多單片機(jī)之間的數(shù)據(jù)傳送,本系統(tǒng)采用多機(jī)通信模式[8][9][10]。主機(jī)判斷地址是否相符,然后給被尋址的從機(jī)發(fā)送控制命令,被尋址的從機(jī)根據(jù)其命令向主機(jī)發(fā)送本地機(jī)狀態(tài)。對(duì)于地址FFH定義為對(duì)所有從機(jī)都有效的控制命令,用于將各從機(jī)恢復(fù)到復(fù)位狀態(tài),即SM2=1。其它保留,可定義其它用途。多機(jī)通信協(xié)議約定:主機(jī)為了正確地和指定的從機(jī)正確的通信,雙方需要對(duì)各種數(shù)據(jù)、地址、指令和狀態(tài)等進(jìn)行明確的約定。5. 當(dāng)從機(jī)接收數(shù)據(jù)結(jié)束的時(shí)候,置SM2=1,返回接收地址幀狀態(tài)。 多機(jī)通信線路圖單片機(jī)多機(jī)通信的過程如下:1. 所有從機(jī)復(fù)位,置SM2=1,使其處于準(zhǔn)備接收一幀地址數(shù)據(jù)的狀態(tài);2. 主機(jī)設(shè)置第9位TB8=1,發(fā)送一幀地址信息,與所需要的從機(jī)進(jìn)行聯(lián)系;3. 各從機(jī)接收到地址信息后,分別于自己的地址進(jìn)行比較,對(duì)于地址相符的從機(jī),置SM2=0,以便于接收主機(jī)隨后發(fā)送的所有信息;對(duì)于地址不相符的從機(jī),仍保持SM2=1,對(duì)主機(jī)隨后發(fā)送的數(shù)據(jù)不進(jìn)行處理。多級(jí)通信時(shí),主機(jī)每一次都向從機(jī)傳送至少兩字節(jié)信息,先傳送從機(jī)的地址信息,再傳送數(shù)據(jù)信息。當(dāng)從機(jī)的SM2=1時(shí),該從機(jī)只接受地址幀,對(duì)數(shù)據(jù)幀不進(jìn)行處理,即只有接收的RB8位等于1數(shù)據(jù)時(shí),接收才有效,RI才置1,對(duì)接收的RB8位等于0的數(shù)據(jù)不進(jìn)行處理。當(dāng)設(shè)置TB8=1,時(shí),發(fā)送的是地址信息;當(dāng)設(shè)置TB8=0時(shí),發(fā)送的是數(shù)據(jù)或者命令信息。在多機(jī)通信中,為了保證主機(jī)能夠正確識(shí)別所選是從機(jī)并進(jìn)行通信,主,從機(jī)需要正確地設(shè)置和判斷多機(jī)通信控制位SM2和發(fā)送/接收的第9位信息,TB8,RB8。主機(jī)可以向各個(gè)從機(jī)或指定的從機(jī)發(fā)送信息,各個(gè)從機(jī)發(fā)送的信息只能被主機(jī)接收,但從機(jī)與從機(jī)之間不能相互通信。上級(jí)主機(jī)則根據(jù)接收的下級(jí)子系統(tǒng)的信息,進(jìn)行判斷,產(chǎn)生相應(yīng)的處理命令傳送給下級(jí)子系統(tǒng)。它是單片機(jī)在高科技領(lǐng)域的主要應(yīng)用,主要用于一些大型的自動(dòng)化控制系統(tǒng)。無論是單片機(jī)之間,還是單片機(jī)和PC機(jī)之間,串行通信雙方的波特率必須相同,才能完成數(shù)據(jù)的正確傳送[7]。當(dāng)一幀數(shù)據(jù)到齊(接收緩沖器滿)后(接收的前8位數(shù)據(jù)依次移入輸入移位寄存器,接收是第9位數(shù)據(jù)置入串口控制寄存器的RB8位中),硬件自動(dòng)置位接收中斷標(biāo)志RI(),通知CPU來取數(shù)據(jù)。如果接收是起始位的值不是“0”,則起始位無效,復(fù)位接收電路;如果起始位為“0”,則開始接受其它數(shù)據(jù)。當(dāng)REN置位1,接收控制器就開始工作,對(duì)接收數(shù)據(jù)線進(jìn)行采樣,當(dāng)采樣到從“1”到“0”的負(fù)跳變時(shí),接收控制器開始接收數(shù)據(jù)。當(dāng)甲機(jī)一幀數(shù)據(jù)發(fā)送完畢(或稱發(fā)送緩沖器空),硬件置位發(fā)送中斷標(biāo)志位TI(),該位可作為查詢標(biāo)志,如果設(shè)置為允許中斷,則將引起中斷,甲機(jī)的CPU可發(fā)送下一幀數(shù)據(jù)。一個(gè)移出,一個(gè)移進(jìn),很顯然,如果兩邊的移位速度一致,甲機(jī)移出的數(shù)據(jù)位正好被乙機(jī)移進(jìn),就能完成數(shù)據(jù)的正確傳送;如果不一致,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1