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

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

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

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

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

      單片機(jī)數(shù)碼管顯示課程設(shè)計(jì)

      時(shí)間:2019-05-15 09:21:29下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《單片機(jī)數(shù)碼管顯示課程設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《單片機(jī)數(shù)碼管顯示課程設(shè)計(jì)》。

      第一篇:單片機(jī)數(shù)碼管顯示課程設(shè)計(jì)

      單片機(jī)數(shù)碼管顯示課程設(shè)計(jì)

      目錄引言...............設(shè)計(jì)任務(wù)和要求.............1

      2.1 設(shè)計(jì)目的............1

      2.2 設(shè)計(jì)意義............1總原理圖及主要模塊的流程圖......1

      3.1 總原理圖及元器件清單..............1

      3.2 主要流程圖..........1性能測試與分析.............35 結(jié)論與心得..........4致謝...........4

      參考文獻(xiàn).............4

      單片機(jī)數(shù)碼管顯示課程設(shè)計(jì)引言

      從上世紀(jì)70年代第一批單片機(jī)問世,短短二三十年時(shí)間,單片機(jī)技術(shù)已經(jīng)成為計(jì)算機(jī)技術(shù)的一個(gè)重要分支,廣泛運(yùn)用到工業(yè)控制、儀器、儀表、消費(fèi)產(chǎn)品,汽車、辦公自動(dòng)化和通信等領(lǐng)域。因此,單片機(jī)技術(shù)已經(jīng)成為電子、測控、自動(dòng)化、通信等許多工科專業(yè)學(xué)生的必備技能。

      我用AT89C51芯片來設(shè)計(jì)一個(gè)簡單的數(shù)碼管顯示。此設(shè)計(jì)給出了源代碼,通過仿真測試,其性能指標(biāo)達(dá)到了設(shè)計(jì)要求。

      關(guān)鍵詞:單片機(jī),AT89C51,數(shù)碼管設(shè)計(jì)任務(wù)和要求

      2.1 設(shè)計(jì)目的1.學(xué)習(xí)基本理論在實(shí)踐中綜合運(yùn)用的初步經(jīng)驗(yàn),掌握模擬電路設(shè)計(jì)的基本方法、設(shè)計(jì)步驟,培養(yǎng)綜合設(shè)計(jì)與調(diào)試能力。

      2.了解AT89C51這個(gè)芯片的使用和性能指標(biāo)測試方法。

      3.培養(yǎng)實(shí)踐技能,提高分析和解決實(shí)際問題的能力。

      2.2 設(shè)計(jì)意義

      為了更好地熟悉和掌握單片機(jī)的基本功能和編程,掌握數(shù)碼管動(dòng)態(tài)掃描顯示原理及實(shí)現(xiàn)方法。自我動(dòng)態(tài)掃描顯示電路驅(qū)動(dòng)程序的編寫方法。通過課程設(shè)計(jì),達(dá)到理論與實(shí)際應(yīng)用相結(jié)合,提高學(xué)生對(duì)微機(jī)硬件結(jié)構(gòu)的軟件設(shè)計(jì)方法的理解,使學(xué)生能夠根據(jù)實(shí)際應(yīng)用,初步實(shí)現(xiàn)硬件及軟件的設(shè)計(jì),對(duì)硬件開發(fā)有更深層的認(rèn)識(shí),為今后打軟硬件開發(fā),打下堅(jiān)實(shí)的基礎(chǔ)??傇韴D及及主要模塊的流程圖

      3.1 總原理圖及元器件清單

      (1)我用Proteus 7 professional來畫出我設(shè)計(jì)的總原理圖,如圖3-1。

      如圖3-1

      此電路圖就用到AT89C51這個(gè)芯片,和一個(gè)數(shù)碼管。

      3.2 主要流程圖(四號(hào)宋體加粗)

      1.主程序的流程圖

      圖3.2-1主流程圖

      2.子程序的流程圖

      圖3.2-2子流程圖性能測試與分析

      主程序和子程序都存放在AT89C51單片機(jī)中。主程序的功能是:顯示數(shù)字。子程序的功能有:延時(shí)。程序代碼:

      ORG 0000H;初始化

      LJMP START;轉(zhuǎn)入主程序

      ORG 0010H;初始化

      START:

      CLR P2.7;P2.7←00H

      MOVR0,#00H;R0←00H

      MOV R2,#10;R2←10

      MAIN:

      MOV DPTR,#TAB;DPTR←TAB

      MOV A,R0;A←(RO)

      MOVC A,@A+DPTR;A←((A)+(DPTR))

      MOV P0,A;P0←(A)

      LCALL DELAY;調(diào)用延時(shí)程序

      INC R0;RO←(R0)+1

      DJNZR2,MAIN;判斷

      JMP START;循環(huán)

      DELAY:;延時(shí)程序

      MOV R3,#11

      D1: MOV R4,#100

      D2: MOV R5,#100

      DJNZ R5,$

      DJNZ R4,D2

      DJNZ R3,D1

      RET

      TAB:

      DB 00101000B;0

      DB 11101011B;1

      DB 00110010B;2

      DB 10100010B;3

      DB 11100001B;4

      DB 10100100B;5

      DB 00100100B;6

      DB 11101010B;7

      DB 00100000B;8

      DB 10100000B;9

      END

      我用Proteus 7 professional 軟件來測試我設(shè)計(jì)的電路圖。當(dāng)運(yùn)行時(shí),數(shù)碼管顯示0。如圖4-1。

      圖4-1

      當(dāng)221ms后,數(shù)碼管顯示1。如圖

      4-2.圖4-2

      我的程序是一個(gè)循環(huán)的,一直到顯示9,之后又重新開始顯示0。在此不一一列出來。

      為了能在實(shí)際在到應(yīng)用,我用開發(fā)板來驗(yàn)證我所設(shè)計(jì)的電路圖。其結(jié)果如下:

      圖4-3顯示1

      圖4-4顯示8

      從仿真的結(jié)果可以看出,我的設(shè)計(jì)是滿足我設(shè)計(jì)的要求的。結(jié)論與心得

      通過單片機(jī)課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新,是要我們學(xué)會(huì)將理論很好地聯(lián)系實(shí)際,并不斷地去開動(dòng)自己的大腦,從為人類造福的意愿出發(fā),做自己力所能及的,別人卻沒想到的事。使之不斷地戰(zhàn)勝別人,超越前人。同時(shí),更重要的是,我在這一設(shè)計(jì)過程中,學(xué)會(huì)了堅(jiān)持不懈,不輕易言棄。設(shè)計(jì)過程,也好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,也許這就是在對(duì)我們提出了挑戰(zhàn),勇敢過,也戰(zhàn)勝了,勝利的鐘聲也就一定會(huì)為我們而敲響。

      這個(gè)設(shè)計(jì)過程中,我遇到過許多次失敗的考驗(yàn),就比如,我在軟件上仿真軟件上能實(shí)現(xiàn)其功能,但是把它寫進(jìn)開發(fā)板就無法運(yùn)行,我不停地找原因。最后我找到了答案,這樣我明白,做設(shè)計(jì)不但是軟件可以運(yùn)行,用在硬件上一樣是那么重要的。我做的這個(gè)設(shè)計(jì)主要是用AT89C51這個(gè)芯片來實(shí)現(xiàn),這個(gè)芯片具有很多優(yōu)點(diǎn),程序簡單易讀,結(jié)構(gòu)清楚,最重要的是成本低。很適合我們學(xué)生用來學(xué)生。在做這個(gè)設(shè)計(jì)的過程中,我也了解到了自己的不足,在日后的學(xué)習(xí)中,我還需加倍努力學(xué)習(xí)。

      參考文獻(xiàn))

      [1]梁炳東.單片機(jī)原理與應(yīng)用。北京:人民郵電出版社,2009

      [2]

      [3]http://wenku.baidu.com/album/view/702db2c7aa00b52acfc7cae7

      致謝(小三號(hào) 宋體 加粗)

      在此次課程設(shè)計(jì)中,我遇到不懂的問題,老師和同學(xué)都幫我,讓我把問題順利地得到解決,最后完成此次課程設(shè)計(jì)報(bào)告。從中我學(xué)到了很多東西,在此,謝謝我的老師和同學(xué),感謝你們在我遇到難題的時(shí)候幫我解答。

      第二篇:單片機(jī)數(shù)碼管顯示實(shí)驗(yàn)

      實(shí)驗(yàn)一

      數(shù)碼管實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.了解數(shù)碼管的顯示原理;2.掌握J(rèn)XARM9-2440 中數(shù)碼管顯示編程方法

      二、實(shí)驗(yàn)儀器

      JXARM9-2440教學(xué)實(shí)驗(yàn)箱、ADT1000仿真器和ADT IDE集成開發(fā)環(huán)境、串口連接線、PC機(jī)。

      三、實(shí)驗(yàn)原理

      7段LED由7個(gè)發(fā)光二極管按“日”字形排列,所有發(fā)光二極管的陽極連在一起稱共陽極接法,陰極連在一起稱為共陰極接法。

      LED顯示器的接口一般有靜態(tài)顯示與動(dòng)態(tài)顯示接口兩種方式。

      本實(shí)驗(yàn)中采用的是動(dòng)態(tài)顯示接口,其中數(shù)碼管掃描控制地址為0x20007000,位0-位5每位分別對(duì)應(yīng)一個(gè)數(shù)碼管,將其中某位清0 來選擇相應(yīng)的數(shù)碼管,地址0x20006000 為數(shù)碼管的數(shù)據(jù)寄存器。數(shù)碼管采用共陽方式,向該地址寫一個(gè)數(shù)據(jù)就可以控制LED 的顯示,數(shù)據(jù)中的1對(duì)應(yīng)的不亮,0對(duì)應(yīng)的亮,數(shù)碼管各位從高到低排列為dp-g-f-e-d-c-b-a,例如當(dāng)數(shù)據(jù)寄存器是11111111時(shí)則不亮,當(dāng)是01111111時(shí)則顯示8,其原理圖如圖所示。

      四、實(shí)驗(yàn)內(nèi)容

      1、編程實(shí)現(xiàn):六個(gè)數(shù)碼管同時(shí)正向顯示0-F,然后反向顯示F-0。

      2、編程實(shí)現(xiàn):在六個(gè)數(shù)碼管上依次顯示與自己姓名有關(guān)的內(nèi)容,可分辨出輪流顯示。

      3、編程實(shí)現(xiàn):在六個(gè)數(shù)碼管上依次顯示與自己姓名有關(guān)的內(nèi)容,分辨不出輪流顯示。

      4*、編程實(shí)現(xiàn):在每個(gè)數(shù)碼管上遞增顯示0—9。5*、自行開發(fā)。

      五、實(shí)驗(yàn)程序

      1, /****************************************************************************/ /*文件名稱: LEDSEG7.C

      */ /*實(shí)驗(yàn)現(xiàn)象: 數(shù)碼管依次顯示出0、1,2、??

      9、a、b、C、d、E、F

      */ /****************************************************************************/ #define U8 unsigned char unsigned char seg7table[16] = {

      /* 0

      7*/

      0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,/* 8

      A

      B

      C

      D

      E

      F*/

      0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e, };void Delay(int time);/****************************************************************************/ /* 函數(shù)說明: JXARM9-2410 7段構(gòu)共陽數(shù)碼管測試

      */ /* 功能描述: 依次在7段數(shù)碼管上顯示0123456789ABCDEF

      */ /* 返回代碼: 無

      */ /* 參數(shù)說明: 無

      */ /****************************************************************************/ void Test_Seg7(void){

      int i;

      *((U8*)0x20007000)=0x00;/*6個(gè)數(shù)碼管都亮*/ for(;;){

      /*數(shù)碼管從0到F依次將字符顯示出來*/

      for(i=0;i<0x10;i++)

      {

      *((U8*)0x20006000)=seg7table[i];

      Delay(10000);

      }

      /*數(shù)碼管從F到0依次將字符顯示出來*/

      for(i=0x0f;i>0x00;i--)

      {

      *((U8*)0x20006000)=seg7table[i];

      Delay(10000);

      } }

      // TODO } /****************************************************************************/

      /* Function name : 循環(huán)延時(shí)子程序

      */ /* Description : 循環(huán) 'time' 次

      */ /* Return type :void

      */ /* Argument

      : 循環(huán)延時(shí)計(jì)數(shù)器

      */ /****************************************************************************/ void Delay(int time){

      int i;int delayLoopCount=10000;

      for(;time>0;time--);

      for(i=0;i

      2, /****************************************************************************/ /*文件名稱: LEDSEG7.C

      */ /*實(shí)驗(yàn)現(xiàn)象: 數(shù)碼管依次顯示ZHAngg,并能看出輪流顯示

      */ /****************************************************************************/ #define U8 unsigned char unsigned char seg7table[16] = {

      /* Z

      H

      A

      n

      g

      g

      7*/

      0xa4,0x89,0x88,0xc8,0x90,0x90,0x82,0xf8,/* 8

      A

      B

      C

      D

      E

      F*/

      0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,/* H

      I

      N*/

      0x89,0xcf,0x48 };void Delay(int time);/****************************************************************************/ /* 函數(shù)說明: JXARM9-2410 7段構(gòu)共陽數(shù)碼管測試

      */ /* 功能描述: 在六個(gè)數(shù)碼管上分別顯示字母,與姓名有關(guān)

      */ /* 返回代碼: 無

      */ /* 參數(shù)說明: 無

      */ /****************************************************************************/ void Test_Seg7(void){

      int i;

      *((U8*)0x20007000)=0x00;

      for(;;)

      {

      *((U8*)0x20007000)=0x1f;

      *((U8*)0x20006000)=seg7table[0];

      Delay(10000);

      *((U8*)0x20007000)=0x2f;

      *((U8*)0x20006000)=seg7table[1];

      Delay(10000);

      *((U8*)0x20007000)=0x37;

      *((U8*)0x20006000)=seg7table[2];

      Delay(10000);

      *((U8*)0x20007000)=0x3b;

      *((U8*)0x20006000)=seg7table[3];

      Delay(10000);

      *((U8*)0x20007000)=0x3d;

      *((U8*)0x20006000)=seg7table[4];

      Delay(10000);

      *((U8*)0x20007000)=0x3e;

      *((U8*)0x20006000)=seg7table[5];

      Delay(10000);} // TODO } /***************************************************************************/ /* Function name : 循環(huán)延時(shí)子程序

      */ /* Description : 循環(huán) 'time' 次

      */ /* Return type :void

      */ /* Argument

      : 循環(huán)延時(shí)計(jì)數(shù)器

      */ /****************************************************************************/ void Delay(int time){

      int i;int delayLoopCount=10000;

      for(;time>0;time--);

      for(i=0;i

      3, /****************************************************************************/ /*文件名稱: LEDSEG7.C

      */ /*實(shí)驗(yàn)現(xiàn)象: 數(shù)碼管依次顯示出ZHAngg,并看不出輪流顯示

      */ /****************************************************************************/ #define U8 unsigned char unsigned char seg7table[16] = {

      /* Z

      H

      A

      n

      g

      g

      7*/

      0xa4,0x89,0x88,0xc8,0x90,0x90,0x82,0xf8,/* 8

      A

      B

      C

      D

      E

      F*/

      0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,/* H

      I

      N*/

      0x89,0xcf,0x48 };void Delay(int time);/****************************************************************************/ /* 函數(shù)說明: JXARM9-2410 7段構(gòu)共陽數(shù)碼管測試

      */ /* 功能描述: 在六個(gè)數(shù)碼管上分別顯示字母,與姓名有關(guān)

      */ /* 返回代碼: 無

      */ /* 參數(shù)說明: 無

      */ /****************************************************************************/ void Test_Seg7(void){

      int i;

      *((U8*)0x20007000)=0x00;

      for(;;)

      {

      *((U8*)0x20007000)=0x1f;

      *((U8*)0x20006000)=seg7table[0];

      Delay(10000);

      *((U8*)0x20007000)=0x2f;

      *((U8*)0x20006000)=seg7table[1];

      Delay(10000);

      *((U8*)0x20007000)=0x37;

      *((U8*)0x20006000)=seg7table[2];

      Delay(10000);

      *((U8*)0x20007000)=0x3b;

      *((U8*)0x20006000)=seg7table[3];

      Delay(10000);

      *((U8*)0x20007000)=0x3d;

      *((U8*)0x20006000)=seg7table[4];

      Delay(10000);

      *((U8*)0x20007000)=0x3e;

      *((U8*)0x20006000)=seg7table[5];

      Delay(1);} // TODO } /***************************************************************************/ /* Function name : 循環(huán)延時(shí)子程序

      */

      /* Description : 循環(huán) 'time' 次

      */ /* Return type :void

      */ /* Argument

      : 循環(huán)延時(shí)計(jì)數(shù)器

      */ /****************************************************************************/ void Delay(int time){

      int i;int delayLoopCount=10000;

      for(;time>0;time--);

      for(i=0;i

      4, /****************************************************************************/ /*文件名稱: LEDSEG7.C

      */ /*實(shí)驗(yàn)現(xiàn)象: 數(shù)碼管依次顯示出0、1,2、??

      9、a、b、C、d、E、F

      */ /****************************************************************************/ #define U8 unsigned char unsigned char seg7table[16] = {

      /* 0

      7*/

      0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,/* 8

      A

      B

      C

      D

      E

      F*/

      0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e, };void Delay(int time);/****************************************************************************/ /* 函數(shù)說明: JXARM9-2410 7段構(gòu)共陽數(shù)碼管測試

      */ /* 功能描述: 依次在7段數(shù)碼管各自遞增顯示0—9

      */ /* 返回代碼: 無

      */ /* 參數(shù)說明: 無

      */ /****************************************************************************/ void Test_Seg7(void){

      int i;for(;;){

      for(i=0;i<=0x09;i++)

      {

      *((U8*)0x20007000)=0x1f;

      *((U8*)0x20006000)=seg7table[i];

      Delay(10000);

      }

      for(i=0;i<=0x09;i++)

      {

      *((U8*)0x20007000)=0x2f;

      *((U8*)0x20006000)=seg7table[i];

      Delay(10000);

      }

      for(i=0;i<=0x09;i++)

      {

      *((U8*)0x20007000)=0x37;

      *((U8*)0x20006000)=seg7table[i];

      Delay(10000);

      }

      for(i=0;i<=0x09;i++)

      {

      *((U8*)0x20007000)=0x3b;

      *((U8*)0x20006000)=seg7table[i];

      Delay(10000);

      }

      for(i=0;i<=0x09;i++)

      {

      *((U8*)0x20007000)=0x3d;

      *((U8*)0x20006000)=seg7table[i];

      Delay(10000);

      }

      } // TODO } /****************************************************************************/ /* Function name : 循環(huán)延時(shí)子程序

      */ /* Description : 循環(huán) 'time' 次

      */ /* Return type :void

      */ /* Argument

      : 循環(huán)延時(shí)計(jì)數(shù)器

      */ /****************************************************************************/ void Delay(int time){

      int i;int delayLoopCount=10000;

      for(;time>0;time--);

      for(i=0;i

      六、實(shí)驗(yàn)結(jié)果與分析

      實(shí)驗(yàn)一結(jié)果:六個(gè)數(shù)碼管同時(shí)顯示相同的符號(hào),從0-F再由F-0之間的循環(huán)變換。

      分析:在數(shù)碼管掃描控制地址處選中六個(gè)數(shù)碼管,使其同時(shí)亮,在給其數(shù)碼管的數(shù)據(jù)寄存器存入不同符號(hào)對(duì)應(yīng)的數(shù)值,加上相應(yīng)的延遲,就

      可以是輪流變換的循環(huán)的符號(hào)變換。

      實(shí)驗(yàn)二結(jié)果:第一個(gè)數(shù)碼管顯示Z后,第二個(gè)顯示H,接著第三個(gè)顯示A,接著第四個(gè)顯示n,接著第五個(gè)顯示g,接著第六個(gè)顯示g,接著第一個(gè)再顯示Z…..如此循環(huán)。

      分析:設(shè)置控制地址使其單獨(dú)并且循環(huán)顯示,每個(gè)數(shù)碼管的數(shù)據(jù)寄存器送入不同的符號(hào)的數(shù)值,并設(shè)置較大的延遲時(shí)間即可產(chǎn)生該現(xiàn)象。

      實(shí)驗(yàn)三結(jié)果:六個(gè)數(shù)碼管一起顯示“ZHAngg”。

      分析:原理同實(shí)驗(yàn)二,只是將延遲時(shí)間改小到人眼無法分辨的地步即使一起顯示。

      實(shí)驗(yàn)四結(jié)果:第一個(gè)數(shù)碼管顯示0—9之后,第二個(gè)接著顯示0—9,接著第三個(gè),第四個(gè)….分析:設(shè)置循環(huán)使六個(gè)數(shù)碼管循環(huán)單獨(dú)顯示,在每個(gè)數(shù)碼管顯示中再加入循環(huán),使其遞增顯示0—9,設(shè)置較大的延遲,是我們可以看清實(shí)驗(yàn)現(xiàn)象。

      七、實(shí)驗(yàn)總結(jié)與心得體會(huì)

      本次試驗(yàn)需要了解數(shù)碼管的基本工作原理,基于C語言設(shè)計(jì)編程完成實(shí)驗(yàn),實(shí)驗(yàn)的關(guān)鍵在于把握實(shí)現(xiàn)各種現(xiàn)象的本質(zhì)上的差異,在程序上作出修改。通過本次試驗(yàn)對(duì)于實(shí)驗(yàn)的嚴(yán)謹(jǐn)性有了進(jìn)一步的體驗(yàn),稍有不小心實(shí)驗(yàn)結(jié)果就適得其反,以后要更加用心,更加認(rèn)真的做實(shí)驗(yàn)。

      第三篇:單片機(jī)16點(diǎn)陣漢字顯示課程設(shè)計(jì)

      一、前言

      1.1設(shè)計(jì)制作產(chǎn)品的背景、目的及設(shè)計(jì)要求

      本項(xiàng)目為16x16點(diǎn)陣漢字顯示“新年快樂”的設(shè)計(jì),首先將本次實(shí)訓(xùn)的電路圖在仿真軟件上繪制完成,將點(diǎn)陣文件存入ROM,形成漢字編碼,再進(jìn)行相關(guān)轉(zhuǎn)換,以新編碼提取相應(yīng)的點(diǎn)陣漢字顯示。將相應(yīng)編碼代入運(yùn)行程序,進(jìn)行調(diào)試和準(zhǔn)備。

      1.2分工情況、工作計(jì)劃及本人所承擔(dān)工作

      1.周一 1~4 進(jìn)行分組,選題 和軟件的安裝 2.周二 1~4 進(jìn)行電路的設(shè)計(jì)及程序編寫 3.周三 1~4 進(jìn)行電路的設(shè)計(jì)及程序編寫 4.周四 1~4 進(jìn)行說明書的填寫 5.周五 1~4 答辯

      本人在本次課程設(shè)計(jì)中承擔(dān)電路圖的繪制及相關(guān)程序的編寫與調(diào)試。

      1.3本課題的設(shè)計(jì)重點(diǎn)及難點(diǎn)

      本次課程設(shè)計(jì)重點(diǎn)在于單片機(jī)控制系統(tǒng)程序采用單片機(jī)匯編語言進(jìn)行編輯,通過編程控制各顯示點(diǎn)對(duì)應(yīng)LED陽極和陰極端的電平,就可以有效的控制各顯示點(diǎn)的亮滅。而其中的難點(diǎn)就在于運(yùn)行程序的編寫及相關(guān)漢字的點(diǎn)陣數(shù)據(jù),這種顯示字符的點(diǎn)陣數(shù)據(jù)可以自行編寫,也可以標(biāo)準(zhǔn)字庫中提取。

      在進(jìn)行課題設(shè)計(jì)時(shí)需要熟練掌握相關(guān)電路軟件及編程軟件的使用,編寫程序時(shí)需掌握一定的C語言邏輯關(guān)系的運(yùn)用。在電路圖的繪制時(shí)需要清楚的了解各個(gè)電路設(shè)備的功能及用途。

      二、實(shí)訓(xùn)內(nèi)容

      2.1實(shí)訓(xùn)原理

      本設(shè)計(jì)應(yīng)用的掃描方法為水平方向(X方向)掃描。

      每一個(gè)字由16行16列的點(diǎn)陣形成顯示,即每個(gè)字均由256個(gè)點(diǎn)陣來表示,我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素。一般我們使用的16×16的點(diǎn)陣宋體字庫,即所謂的16×16,是每一個(gè)漢字在縱橫各16點(diǎn)的區(qū)域內(nèi)顯示的。漢字庫從該位置起的32字節(jié)信息記錄了該字的字模信息。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內(nèi)的任何圖形。

      上半部分第一列完成之后,繼續(xù)掃描下半部分的第一列,為了接線的方便,我們?nèi)栽O(shè)計(jì)成由上往下的掃描方式,即從A8向A15方向掃描,按照這個(gè)方法,繼續(xù)進(jìn)行下面的掃描,一共掃描32個(gè)8位,可以得出漢字。

      2.2硬件設(shè)計(jì) 2.3軟件設(shè)計(jì)

      #include #define uint unsigned int #define uchar unsigned char code uchar seg[]={ 0x02,0x04,0x22,0x48,0x2A,0x52,0xA6,0x41,0x63,0xFE,0x26,0x40,0x2A,0x50,0x22,0x49,0x00,0x06,0x3F,0xF8,0x22,0x00,0x22,0x00,0x23,0xFF,0x42,0x00,0x02,0x00,0x00,0x00,/*“新”,0*/ 0x00,0x20,0x04,0x20,0x18,0x20,0xE3,0xE0,0x22,0x20,0x22,0x20,0x22,0x20,0x22,0x20,0x3F,0xFF,0x22,0x20,0x22,0x20,0x22,0x20,0x22,0x20,0x20,0x20,0x00,0x20,0x00,0x00,/*“年”,1*/ 0x00,0x80,0x07,0x00,0x00,0x00,0xFF,0xFF,0x08,0x00,0x04,0x81,0x10,0x82,0x10,0x8C,0x10,0xB0,0xFF,0xC0,0x10,0xB0,0x10,0x8C,0x1F,0x82,0x00,0x81,0x00,0x81,0x00,0x00,/*“快”,2*/ 0x00,0x00,0x00,0x04,0x07,0x08,0x39,0x10,0x21,0x60,0x21,0x02,0x21,0x01,0x2F,0xFE,0x41,0x00,0x41,0x00,0xC1,0x40,0x41,0x20,0x01,0x10,0x01,0x0C,0x00,0x00,0x00,0x00,/*“樂”,3*/ };Const uchar sm[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,};void delay(uint n){ uint i;for(i=0;i

      for(j=q;j<32+q;j++)

      { P1=sm[t];

      P0=seg[j];

      j++;

      P2=seg[j];

      delay(50);t--;

      if(t==0)

      t=16;}

      q=q+32;

      if(q==128)

      q=0;} } 三.結(jié)論

      3.1 實(shí)訓(xùn)過程中遇到的問題及解決措施

      在本次實(shí)驗(yàn)中,我組在制作的16x16點(diǎn)陣顯示漢字“新年快樂”的課程設(shè)計(jì)中,首先在使用單片機(jī)仿真軟件找尋相關(guān)設(shè)備時(shí)沒有找到16x16的點(diǎn)陣設(shè)備,繼而用四個(gè)8x8的點(diǎn)陣排列組合予以替代。

      依據(jù)相關(guān)教材及指導(dǎo)教師的參考和建議,我組對(duì)于本次設(shè)計(jì)的電路圖采用了通用模板設(shè)計(jì)。

      此次課程設(shè)計(jì)的運(yùn)行程序是我組在設(shè)計(jì)中的最大難點(diǎn),后經(jīng)多方查資料及參考詢問,我組找到了相應(yīng)漢字在點(diǎn)陣中的排序規(guī)律,順利編寫出代碼。

      3.2 今后的學(xué)習(xí)展望

      經(jīng)過這次的單片機(jī)課程設(shè)計(jì),從產(chǎn)生設(shè)計(jì)想法到實(shí)際操作,到最終的設(shè)計(jì)完成,中間遇到的困難及困難的解決,讓我更進(jìn)一步了解了單片機(jī),讓我不再僅僅局限于書本上。

      本次的設(shè)計(jì)經(jīng)驗(yàn)對(duì)于我們?nèi)蘸蟮膶W(xué)習(xí)工作有非常重要的作用,在遇到困難時(shí)可以不僅僅從書本上找解決方案,還可以自己親自動(dòng)手實(shí)踐來驗(yàn)證相關(guān)問題及找到解決方法。

      這次難得的課程設(shè)計(jì)過程中我鍛煉了自己的思考能力和動(dòng)手能力。通過題目選擇和設(shè)計(jì)電路的過程中,加強(qiáng)了我思考問題的完整性和實(shí)際生活聯(lián)系的可行性。在方案設(shè)計(jì)選擇和芯片的選擇上,培養(yǎng)了我們綜合應(yīng)用單片機(jī)的能力,對(duì)單片機(jī)的各個(gè)管腳的功能也有了進(jìn)一步的認(rèn)識(shí)。還鍛煉我們個(gè)人的查閱技術(shù)資料的能力,動(dòng)手能力,發(fā)現(xiàn)問題,解決問題的能力。并且我們熟練掌握了有關(guān)器件的性能及測試方法。

      四、心得體會(huì)

      本次的設(shè)計(jì)經(jīng)驗(yàn)對(duì)于我們?nèi)蘸蟮膶W(xué)習(xí)工作有非常重要的作用,在遇到困難時(shí)可以不僅僅從書本上找解決方案,還可以自己親自動(dòng)手實(shí)踐來驗(yàn)證相關(guān)問題及找到解決方法。

      單片機(jī)這門課是一科非常重視動(dòng)手實(shí)踐的科目,不能總是看書,但是也不能完全不看書。單片機(jī)并不象傳統(tǒng)的數(shù)字電路或模擬電路那樣比較直觀,原因是除了“硬件”之外還存在一個(gè)“軟件”的因素。正是這個(gè)“軟件”的原因使得許多初學(xué)者怎么也弄不懂單片機(jī)的工作過程,怎么也不明白為什么將幾個(gè)數(shù)送來送去就能讓數(shù)碼管顯示一串字符或控制一個(gè)電機(jī)的變速。對(duì)初學(xué)單片機(jī)的人來說,需要從書中大概了解一下單片機(jī)的各個(gè)功能寄存器,如果看的多了反而容易搞亂,現(xiàn)在市場上大多數(shù)講單片機(jī)的書一開始就講解較復(fù)雜的內(nèi)存、地址、存儲(chǔ)器什么的,更讓初學(xué)者感到不知所云、難以入門。如果按教科書式的學(xué)法,上來就是一大堆指令、名詞,學(xué)了半天還搞不清這些指令起什么作用,能夠產(chǎn)生什么實(shí)際效果,那么也許用不了幾天就會(huì)覺得枯燥乏味而半途而廢。簡單的說,使用單片機(jī)實(shí)際上就是用我們自己編寫的軟件去控制單片機(jī)的各個(gè)功能寄存器。再簡單些,就是控制單片機(jī)哪些引腳的電平什么時(shí)候輸出高電平,什么時(shí)候輸出低電平。由這些高低變化的電平來控制外圍電路,實(shí)現(xiàn)我們需要的各個(gè)功能。

      經(jīng)過這次的單片機(jī)課程設(shè)計(jì),從產(chǎn)生設(shè)計(jì)想法到實(shí)際操作,到最終的設(shè)計(jì)完成,中間遇到的困難及困難的解決,讓我更進(jìn)一步了解了單片機(jī),讓我不再僅僅局限于書本上。

      第四篇:單片機(jī)課程設(shè)計(jì)報(bào)告LCD顯示溫度

      《單片機(jī)原理與應(yīng)用》

      課程設(shè)計(jì)報(bào)告

      題 目:LCD數(shù)字式溫度濕度測量計(jì) 專 業(yè):自動(dòng)化 班 級(jí):A1332 學(xué) 號(hào):10 姓 名:曾志勇 指導(dǎo)老師:查兵

      2016-06-08

      目 錄

      1.設(shè)計(jì)題目、要求及分工..................................1 1.1.設(shè)計(jì)要求.........................................1 1.2.分工.............................................1 2.系統(tǒng)設(shè)計(jì)方案論證與選擇................................1 3.系統(tǒng)硬件電路設(shè)計(jì)......................................1 3.1.單片機(jī)的選擇......................................1 3.2.溫度傳感器電路的設(shè)計(jì)..............................2 3.3.LCD1602顯示設(shè)計(jì)..................................3 4.系統(tǒng)軟件設(shè)計(jì)..........................................4 4.1.主程序...........................................4 4.2.讀出溫度子程序....................................6 5.系統(tǒng)仿真調(diào)試結(jié)果記錄及分析...........................11 6.總結(jié).................................................13 參考文獻(xiàn)................................................14

      設(shè)計(jì)題目、要求及分工

      1.1.設(shè)計(jì)要求

      (1)熟悉掌握單片機(jī)的中斷,定時(shí)器及各并行口的應(yīng)用;(2)熟悉掌握單片機(jī)溫度濕度的測量方法;(3)利用溫度傳感器及單片機(jī)完成對(duì)溫度的檢測;(4)掌握將檢測的溫度信號(hào)轉(zhuǎn)換為數(shù)碼管顯示的數(shù)字信號(hào);

      (5)設(shè)計(jì)一個(gè)簡單數(shù)字溫度計(jì),能夠測量通常環(huán)境下的溫度,能夠?qū)崿F(xiàn)零下溫度的測量,能夠測量小數(shù),精度為0.01度。

      1.2.分工

      經(jīng)過我和隊(duì)友的商討,為了能最大發(fā)揮各自的長處。我主要負(fù)責(zé)程序的編寫與單片機(jī)的調(diào)試。他主要負(fù)責(zé)一些相關(guān)資料文獻(xiàn)的查找與課程設(shè)計(jì)報(bào)告。

      1.系統(tǒng)設(shè)計(jì)方案論證與選擇

      在日常生活和生產(chǎn)中,我們經(jīng)常要測量環(huán)境的溫度濕度,傳統(tǒng)的測量方式采用水銀溫度計(jì)和干濕球濕度計(jì)查算法,存在著誤差大,操作使用不便等問題,采用工業(yè)級(jí)測量儀表價(jià)格昂貴。采用AT89C51和溫度傳感器等構(gòu)成的LCD數(shù)字式溫度濕度測量計(jì)精度高且價(jià)格便宜。

      由于本設(shè)計(jì)是測溫電路,可以使用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行A/D轉(zhuǎn)換,將數(shù)據(jù)傳入80C51單片機(jī)中,單片機(jī)處理后,通過LED顯示出當(dāng)前實(shí)測溫度。

      2.系統(tǒng)硬件電路設(shè)計(jì)

      2.1.單片機(jī)的選擇

      單片80C51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)。

      本次設(shè)計(jì)需要注意的幾個(gè)端口: P0口(39—32):是一組8位漏極開路行雙向I/O口,也既地址/數(shù)據(jù)總線復(fù)用口??勺鳛檩敵隹谑褂脮r(shí),每位可吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯電路,對(duì)端口寫“1”可作為高阻抗輸入輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時(shí),PO口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求接上拉電阻。P3口(10—17):是一組帶有內(nèi)部上拉電阻的8位雙向I/O口,P1的輸入緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸出端口。作輸出端口時(shí),被外部拉低的P3口將用上拉電阻輸出電流。

      2.2.溫度傳感器電路的設(shè)計(jì)

      DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。

      64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器TH和TL,可通過軟件寫入戶報(bào)警上下限。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖2.3所示。頭2個(gè)字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義:低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率S18B20溫度轉(zhuǎn)換的時(shí)間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。溫度傳感器18B20匯編程序,采用器件默認(rèn)的12位轉(zhuǎn)化,最大轉(zhuǎn)化時(shí)間750微秒,可以將檢測到的溫度直接顯示到80C51的兩個(gè)數(shù)碼管上。

      高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。

      當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單 片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB式表示。

      當(dāng)符號(hào)位S=0時(shí),表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。

      DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令做出響應(yīng)。因此,可用多只DS18B20同時(shí)測量溫度并進(jìn)行報(bào)警搜索。

      在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。

      另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。

      圖 2-1 溫度傳感器電路

      2.3.LCD1602顯示設(shè)計(jì)

      圖 2-2 LCD顯示電路圖

      LCD1602顯示流程:

      圖3-3 流程圖

      3.系統(tǒng)軟件設(shè)計(jì)

      3.1.主程序

      主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測量溫度值。溫度測量每1s進(jìn)行一次。主程序流程圖如圖4.1所示:

      #include #include“l(fā)cd.h” #include“temp.h” void LcdDisplay(int);void main(){ LcdInit();

      //初始化LCD1602

      //寫地址 80表示初始地址 LcdWriteCom(0x88);LcdWriteData('C');while(1){ LcdDisplay(Ds18b20ReadTemp());Delay1ms(1000);//1s鐘刷一次 // } }

      /* 函數(shù)名 : LcdDisplay()* 函數(shù)功能

      : LCD顯示讀取到溫度/ void LcdDisplay(int temp)//lcd顯示

      { unsigned char datas[] = {0, 0, 0, 0, 0};//定義數(shù)組

      float tp;if(temp< 0)

      //當(dāng)溫度值為負(fù)數(shù)

      {

      LcdWriteCom(0x80);

      //寫地址 80表示初始地址 LcdWriteData('-');//顯示負(fù)

      temp=temp-1;

      temp=~temp;

      tp=temp;

      temp=tp*0.0625*100+0.5;} else {

      LcdWriteCom(0x80);

      LcdWriteData('+');

      tp=temp;

      temp=tp*0.0625*100+0.5;

      } datas[0] = temp / 10000;datas[1] = temp % 10000 / 1000;datas[2] = temp % 1000 / 100;datas[3] = temp % 100 / 10;datas[4] = temp % 10;LcdWriteCom(0x82);

      //寫地址 80表示初始地址

      LcdWriteData('0'+datas[0]);//百位 LcdWriteCom(0x83);

      //寫地址 80表示初始地址

      LcdWriteData('0'+datas[1]);//十位 LcdWriteCom(0x84);

      //寫地址 80表示初始地址

      LcdWriteData('0'+datas[2]);//個(gè)位 LcdWriteCom(0x85);

      //寫地址 80表示初始地址 //顯示 ‘.’

      //寫地址 80表示初始地址 LcdWriteData('.');LcdWriteCom(0x86);

      LcdWriteData('0'+datas[3]);//顯示小數(shù)點(diǎn) LcdWriteCom(0x87);

      //寫地址 80表示初始地址

      } LcdWriteData('0'+datas[4]);//顯示小數(shù)點(diǎn)

      圖 3-1主程序流程圖

      3.2.讀出溫度子程序

      讀出溫度子程序的主要功能是讀出RAM中的9字節(jié)。在讀出時(shí)必須進(jìn)行CRC 校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不能進(jìn)行溫度數(shù)據(jù)的改寫。讀出溫度子程序流程圖如下圖所示:

      #include“temp.h” void Delay1ms(uint y){ uint x;

      } uchar Ds18b20Init(){

      uchar i;DSPORT = 0;i = 70;

      //將總線拉低480us~960us for(;y>0;y--){ for(x=110;x>0;x--);} while(i--);//延時(shí)642us DSPORT = 1;

      //然后拉高總線,如果DS18B20做出反應(yīng)會(huì)將在15us~60us后總線拉低

      } void Ds18b20WriteByte(uchar dat)i = 0;while(DSPORT)//等待DS18B20拉低總線 {

      } return 1;//初始化成功 i++;if(i>5)//等待>5MS { } Delay1ms(1);return 0;//初始化失敗 { uint i, j;for(j=0;j<8;j++)

      {

      DSPORT = 0;i++;DSPORT = dat & 0x01;//然后寫入一個(gè)數(shù)據(jù),從最低位開始 i=6;while(i--);//延時(shí)68us,持續(xù)時(shí)間最少60us DSPORT = 1;

      //然后釋放總線,至少1us給總線恢復(fù)時(shí)間才能接 //每寫入一位數(shù)據(jù)之前先把總線拉低1us 著寫入第二個(gè)數(shù)值

      } uchar Ds18b20ReadByte(){

      uchar byte, bi;uint i, j;for(j=8;j>0;j--){

      DSPORT = 0;//先將總線拉低1us i++;DSPORT = 1;//然后釋放總線 i++;i++;//延時(shí)6us等待數(shù)據(jù)穩(wěn)定

      bi = DSPORT;//讀取數(shù)據(jù),從最低位開始讀取

      /*將byte左移一位,然后與上右移7位后的bi,注意移動(dòng)之后移掉 } dat >>= 1;那位補(bǔ)0。*/ byte =(byte >> 1)|(bi << 7);

      } i = 4;//讀取完之后等待48us再接著讀取下一個(gè)數(shù)

      while(i--);

      }

      return byte;void Ds18b20ChangTemp(){

      Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc);

      //跳過ROM操作命令

      Ds18b20WriteByte(0x44);//溫度轉(zhuǎn)換命令

      //等待轉(zhuǎn)換成功,而如果你是一直刷著的話,就不// Delay1ms(100);用這個(gè)延時(shí)了 } void Ds18b20ReadTempCom(){ Ds18b20Init();

      } int Ds18b20ReadTemp(){ int temp = 0;

      命令

      tml = Ds18b20ReadByte();tmh = Ds18b20ReadByte();temp = tmh;temp <<= 8;Delay1ms(1);Ds18b20WriteByte(0xcc);//跳過ROM操作命令 Ds18b20WriteByte(0xbe);//發(fā)送讀取溫度命令

      uchar tmh, tml;Ds18b20ChangTemp();Ds18b20ReadTempCom();

      //先寫入轉(zhuǎn)換命令

      //然后等待轉(zhuǎn)換完后發(fā)送讀取溫度

      //讀取溫度值共16位,先讀低字節(jié) //再讀高字節(jié)

      } temp |= tml;return temp;讀出溫度子程序 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié)。在讀出時(shí)須進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。得出溫度子程序流程圖如下圖所示。

      圖 3-2

      溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令。當(dāng)采用12位分辨率時(shí),轉(zhuǎn)換時(shí)間約為750ms。在本程序設(shè)計(jì)中,采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如下圖所示。

      圖 3-2

      4.系統(tǒng)仿真調(diào)試結(jié)果記錄及分析

      硬件調(diào)試比較簡單,首先檢查電感的焊接是否正確,然后可用萬用表測試或通電檢測。軟件調(diào)試可以先編寫顯示程序并進(jìn)行硬件的正確性檢驗(yàn),然后分別進(jìn)行主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序和現(xiàn)實(shí)數(shù)據(jù)刷新子程序等的編程及調(diào)試 由于DS18B20與單片機(jī)采用串行數(shù)據(jù)傳送,因此,對(duì)DS18B20進(jìn)行讀/寫編程時(shí)必須嚴(yán)格地保證讀/寫時(shí)序;否則將無法讀取測量結(jié)果。

      電路Isis仿真測試

      燒寫程序至單片機(jī):

      液晶顯示室溫為+28.06度 用手觸摸DS18B20,發(fā)現(xiàn)溫度上升為+32.75度,證明溫度傳感正常工作。

      5.總結(jié)

      這次課程設(shè)計(jì),主要是以STC89C51單片機(jī)為核心的,對(duì)溫度的檢測與顯示進(jìn)行了簡單的設(shè)計(jì)與闡述。因沒有濕度傳感器模塊,所以未進(jìn)行濕度檢測。本次課程設(shè)計(jì)可以說是軟硬結(jié)合,又以硬件為主。當(dāng)今科技發(fā)展迅速,單片機(jī)開發(fā)有著光明的前景。由于單片機(jī)經(jīng)濟(jì)實(shí)用、開發(fā)簡便等特點(diǎn)依然在工業(yè)控制、家電等領(lǐng)域占據(jù)了廣泛的市場。所以我選擇這樣的設(shè)計(jì)課題,并且能通過此次設(shè)計(jì)來提高自己軟件編制和硬件電路設(shè)計(jì)的能力。在我完成這次課程設(shè)計(jì)的過程中,當(dāng)看到自己將專業(yè)知識(shí)用于解決實(shí)際的問題時(shí),那份成就感和喜悅感是難以形容的。在這次實(shí)際的編程以及調(diào)試程序過程中,我發(fā)現(xiàn)自己學(xué)很多課本以外的東西。光靠自己在書本上所學(xué)過的這點(diǎn)知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,真正地認(rèn)識(shí)到了工作就是學(xué)習(xí)的道理。尤其是對(duì)于編程來說,需要硬件的功底,也需要軟件的能力。當(dāng)程序有一點(diǎn)點(diǎn)錯(cuò)誤時(shí),將使整個(gè)程序無效,需要自己靜下心來發(fā)現(xiàn)錯(cuò)誤,改正錯(cuò)誤,一次又一次得進(jìn)行調(diào)試,鍛煉了沉著踏實(shí)的心態(tài)。

      通過這次對(duì)數(shù)字溫度計(jì)的設(shè)計(jì)與制作,讓我們了解了設(shè)計(jì)電路的程序,也讓我們了解了關(guān)于數(shù)字溫度計(jì)的原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路總要先用仿真,仿真成功之后才實(shí)際接線的。

      但是最后的成品卻不一定與仿真時(shí)完全一樣,因?yàn)?,在?shí)際接線中有著各種各樣的條件制約著。并且,在仿真中無法成功的電路接法,在實(shí)際中因?yàn)樾酒旧淼奶匦远軌虺晒?。所以,在設(shè)計(jì)時(shí)應(yīng)考慮兩者的差異,從中找出最適合的設(shè)計(jì)方法。

      通過這次學(xué)習(xí),讓我們對(duì)各種電路都有了大概的了解,所以說,坐而言不如立而行,對(duì)于這些電路還是應(yīng)該自己動(dòng)手實(shí)際操作才會(huì)有深刻理解。從這次的課程設(shè)計(jì)中,我真正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)應(yīng)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常寫和讀的過程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。這次課程設(shè)計(jì)對(duì)我來說是一次比較全面的、富有創(chuàng)造性和探索性的鍛煉,令我深有感觸,對(duì)于我今后的學(xué)習(xí)、工作和生活都將是受益非淺。

      參考文獻(xiàn)

      (1)江世明.單片機(jī)原理與應(yīng)用.上海交通大學(xué)出版社.2013;(2)朱清慧.電子線路設(shè)計(jì)、制版與仿真.清華大學(xué)出版社.2011.6;

      (3)黃同成.程序設(shè)計(jì)基礎(chǔ)與教程(C語言).湖南人民出版社.2011.12;

      (4)王東峰等.單片機(jī)C語言應(yīng)用100例[M].北京電子工業(yè)出版社,2009;

      (5)陳海宴.51單片機(jī)原理及應(yīng)用[M].北京航空航天大學(xué)出版社.2010;

      (6)胡漢才.單片機(jī)原理及接口技術(shù)[M].北京清華大學(xué)出版社.1996;

      (7)高稚允,高岳.光電檢測技術(shù)[M].北京國防工業(yè)出版社.1983;

      第五篇:實(shí)驗(yàn)四 單片機(jī)鍵盤輸入以及數(shù)碼管顯示編程

      仲愷農(nóng)業(yè)工程學(xué)院實(shí)驗(yàn)報(bào)告紙

      信息學(xué)院(院、系)專業(yè)班組單片機(jī)原理及接口技術(shù)課實(shí)驗(yàn)四單片機(jī)鍵盤輸入以及數(shù)碼管顯示編程

      一、實(shí)驗(yàn)?zāi)康?、掌握單片機(jī)鍵盤以及數(shù)碼管顯示的工作原理;

      2、掌握單片機(jī)鍵盤以及數(shù)碼管顯示的編程方法。

      二、實(shí)驗(yàn)內(nèi)容

      1、學(xué)習(xí)單片機(jī)鍵盤檢測、消抖以及譯碼等;

      2、學(xué)習(xí)單片機(jī)數(shù)碼管靜態(tài)以及動(dòng)態(tài)的顯示方式;

      3、利用單片機(jī)鍵盤以及數(shù)碼管編寫程序驅(qū)動(dòng)開發(fā)板上的蜂鳴器以及數(shù)碼管按一定規(guī)律工作。

      三、實(shí)驗(yàn)設(shè)備

      1、STC單片機(jī)開發(fā)板;

      2、PC機(jī)以及串口線。

      四、實(shí)驗(yàn)步驟

      參考實(shí)驗(yàn)指導(dǎo)書。

      五、實(shí)驗(yàn)總結(jié)

      下載單片機(jī)數(shù)碼管顯示課程設(shè)計(jì)word格式文檔
      下載單片機(jī)數(shù)碼管顯示課程設(shè)計(jì).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        七段數(shù)碼管顯示十進(jìn)制數(shù)字 (15)

        實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)題目 設(shè)有10個(gè)開關(guān),編號(hào)分別為0,1,……,9。 設(shè)計(jì)電路實(shí)現(xiàn)某開關(guān)閉合時(shí)對(duì)應(yīng)顯示相應(yīng)的十進(jìn)制數(shù)字。要求:(1)寫出設(shè)計(jì)說明,(2)用 Proteus或Multisim仿真。 實(shí)驗(yàn)方案 首......

        《一位LED數(shù)碼管顯示0-9》大全

        成都理工大學(xué)工程技術(shù)學(xué)院 單片微機(jī)原理及應(yīng)用課程設(shè)計(jì) 《一位LED數(shù)碼管顯示0-9》 學(xué)生姓名:學(xué)號(hào):專業(yè):班級(jí):指導(dǎo)教師:完成日期: 目 錄 一 實(shí)驗(yàn)?zāi)康呐c任務(wù)……………………………......

        單片機(jī)課程設(shè)計(jì)

        設(shè)計(jì)題目: 單片機(jī)課程設(shè)計(jì) 學(xué)生姓名:學(xué)院: 電氣與信息工程學(xué)院班級(jí): 電子111班 指導(dǎo)教師:日 期: 2014年9月20日 一、課程設(shè)計(jì)目的: 了解電子元器件的功能與原理,掌握單片機(jī)的結(jié)構(gòu)......

        單片機(jī)課程設(shè)計(jì)

        基于單片機(jī)的火災(zāi)智能報(bào)警控制系統(tǒng)的設(shè)計(jì)前言在各種災(zāi)害中,火災(zāi)是最經(jīng)常、最普通地威脅公眾安全和社會(huì)發(fā)展的災(zāi)害之一。人類能夠?qū)疬M(jìn)行利用和控制,是文明進(jìn)步的一個(gè)重要標(biāo)志......

        單片機(jī)課程設(shè)計(jì)

        單片機(jī)課程設(shè)計(jì) 課題: 簡易電子琴設(shè)計(jì) 學(xué)院:電氣與信息工程學(xué)院 專業(yè):電子信息工程 姓名:李琳琳 學(xué)號(hào):093411106 指導(dǎo)老師:田巍 河南城建學(xué)院 2014年01 月01 日......

        單片機(jī)課程設(shè)計(jì)

        單片機(jī)課程設(shè)計(jì) --------- 機(jī)電汽車工程學(xué)院 同組成員:(機(jī)091-1) 姓名(學(xué)號(hào)):......

        單片機(jī)課程設(shè)計(jì)

        單片機(jī)課程設(shè)計(jì)_報(bào)警器 報(bào)警器 ORG 0010H START:MOV DPTR,#TAB CLR P3.1 SETB P1 MOV A,P1 CPL A ANL A,#0F0H SWAP A MOV R0,A LCALL DISP1 MOV A,P1 CPL A ANL A,#0FH MOV......

        單片機(jī)課程設(shè)計(jì)

        單片機(jī)課程設(shè)計(jì)報(bào)告 專業(yè):電氣工程及其自動(dòng)化 班級(jí):電0901-4班 姓名:代紅新 學(xué)號(hào):20092444 指導(dǎo)老師:石彥輝 電氣與電子工程學(xué)院 2012/6/22 一、 設(shè)計(jì)題目:電子時(shí)鐘 二、 設(shè)計(jì)要求......