欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      單片機實習報告總結(jié)(5篇材料)

      時間:2019-05-14 10:36:01下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《單片機實習報告總結(jié)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《單片機實習報告總結(jié)》。

      第一篇:單片機實習報告總結(jié)

      這次實習我們使用控制電路的單片機是at89s51型號的。通過它實現(xiàn)對八盞雙色燈發(fā)光二極管的控制p0和p2口控制四盞燈。在at89s51的9引腳接復(fù)位電路,對電路實現(xiàn)復(fù)位控制。在電路中接入74s164譯碼器和共陰極數(shù)碼管,通過at89s51的p3口數(shù)據(jù)的輸入對共陰極數(shù)碼管的控制。同時也可實現(xiàn)雙色發(fā)光的二極管與共陰極數(shù)碼管的共同作用。在at89s51的p3.2口接上中斷控制電路,p3.5口接入蜂鳴器,使電路實現(xiàn)中斷作用,也使電路便于檢測。盡量朝“單片”方向設(shè)計硬件系統(tǒng)。系統(tǒng)器件越多,器件之間相互干擾也越強,功耗也增大,也不可避免地降低了系統(tǒng)的穩(wěn)定性。系統(tǒng)中的相關(guān)器件要盡可能做到性能匹配。如選用cmos芯片單片機構(gòu)成低功耗系統(tǒng)時,系統(tǒng)中所有芯片都應(yīng)盡可能選擇低功耗產(chǎn)品。

      硬件電路設(shè)計:

      1)確保硬件結(jié)構(gòu)和應(yīng)用軟件方案相結(jié)合。硬件結(jié)構(gòu)與軟件方案會相互影響,軟件能實現(xiàn)的功能盡可能由軟件實現(xiàn),以簡化硬件結(jié)構(gòu)。必須注意,由軟件實現(xiàn)的硬件功能,一般響應(yīng)時間比硬件實現(xiàn)長,且占用cpu時間;

      2)可靠性及抗干擾設(shè)計是硬件設(shè)計必不可少的一部分,它包括芯片、器件選擇、去耦濾波、印刷電路板的合理布線、各元器相互隔離等;

      3)盡量朝“mcs-51單片”方向設(shè)計硬件系統(tǒng)。系統(tǒng)器件越多,器件之間相互干擾也越強,所消耗功耗也增大,也不可避免地降低了系統(tǒng)的穩(wěn)定性;

      4)系統(tǒng)中的相關(guān)器件要盡可能做到性能匹配。如選用cmos芯片單片機構(gòu)成低功耗系統(tǒng)時,系統(tǒng)中所有芯片都應(yīng)盡可能選擇低功耗產(chǎn)品。

      1.1 單片機型號及特性

      單片機型號是 at89s51。特性是:⑴8031 cpu與mcs-51⑵兼容 4k字節(jié)可編程flash存儲器(壽命:1000寫/擦循環(huán))⑶全靜態(tài)工作:0hz-24khz ⑷三級程序存儲器保密鎖定 ⑸128*8位內(nèi)部ram ⑹32條可編程i/o線⑺兩個16位定時器/計數(shù)器 ⑻6個中斷源⑼可編程串行通道⑽低功耗的閑置和掉電模式⑾片內(nèi)振蕩器和時鐘電路

      1.2 晶振電路

      單片機晶振的兩個電容的作用 這兩個電容叫晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,一般在幾十皮發(fā)。它會影響到晶振的諧振頻率和輸出幅度,晶振的負載電容=[(cd*cg)/(cd+cg)]+cic+△c式中cd,cg為分別接在晶振的兩個腳上和對地的電容,cic(集成電路內(nèi)部電容)+△c(pcb上電容)經(jīng)驗值為3至5pf。各種邏輯芯片的晶振引腳可以等效為電容三點式振蕩器。晶振引腳的內(nèi)部通常是一個反相器, 或者是奇數(shù)個反相器串聯(lián)。在晶振輸出引腳 xo 和晶振輸入引腳 xi 之間用一個電阻連接, 對于 cmos 芯片通常是數(shù) m 到數(shù)十m 歐之間.很多芯片的引腳內(nèi)部已經(jīng)包含了這個電阻, 引腳外部就不用接了。這個電阻是為了使反相器在振蕩初始時處與線性狀態(tài), 反相器就如同一個有很大增益的放大器, 以便于起振.石英晶體也連接在晶振引腳的輸入和輸出之間, 等效為一個并聯(lián)諧振回路, 振蕩頻率應(yīng)該是石英晶體的并聯(lián)諧振頻率.晶體旁邊的兩個電容接地, 實際上就是電容三點式電路的分壓電容, 接地點就是分壓點.以接地點即分壓點為參考點, 振蕩引腳的輸入和輸出是反相的, 但從并聯(lián)諧振回路即石英晶體兩端來看, 形成一個正反饋以保證電路持續(xù)振蕩.在芯片設(shè)計時, 這兩個電容就已經(jīng)形成了, 一般是兩個的容量相等, 容量大小依工藝和版圖而不同, 但終歸是比較小, 不一定適合很寬的頻率范圍.外接時大約是數(shù) pf 到數(shù)十 pf, 依頻率和石英晶體的特性而定.需要注意的是: 這兩個電容串聯(lián)的值是并聯(lián)在諧振回路上的, 會影響振蕩頻率.當兩個電容量相等時, 反饋系數(shù)是 0.5, 一般是可以滿足振蕩條件的, 但如果不易起振或振蕩不穩(wěn)定可以減小輸入端對地電容量, 而增加輸出端的值以提高反饋量。

      電路如圖所示

      1.3 復(fù)位電路

      單片機在開機時或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復(fù)位。復(fù)位作用是使cpu以及其他功能部件,如串行口,中斷都恢復(fù)到一個確定初始狀態(tài),并從這個狀態(tài)開始工作。

      復(fù)位電路有兩種:上電、按鈕復(fù)位,考慮到各部件影響,采用按鈕復(fù)位,當電阻給電容充電,電容的電壓為高電平,當按下按鈕時芯片復(fù)位腳近似低電平,于是芯片復(fù)位。

      第二篇:單片機實習報告

      1602液晶顯示設(shè)計

      一、實驗簡介:

      通過學習本門課程,能夠掌握利用51單片機完成簡單項目的應(yīng)用系統(tǒng)設(shè)計和調(diào)試,掌握單片機應(yīng)用程序的編寫和調(diào)試過程。本次實習,我的題目是用51單片機控制1602液晶顯示指定字符的設(shè)計,需要分別設(shè)計系統(tǒng)的硬件電路及調(diào)試軟件程序,并能夠正確演示調(diào)試結(jié)果。

      二、實驗要求:

      1、查找資料學習單片機的LCD點陣顯示原理;

      2、理解KST-51的LCD點陣顯示電路圖;

      3、編制程序在點陣LCD上實現(xiàn)字母:我愛單片機繪制原理圖;

      4、完成實驗報告的撰寫。

      三、硬件電路:

      (一)89C52系列單片機

      89C52是INTEL公司MCS-51系列單片機中基本的產(chǎn)品,它內(nèi)置8位中央處理單元、512字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM、8k片內(nèi)程序存儲器(ROM)32個雙向輸入/輸出(I/O)口、3個16位定時/計數(shù)器和5個兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。此外,89C52還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)CPU而RAM定時器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時鐘振蕩停止,同時停止芯片內(nèi)其它功能。89C52有PDIP(40pin)和PLCC(44pin)兩種封裝形式。

      1、單片機最小系統(tǒng)

      KST-51單片機開發(fā)板

      最小系統(tǒng)是指單片機正常工作的最基本的外圍配置,主要包括時鐘電路、復(fù)位電路等。

      51單片機最小系統(tǒng)是利用XTAL1和XTAL2兩個引腳外接晶體振蕩器的內(nèi)部時鐘方式,C1和C2的作用是穩(wěn)定頻率和快速起振,典型值為30pf,晶體振蕩器的振蕩頻率典型值為6 MHZ、12 MHZ或者11.0592 MHZ,系統(tǒng)與PC通信時常采用11.0592MHZ。

      復(fù)位電路設(shè)計形式包括:上電復(fù)位、按鍵復(fù)位、和利用專業(yè)的復(fù)位芯片進行管理,本次設(shè)計采用按鍵復(fù)位方式。

      51單片機最小系統(tǒng)

      2、單片機引腳功能

      51系列單片機有40個引腳,包括2個 電源引腳,2個外界晶振引腳,4個控制或 其他電源復(fù)用引腳,32個I/O引腳。1)主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源 GND(Pin20):接地線 2)外接晶振引腳(2根)

      XTAL1(Pin19)、XTAL2(Pin18)主要用來構(gòu)成單片機的時鐘電路。時鐘電路用來產(chǎn)生單片機工作所需的時鐘信號。時鐘信號分為內(nèi)部時鐘方式和外部時鐘方式。3)控制引腳(4根)

      RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復(fù)位。

      ALE/PROG(Pin30):地址鎖存允許信號 PSEN(Pin29):外部存儲器讀選通信號

      EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。4)輸入/輸出引腳(32根)

      P0口是一個雙功能的8位并行口,可以用做地址/數(shù)據(jù)總線,另外P0口還可以作為通用I/O口使用,此時為準雙向口,且內(nèi)部無上拉電阻。

      P1口是單功能的I/O口,只能作為通用的I/O口使用,為準雙向口,但內(nèi)部有上拉電阻。

      P2口是一個雙功能口,為準雙向口,但內(nèi)部有上拉電阻,P2口功能主要有一下兩個方面:一是作為高8位地址輸出線使用時,P2口可以輸出外部存儲器的高8位地址,與P0口輸出的低8位地址一起構(gòu)成16位地址,可以尋址64位的地址空間;二是作為通用I/O口使用時,與P1口使用方法一樣。

      P3口作為通用I/O口時使用方法與P1一樣。另外,P3口主要作為第二功能使用。

      (二)1602字符液晶

      P3口第二功能表

      字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,1602是指顯示的內(nèi)容為16*2,即可以顯示兩行,每行16個字符。字符液晶絕大多數(shù)是基于HD44780液晶芯片的。

      1602實物圖 1、1602LCD的特性

      ? +5V電壓,對比度可調(diào) ? 內(nèi)含復(fù)位電路

      ? 提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能

      ? 有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM ? 內(nèi)建有160個5X7點陣的字型的字符發(fā)生器CGROM ? 8個可由用戶自定義的5X7的字符發(fā)生器CGRAM

      2、字符型LCD1602接口 引腳2、1為1602的電源和地,引腳15、16 為背光電源,引腳4、5、6為控制端口,引腳7-14為 數(shù)據(jù)端口,以下為各個端口的詳細介紹。3、1602存儲器

      HD44780內(nèi)置了DDRAM(顯示數(shù)據(jù)存儲RAM)、CGROM(字符存儲ROM)和CGRAM(用戶自定義RAM)。

      DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼。共80個字節(jié),其地址和屏幕的對應(yīng)關(guān)系如下表:

      在DDRAM的00H地址處顯示數(shù)據(jù),則必須將00H加上80H,即0X80+0x00,若要在DDRAM的01H處顯示數(shù)據(jù),則必須將01H加上80H即 0X80+0x01。以此類推。

      字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,如下表所示,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常 用的符號、和日文假名等,每一個字符都有一個固定的代碼。4、1602指令表

      對DDRAM的內(nèi)容和地址操作,HD44780的指令集及其設(shè)置說明,共有11條指令: 1)清屏指令

      功能:<1> 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入“空白”的字符碼20H;<2> 光標歸位,即將光標撤回液晶顯示屏的左上方;<3> 將地址計數(shù)器(AC)的值設(shè)為0。

      2)光標歸位指令

      功能:<1> 把光標撤回到顯示器的左上方;<2> 把地址計數(shù)器(AC)的值設(shè)置為0;<3> 保持DDRAM的內(nèi)容不變 3)輸入模式設(shè)置指令

      功能:設(shè)定每次寫入1位數(shù)據(jù)后光標的移位方向,并且設(shè)定每次寫入的一個字符是否移動。參數(shù)設(shè)定的情況如下所示: 位名 設(shè)置

      I/D 0=寫入新數(shù)據(jù)后光標左移 1=寫入新數(shù)據(jù)后光標右移

      S 0=寫入新數(shù)據(jù)后顯示屏不移動 1=寫入新數(shù)據(jù)后顯示屏整體右移1個字 4)顯示開關(guān)控制指令

      功能:控制顯示器開/關(guān)、光標顯示/關(guān)閉以及光標是否閃爍。參數(shù)設(shè)定的情況如下:

      位名 設(shè)置 D 0=顯示功能關(guān) 1=顯示功能開 C 0=無光標 1=有光標 B 0=光標不閃爍 1=光標閃爍 5)設(shè)定顯示屏或光標移動方向指令

      功能:使光標移位或使整個顯示屏幕移位。參數(shù)設(shè)定的情況如下: S/C R/L 設(shè)定情況

      0 0 光標左移1格,且AC值減1 0 1 光標右移1格,且AC值加1 1 0 顯示器上字符全部左移一格,但光標不動 1 1 顯示器上字符全部右移一格,但光標不動 6)功能設(shè)定指令

      功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下: 位名 設(shè)置

      DL 0=數(shù)據(jù)總線為4位 1=數(shù)據(jù)總線為8位 N 0=顯示1行 1=顯示2行 F 0=5×7點陣/每字符 1=5×10點陣/每字符 7)設(shè)定CGRAM地址指令

      功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。8)設(shè)定DDRAM地址指令

      功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。9)讀取忙信號或AC地址指令

      功能:<1> 讀取忙碌信號BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時無法接收單片機送來的數(shù)據(jù)或指令;當BF=0時,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令;<2> 讀取地址計數(shù)器(AC)的內(nèi)容。10)數(shù)據(jù)寫入DDRAM或CGRAM指令

      功能:<1> 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應(yīng)的字符;<2> 將用戶自己設(shè)計的圖形存入CGRAM。11)從CGRAM或DDRAM讀出數(shù)據(jù)的指令

      功能:讀取DDRAM或CGRAM中的內(nèi)容。

      5、時序圖

      (1)讀狀態(tài) 輸入:RS=0,RW=1,E=1 讀數(shù)據(jù) 輸入:RS=1,RW=1,E=1(2)寫指令 輸入:RS=0,RW=0,E=下降沿脈沖,DB0~DB7=指令碼 寫數(shù)據(jù) 輸入:RS=1,RW=0,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)

      四、實習結(jié)果與討論:

      通過程序的編輯在1602型LCD上實現(xiàn)了顯示英文字符,通過本次實驗的學習進一步熟悉了1602型LCD,對其操作有了更多的心得體會,在本次實驗中獲益匪淺。

      五、實驗程序: #include #include #define uchar unsigned char #define uint unsigned int

      sbit LCD_RS = P2^0;sbit LCD_RW = P2^1;sbit LCD_EN = P2^2;

      uchar code dis1[] = {“woai danpianji”};uchar code dis2[] = {“huizhi yuanlitu”};uchar code dis3[] = {“chen jian”};uchar code dis4[] = {“ dianzihua 1101 ”};

      void delay(int ms){ int i;while(ms--){ for(i = 0;i< 250;i++){ _nop_();_nop_();_nop_();_nop_();} } }

      bit lcd_busy(){ bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();result =(bit)(P0&0x80);LCD_EN = 0;return result;} void lcd_wcmd(uchar cmd){ while(lcd_busy());LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;}

      void lcd_wdat(uchar dat){ while(lcd_busy());LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;}

      void lcd_pos(uchar pos){ lcd_wcmd(pos|0x80);//數(shù)據(jù)指針=80+地址變量 }

      void lcd_init(){ lcd_wcmd(0x38);//16*2顯示,5*7點陣,8位數(shù)據(jù) delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c);//顯示開,關(guān)光標 delay(5);lcd_wcmd(0x06);//移動光標 delay(5);lcd_wcmd(0x01);//清除LCD的顯示內(nèi)容 delay(5);}

      void flash(){ delay(600);//控制停留時間 lcd_wcmd(0x08);//關(guān)閉顯示 delay(200);//延時 lcd_wcmd(0x0c);//開顯示 delay(200);//延時 lcd_wcmd(0x08);//關(guān)閉顯示 delay(200);//延時 lcd_wcmd(0x0c);//開顯示 delay(200);} main(){ uchar i;delay(10);lcd_init();// 初始化LCD

      while(1){ lcd_wcmd(0x06);//向右移動光標

      lcd_pos(0);//設(shè)置顯示位置為第一行的第1個字符 i = 0;while(dis1[i]!= '