久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15112|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

51單片機紅外發(fā)射與接收的源程序+仿真(遙控控制lcd1602顯示)課程設(shè)計報告

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:348903 發(fā)表于 2018-6-10 18:22 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于89s52單片機21鍵紅外遙控控制lcd1602顯示,dsn電路圖,hex文件,c文件齊全,自己的課程設(shè)計,有需要的小伙伴可以看看


單片機原理及應(yīng)用課程設(shè)計報告
專業(yè):       物聯(lián)網(wǎng)工程                                                                                                              
班級:
學(xué)號:
姓名:
計算機與信息工程學(xué)院

目錄

一、 設(shè)計目的

1.1              課程名稱及學(xué)后感

1.2              編程環(huán)境和仿真環(huán)境

二、 設(shè)計要求

2.1              硬件要求

2.2              軟件要求…              4

三、 設(shè)計內(nèi)容

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

3.1.1              at89s52              5

3.1.2              晶振電路              5

3.2              hs0038紅外接收頭與21鍵紅外遙控器              6

3.2.1              hs0038紅外接收頭              6

3.2.2              21鍵紅外遙控器              6

3.3              顯示電路              7

3.3.1              lcd1602              7

四、 結(jié)論、總結(jié)與建議              8

4.1              設(shè)計結(jié)論(流程圖,仿真圖,實物圖)              9

4.2              總結(jié)與建議              9

五、主要參考文獻              10

六、 附錄              10

       源代碼
                 分工合作


基于51單片機的紅外控制LCD1602顯示系統(tǒng)
摘要:該設(shè)計由硬件和軟件共同組成。首先是硬件部分,該系統(tǒng)的最終實現(xiàn)選用的單片處理器(AT89S52)、21鍵遙控器、LCD1602 顯示、單片機的串行接口電路。因此應(yīng)充分了解單片機,包括存儲空間,并行口,串行口,串行通信,定時器等,21鍵遙控器鍵值編碼和LCD1602 的顯示,本系統(tǒng)是以單片機為控制器的核心,本系統(tǒng)主要由紅外接收電路、接收紅外信號處理電路、單片機系統(tǒng)及控制電路組成。工作時,可以將21鍵遙控器上按鍵出來的鍵值編碼等信息送到單片機,單片機根據(jù)這些信息通過控制電路把要顯示的內(nèi)容由LCD1602顯示屏顯示出21鍵每個鍵對應(yīng)的內(nèi)容,從而實現(xiàn)紅外控制LCD1602顯示。

一、 設(shè)計目的




    • 課程名稱及學(xué)后感
課程名稱:《單片機原理及應(yīng)用——c51編程+proteus仿真》 張毅剛 著,   學(xué)后感:熟悉單片機的人都知道,要學(xué)好單片機可不是一件容易的事,倒不是因為單片機很難學(xué),而是很難找到一本專為單片機入門者而編寫的教材。翻一下身邊的單片機教材,都好像是為已經(jīng)懂單片機的人而寫的,一般先介紹單片機的硬件結(jié)構(gòu)和指令系統(tǒng),再是系統(tǒng)擴展和外圍器件,順便講一些應(yīng)用設(shè)計(隨便說一下,很多書中的電路設(shè)計已經(jīng)過時,并且有些程序還是錯誤的)。如果按照此種學(xué)習(xí)方法,想進行產(chǎn)品開發(fā),就必須先把所有的知識全部掌握了才可以進行實際應(yīng)用。學(xué)習(xí)使用單片機只能靠循序漸進的積累,下面就本人學(xué)習(xí)單片機的過程和經(jīng)驗做簡要介紹。



    • 編程環(huán)境和仿真環(huán)境
編程環(huán)境:keil 4

仿真環(huán)境:proteus 8

二、 設(shè)計要求


    • 硬件要求
              根據(jù)仿真圖搭建硬件電路,硬件主要由AT89S52單片機最小系統(tǒng)一個,LCD1602顯示屏一個,21鍵紅外遙控器一個,HS0038紅外接收頭一個,470歐姆電阻一個,電源線一根,母對母杜邦線若干,排阻一個,11.0592晶振一個,貼片電容兩個,47μ電容一個。根據(jù)proteus仿真上能夠?qū)崿F(xiàn)的電路搭建硬件電路



    • 軟件要求
在keil4中編寫代碼,根據(jù)紅外的編結(jié)碼,和LCD1602顯示屏初始化查忙,寫命令,寫數(shù)據(jù),來編寫代碼,了解紅外編結(jié)碼是編寫代碼重要的過程。

三、 設(shè)計內(nèi)容


    • 最小系統(tǒng)電路
      • AT89S52芯片


                       圖一、AT89S52芯片
AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編AT89S52-24PU程Flash存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)AT89S52引腳圖 DIP封裝器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。






      • 晶振電路
 晶振是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡(luò)。電工學(xué)上這個網(wǎng)絡(luò)有兩個諧振點,以頻率的高低分,其中較低的頻率是串聯(lián)諧振;較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個頻率的距離相當?shù)慕咏谶@個極窄的頻率范圍內(nèi),晶振等效為一個電感,所以只要晶振的兩端并聯(lián)上合適的電容它就會組成并聯(lián)諧振電路。這個并聯(lián)諧振電路加到一個負反饋電路中就可以構(gòu)成正弦波振蕩電路,由于晶振等效為電感的頻率范圍很窄,所以即使其他元件的參數(shù)變化很大,這個振蕩器的頻率也不會有很大的變化


      圖二、晶振電路



    • hs0038紅外接收頭與21鍵紅外遙控器
      • hs0038紅外接收頭
紅外接收電路一體化的紅外接收裝置將遙控信號的接收、放大、檢波、整形集于一身,并且輸出可以讓單片機識別的TTL 信號,這樣大大簡化了接收電路的復(fù)雜程度和電路的設(shè)計工作,方便使用。在本系統(tǒng)中我們采用紅外一體化接收頭HS0038,HS0038 黑色環(huán)氧樹脂封裝,不受日光、熒光燈等光源干擾,內(nèi)附磁屏蔽,功耗低,靈敏度高。在用小功率發(fā)射管發(fā)射信號情況下,其接收距離可達35m。它能與TTL、COMS 電路兼容。HS0038 為直立側(cè)面收光型。它接收紅外信號頻率為38 kHz,周期約26 μs,同時能對信號進行放大、檢波、整形,得到TTL 電平的編碼信號。三個管腳分別是地、+5 V 電源、解調(diào)信號輸出端。 紅外一體化接收頭的測試可以利用圖4 所示的電路進行,在HS0038 的電源端與信號輸出端之間接上一只二極管及一只發(fā)光二極管后,再配上規(guī)定的工作電源(為+5V),當手拿遙

控器對著接收頭按任意鍵時,發(fā)光二極管會閃爍,說明紅外接收頭和遙控器工作都正常;如果發(fā)光二極管不閃爍發(fā)光,說明紅外接收頭和遙控器至少有一個損壞。


             圖三、hs0038實物與原件介紹圖






      • 21鍵紅外遙控器

圖四、左邊為遙控器的編結(jié)碼,右邊為遙控器的按鍵




    • 顯示電路
              主要功能就是顯示紅外遙控傳給單片機的數(shù)據(jù),也可以算作紅外對單片機的控制






      • Lcd1602
              1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之
間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母"A"的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母"A"。

圖五、lcd1602proteus圖和實物圖

圖六、lcd1602指令碼

四、 結(jié)論、總結(jié)與建議


    • 設(shè)計結(jié)論
仿真圖結(jié)果:


圖七、protues仿真效果

實物圖結(jié)果:
               
                            圖八、實物效果圖

                  
                            圖八、實物電路搭建圖
流程圖:




    • 總結(jié)與建議
              此次試驗的關(guān)鍵是鍵盤的編結(jié)碼,與對紅外信號發(fā)射原理的理解,接收裝置對紅外信號發(fā)射脈沖次數(shù)的記錄是關(guān)鍵。發(fā)射管的頻率一般為38kHz。通過這次課設(shè)實驗,讓我懂得的實驗要踏實,一步一個腳印的弄,不管遇到什么問題都不能親言放棄,這樣你必定會成功,還會在失敗的路上學(xué)習(xí)到好多好多經(jīng)驗,這是一筆寶貴的財富

五、主要參考文獻

[1]唐正. Proteus在單片機教學(xué)中的應(yīng)用[D].華中科技大學(xué),2008.(參考文獻字體字號要求,中文:宋體;英文與數(shù)字:Times New Roman,五號)
[2]刁宇清. 基于PROTEUS的單片機仿真實驗系統(tǒng)研究及應(yīng)用[D].西安工業(yè)大學(xué),2011
[3]趙月靜,陳繼榮,張永弟. 單片機原理及應(yīng)用課程創(chuàng)新實踐教學(xué)改革[J]. 實驗技術(shù)與管理,2013,01:176-179.
[4]周靈彬,張靖武. PROTEUS的單片機教學(xué)與應(yīng)用仿真[J]. 單片機與嵌入式系統(tǒng)應(yīng)用,2008,01:76-79.

六、 附錄

源代碼
  1. #include<reg52.h>    //包含頭文件,一般情況不需要改動
  2. intrins.h>
  3. sbit IR=P3^2;  //紅外接口標志
  4. sbit LCD_RS=P1^0;
  5. sbit LCD_RW=P1^1;
  6. sbit LCD_EN=P2^5;

  7. #define DataPort P0 //定義數(shù)據(jù)端口 程序中遇到DataPort 則用P0 替換
  8. Unsigned              char                            code dofly_DuanMa[10]={0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39};// 顯示段碼值0~9
  9. unsigned char  irtime;//紅外用全局變量

  10. bit irpro_ok,irok;
  11. unsigned char IRcord[4];
  12. unsigned char irdata[33];

  13. void Ir_work(void);
  14. void Ircordpro(void);

  15. void delay(unsigned char t) {
  16.     unsigned char i;
  17.     while(t--)
  18.         for(i = 200; i > 0; i--);
  19. }
  20. void LCD_write_instruction(unsigned char LCD_instruction) { //寫指令到LCD
  21.     LCD_RS = 0;
  22.     LCD_RW = 0;
  23.     DataPort = LCD_instruction;
  24.     LCD_EN = 1;
  25.     _nop_();
  26.     LCD_EN = 0;
  27.     delay(1);
  28. }

  29. void LCD_write_data(unsigned char LCD_data) {         //輸出一個字節(jié)數(shù)據(jù)到LCD
  30.     LCD_RS = 1;
  31.     LCD_RW = 0;
  32.     DataPort = LCD_data;
  33.     LCD_EN = 1;
  34.     _nop_();
  35.     LCD_EN = 0;
  36.     delay(1);
  37. }

  38. void LCD_set_position(unsigned char x) {              //LCD光標定位到x處
  39.     LCD_write_instruction(0x80|x);
  40. }

  41. void LCD_printc(unsigned char lcd_data) {             //輸出一個字符到LCD
  42.     LCD_write_data(lcd_data);
  43. }
  44. void LCD_prints(unsigned char *lcd_string) {           //輸出一個字符串到 LCD
  45.     unsigned char i = 0;
  46.     while(lcd_string[i] != 0x00) {
  47.         LCD_write_data(lcd_string[i]);
  48.         i++;
  49.     }
  50. }

  51. void LCD_initial(void) {
  52.     LCD_RW = 0;                           //初始化 LCD
  53.     LCD_write_instruction(0x38);
  54.     LCD_write_instruction(0x0c);
  55.     LCD_write_instruction(0x06);
  56.     LCD_write_instruction(0x01);
  57. }

  58. void tim0_isr (void) interrupt 1 using 1
  59. {
  60.   irtime++;  //用于計數(shù)2個下降沿之間的時間
  61. }

  62. void EX0_ISR (void) interrupt 0 //外部中斷0服務(wù)函數(shù)
  63. {
  64.   static unsigned char  i;             //接收紅外信號處理
  65.   static bit startflag;                //是否開始處理標志位

  66. if(startflag)                        
  67.    {
  68.     if(irtime<63&&irtime>=33)//引導(dǎo)碼 TC9012的頭碼,9ms+4.5ms
  69.                         i=0;
  70.                                 irdata[i]=irtime;//存儲每個電平的持續(xù)時間,用于以后判斷是0還是1
  71.                                irtime=0;
  72.                                 i++;
  73.                                              if(i==33)
  74.                                                 {
  75.                                                           irok=1;
  76.                                                         i=0;
  77.                                                           }
  78.           }
  79.                 else
  80.                             {
  81.                             irtime=0;
  82.                             startflag=1;
  83.                             }

  84. }
  85. void TIM0init(void)//定時器0初始化
  86. {

  87.   TMOD=0x02;//定時器0工作方式2,TH0是重裝值,TL0是初值
  88.   TH0=0x00; //重載值
  89.   TL0=0x00; //初始化值
  90.   ET0=1;    //開中斷
  91.   TR0=1;   
  92. }
  93. void EX0init(void)
  94. {
  95. IT0 = 1;   //指定外部中斷0下降沿觸發(fā),INT0 (P3.2)
  96. EX0 = 1;   //使能外部中斷
  97. EA = 1;    //開總中斷
  98. }

  99. void Ir_work(void)//紅外鍵值散轉(zhuǎn)程序
  100. {
  101.        switch(IRcord[2])//判斷第三個數(shù)碼值
  102.                        {
  103.                                           case 0x0C:
  104.                                                                                     LCD_write_instruction(0x01);
  105.                                                                           LCD_set_position(0x00);
  106.                                                                 LCD_prints(" NOW:    On");
  107.                                                                           LCD_set_position(0x40); //LCD換行顯示
  108.                                                                 LCD_prints("Number:  ");
  109.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  110.                                                       LCD_printc('0');
  111.                                                          LCD_set_position(0x49); //LCD換行顯示
  112.                                                       LCD_printc(dofly_DuanMa[1]);
  113.                                                                                     break;//1 顯示相應(yīng)的按鍵值
  114.                                           case 0x18:
  115.                                                                                     LCD_write_instruction(0x01);
  116.                                                                                     LCD_set_position(0x00);
  117.                                                                 LCD_prints(" NOW:    On");
  118.                                                                           LCD_set_position(0x40); //LCD換行顯示
  119.                                                                 LCD_prints("Number:  ");
  120.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  121.                                                       LCD_printc('0');
  122.                                                          LCD_set_position(0xC9); //LCD換行顯示
  123.                                                       LCD_printc(dofly_DuanMa[2]);break;//2
  124.                                           case 0x5E:
  125.                                                                                     LCD_write_instruction(0x01);
  126.                                                                                     LCD_set_position(0x00);
  127.                                                                 LCD_prints(" NOW:    On");
  128.                                                                           LCD_set_position(0x40); //LCD換行顯示
  129.                                                                 LCD_prints("Number:  ");
  130.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  131.                                                       LCD_printc('0');
  132.                                             LCD_set_position(0xC9); //LCD換行顯示
  133.                                                       LCD_printc(dofly_DuanMa[3]);break;//3
  134.                                           case 0x08:
  135.                                                                                     LCD_write_instruction(0x01);
  136.                                                                                     LCD_set_position(0x00);
  137.                                                                 LCD_prints(" NOW:    On");
  138.                                                                           LCD_set_position(0x40); //LCD換行顯示
  139.                                                                 LCD_prints("Number:  ");
  140.                                                                 LCD_set_position(0xC8); //LCD換行顯示
  141.                                                       LCD_printc('0');
  142.                                             LCD_set_position(0xC9); //LCD換行顯示
  143.                                                       LCD_printc(dofly_DuanMa[4]);break;//4
  144.                                           case 0x1C:
  145.                                                                                     LCD_write_instruction(0x01);
  146.                                                                                     LCD_set_position(0x00);
  147.                                                                 LCD_prints(" NOW:    On");
  148.                                                                           LCD_set_position(0x40); //LCD換行顯示
  149.                                                                 LCD_prints("Number:  ");
  150.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  151.                                                       LCD_printc('0');
  152.                                             LCD_set_position(0xC9); //LCD換行顯示
  153.                                                       LCD_printc(dofly_DuanMa[5]);break;//5
  154.                                           case 0x5A:
  155.                                                                                     LCD_write_instruction(0x01);
  156.                                                                                     LCD_set_position(0x00);
  157.                                                                 LCD_prints(" NOW:    On");
  158.                                                                           LCD_set_position(0x40); //LCD換行顯示
  159.                                                                 LCD_prints("Number:  ");
  160.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  161.                                                       LCD_printc('0');
  162.                                             LCD_set_position(0xC9); //LCD換行顯示
  163.                                                       LCD_printc(dofly_DuanMa[6]);break;//6
  164.                                           case 0x42:
  165.                                                                                     LCD_write_instruction(0x01);
  166.                                                                                     LCD_set_position(0x00);
  167.                                                                 LCD_prints(" NOW:    On");
  168.                                                                           LCD_set_position(0x40); //LCD換行顯示
  169.                                                                 LCD_prints("Number:  ");
  170.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  171.                                                       LCD_printc('0');
  172.                                             LCD_set_position(0xC9); //LCD換行顯示
  173.                                                       LCD_printc(dofly_DuanMa[7]);break;//7
  174.                                           case 0x52:
  175.                                                                                     LCD_write_instruction(0x01);
  176.                                                                                     LCD_set_position(0x00);
  177.                                                                 LCD_prints(" NOW:    On");
  178.                                                                           LCD_set_position(0x40); //LCD換行顯示
  179.                                                                 LCD_prints("Number:  ");
  180.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  181.                                                       LCD_printc('0');
  182.                                             LCD_set_position(0xC9); //LCD換行顯示
  183.                                                       LCD_printc(dofly_DuanMa[8]);break;//8
  184.                                           case 0x4A:
  185.                                                                                     LCD_write_instruction(0x01);
  186.                                                                                     LCD_set_position(0x00);
  187.                                                                 LCD_prints(" NOW:    On");
  188.                                                                           LCD_set_position(0x40); //LCD換行顯示
  189.                                                                 LCD_prints("Number:  ");
  190.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  191.                                                       LCD_printc('0');
  192.                                             LCD_set_position(0xC9); //LCD換行顯示
  193.                                                       LCD_printc(dofly_DuanMa[9]);break;//9
  194.                                           case 0x45:
  195.                                                                                     LCD_write_instruction(0x01);
  196.                                                                                     LCD_set_position(0x00);
  197.                                                                                       LCD_prints("WuLian");
  198.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  199.                         LCD_prints("Class 152");
  200.                                                                                     break;//9
  201.                                           case 0x46:
  202.                                                                                     LCD_write_instruction(0x01);
  203.                                                                                     LCD_set_position(0x00);
  204.                                                                                       LCD_prints("NAME: TangFang");
  205.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  206.                         LCD_prints("ID:220153297  ");
  207.                                                                                     break;//9
  208.                                           case 0x47:
  209.                                                                                     LCD_write_instruction(0x01);
  210.                                                                                     LCD_set_position(0x00);
  211.                                                                                       LCD_prints("NAME:CaiChaoyong");
  212.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  213.                         LCD_prints("ID:220153273  ");
  214.                                                                                     break;//9
  215.                                           case 0x44:
  216.                                                                                     LCD_write_instruction(0x01);
  217.                                                                                     LCD_set_position(0x00);
  218.                                                                                       LCD_prints("teacher: zzy");
  219.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  220.                         LCD_prints("class:DanPianJi  ");
  221.                                                                                     break;//9
  222.                                           case 0x40:
  223.                                                                                     LCD_write_instruction(0x01);
  224.                                                                                     LCD_set_position(0x00);
  225.                                                                                       LCD_prints("key null");
  226.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  227.                         LCD_prints("key null");
  228.                                                                                     break;//9
  229.                                           case 0x43:
  230.                                                                                     LCD_write_instruction(0x01);
  231.                                                                                     LCD_set_position(0x00);
  232.                                                                                       LCD_prints("key null 1");
  233.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  234.                         LCD_prints("key null 1");
  235.                                                                                     break;//9
  236.                                           case 0x07:
  237.                                                                                     LCD_write_instruction(0x01);
  238.                                                                                     LCD_set_position(0x00);
  239.                                                                                       LCD_prints("key null -");
  240.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  241.                         LCD_prints("key null -");
  242.                                                                                     break;//9
  243.                                           case 0x15:
  244.                                                                                     LCD_write_instruction(0x01);
  245.                                                                                     LCD_set_position(0x00);
  246.                                                                                       LCD_prints("key null +");
  247.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  248.                         LCD_prints("key null +");
  249.                                                                                     break;//9
  250.                                           case 0x09:
  251.                                                                                     LCD_write_instruction(0x01);
  252.                                                                                     LCD_set_position(0x00);
  253.                                                                                       LCD_prints("key null EQ");
  254.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  255.                         LCD_prints("key null EQ");
  256.                                                                                     break;//9
  257.                                           case 0x16:
  258.                                                                                     LCD_write_instruction(0x01);
  259.                                                                                     LCD_set_position(0x00);
  260.                                                                 LCD_prints(" NOW:    On");
  261.                                                                           LCD_set_position(0x40); //LCD換行顯示
  262.                                                                 LCD_prints("Number:  ");
  263.                                                                                     LCD_set_position(0xC8); //LCD換行顯示
  264.                                                       LCD_printc('0');
  265.                                             LCD_set_position(0xC9); //LCD換行顯示
  266.                                                       LCD_printc(dofly_DuanMa[0]);break;//7
  267.                                           case 0x19:
  268.                                                                                     LCD_write_instruction(0x01);
  269.                                                                                     LCD_set_position(0x00);
  270.                                                                                       LCD_prints("usb sd");
  271.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  272.                         LCD_prints("usb sd");
  273.                                                                                     break;//9
  274.                                           case 0x0d:
  275.                                                                                     LCD_write_instruction(0x01);
  276.                                                                                     LCD_set_position(0x00);
  277.                                                                                       LCD_prints("back!!!");
  278.                                                                                     LCD_set_position(0x40); //LCD換行顯示
  279.                         LCD_prints("back!!!");
  280.                                                                                     break;//9
  281.              default:break;
  282.                                           }

  283.                               irpro_ok=0;//處理完成標志

  284.   }
  285. void Ircordpro(void)//紅外碼值處理函數(shù)
  286. {
  287.   unsigned char i, j, k;
  288.   unsigned char cord,value;

  289.   k=1;
  290.   for(i=0;i<4;i++)      //處理4個字節(jié)
  291.      {
  292.       for(j=1;j<=8;j++) //處理1個字節(jié)8位
  293.          {
  294.           cord=irdata[k];
  295.           if(cord>7)//大于某值為1,這個和晶振有絕對關(guān)系,這里使用12M計算,此值可以有一定誤差
  296.              value|=0x80;
  297.           if(j<8)
  298. ……………………

  299. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

分工合作
唐*(220153297):1.仿真圖搭建
                  2.硬件材料選購
                  3.課設(shè)實驗報告的撰寫,硬件資料的查找及整理,課程設(shè)計資料的查找分析與整理
                  4、對搭建出來,和搭檔寫好的代碼進行通讀和理解,分析不足,共同改進不足
蔡*(220153273):1.流程圖的先驅(qū)
                    2.實物圖連接,代碼編寫
                    3.實物圖調(diào)試分析
                    4.錄制講解整個課設(shè)制作的流程



完整的Word格式文檔51黑下載地址:
課程設(shè)計實驗報告.doc (5.29 MB, 下載次數(shù): 150)
源碼:
LCD紅外.zip (122.45 KB, 下載次數(shù): 329)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂3 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:198161 發(fā)表于 2018-6-11 14:12 | 只看該作者
學(xué)習(xí)了很有用,雖然感覺好難
回復(fù)

使用道具 舉報

板凳
ID:353874 發(fā)表于 2018-10-24 10:34 | 只看該作者
很詳細的資料,期待著學(xué)習(xí)
回復(fù)

使用道具 舉報

地板
ID:445100 發(fā)表于 2019-1-17 19:24 | 只看該作者
不錯,好好學(xué)習(xí)一下
回復(fù)

使用道具 舉報

5#
ID:484435 發(fā)表于 2019-8-8 19:19 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

6#
ID:412391 發(fā)表于 2019-9-9 15:23 | 只看該作者
很詳細的資料,期待著學(xué)習(xí)
回復(fù)

使用道具 舉報

7#
ID:253767 發(fā)表于 2019-12-9 07:49 | 只看該作者
謝謝分享!!!
回復(fù)

使用道具 舉報

8#
ID:662025 發(fā)表于 2019-12-12 09:36 | 只看該作者
希望可以下載
回復(fù)

使用道具 舉報

9#
ID:450925 發(fā)表于 2020-3-31 09:58 | 只看該作者
為啥我仿真不了啊
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕 在线观看 | 国产精品欧美一区二区 | 国产日韩一区二区三免费高清 | www.亚洲视频 | 红桃成人在线 | www网站在线观看 | 亚洲一区二区三区在线视频 | 天堂在线一区 | 成人av电影天堂 | 成人免费观看视频 | 亚洲国产aⅴ精品 | 日韩福利电影 | 亚洲精彩免费视频 | 色悠悠久 | 久久久久久久久久久一区二区 | 亚洲国产一区在线 | 亚洲成人精品 | 午夜精品久久久久久久 | 国产精品九九九 | 91久久久精品国产一区二区蜜臀 | 美女久久久久久久 | 日韩电影在线一区 | 国产一区二区三区在线视频 | 欧美在线一区二区三区 | 亚洲精品一区二区三区蜜桃久 | 中文字幕 亚洲一区 | 久久久久亚洲精品 | 亚洲一区二区三区 | 亚洲国产精品久久久久 | 一区视频在线播放 | 男女下面一进一出网站 | 成人精品一区二区三区四区 | 亚洲成人精 | 久久久久久久国产精品视频 | 紧缚调教一区二区三区视频 | av天天澡天天爽天天av | 国产成人精品一区二区三区四区 | 热久久久 | 亚洲有码转帖 | 日韩电影一区 | 蜜桃视频在线观看免费视频网站www |