




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于pic單片機spi接口的數據采集模塊設計摘 要 pic單片機比mcs-51單片機功能更強大,因為其內部集成了a/d轉換模塊、usart通訊模塊及mssp端口;本文介紹一種基于pic16f877a單片機的數據采集模塊的設計。首先主機的a/d端口接電位器,實現模擬電壓向數字信號的轉換,然后對轉換后得數據通過spi接口傳輸給從機,從機通過顯示控制芯片hd7279a,最后通過四位數碼管把采集的模擬電壓顯示出來。系統需要兩片單片機完成,分為主機和從機,主機完成數據的采集、a/d轉換,轉換結果的輸出,從機主要完成數據的接受,工程量變換功能。程序采用c語言編寫,在集成開發環境mplab-ide下完成編譯
2、及程序下載,最終實現能通過調節電位器實現變化的電壓顯示。關鍵詞 pic單片機 數據采集 a/d轉換 spi接口 design of data collection system based on the spi port of pic microcontrollerabstractthe function of pic mcu is more powerful than mcs-51, because it integrate a large number of on-chip peripherals such as ad converter module. usart communicati
3、on module and mssp port, this article introduced the design of data collection system based on the spi port of pic mcu, first the adc converter module is connected with the potentiometer, so the analog voltage can be converted to digital signal, and then send them to the master microprocessor by the
4、 spi port, the slave display the analog voltage through multi-point calibration which is controlled by the hd7279a.it needs two pieces of microcontroller to do the job, which is divided into the master and the slave, the former completes data collection, a / d conversion, the conversion results of o
5、utput, and the later accepts the data transmission as well as the quantity change. c language is used in programming, the mplab-ide integrated development environment completes compiling and downloading. and finally the analog voltage is displayed.key words pic mcu data collection ad conversion spi
6、port目 錄摘 要iabstractii1 緒論11.1 課題背景及研究意義11.2 本設計方案介紹22 硬件部分設計32.1 pic單片機介紹32.1.1 pic單片機的優越之處32.1.2 pic16f877a最小系統圖及主要性能42.2 pic單片機片內adc模塊及接口實現52.2.1 adc模塊結構和操作原理52.2.2 adc模塊相關的寄存器介紹62.2.3 a/d轉換接口電路設計72.3 主控同步串口mssp介紹92.3.1 i2c總線介紹92.3.2 spi 簡介102.3.3 spi主模式接口設計132.3.4 spi從模式接口設計142.4 hd7279a芯片原理介紹及接口
7、實現152.4.1 hd7279a簡介152.4.2 hd7279指令介紹162.4.3 hd7279a的接口實現202.5 電源模塊233 軟件設計程序流程圖253.1 c語言編程簡介253.2 mplab ide編程環境簡介253.3 mplab icd2介紹263.3.1 mplab icd2系統組成263.3.2 mplab icd2的安裝和配置273.4 系統程序流程圖294結論31致 謝32參考文獻33附 錄134附 錄235附 錄3361 緒論1.1 課題背景及研究意義在工業生產和日常生活中,經常要對模擬信號進行測量與控制,例如在有些系統中經常要對模擬電壓信號進行采集并顯示出來,
8、于是數據采集模塊必不可少。數據采集涉及多學科,所研究的對象是物理或生物等各種非電或電信號,如溫度、壓力、流量、位移等模擬量,根據各種非電或電信號的特征,利用相應的歸一化技術,將其轉化為可真實反映事物特征的電信號后,經a/d轉換器轉換為計算機可識別的有限二進制數編碼,即數字量,并進行存儲、處理、顯示或打印。以此二進制數字編碼作為研究自然科學和實現工業實施控制的重要依據,實現對宏觀和微觀自然科學的量化認識3。在當今社會各個領域,包括科研和實驗研究,數據采集系統有著不可替代的作用,數據采集和處理進行的越及時,工作效率就越高,取得的經濟效益就越大,數據采集系統性能的好壞主要取決于它的精度和速度,在保證
9、精度的條件下,還要盡可能地提高采樣速度,以滿足實時采集、實時處理和實時控制的要求。數據分析是指用適當的方法對采集的數據進行分析,以求最大化的開發數據資料的功能,發揮數據的作用,并將分析結果顯示出來,通過數據采集硬件采集到數據,然后將其傳送到cpu中,應用不同的軟件,將采集到的數據進行實時分析,并顯示出分析結果。其典型的系統組成如圖1-1所示1:物理量傳感器信號調理數據分析softwarecpu數據采集硬件變換器圖1-1 數據采集典型系統框圖1.2 本設計方案介紹本設計主要由pic單片機完成。模擬信號的采集離不開ad轉換,通常我們都是采用ad轉換器實現由模擬量到數字量的轉換,然后將數字信號輸入單
10、片機進行數字處理;其特點是工作性能可靠、穩定,但靈活性差、成本也比較高。本文所介紹的技術是利用pic單片機的特點結合ad轉換的技術直接實現ad轉換,該方法只需外接少量元件,而且分辨率可編程設置,且可實現多路ad轉換,此技術主要用于控制精度要求不是很高、成本要求較低的電子產品中,意義尤為突出1。pic單片機具有spi總線,spi是一種高速的、全雙工、同步的通信總線,并且只占用四根線。為了系統功能的擴展,又是一個單片機不能完成整個系統的要求,這時就需要兩個單片機,第一片完成數據的采集、ad轉換、轉換結果的輸出,第二片主要完成數據的接受,工程量變換等功能,本設計就是基于這種情況而設計的。數據采集模塊
11、構架框圖如圖1-1所示:pic16f877a最小系統(從機)pic16f877a最小系統(主機)數據采集模塊hd7279a顯示控制芯片四位數碼顯示模塊ad轉換轉換spi圖1-2 數據采集模塊構架框圖通過上圖可知,要完成本系統設計,一下幾個模塊必不可少,按照數據流動的先后順序,依次是:ad采集模塊、spi模塊、hd7279顯示控制模塊,各模塊聯系緊密,在下面的論文當中,會按照這個順序一一進行介紹。要想成功完成設計,硬件和軟件兩者缺一不可。2 硬件部分設計2.1 pic單片機介紹2.1.1 pic單片機的優越之處 pic單片機采用了risc結構,其高速度、低電壓、低功耗、大電流lcd驅動能力和低價
12、位otp技術等都體現出單片機產業的新趨勢。pic16f877是microchip公司于1998年底推出的一款特色鮮明的新產品,片內資源豐富,使用方便等諸多優點使其在應用領域中越來越受用戶喜愛,這也是本設計為什么要采用它的原因,其主要特點如下所述13:(1)哈弗總線結構:mcs-51單片機的總線結構是馮-諾依曼型,計算機 在同一個存儲空間取指令和數據,兩者不能同時進行;而pic單片機的總線結構是哈佛結構,指令和數據空間是完全分開的, 正因如此,pic單片機程序和數據總線可以采用不同的寬度。數據總線都是8位的,但指令總線位數分別位 12、14、16位。(2)流水線結構:mcs-51單片機的取指和執
13、行采用單指令流水線結構,即取一條指令,執行完后再取下一條指令;而pic的取指和執行采用雙指令流水線結構,當一條指令被執行時,允許下一條指令同時被取出,這樣就實現了單周期指令。 (3)寄存器組:pic單片機的所有寄存器,包括i/o口,定時器和程序計數器等都采用ram結構形式,而且都只需要一個指令周期就可以完成訪問和操作;而mcs-51單片機需要兩個或兩個以上的周期才能改變寄存器的內容。(4)運行速度高、功耗低(5)驅動能力強、程序保密性強每個i/o引腳吸入和輸出電流的最大值可分別達到25ma和20ma,能夠直接驅動發光二極管led、光電耦合器或者輕微繼電器等;其內部程序尚無法直接進行拷貝,可最大
14、限度保護用戶版權1。2.1.2 pic16f877a最小系統圖及主要性能 由于本系統對速度要求并不是很高,故沒必要采用很高的晶振,4m已經可以滿足系統需求。由于上電復位不是很可靠,程序一旦跑飛就得重新上電,故本系統采用按鍵復位電路,上電復位電阻為10k,電容選電解電容10uf,該電路的優點在于降低復位引腳對地的阻抗,可以顯著增強單片機復位電路的抗干擾能力,并且有利于程序的調試,pic16f877a的最小系統如圖2.21所示: 圖2-1 pic16f877a最小系統圖與本設計相關主要性能參數如下所示6:l 具有高性能的cpul 除程序分支指令為兩個周期外,其余均為單周期指令l 8k * 14個
15、flash程序存儲器368 * 8 個數據存儲器(ram)字節256 * 8 eeprm 數據存儲器字節l 提供14個中斷源l 10位多通道模數轉換器l 內部有主控同步串行通訊端口mssp,可工作于spi、i2c兩種模式l 功耗低在5v,4mhz 時鐘運行時電流小于 2ma在3v,32khz 時鐘運行時電流小于20ual 支持在線串行編程(icsp)l 運行電壓范圍廣,2.0v到5.5vl 輸入及輸出電流可達到25ma2.2 pic單片機片內adc模塊及接口實現2.2.1 adc模塊結構和操作原理 pic16f87x內部帶有10位adc,40腳封裝的芯片內有8通道adc,其內部結構包含四部分:
16、8選1選擇開關、雙刀雙擲開關、a/d轉換電路和采樣/保護電路。pic16f87x的adc內部結構示意圖如圖3.1-1所示。圖2-2 adc模塊內部結構圖adc模塊各部分功能和組成關系如下:(1)8選1選擇開關由控制寄存器adcon0中的chs2-chs0位控制,用于在引腳an0-an7中選擇將要進行轉換的輸入模擬通道,選中者與內部采樣/保持電路接通。(2)雙刀雙擲切換開關由控制寄存器adcon1中的pcfg3-pcfg0位控制用于選擇a/d轉換器所需要的參考電壓源的獲取途徑。(3)a/d轉換電路用于實現將模擬信號轉換為數字量。(4)采樣/保持電路用于對輸入模擬信號電平進行抽樣,并且為后續a/d
17、轉換電路保持一個平穩的電壓樣值。2.2.2 adc模塊相關的寄存器介紹1. adc控制寄存器0-adcon0 見表3-1。表2-1 adcon0各位描述符號地址bit7bit6bit5bit4bit3bit2bit1bit0adcon01fhadcs1adcs0chs2chs1chs0go-adon功能:l adcs1-adcs0:a/d轉換時鐘及頻率選擇位l chs2-chs0:a/d模擬通道選擇位l go/done:a/d轉換啟動控制位,兼作狀態位,在adon=1的前提下,1=啟動a/d轉換或轉換正在進行中,0=a/d轉換已完成。2. adc控制寄存器1-adcon1見表2-2。表2-2
18、adcon1各位描述符號地址bit7bit6bit5bit4bit3bit2bit1bit0adcon19fhadfm-pcfg3pcfg2pcfg1pcfg0功能:l adfm:a/d轉換結果格式選擇位。1=結果右對齊,adresh寄存器高6位讀作0;0=結果左對齊,adresl寄存器低6位讀作0。l pcfg3-pcfg0:a/d模塊引腳配置位。這三個決定了功能復用的引腳那些作為普通數字i/o口,哪些作為a/d轉換時的電壓信號輸入。在8位分辨率的a/d轉換模塊中其組合控制模式見表3-3。表2-3 位分辨率的a/d模塊引腳配置pcfg2-pcfg0an7an6an5an4an3an2an1a
19、n0000aaaaaaaa001aaaavrefaaa010dddaaaaa011ddaavrefaaa100ddddadaa101ddddvrefdaa11xdddddddd3. adc結果高字節寄存器adreshl 當admf=0時,用于存放a/d轉換結果的高8位;當admf=1時,用于存放a/d轉換結果的高2位,此時結存器的高6位讀作0。4. adc結果低字節寄存器adresll 當admf=1時,用于存放a/d轉換結果的低8位;當admf=0時,用于存放a/d轉換結果的低2位,此時寄存器低6位讀作0。2.2.3 a/d轉換接口電路設計 a/d轉換的外圍器件是電位器,電位器與+5v電源相
20、連,通過調節電位器r101即可向單片機adc模塊的an0通道輸入連續變化的模擬電壓信號。其硬件電路圖如圖3.2所示: 圖2-3 a/d轉換接口電路圖adc模塊程序流程圖如圖2-4所示:開始初始化相關寄存器延時adgo位置1adgo位是否為0返回adres中的8位轉換結果ny圖2-4 adc模塊程序流程圖如圖該部分主要子程序程序如下所示:/*函數功能:adc端口初始化子程序*/void init_ad()porta=0xff;trisa=0x01; /設置ra0為輸入adcon0=0x41; /系統時鐘f/8,選擇ra0通道,允許adc工作adcon1=0x0e; /adresh用于存放a/d轉
21、換結果高八位,ra0做模擬輸入口delay();/*函數功能:adc模塊接受子程序*/unsigned char read_ad()adgo=1;while(adgo);return(adresh); /只返回轉換值的高八位/*函數功能:延時子程序*/void delay()int i;for(i=200;i0;i-);2.3 主控同步串口mssp介紹2.3.1 i2c總線介紹mssp模塊主要用來和帶串行接口的外圍器件或者帶有同類接口的單片機進行通訊的一種串行接口。這些外圍器件可以是串行的ram、eeprom、flash、lcd驅動器等。mssp模塊可以工作于一下兩種模式:l 芯片間總線(i2
22、c)l 串行外圍接口(spi)i2c總線是philips semiconductors在20世紀80年代中期開發的,最初用于音頻和視頻目的,如今主要在服務器管理中使用,由于只需要微控制器的兩個端口引腳就可以傳輸任意特性的數據,所以i2c總線協議得到了廣泛的應用,并促進了大量的i2c外部芯片的開發。i2c總線可用于控制ic卡、數據轉換、lcd控制、時鐘控制、存貯器控制、多機通信等。其主要的優點是其簡單性和有效性,由于接口在組件上,因此i2c總線占用的空間非常小,其另外一優點是,它支持多主控,其中任何能夠進行發送和接受的設備都可以成為主總線,一個主控可以控制信號的傳輸和時鐘頻率。當然,在任何時間點
23、上只能有一個主控6。i2c總線是由數據線sda和時鐘scl構成的串行總線,可發送和接受數據,最高傳送速率100kbps,各種被控制電路均并聯在這條總線上,且每個電路和模塊都有唯一的地址,在信息傳輸過程中,i2c總線上并接的每一模塊電路既是主控器,又是發送器,這取決與它所要完成的功能。cpu發出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調整的類別及需要調整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨立,互不相關。i2c總線在傳送數據過程中共有三種類型信號,它們分別是:開始信號、結束信號和應答信號。開始信號:scl為高電平時,sd
24、a由高電平向低電平跳變,開始傳送數據。結束信號:scl為低電平時,sda由低電平想高電平跳變,結束傳送數據。應答信號:接受數據的ic在接受到8bit數據后,向發送數據的ic發送特定的低電平脈沖,表示已收到數據。cpu向受控單元發送一個信號后,等待受控單元發送一個應答信號,cpu接收到應答信號后,根據實際情況作出是否繼續傳遞信號的判斷。若未收到應答信號,則判斷受控單元出現故障。2.3.2 spi 簡介串行外圍設備接口spi(serial peripheral interface)總線技術是motrola公司推出的一種同步串行接口。spi總線是一種三線同步總線,因其硬件能力很強,與spi有關的軟件
25、就相當簡單,使cpu有更多的時間處理其它事務,因此得到廣泛應用。spi模式允許8位數據同步發送和接收,支持spi的所有四種方式。spi模式傳輸數據需要四根信號線:串行數據輸出(sdo)線、串行數據輸入(sdi)線、串行時鐘(sck)和從選擇(ss)。其中,從選擇線只用于從屬模式。當主控同步串口工作于spi接口模式時,其電路結構如圖3.3所示7:圖2-5 spi接口電路結構圖spi的核心部分是數據緩沖器sspbuf和由sspbuf實現裝載與卸載的數據移位寄存器sspsr,寄存器sspsr數據移入端與引腳sdi連接,其輸出端與sdo連接,移位時鐘取自引腳sck。要讓spi串行端口工作,必須把mss
26、p模塊的使能位sspen置1。這樣就可以把引腳sdi、sdo、sck和ss作為spi接口的專用引腳,并且還得對其方向位進行相應定義:l sdi引腳的i/o方向由spi接口自動控制,應設trisc4=1;l sdo引腳定義為輸出,即trisc5=0;l 在主控方式下,sck引腳為輸出,即trisc3=0;l 在從動方式下,sck引腳為輸入,即trisc3=1;l 在從動方式下如果用到ss引腳,則定義為輸入,即trisa5=1;針對本設計,主機和從機的spi模塊的初始化程序分別如下所示:/*函數功能:主機spi端口初始化程序*/void init_spi()trisc5=0; /sdo引腳定義為輸
27、出trisc3=0; /sck引腳定義為輸出trisb1=0; /rb1引腳定義為輸出sspcon=0x30; /允許串行口工作,時鐘=f/4sspstat=0x80; /在輸出數據末端采樣輸入數據/*函數功能:spi方式初始化程序如下:*/void init_spi()trisa5=1; /ra5(片選)引腳定義為輸入trisb=0x00; /b口定義為輸出trisc3=1; /sck引腳定義為輸入trisc4=1; /sdi引腳定義為輸入sspcon=0x34; /spi從動工作方式sspstat=0x00;兩片pic單片機直接進行spi通訊,其典型電路連接如圖4.2所示,spi主要使用4
28、個信號:mosi、miso、sck(串行時鐘)和cs(片選)。其中,sck由主機產生,在雙機spi通訊中,這四個信號線的連接如圖4-2所示:主機的sdo與從機的sdi相連,主機的sdi與從機的sdo相連,主機的sck與從機的sck相連作為傳輸的同步時鐘,控制所有數據傳輸;另外在雙機spi通訊中,還必須用到從機的ra5/ss引腳,主機通過控制從機ra5/ss引腳是高電平還是低電平來決定spi傳輸是否能夠進行,當ra5/ss引腳為低電平時,從機可以進行發送和接受,當ra5/ss引腳為高電平時,即使在發送數據過程中,從機的sdo輸出也會變為高阻浮空狀態。主機和從機都要用到串行輸入緩沖器(sspbuf
29、);主機通過向自己的spi串行寄存器寫入1個字節來發起1次傳輸,然后通過sdo信號線將數據傳給從機,同時從機也可將將自己移位寄存器中的內容通過sdo信號線返回給主機,如圖4.2所示。這樣,兩個移位寄存器中的內容就交換了。在實際應用中,如果只進行寫操作,則主機只需忽略收到的字節即可;如果主機要讀外設的數據,必須發送1個字節來引發從機的傳輸,發送的這個字節可以是任意數據8。串行輸入緩沖器(sspbuf)移位寄存器(sspsr)串行輸入緩沖器(sspbuf)移位寄存器(sspsr)主控制器sspm3:sspm0=00xxb從sspm3:sspm0=010xbsdosdisckscksdisdorb1
30、ss(ra5)圖2-6 雙機spi通訊連接框圖2.3.3 spi主模式接口設計由于控制時鐘sck的輸出,主模式可以在任何時候開始傳輸數據,在主模式中,一旦sspuf寄存器寫入,數據就會發送或接收。在接收數據時,sspsr寄存器按照時鐘速率移位,一旦接收到一個字節,數據就傳輸到sspbuf,同時中斷標志位和狀態標志位置位。時鐘的極性可以通過編程改變。在主模式中,時鐘sck的頻率可以設置為:fosc/4(即tcy)、fosc/16(即4tcy)、fosc/64(即16tcy)和定時器2(timer2)輸出的二分頻等四種。在本設計的主機中,使用的就是spi主模式,由單片機控制時鐘sck的輸出,由rb
31、1引腳控制從機的片選引腳,可以隨時向從機發送數據;如果要連續發送數據,那么每次將數據送到sspbuf寄存器后,都要判斷是否已經發送完該數據,即判斷pir1寄存器的sspif位是否為1。如果sspif位為1,則表明數據已經發送完畢,可以繼續發送下一個數據。但此時還不能立即發送下一個數據,因為sspif位必須在程序中由軟件清零,只有將sspif位軟件清零后,才能繼續發送下一個數據。主機spi模塊主要子程序程序代碼如下:/*函數功能:主機spi端口發送子程序*/void spi_fs(unsigned char byte)sspbuf=byte; /向sspbuf中裝入待發送的數據while(!ss
32、pif); /判斷數據是否發送完sspif=0; /若發送完,清零sspif位2.3.4 spi從模式接口設計在spi從模式,數據的發送和接收領先sck引腳上輸入的外時鐘脈沖,當最后一位被鎖存后,中斷標志位sspif(pir1的d 3)位。本設計是采用cke=1控制的從模式,當ss引腳接到vdd時,spi模式復位,這是一種同步從屬工作方式,這時spi接口必須被定義為從動方式,即sspcon3:0=0100,同時ra5/ss引腳必須定義為輸入功能,即trisa5=1。此外,當ss引腳輸入低電平時,就可以進行接收。/*函數功能:spi接收子程序如下:*/void spi_js()while(!ss
33、pif); /等待數據接收完畢sspif=0; /軟件清零sspif位2.4 hd7279a芯片原理介紹及接口實現2.4.1 hd7279a簡介hd7279a是一片有串行接口的,可同時驅動8位共陰式數碼管的智能顯示驅動芯片,該芯片同時還可連接多達64鍵的鍵盤矩陣,單片即可完成led顯示、鍵盤接口的全部功能,其引腳如圖2-7所示。hd7279a內部含有譯碼器,可直接接受bcd碼或16進制碼,并同時具有2中譯碼方式,還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等;hd7279a具有片選信號,可方便地實現多于8位的顯示或多于64鍵的鍵盤接口。特點如下:l 串行接口,無需外圍元件可直接驅動le
34、dl 各位獨立控制譯碼/不譯碼及消隱和閃爍屬性l (循環)左移/(循環)右移指令l 具有段尋址指令,方便控制獨立ledl 64鍵盤控制器,內含去抖動電路l 有dip和soic兩種封裝形式供選擇圖2-7 hd7279a引腳圖引腳說明如表2-4所示:表2-4 hd7279a引腳說明引腳名稱說明1,2vdd正電源3,5nc無連接,必須懸空4vss接地6cs片選輸入端,次引腳為低電平時,可向芯片發送指令,及讀取鍵盤數據7clk同步時鐘輸入端,向芯片發送數據及讀取鍵盤數據時,此引腳電平上升沿表示數據有效8data串行數據輸入/輸出端,當芯片接受指令時,此引腳為輸入端;當讀取鍵盤數據時,此引腳在讀指令最后
35、一個時鐘的下降沿變為輸出端9key按鍵有效輸出端,平時為高電平,當檢測到有效按鍵時,此引腳變為低電平10-16sg-sa段g-段a驅動輸出17dp小數點驅動輸出18-25dig0-dig7數字0-7驅動輸出26clk0震蕩輸出端27rcrc振蕩器連接端28reset復位端2.4.2 hd7279指令介紹l 不帶數據的指令1、復位(清除)指令a4h當hd7279a收到該指令后,將所有的顯示清除,所有設置的字符消隱、閃爍等屬性也被一起清除。執行該指令后,芯片所處的狀態與系統上電后所處的狀態一樣。2、測試指令bfh該指令使所有的led全部點亮,并處于閃爍狀態,主要用于測試3、左移指令a1h/右移指令
36、a0h使所有的顯示自右向左(自左向右)移動一位,但對各位所設置的消隱及閃爍屬性不變。移動后,最右邊(左邊)一位為空。4、循環左移指令a3h與左移指令類似,不同之處在于移動后最左邊一位內容顯示于最右邊。5、循環右移指令a2h與循環左移指令類似,但移動方向相反。l 帶有數據的指令1、 下載數據且按方式0譯碼如表2-5所示:表2-5 方式0指令格式d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d010000a2a1a0dpxxxd3d2d1d0 x=無影響。 命令由兩個字節組成,前半部分為指令,其中a2,a1,a0為位地址,具體分配如表2-6所示:表2-6 位地址a2a1a0顯示位00
37、010012010301141005101611071118 d0-d3為數據,收到此指令時,hd7279a按一下規則(譯碼方式0)進行譯碼,如表2-7所示:表2-7 方式0譯碼方式d3-d0d3d2d1d07段顯示00h0000001h0001102h0010203h0011304h0100405h0101506h0110607h0111708h1000809h100190ah1010-0bh1011e0ch1100h0dh1101l0eh1110p0fh1111空 小數點的顯示由dp位控制,dp=1時,小數點顯示,dp=0時,小數點不顯示。2、 下載數據且按方式1譯碼格式如表2-8所示:表
38、2-8 方式1指令格式d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d011001a2a1a0dpxxxd3d2d1d0 x無影響。 此指令與上一條指令基本相同,所不同的是譯碼方式,該指令的譯碼方式如表2-9進行:表2-9 方式1譯碼方式d3-d0d3d2d1d07段顯示00h0000001h0001102h0010203h0011304h0100405h0101506h0110607h0111708h1000809h100190ah1010a0bh1011b0ch1100c0dh1101d0eh1110e0fh1111f3、 下載數據但不譯碼指令格式如表2-10所示:表2-10
39、 下載數據不譯碼指令格式d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d010010a2a1a0dpabcdefg其中:a2,a1,a0為位地址,a-g和dp為顯示數據,分別對應7段led數碼管的各段。數碼管各段的定義見下圖。當相應的數據位為1時,該段點亮,否則不亮。圖2-8 數碼管各段定義4、 閃爍控制88h,指令格式如表2-11所示:表2-11 閃爍指令指令格式d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d010001000d8d7d6d5d4d3d2d1此命令控制各個數碼管的閃爍屬性。d1-d8分別對應數碼管1-8,0=閃爍,1=不閃爍。開機后,缺省的狀態為
40、各位均不閃爍。5、 消隱控制98h,其指令格式如表2-12所示:表2-12 消隱控制指令格式d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d010011000d8d7d6d5d4d3d2d1此命令控制各個數碼管的消隱屬性。d1-d8分別對應數碼管1-8,1=顯示,0=消隱。當某一位被賦予了消隱屬性后,hd7279a在掃描時將跳過該位,因此在這種情況下無論對該位寫入何值,均不會被顯示,但寫入的值將被保留,在該位重新設置為顯示狀態后,最后一次寫入的數據將被顯示出來,當無需用到全部8個數碼管的時候,將不用到的位設為消隱屬性,可以提高顯示的亮度。6、 段點亮指令e0h,其指令格式如表2-
41、12所示:表2-12 段點亮指令格式d7d6d5d4d3d2d1d0d7d6d5d4d3d2d1d011000000xxd6d5d4d3d2d1段尋址命令,作用為關閉(熄滅)數碼管中的某一段,指令結構與段點亮指令相同。2.4.3 hd7279a的接口實現hd7279a采用串行方式與未處理器通訊,串行數據從data引腳送入芯片,并由clk端同步。當片選信號變為低電平后,data引腳上的數據在clk引腳的上升沿被寫入hd7279a的緩沖寄存器。hd7279a的指令結構有三種類型:1、不帶數據的純指令,指令的寬帶為8個bit,即微處理器需發送8個clk脈沖。2、帶有數據的指令,寬度為16個bit,即
42、微處理器需發送16個clk脈沖。3、讀取鍵盤數據指令,寬度為16個bit,前8個為微處理器發送到hd7279a的指令,后8個bit為hd7279a返回的鍵盤代碼。執行此指令時,hd7279a的data端在第9個clk脈沖的上升沿變為輸出狀態,并與第16個脈沖的下降沿恢復為輸入狀態,等待接收下一個指令。hd7279a應連接共陰式數碼管,無需用到的鍵盤和數碼管可以不連接。因為采用循環掃描的工作方式,如果采用普通數碼管,亮度有可能不夠,采用高亮度的型號,可以解決這個問題,數碼管的尺寸亦不宜選的過大。hd7279a的reset復位端在一般應用情況下,可以直接與正電源連接,在需要較高可靠性的情況下,可以
43、連接一外部復位電路。在上電或reset端由低電平變為高電平后,hd7279a大約需要經過18-25ms的時間才會進入正常工作狀態。程序中,盡可能地減少cpu對hd7279a的訪問次數,可以使得程序更有效率。因為芯片直接驅動led數碼管顯示,電流較大,且為動態掃描方式,故如果該部分電路電源連線較細較長,肯能會引入較大的電源噪聲干擾,將hd7279a的正負電源端上并入去耦電容可以提高電路的抗干擾能力3。其與單片機的接口電路如圖2-9所示:圖2-9 hd7279a與單片機接口電路圖程序如下所示:#include#define uchar unsigned char#define cs rb7#def
44、ine clk rb6#define data rb5#define key rb4/*函數功能:向hd7279a寫入一個字節*/void send_byte(uchar out_byte)uchar i;cs=0;long_delay();for(i=0;i8;i+)if(out_byte&0x80)data=1;elsedata=0;clk=1;short_delay();clk=0;short_delay();out_byte=out_byte*2;data=0;/*函數功能:向hd7279a寫入一個字*/void write7279(uchar cmd,uchar dta)send_b
45、yte(cmd);send_byte(dta);/*函數功能:實現工程量的變換*/void gc_bh()int ad1,ad2,ad3,ad4;float temp;temp=adresh*4*5/1024;ad1=(int)temp;ad2=(int)(temp*10)-ad1*10);ad3=(int)(temp*100)-ad1*100-ad2*10);ad4=(int)(temp*1000)-ad1*1000-ad2*100-ad1*10);由于本設計對精度要求不是很高,故從機在工程量變換時,只需要選取adresh中的高8位為數據,把低兩位補零,因此實際的10位二進制數為result
46、=adresh*4;把10位二進制數1024和電壓5v對應,這樣可以近似把0-1024分為5份,每份對應1v電壓,故10位二進制數與電壓間的轉換關系為temp=result*5/1024。2.5 電源模塊該電源按常規設計,為系統工作提供所需電源,其輸入為220v、50hz交流電,輸出電壓等級為+5v,穩定直流源設計的一般思路是讓輸入電壓先通過電壓變壓器,再通過整流網絡,然后經過濾波網絡最后經過穩壓網絡。方案1:我們可以采用橋式整理電路實現整流的目的,以大電容作為濾波電路,然后接負載,這樣做有以下不足之處,如果負載的影響很大,電壓不可調,以及沒有保護電路等一系列問題。我們采用某些芯片可以解決以上
47、問題。方案2:以全波整流電路作為整流網絡,以極性電容作為濾波網絡,采用78系列穩壓器,結構簡單,調整方便,輸出電壓紋波小,電路原理圖如圖3.1所示。當所需電流超過穩壓器標定值時,可采用外接功率管的方法來擴大輸出電流。市電交流220v經變壓器降壓為交流12v,經過全橋整流輸出直流電流,再經過1000f的電解電容濾波,除去整流后的交流成分,送至各三端穩壓器,輸出需要的電壓。經過各三端穩壓器穩壓后,在lm7805輸出端輸出+5v直流電壓3。穩壓電源一般由變壓器、整流器和穩壓器三大部分組成,如圖2-10所示。電源變壓器整流電路濾波電路穩壓電路220v50h+5v輸出圖2-10 直流電源系統方框圖各部分功能如下所示:1. 電源變壓器:將220v交流電壓轉換為各種電路設備所的交流電。2. 整流壓電路:利用單向導電器件將交流電轉換成脈動直流電路。3. 濾波電路:利用儲能元件把脈動直流電轉換成比較平坦的直流電。4. 穩壓電路:利用電路的調整作用使輸出電壓穩定的過程稱為穩壓。具體電路如圖2-11所示:圖2-11 +5v直流穩壓電源3 軟件設計程序流程圖3.1 c語言編程簡介用c語言來開發單片機系統最大的好處是編寫代
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025公寓單元轉讓合同樣本
- 2025二手汽車買賣合同協議書
- 2025物業管理員的勞動合同
- 梅竹言志的文化解讀
- 普通心理學(第2版)課件 第七章 思維
- 人教版小學一年級語文上冊期末考試題
- 新質生產力綠色
- 電力AI系列報告三:AI服務器電源乘勢而起252mb
- 山東省濟寧市兗州區2024-2025學年高一下學期期中考試歷史試題(含答案)
- 某電子集團王牌彩電推廣策略
- 12.2.1.2+用條形圖和折線圖描述數據教案+2024-2025學年人教版數學七年級下冊
- 學校內控制度及手冊
- 新蘇教版一年級數學下冊第七單元第1課時《觀察物體(1)》課件
- 交通運輸安全生產知識培訓
- 核醫學檢查技術知到智慧樹章節測試課后答案2024年秋山東第一醫科大學
- 針灸治療格林巴利綜合征
- 本科生畢業論文寫作指導-課件
- 企業向政府報告范文
- 法務崗位招聘筆試題與參考答案(某大型國企)2025年
- 2024年學年八年級道德與法治下冊 第二單元 理解權利義務教案 新人教版
- 2024年我國人口老齡化問題與對策
評論
0/150
提交評論