時(shí)鐘和低功耗模式片內(nèi)集成有PLL(鎖相環(huán))電路。外接的基準(zhǔn)晶體+PLL(鎖相環(huán))電路共同組成系統(tǒng)時(shí)鐘電路。有關(guān)引腳:XTAL1/CLKIN:外接的基準(zhǔn)晶體到片內(nèi)振蕩器輸入引腳;如使用外部振蕩器,外部振蕩器的輸出必須接該腳。XTAL2:片內(nèi)PLL振蕩器輸出引腳;CLKOUT/IOPE0:該腳可作為時(shí)鐘輸出或通用IO腳;可用來(lái)輸出CPU時(shí)鐘或看門(mén)狗定時(shí)器時(shí)鐘;由系統(tǒng)控制狀態(tài)寄存器(SCSR1)中的位14決定。
上傳時(shí)間: 2013-10-24
上傳用戶:1159797854
數(shù)字I/O腳有專用和復(fù)用。數(shù)字I/O腳的功能通過(guò)9個(gè)16位控制寄存器來(lái)控制。控制寄存器分為兩類:(1)I/O復(fù)用控制寄存器(MCRX),來(lái)選擇I/O腳是外設(shè)功能還是I/O功能。(2)數(shù)據(jù)方向控制寄存器(PXDATDIR):控制雙向I/O腳的數(shù)據(jù)和數(shù)據(jù)方向。注意:數(shù)字I/O腳是通過(guò)映射在數(shù)據(jù)空間的控制寄存器來(lái)控制的,與器件的I/O空間無(wú)任何關(guān)系。240X/240XA多達(dá)41只數(shù)字I/O腳,多數(shù)具有復(fù)用功能。
標(biāo)簽: 數(shù)字
上傳時(shí)間: 2013-10-31
上傳用戶:qimingxing130
SPCE061A單片機(jī)硬件結(jié)構(gòu) 從第一章中SPCE061A的結(jié)構(gòu)圖可以看出SPCE061A的結(jié)構(gòu)比較簡(jiǎn)單,在芯片內(nèi)部集成了ICE仿真電路接口、FLASH程序存儲(chǔ)器、SRAM數(shù)據(jù)存儲(chǔ)器、通用IO端口、定時(shí)器計(jì)數(shù)器、中斷控制、CPU時(shí)鐘、模-數(shù)轉(zhuǎn)換器AD、DAC輸出、通用異步串行輸入輸出接口、串行輸入輸出接口、低電壓監(jiān)測(cè)低電壓復(fù)位等若干部分。各個(gè)部分之間存在著直接或間接的聯(lián)系,在本章中我們將詳細(xì)的介紹每個(gè)部分結(jié)構(gòu)及應(yīng)用。2.1 μ’nSP™的內(nèi)核結(jié)構(gòu)μ’nSP™的內(nèi)核如0所示其結(jié)構(gòu)。它由總線、算術(shù)邏輯運(yùn)算單元、寄存器組、中斷系統(tǒng)及堆棧等部分組成,右邊文字為各部分簡(jiǎn)要說(shuō)明。算術(shù)邏輯運(yùn)算單元ALUμ’nSP™的ALU在運(yùn)算能力上很有特色,它不僅能做16位基本的算術(shù)邏輯運(yùn)算,也能做帶移位操作的16位算術(shù)邏輯運(yùn)算,同時(shí)還能做用于數(shù)字信號(hào)處理的16位×16位的乘法運(yùn)算和內(nèi)積運(yùn)算。1. 16位算術(shù)邏輯運(yùn)算不失一般性,μ’nSP™與大多數(shù)CPU類似,提供了基本的算術(shù)運(yùn)算與邏輯操作指令,加、減、比較、取補(bǔ)、異或、或、與、測(cè)試、寫(xiě)入、讀出等16位算術(shù)邏輯運(yùn)算及數(shù)據(jù)傳送操作。2. 帶移位操作的16位算邏運(yùn)算對(duì)圖2.1稍加留意,就會(huì)發(fā)現(xiàn)μ’nSP™的ALU前面串接有一個(gè)移位器SHIFTER,也就是說(shuō),操作數(shù)在經(jīng)過(guò)ALU的算邏操作前可先進(jìn)行移位處理,然后再經(jīng)ALU完成算邏運(yùn)算操作。移位包括:算術(shù)右移、邏輯左移、邏輯右移、循環(huán)左移以及循環(huán)右移。所以,μ’nSP™的指令系統(tǒng)里專有一組復(fù)合式的‘移位算邏操作’指令;此一條指令完成移位和算術(shù)邏輯操作兩項(xiàng)功能。程序設(shè)計(jì)者可利用這些復(fù)合式的指令,撰寫(xiě)更精簡(jiǎn)的程序代碼,進(jìn)而增加程序代碼密集度 (Code Density)。在微控制器應(yīng)用中,如何增加程序代碼密集度是非常重要的議題;提高程序代碼密集度意味著:減少程序代碼的大小,進(jìn)而減少ROM或FLASH的需求,以此降低系統(tǒng)成本與增加執(zhí)行效能。
標(biāo)簽: SPCE 061A 061 單片機(jī)
上傳時(shí)間: 2013-10-10
上傳用戶:星仔
深入淺出AVR單片機(jī)思路清晰,以AVR單片機(jī)為載體,介紹了初學(xué)單片機(jī)所必須掌握的專業(yè)知識(shí)。書(shū)中語(yǔ)言嚴(yán)謹(jǐn)?shù)环τ哪L(fēng)趣,配以大量的照片、圖示和實(shí)例程序,使讀者在愉悅中完成專業(yè)知識(shí)的學(xué)習(xí),并培養(yǎng)了學(xué)習(xí)嵌入式系統(tǒng)的興趣。本書(shū)在講述AVR單片機(jī)的同時(shí),更注重于對(duì)讀者學(xué)習(xí)和設(shè)計(jì)能力的啟發(fā)、培養(yǎng),幫助他們養(yǎng)成“從實(shí)踐中來(lái),到實(shí)踐中去”的科學(xué)方法論,為進(jìn)一步的學(xué)習(xí)創(chuàng)造了基礎(chǔ)。 本書(shū)講述淺顯、內(nèi)容豐富、編排合理、實(shí)例詳盡。首先介紹了如何閱讀器件資料的方法,然后熟悉ICCAVR集成開(kāi)發(fā)環(huán)境并搭建實(shí)驗(yàn)開(kāi)發(fā)裝置,接著從實(shí)際應(yīng)用出發(fā),啟發(fā)式地介紹AVR單片機(jī)的常用資源和對(duì)應(yīng)軟件方法,最后較為全面地補(bǔ)充了從事嵌入式系統(tǒng)開(kāi)發(fā)要擴(kuò)展的軟件知識(shí)。 第1篇 Are you ready? 第1章 學(xué)會(huì)閱讀Datasheet 1.1 如何閱讀PDF文件,如何獲得Datasheet文件 1.2 Datasheet告訴我們些什么 1.3 如何看懂AVR的Datasheet 1.4 如何得到幫助 1.5 匯編語(yǔ)言執(zhí)行時(shí)間的計(jì)算方法 1.6 ATmega48/88/168常用熔絲的作用及其配置方法 1.7 對(duì)誤燒寫(xiě)為外部時(shí)鐘模式的解鎖方法 實(shí)例1 閱讀74HC595 Datasheet 第2章 深入開(kāi)發(fā)環(huán)境 2.1 認(rèn)識(shí)ICC編譯環(huán)境 2.2 事半功倍的代碼生成器 2.3 ICC之不得不說(shuō)的故事 2.4 AVR最小系統(tǒng)和下載線DIY 實(shí)例2 AVR最小系統(tǒng)DIY第2篇 Let\'s go! 第3章 從跑馬燈開(kāi)始 3.1 輸入/輸出界面 3.1.1 單片機(jī)的輸入/輸出設(shè)備——引腳 3.1.2 “芯”里有數(shù)——數(shù)碼管顯示 3.1.3 單片機(jī)的輸入/輸出設(shè)備——從按鍵到鍵盤(pán) 3.2 用ATmega48/88/168單片機(jī)端口驅(qū)動(dòng)數(shù)碼管 3.3 操縱ATmega48/88/168單片機(jī)端口 3.4 端口內(nèi)建上拉電阻的使用 3.5 端口位操作 實(shí)例3 跑馬燈 實(shí)例4 數(shù)碼管的顯示(上) 實(shí)例5 數(shù)碼管的顯示(下) 實(shí)例6 矩陣鍵盤(pán) 第4章 對(duì)不起接個(gè)電話 4.1 十萬(wàn)火急——中斷 4.2 中斷的特性 4.3 使用中斷時(shí)的注意事項(xiàng) 4.4 ATmega48/88/168單片機(jī)有哪些中斷源 4.5 如何編寫(xiě)一個(gè)中斷的服務(wù)程序代碼 4.6 ATmega48/88/168單片機(jī)中斷的開(kāi)關(guān)控制 4.7 ATmega48/88/168中斷標(biāo)志位 4.8 ATmega48/88/168中斷優(yōu)先級(jí) 4.9 ATmega48/88/168單片機(jī)中斷向量 4.10 中斷與查詢之爭(zhēng) 4.11 用查詢方式響應(yīng)外設(shè)中斷 4.12 中斷誤觸發(fā) 4.13 前后臺(tái)與原子操作 實(shí)例7 中斷喚醒的鍵盤(pán)掃描 實(shí)例8 旋轉(zhuǎn)編碼器 第5章 一秒究竟有多長(zhǎng) 5.1 單片機(jī)與時(shí)間 5.2 軟件延時(shí) 5.3 不需要加載的“自由計(jì)時(shí)器” 5.4 通過(guò)重加載控制定時(shí)中斷周期 5.5 使用代碼生成器生成定時(shí)器1初始化代碼 5.6 定時(shí)器的其他工作模式 5.7 PWM波及其應(yīng)用簡(jiǎn)介 5.8 人類能看懂的電子時(shí)鐘——實(shí)時(shí)時(shí)鐘簡(jiǎn)介 實(shí)例9 閃爍的燈 實(shí)例10 漸明漸暗的燈 實(shí)例11 復(fù)雜閃爍控制 第6章 電量低 6.1 從猜數(shù)游戲到A/D轉(zhuǎn)換器 6.2 ATmega48/88/168的A/D轉(zhuǎn)換器 6.3 ATmega48/88/168單片機(jī)中與A/D相關(guān)的引腳 6.4 ATmega48/88/168單片機(jī)中與A/D相關(guān)的寄存器 6.5 使用A/D時(shí)需要注意些什么 6.6 怎樣知道A/D轉(zhuǎn)換完成 6.7 讀取A/D的轉(zhuǎn)換結(jié)果 6.8 使用代碼生成器生成ADC初始化代碼 6.9 書(shū)寫(xiě)具有工程結(jié)構(gòu)的初始化代碼 6.10 電量計(jì)原理概述 …… 第7章 正在過(guò)收費(fèi)站 第8章 包裝的學(xué)問(wèn) 第9章 傻孩子求職記 第10章 MISSION UPDATE第3篇 Code Name C 第11章 朝花夕拾 第12章 指針都是紙老虎 第13章 來(lái)自身邊的啟示 第14章 初識(shí)嵌入式系統(tǒng)
上傳時(shí)間: 2014-05-05
上傳用戶:佳期如夢(mèng)
單片機(jī)指令系統(tǒng) 3.1 MCS-51指令簡(jiǎn)介 3.2 指令系統(tǒng) 3.1 MCS-51指令簡(jiǎn)介 二、MCS-51系列單片機(jī)指令系統(tǒng)分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址 1、數(shù)據(jù)傳送指令位操 2、直接尋址 2、算術(shù)運(yùn)算指令 3、寄存器尋址 3、邏輯運(yùn)算指令 4、寄存器間接尋址指令 4、控制轉(zhuǎn)移類指令 5、相對(duì)尋址 5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址 MOV A, @R1 操作數(shù)是通過(guò)寄存器間接得到的。 4、立即尋址 MOV A, #40H 操作數(shù)在指令中直接給出。 5、基址寄存器加變址寄存器尋址 以DPTR或PC為基址寄存器,以A為變址寄存器, 以兩者相加形成的16位地址為操作數(shù)的地址。 MOVC A, @A+DPTR MOVC A, @A+PC 四、指令中常用符號(hào)說(shuō)明 Rn——當(dāng)前寄存器區(qū)的8個(gè)工作寄存器R0~R7(n=0~7); Ri——當(dāng)前寄存器區(qū)可作地址寄存器的2個(gè)工作寄存器R0和R1(i=0,1); direct——8位內(nèi)部數(shù)據(jù)存儲(chǔ)器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(shù)(立即數(shù)); #datal6——表示16位常數(shù); add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號(hào)的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號(hào)中單元的內(nèi)容 (( ))——表示間接尋址的內(nèi)容; 五、MCS-51指令簡(jiǎn)介 1. 以累加器A為目的操作數(shù)的指令 2. 以Rn為目的操作數(shù)的指令 3. 以直接地址為目的操作數(shù)的指令 4. 以寄存器間接地址為目的操作數(shù)指令 應(yīng)用舉例1 8段數(shù)碼管顯示 應(yīng)用舉例2 3.2 指令系統(tǒng) 2、堆棧操作指令 3. 累加器A與外部數(shù)據(jù)傳輸指令 4. 查表指令 MOVC A, @A+PC 例子: 5. 字節(jié)交換指令 6. 半字節(jié)交換指令 二、算術(shù)操作類指令 PSW寄存器 2. 帶進(jìn)位加法指令 3. 加1指令 4. 十進(jìn)制調(diào)整指令 5. 帶借位減法指令(Subtraction) 6. 減1指令(Decrease) 7. 乘法指令(Multiplication) 8. 除法指令(Division) 三、邏輯運(yùn)算指令 1. 簡(jiǎn)單邏輯操作指令 2. 循環(huán)指令 帶進(jìn)位左循環(huán)指令(Rotate Accumulator Left through Carry flag) 右循環(huán)指令(Rotate Accumulator Right) 帶進(jìn)位右循環(huán)指令(Rotate A Right with C) 3. 邏輯與指令 4. 邏輯或指令 5. 邏輯異或指令 四、控制轉(zhuǎn)移類指令 1. 跳轉(zhuǎn)指令 相對(duì)轉(zhuǎn)移指令 SJMP rel PC←(PC)+2 PC←(PC)+rel 程序中標(biāo)號(hào)與地址之間的關(guān)系 2. 條件轉(zhuǎn)移指令 3. 比較不相等轉(zhuǎn)移指令 4. 減 1 不為 0 轉(zhuǎn)移指令 5. 調(diào)用子程序指令 7. 中斷返回指令 五、位操作指令 1. 數(shù)據(jù)位傳送指令 2. 位變量邏輯指令 3. 條件轉(zhuǎn)移類指令
標(biāo)簽: 單片機(jī) 指令系統(tǒng)
上傳時(shí)間: 2013-10-27
上傳用戶:xuanjie
用單片機(jī)AT89C51改造普通雙桶洗衣機(jī):AT89C2051作為AT89C51的簡(jiǎn)化版雖然去掉了P0、P2等端口,使I/O口減少了,但是卻增加了一個(gè)電壓比較器,因此其功能在某些方面反而有所增強(qiáng),如能用來(lái)處理模擬量、進(jìn)行簡(jiǎn)單的模數(shù)轉(zhuǎn)換等。本文利用這一功能設(shè)計(jì)了一個(gè)數(shù)字電容表,可測(cè)量容量小于2微法的電容器的容量,采用3位半數(shù)字顯示,最大顯示值為1999,讀數(shù)單位統(tǒng)一采用毫微法(nf),量程分四檔,讀數(shù)分別乘以相應(yīng)的倍率。電路工作原理 本數(shù)字電容表以電容器的充電規(guī)律作為測(cè)量依據(jù),測(cè)試原理見(jiàn)圖1。電源電路圖。 壓E+經(jīng)電阻R給被測(cè)電容CX充電,CX兩端原電壓隨充電時(shí)間的增加而上升。當(dāng)充電時(shí)間t等于RC時(shí)間常數(shù)τ時(shí),CX兩端電壓約為電源電壓的63.2%,即0.632E+。數(shù)字電容表就是以該電壓作為測(cè)試基準(zhǔn)電壓,測(cè)量電容器充電達(dá)到該電壓的時(shí)間,便能知道電容器的容量。例如,設(shè)電阻R的阻值為1千歐,CX兩端電壓上升到0.632E+所需的時(shí)間為1毫秒,那么由公式τ=RC可知CX的容量為1微法。 測(cè)量電路如圖2所示。A為AT89C2051內(nèi)部構(gòu)造的電壓比較器,AT89C2051 圖2 的P1.0和P1.1口除了作I/O口外,還有一個(gè)功能是作為電壓比較器的輸入端,P1.0為同相輸入端,P1.1為反相輸入端,電壓比較器的比較結(jié)果存入P3.6口對(duì)應(yīng)的寄存器,P3.6口在AT89C2051外部無(wú)引腳。電壓比較器的基準(zhǔn)電壓設(shè)定為0.632E+,在CX兩端電壓從0升到0.632E+的過(guò)程中,P3.6口輸出為0,當(dāng)電池電壓CX兩端電壓一旦超過(guò)0.632E+時(shí),P3.6口輸出變?yōu)?。以P3.6口的輸出電平為依據(jù),用AT89C2051內(nèi)部的定時(shí)器T0對(duì)充電時(shí)間進(jìn)行計(jì)數(shù),再將計(jì)數(shù)結(jié)果顯示出來(lái)即得出測(cè)量結(jié)果。整機(jī)電路見(jiàn)圖3。電路由單片機(jī)電路、電容充電測(cè)量電路和數(shù)碼顯示電路等 圖3 部分組成。AT89C2051內(nèi)部的電壓比較器和電阻R2-R7等組成測(cè)量電路,其中R2-R5為量程電阻,由波段開(kāi)關(guān)S1選擇使用,電壓比較器的基準(zhǔn)電壓由5V電源電壓經(jīng)R6、RP1、R7分壓后得到,調(diào)節(jié)RP1可調(diào)整基準(zhǔn)電壓。當(dāng)P1.2口在程序的控制下輸出高電平時(shí),電容CX即開(kāi)始充電。量程電阻R2-R5每檔以10倍遞減,故每檔顯示讀數(shù)以10倍遞增。由于單片機(jī)內(nèi)部P1.2口的上拉電阻經(jīng)實(shí)測(cè)約為200K,其輸出電平不能作為充電電壓用,故用R5兼作其上拉電阻,由于其它三個(gè)充電電阻和R5是串聯(lián)關(guān)系,因此R2、R3、R4應(yīng)由標(biāo)準(zhǔn)值減去1K,分別為999K、99K、9K。由于999K和1M相對(duì)誤差較小,所以R2還是取1M。數(shù)碼管DS1-DS4、電阻R8-R14等組成數(shù)碼顯示電路。本機(jī)采用動(dòng)態(tài)掃描顯示的方式,用軟件對(duì)字形碼譯碼。P3.0-P3.5、P3.7口作數(shù)碼顯示七段筆劃字形碼的輸出,P1.3-P1.6口作四個(gè)數(shù)碼管的動(dòng)態(tài)掃描位驅(qū)動(dòng)碼輸出。這里采用了共陰數(shù)碼管,由于AT89C2051的P1.3-P1.6口有25mA的下拉電流能力,所以不用三極管就能驅(qū)動(dòng)數(shù)碼管。R8-R14為P3.0-P3.5、P3.7口的上拉電阻,用以驅(qū)動(dòng)數(shù)碼管的各字段,當(dāng)P3的某一端口輸出低電平時(shí)其對(duì)應(yīng)的字段筆劃不點(diǎn)亮,而當(dāng)其輸出高電平時(shí),則對(duì)應(yīng)的上拉電阻即能點(diǎn)亮相應(yīng)的字段筆劃。
上傳時(shí)間: 2013-12-31
上傳用戶:ming529
高性能可編程DMA控制接口82C37A-54.1 概述對(duì)象實(shí)體:直接存儲(chǔ)器訪問(wèn)(DMA)控制接口芯片82C37A-5芯片的特點(diǎn):1、管腳引線與NMOS 8237A-5兼容。2、允許/禁止單獨(dú)DMA請(qǐng)求控制。3、頻率從0~5MHz區(qū)間全靜態(tài)設(shè)計(jì)。4、低電平操作。 5、4個(gè)各自獨(dú)立的DMA通道并獨(dú)立的進(jìn)行初始化。6、存儲(chǔ)器到存儲(chǔ)器之間傳送。7、存儲(chǔ)器模塊初始化處理。8、地址的增量和減量。9、傳送速率可達(dá)1.6MB/s.10、可直接擴(kuò)展成任意數(shù)量的通道。11 、終止傳送的過(guò)程即輸入結(jié)束。12、軟件請(qǐng)求。13、獨(dú)立信號(hào)DREQ和信號(hào)DACK的極性控制。4.2 82C37A-5的體系結(jié)構(gòu)4.2.1 基本結(jié)構(gòu)描述1. 82C37A-5內(nèi)部配備了規(guī)模為344位的內(nèi)部存儲(chǔ)器,它是以寄存器的形式出現(xiàn)的。2. 配有3個(gè)基本的控制模塊: (1)定時(shí)及控制模塊; (2)優(yōu)先級(jí)編碼及循環(huán)優(yōu)先級(jí)控制模塊;(3)命令控制模塊; 3. 12個(gè)不同類型的寄存器 。圖 4-1 82C37A-5結(jié)構(gòu)圖EOP# A0~A3RESETCS#. IOW# DREQ0~DREQ3HLDAHRQ DB0~DB7DACK0~DACK3
上傳時(shí)間: 2013-10-21
上傳用戶:ming52900
設(shè)計(jì)一個(gè)單片機(jī)控制的簡(jiǎn)易定時(shí)報(bào)警器。要求根據(jù)設(shè)定的初始值(1-59秒)進(jìn)行倒計(jì)時(shí),當(dāng)計(jì)時(shí)到0時(shí)數(shù)碼管閃爍“00”(以1Hz閃爍),按鍵功能如下:(1)設(shè)定鍵:在倒計(jì)時(shí)模式時(shí),按下此鍵后停止倒計(jì)時(shí),進(jìn)入設(shè)置狀態(tài);如果已經(jīng)處于設(shè)置狀態(tài)則此鍵無(wú)效。(2)增一鍵:在設(shè)置狀態(tài)時(shí),每按一次遞增鍵,初始值的數(shù)字增1。(3)遞一鍵:在設(shè)置狀態(tài)時(shí),每按一次遞減鍵,初始值的數(shù)字減1。(4)確認(rèn)鍵:在設(shè)置狀態(tài)時(shí),按下此鍵后,單片機(jī)按照新的初始值進(jìn)行倒計(jì)時(shí)及顯示倒計(jì)時(shí)的數(shù)字。如果已經(jīng)處于計(jì)時(shí)狀態(tài)則此鍵無(wú)效。3.1.2 模塊1:系統(tǒng)設(shè)計(jì)(1)任務(wù)分析與整體設(shè)計(jì)思路根據(jù)題目的要求,需要實(shí)現(xiàn)如下幾個(gè)方面的功能。計(jì)時(shí)功能:要實(shí)現(xiàn)計(jì)時(shí)功能則需要使用定時(shí)器來(lái)計(jì)時(shí),通過(guò)設(shè)置定時(shí)器的初始值來(lái)控制溢出中斷的時(shí)間間隔,再利用一個(gè)變量記錄定時(shí)器溢出的次數(shù),達(dá)到定時(shí)1秒中的功能。然后,當(dāng)計(jì)時(shí)每到1秒鐘后,倒計(jì)時(shí)的計(jì)數(shù)器減1。當(dāng)?shù)褂?jì)時(shí)計(jì)數(shù)器到0時(shí),觸發(fā)另一個(gè)標(biāo)志變量,進(jìn)入閃爍狀態(tài)。顯示功能:顯示倒計(jì)時(shí)的數(shù)字要采用動(dòng)態(tài)掃描的方式將數(shù)字拆成“十位”和“個(gè)位”動(dòng)態(tài)掃描顯示。如果處于閃爍狀態(tài),則可以不需要?jiǎng)討B(tài)掃描顯示,只需要控制共陰極數(shù)碼管的位控線,實(shí)現(xiàn)數(shù)碼管的滅和亮。鍵盤(pán)掃描和運(yùn)行模式的切換:主程序在初始化一些變量和寄存器之后,需要不斷循環(huán)地讀取鍵盤(pán)的狀態(tài)和動(dòng)態(tài)掃描數(shù)碼管顯示相應(yīng)的數(shù)字。根據(jù)鍵盤(pán)的按鍵值實(shí)現(xiàn)設(shè)置狀態(tài)、計(jì)時(shí)狀態(tài)的切換。 (2)單片機(jī)型號(hào)及所需外圍器件型號(hào),單片機(jī)硬件電路原理圖選用MCS-51系列AT89S51單片機(jī)作為微控制器,選擇兩個(gè)四聯(lián)的共陰極數(shù)碼管組成8位顯示模塊,由于AT89S51單片機(jī)驅(qū)動(dòng)能力有限,采用兩片74HC244實(shí)現(xiàn)總線的驅(qū)動(dòng),一個(gè)74HC244完成位控線的控制和驅(qū)動(dòng),另一個(gè)74HC244完成數(shù)碼管的7段碼輸出,在輸出口上各串聯(lián)一個(gè)100歐姆的電阻對(duì)7段數(shù)碼管限流。由于鍵盤(pán)數(shù)量不多,選擇獨(dú)立式按鍵與P1口連接作為四個(gè)按鍵輸入。沒(méi)有鍵按下時(shí)P1.0-P1.3為高電平,當(dāng)有鍵按下時(shí),P1.0-P1.3相應(yīng)管腳為低電平。電路原理圖如圖3-1所示。
標(biāo)簽: 單片機(jī)開(kāi)發(fā) 工程 案例分析
上傳時(shí)間: 2013-11-13
上傳用戶:曹云鵬
PC機(jī)之間串口通信的實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?nbsp;1.熟悉微機(jī)接口實(shí)驗(yàn)裝置的結(jié)構(gòu)和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學(xué)會(huì)串行通信程序的編制方法。 二、實(shí)驗(yàn)內(nèi)容與要求 1.基本要求主機(jī)接收開(kāi)關(guān)量輸入的數(shù)據(jù)(二進(jìn)制或十六進(jìn)制),從鍵盤(pán)上按“傳輸”鍵(可自行定義),就將該數(shù)據(jù)通過(guò)8251A傳輸出去。終端接收后在顯示器上顯示數(shù)據(jù)。具體操作說(shuō)明如下:(1)出現(xiàn)提示信息“start with R in the board!”,通過(guò)調(diào)整乒乓開(kāi)關(guān)的狀態(tài),設(shè)置8位數(shù)據(jù);(2)在小鍵盤(pán)上按“R”鍵,系統(tǒng)將此時(shí)乒乓開(kāi)關(guān)的狀態(tài)讀入計(jì)算機(jī)I中,并顯示出來(lái),同時(shí)顯示經(jīng)串行通訊后,計(jì)算機(jī)II接收到的數(shù)據(jù);(3)完成后,系統(tǒng)提示“do you want to send another data? Y/N”,根據(jù)用戶需要,在鍵盤(pán)按下“Y”鍵,則重復(fù)步驟(1),進(jìn)行另一數(shù)據(jù)的通訊;在鍵盤(pán)按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進(jìn)行出錯(cuò)處理,例如采用奇偶校驗(yàn),出錯(cuò)重傳或者采用接收方回傳和發(fā)送方確認(rèn)來(lái)保證發(fā)送和接收正確。 三、設(shè)計(jì)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡(jiǎn)要說(shuō)明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問(wèn)題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。能夠完成上述“串←→并”轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發(fā)送字符時(shí),必須首先設(shè)置TXEN和CTS#為有效狀態(tài),TXEN(Transmitter Enable)是允許發(fā)送信號(hào),是命令寄存器中的一位;CTS#(Clear To Send)是由外設(shè)發(fā)來(lái)的對(duì)CPU請(qǐng)求發(fā)送信號(hào)的響應(yīng)信號(hào)。然后就開(kāi)始發(fā)送過(guò)程。在發(fā)送時(shí),每當(dāng)CPU送往發(fā)送緩沖器一個(gè)字符,發(fā)送器自動(dòng)為這個(gè)字符加上1個(gè)起始位,并且按照編程要求加上奇/偶校驗(yàn)位以及1個(gè)、1.5個(gè)或者2個(gè)停止位。串行數(shù)據(jù)以起始位開(kāi)始,接著是最低有效數(shù)據(jù)位,最高有效位的后面是奇/偶校驗(yàn)位,然后是停止位。按位發(fā)送的數(shù)據(jù)是以發(fā)送時(shí)鐘TXC的下降沿同步的,也就是說(shuō)這些數(shù)據(jù)總是在發(fā)送時(shí)鐘TXC的下降沿從8251A發(fā)出。數(shù)據(jù)傳輸?shù)牟ㄌ芈嗜Q于編程時(shí)指定的波特率因子,為發(fā)送器時(shí)鐘頻率的1、1/16或1/64。當(dāng)波特率指定為16時(shí),數(shù)據(jù)傳輸?shù)牟ㄌ芈示褪前l(fā)送器時(shí)鐘頻率的1/16。CPU通過(guò)數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器以后,再傳輸?shù)桨l(fā)送緩沖器,經(jīng)移位寄存器移位,將并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),從TxD端送往外部設(shè)備。在8251A接收字符時(shí),命令寄存器的接收允許位RxE(Receiver Enable)必須為1。8251A通過(guò)檢測(cè)RxD引腳上的低電平來(lái)準(zhǔn)備接收字符,在沒(méi)有字符傳送時(shí)RxD端為高電平。8251A不斷地檢測(cè)RxD引腳,從RxD端上檢測(cè)到低電平以后,便認(rèn)為是串行數(shù)據(jù)的起始位,并且啟動(dòng)接收控制電路中的一個(gè)計(jì)數(shù)器來(lái)進(jìn)行計(jì)數(shù),計(jì)數(shù)器的頻率等于接收器時(shí)鐘頻率。計(jì)數(shù)器是作為接收器采樣定時(shí),當(dāng)計(jì)數(shù)到相當(dāng)于半個(gè)數(shù)位的傳輸時(shí)間時(shí)再次對(duì)RxD端進(jìn)行采樣,如果仍為低電平,則確認(rèn)該數(shù)位是一個(gè)有效的起始位。若傳輸一個(gè)字符需要16個(gè)時(shí)鐘,那么就是要在計(jì)數(shù)8個(gè)時(shí)鐘后采樣到低電平。之后,8251A每隔一個(gè)數(shù)位的傳輸時(shí)間對(duì)RxD端采樣一次,依次確定串行數(shù)據(jù)位的值。串行數(shù)據(jù)位順序進(jìn)入接收移位寄存器,通過(guò)校驗(yàn)并除去停止位,變成并行數(shù)據(jù)以后通過(guò)內(nèi)部數(shù)據(jù)總線送入接收緩沖器,此時(shí)發(fā)出有效狀態(tài)的RxRDY信號(hào)通知CPU,通知CPU8251A已經(jīng)收到一個(gè)有效的數(shù)據(jù)。一個(gè)字符對(duì)應(yīng)的數(shù)據(jù)可以是5~8位。如果一個(gè)字符對(duì)應(yīng)的數(shù)據(jù)不到8位,8251A會(huì)在移位轉(zhuǎn)換成并行數(shù)據(jù)的時(shí)候,自動(dòng)把他們的高位補(bǔ)成0。 五、系統(tǒng)總體設(shè)計(jì)方案根據(jù)系統(tǒng)設(shè)計(jì)的要求,對(duì)系統(tǒng)設(shè)計(jì)的總體方案進(jìn)行論證分析如下:1.獲取8位開(kāi)關(guān)量可使用實(shí)驗(yàn)臺(tái)上的8255A可編程并行接口芯片,因?yàn)橹灰@取8位數(shù)據(jù)量,只需使用基本輸入和8位數(shù)據(jù)線,所以將8255A工作在方式0,PA0-PA7接實(shí)驗(yàn)臺(tái)上的8位開(kāi)關(guān)量。2.當(dāng)使用串口進(jìn)行數(shù)據(jù)傳送時(shí),雖然同步通信速度遠(yuǎn)遠(yuǎn)高于異步通信,可達(dá)500kbit/s,但由于其需要有一個(gè)時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端之間的同步,硬件電路復(fù)雜,通常計(jì)算機(jī)之間的通信只采用異步通信。3.由于8251A本身沒(méi)有時(shí)鐘,需要外部提供,所以本設(shè)計(jì)中使用實(shí)驗(yàn)臺(tái)上的8253芯片的計(jì)數(shù)器2來(lái)實(shí)現(xiàn)。4:顯示和鍵盤(pán)輸入均使用DOS功能調(diào)用來(lái)實(shí)現(xiàn)。設(shè)計(jì)思路框圖,如下圖所示: 六、硬件設(shè)計(jì)硬件電路主要分為8位開(kāi)關(guān)量數(shù)據(jù)獲取電路,串行通信數(shù)據(jù)發(fā)送電路,串行通信數(shù)據(jù)接收電路三個(gè)部分。1.8位開(kāi)關(guān)量數(shù)據(jù)獲取電路該電路主要是利用8255并行接口讀取8位乒乓開(kāi)關(guān)的數(shù)據(jù)。此次設(shè)計(jì)在獲取8位開(kāi)關(guān)數(shù)據(jù)量時(shí)采用8255令其工作在方式0,A口輸入8位數(shù)據(jù),CS#接實(shí)驗(yàn)臺(tái)上CS1口,對(duì)應(yīng)端口為280H-283H,PA0-PA7接8個(gè)開(kāi)關(guān)。2.串行通信電路串行通信電路本設(shè)計(jì)中8253主要為8251充當(dāng)頻率發(fā)生器,接線如下圖所示。
上傳時(shí)間: 2013-12-19
上傳用戶:小火車(chē)?yán)怖怖?/p>
基于單片機(jī)的紅外門(mén)進(jìn)控制系統(tǒng)設(shè)計(jì)與制作:我們所做的創(chuàng)新實(shí)驗(yàn)項(xiàng)目“基于單片機(jī)的紅外門(mén)控系統(tǒng)”已基本完成,現(xiàn)將其工作原理簡(jiǎn)要說(shuō)明。該系統(tǒng)主要分為兩大部分:一是紅外傳感器部分。二是單片機(jī)計(jì)數(shù)顯示控制部分。基本電路圖如下:其中紅外傳感器部分我們采用紅外對(duì)管實(shí)現(xiàn),紅外對(duì)管平行放置,平常處于接收狀態(tài),經(jīng)比較器輸出低電平,當(dāng)有人經(jīng)過(guò)時(shí),紅外線被擋住,接收管接收不到紅外線,經(jīng)比較器輸出高電平。這樣,當(dāng)有人經(jīng)過(guò)時(shí)便會(huì)產(chǎn)生一個(gè)電平的跳變。單片機(jī)控制部分主要是通過(guò)外部?jī)蓚€(gè)中斷判斷是否有人經(jīng)過(guò),如果有人經(jīng)過(guò),由于電平跳變的產(chǎn)生,進(jìn)入中斷服務(wù)程序,這里我們采用了兩對(duì)紅外傳感器接到兩個(gè)外部中斷口,中斷0作為入口,實(shí)現(xiàn)加1操作,中斷1作為出口,實(shí)現(xiàn)減1操作。另外,我們通過(guò)P0口控制室內(nèi)燈的亮暗,當(dāng)寄存器計(jì)數(shù)值為0時(shí),熄燈,不為0時(shí),燈亮。顯示部分,采用兩位數(shù)碼管動(dòng)態(tài)顯示,如有必要,可以很方便的擴(kuò)展為四位計(jì)數(shù)。精益求精!在實(shí)驗(yàn)過(guò)程中,我們走了非常多的彎路,做出來(lái)的東西根本不是自己想要的,我們本想做成室內(nèi)只有一個(gè)門(mén)的進(jìn)出計(jì)數(shù),原理已清楚,即在門(mén)的兩邊放置兩對(duì)紅外對(duì)管,進(jìn)出時(shí),擋住兩對(duì)對(duì)管的順序不同,因此,可判斷是進(jìn)入還是出去,從而實(shí)現(xiàn)加減計(jì)數(shù),編程時(shí),可分別在兩個(gè)中斷服務(wù)程序的入口置標(biāo)志位,根據(jù)標(biāo)志位判斷進(jìn)出,詳細(xì)內(nèi)容在程序部分。理論如此,但在實(shí)際過(guò)程中,還是發(fā)現(xiàn)實(shí)現(xiàn)不了上述功能,我們初步判定認(rèn)為是程序掌握得不夠好,相信隨著自己對(duì)單片機(jī)了解的深入,應(yīng)該會(huì)做出更好的 (因?yàn)槲覀兪桥R時(shí)學(xué)的單片機(jī)),程序的具體內(nèi)容如下: $MOD52 ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050HMAIN: CLR A MOV 30H , A ;初始化緩存區(qū) MOV 31H , A MOV 32H , A MOV 33H , A MOV R6 , A MOV R7 , A SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB PX1NEXT1: ACALL HEXTOBCDD ;調(diào)用數(shù)制轉(zhuǎn)換子程序 ACALL DISPLAY ;調(diào)用顯示子程序 LJMP NEXT1 ORG 0100H ;中斷0服務(wù)程序 LCALL DELY mov 70h,#2 djnz 70h,next JBC F0,NEXT SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 MOV A , R7 ADD A , #1 MOV R7, A MOV A , R6 ADDC A , #0 MOV R6 , A CJNE R6 , #07H , NEXT CLR A MOV R6 , A MOV R7 , ANEXT: RETI ORG 0150H ;中斷1服務(wù)程序 LCALL DELY mov 70h,#2 djnz 70h,next2 JBC F0,NEXT2 SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 CLR C MOV A , R7 SUBB A , #1 MOV R7, A MOV A , R6 SUBB A , #0 MOV R6 , A CJNE R6 , #07H , NEXT2 CLR A MOV R6 , A MOV R7 , ANEXT2: RETI ORG 0200HHEXTOBCDD:MOV A , R6 ;由十六進(jìn)制轉(zhuǎn)化為十進(jìn)制 PUSH ACC MOV A , R7 PUSH ACC MOV A , R2 PUSH ACC CLR A MOV R3 , A MOV R4 , A MOV R5 , A MOV R2 , #10HHB3: MOV A , R7 ;將十六進(jìn)制中最高位移入進(jìn)位位中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位數(shù)加上本身相當(dāng)于將這個(gè)數(shù)乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十進(jìn)制調(diào)整 MOV R4 , A MOV A , R3 ADDC A , R3 DJNZ R2 , HB3 POP ACC MOV R2 , A POP ACC MOV R7 , A POP ACC MOV R6 , A RET ORG 0250HDISPLAY: MOV R0 , #30H MOV A , R5 ANL A , #0FH MOV @R0 , A MOV A , R5 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV R0 , #30H MOV R2 , #11111110BAGAIN: MOV A , R2 MOV P2 , A MOV A , @R0 MOV DPTR , #TAB MOVC A , @A+DPTR MOV P1 , A ACALL DELAY INC R0 MOV A , R2 RL A MOV R2 , A JB ACC.4 , AGAIN RETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段碼表DELY: MOV R1,#80D1: MOV R2,#100 DJNZ R2,$ DJNZ R1,D1 RET DELAY: MOV TMOD , #01H ;延時(shí)子程序 MOV TL0 , #0FEH MOV TH0 , #0FEH SETB TR0WAIT: JNB TF0 , WAIT CLR TF0 CLR TR0 RETDELY0: MOV R1, #200D3: MOV R2,#250 DJNZ R2,$ DJNZ R1,D3 RET END 該系統(tǒng)實(shí)際應(yīng)用廣泛。可用在生產(chǎn)線上產(chǎn)品數(shù)量統(tǒng)計(jì)、公交車(chē)智能計(jì)數(shù)問(wèn)候(需添加語(yǔ)音芯片)、超市內(nèi)人數(shù)統(tǒng)計(jì)等公共場(chǎng)合。另外,添加串口通信部分便可實(shí)現(xiàn)與PC數(shù)據(jù)交換的功能。 由于,實(shí)驗(yàn)簡(jiǎn)化了,剩下不少零件和資金,所以我們又做了兩項(xiàng)其他的實(shí)驗(yàn)。
標(biāo)簽: 單片機(jī) 紅外 控制系統(tǒng)設(shè)計(jì) 原理圖
上傳時(shí)間: 2013-12-22
上傳用戶:tangsiyun
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1