《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 其他 > 教程:基于51單片機的LED點陣屏顯示

教程:基于51單片機的LED點陣屏顯示

2023-01-31
來源:滑小稽筆記

  11.1 項目分析

  11.1.1 點陣簡介

  LED點陣屏通過LED發光二極管組成,以燈珠亮滅來顯示文字、圖片、動畫、視頻等,是各部分組件都模塊化的顯示器件,通常由顯示模塊、控制系統和電源系統組成。 LED點陣屏制作簡單,安裝方便,被廣泛應用于各種公共場合,如汽車報站器、廣告屏以及公告牌等。

  LED點陣的顯示原理很簡單,以8×8點陣為例,8×8點陣具有64個像素點,可以顯示數字和一些比較簡單的漢字,但是顯示漢字最好是用16×16以上的點陣,點陣的連接關系與矩陣鍵盤相似,將每一行的LED正極接在一起并引出接線端子,將每一列的LED負極接在一起并引出,這樣8×8的點陣就會有16個端口被引出, 將行端口和列端口分別接在單片機的兩個端口上,就可以控制點陣了。 點陣的顯示主要是利用掃描實現的,可以掃描行也可以掃描列,以行掃描為例,假設單片機在八行中任選一“行”產生高電平,其余的“行”設為低電平,那么此時對于“列”只需要在任意一列產生低電平就可以點亮這一行的任意一個或多個發光二極管,然后當“行”不停地掃描,超過人眼的反應范圍時,就會顯示出對應的畫面。 當一個點陣以三個發光二極管(R,G,B)組成一個像素,且發光二極管的體積足夠小那就形成了彩色點陣,這種點陣可以利用像素點的R,G,B三種顏色混合成任意的顏色,只要像素點足夠多,那么就可以顯示彩色圖像。

  11.1.2 8×8單色點陣結構圖

273.JPG

  **11.2 **項目過程

  11.2.1 項目需求

  利用51單片機控制8*8點陣實現0~9的顯示。

  11.2.2 原理圖

272.JPG

  11.2.3 源代碼

  /*********************************************************************************************************

  頭    文    件    引    用

  *********************************************************************************************************/

  #include <reg51.h>                                            //導入51單片機頭文件

  #include <intrins.h>

  /*********************************************************************************************************

  數    據    類    型    定    義

  *********************************************************************************************************/

  #define u8 unsigned char                                        //定義無符號字符型數據(0~255)

  #define u16 unsigned int                                        //定義無符號整型數據(0~65535)

  u8 code TAB_L[] = { 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F } ;                  //掃描碼

  u8 code TAB_H[] = {

  0x00, 0x00, 0x3C, 0x42, 0x42, 0x3C, 0x00, 0x00,

  0x00, 0x00, 0x00, 0x44, 0x7E, 0x40, 0x00, 0x00,

  0x00, 0x00, 0x64, 0x52, 0x52, 0x4A, 0x44, 0x00,

  0x00, 0x00, 0x44, 0x92, 0x92, 0x6C, 0x00, 0x00,

  0x00, 0x18, 0x14, 0x12, 0x7E, 0x10, 0x00, 0x00,

  0x00, 0x00, 0x86, 0x8A, 0x8A, 0x72, 0x00, 0x00,

  0x00, 0x00, 0x00, 0x78, 0x94, 0x92, 0x62, 0x00,

  0x00, 0x00, 0x02, 0x02, 0xF2, 0x0A, 0x06, 0x00,

  0x00, 0x00, 0x6C, 0x92, 0x92, 0x92, 0x6C, 0x00,

  0x00, 0x00, 0x4C, 0x92, 0x92, 0x7C, 0x00, 0x00,

  } ;                                                    //數字碼

  u8 Picture_Num ;

  u8 TIM0_Count ;

  /********************************************************

  Name    :delay_ms

  Function  :毫秒級別延時函數

  Paramater  :

  ms:延時的ms數

  Return    :None

  ********************************************************/

  void delay_ms( u16 ms )

  {

  u8 i ;

  while( ms-- )

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

  }

  /********************************************************

  Name    :Picture

  Function  :點陣掃描算法

  Paramater  :None

  Return    :None

  ********************************************************/

  void Picture( u8 num )

  {

  u8 i ;

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

  {

  P3 = TAB_L[ i ] ;                                        //每一次掃描都會加入圖片的 1/8

  P2 = TAB_H[ num*8+i ];                                      //取數字碼

  delay_ms( 1 ) ;

  }

  }

  /********************************************************

  Name    :TIM0_IRQHandler

  Function  :定時器中斷

  Paramater  :None

  Return    :None

  ********************************************************/

  void TIM0_IRQHandler() interrupt 1

  {

  TH0 = ( 65535-50000 )/256 ;

  TL0 = ( 65535-50000 )%256 ;

  TIM0_Count ++ ;

  if( TIM0_Count==20 )

  {

  Picture_Num ++ ;

  if( Picture_Num==10 )

  Picture_Num = 0 ;                                      //圖像切換上限

  TIM0_Count = 0 ;

  }

  }

  /*********************************************************************************************************

  主    函    數

  *********************************************************************************************************/

  void main()

  {

  IE = 0x82 ;                                              //開啟中斷與定時器中斷

  TMOD = 0x01 ;                                            //設定為16位定時器模式

  TH0 = ( 65535-50000 )/256 ;                                      //寫入定時器初值

  TL0 = ( 65535-50000 )%256 ;

  TR0 = 1 ;                                              //開啟定時器

  TIM0_Count = 0 ;

  Picture_Num = 0 ;

  while( 1 )

  {

  Picture( Picture_Num ) ;

  }

  }

  11.2.4 仿真截圖

271.JPG




更多信息可以來這里獲取==>>電子技術應用-AET<<

mmexport1621241704608.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 韩国一级毛片大全女教师 | 国产午夜精品久久理论片 | 久久国产热视频 | 俺来也欧美亚洲a∨在线 | 丝袜黄色片 | 美女张开腿给男人桶 | 亚洲国产福利精品一区二区 | 精品一区二区在线欧美日韩 | 免费看操片| 精品国产免费第一区二区 | 亚洲欧美精品国产一区色综合 | 久久手机免费视频 | 欧美成人免费在线视频 | 一区二区三区不卡在线 | 天天操夜夜噜 | 成人久久18免费网 | 国产一区二区三区美女在线观看 | 国产资源精品一区二区免费 | 欧美特黄三级成人 | 国产精品免费视频一区一 | 欧美67194| 精品久久久久久国产免费了 | 日韩美女一区二区三区 | 国产一级影片 | 九九免费精品视频在这里 | 玖草视频在线观看 | 高清一级毛片 | 久久久久国产精品免费免费 | 久久久久久久久久毛片精品美女 | 91精品全国免费观看 | 日本亚州在线播放精品 | 日韩国产一区二区 | 夜色成人性y | 久久久久久毛片免费播放 | 欧美特黄三级成人 | 午夜宅宅宅影院在线观看 | 特黄特色一级特色大片中文 | 精品久久久久久久久免费影院 | 精品久久成人 | 免费观看一级一片 | 黄色福利站 |