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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4710|回復: 5
打印 上一主題 下一主題
收起左側

單片機控制點陣學習基礎,適合新手 有Proteus仿真圖和程序

  [復制鏈接]
跳轉到指定樓層
樓主
經過學習,今天整理了8*8點陣學習的基礎,有Proteus仿真圖和單片機程序、word說明文檔、取模軟件,適合新手,應能看懂入門。后續隨時間增加移動、16*16等。我也在學習,期待高手幫助,謝謝。

在Proteus中,有4種8*8點陣模型,分別為MATRIX-8*8-BLUE(藍色,上圖第1個)、MATRIX-8*8-GREEN (綠色,上圖第2個)、 MATRIX-8*8-ORANGE (橙色,上圖第3個)、MATRIX-8*8-RED(紅色,上圖第4個)。每個8*8點陣均由64個LED小燈組成,如左邊D1、D2所示:當在D1加正向電壓時,LED小燈點亮,當在D2加反向電壓時,LED不亮,這是點陣學習的基礎。
如上圖,在Proteus中,,不進行任何旋轉操作,直接放置4種點陣,加上電源后,只有紅色點陣第1排亮2個燈,其他均不亮。由圖可知道,上排2根線,有2列有燈亮,即上排接通的列選,下排接通行選。當高電平選中列、低電平選中行時,相應LED燈亮。
如上圖,當我們把電源極性相反后,紅色點陣不亮,其他3種都為左邊第1、2排第1列亮2個LED燈。上排有2根線,而第1排、第2排有燈亮,即說明上排接通行選,因為有2根線所以有2行有燈亮,那下排就是接通列選。由圖可知,這3種也是高電平選中列、低電平選中行時,相應LED燈亮。
由此,我們得出3點結論:
1、仿真效果上看,綠色和紅色顯示較清楚,藍和橙色顯示不夠清楚,這就是我們下面選紅或綠做仿真的原因。
2、紅色的點陣是上列選下行選,其他3種是上行選下列選。如圖1,紅色上面接2根線,因為上面是列選,說明選擇了2列,下面接了1根線,說明選擇了1行,所以就是第一行左邊2個燈亮。圖2同理是點了2排的第1個。
3、以上4種點陣,無論上列選下行選還是上行選下列選,都是當高電平選中列、低電平選中行時,相應LED燈亮。此為編程的基礎。
例如我要點亮紅色點陣的第一行,因為它是上列選,下行選,高電平選中列、低電平選中行時相應LED燈亮,所以需在下面第1個端子加GND,上面8個端子加VCC,如下圖:
如果我要1、3、5、6行亮,則只需將行選信號(下端子)第1、3、5、6加GND即可,如下圖:
這樣,紅色點燈點亮方法我們就知道了。接下來我們看看其他點陣點亮的方法,以綠色為例。還是以點亮點陣的第一行為例。綠色點陣,上行選下列選,高電平選中列、低電平選中行時相應LED燈亮。所以應該為上面第1個端子為行選信號,接一個GND,下面的端子為列信號,全部給VCC即可,如下圖:
如果我要2、4、6行亮,該怎樣辦呢?很顯然,就是行信號相應位置選中(給GND)即可,如圖:
明白了這點,我們可以開始我們的編程了。上面示例為硬件測試,由讀者自行在Proteus中畫出即可。
第1節:通過編程,控制色點陣點亮左上角第一個LED燈。
分析:綠色點陣為上行選,下列選,高電平給列,低電平給行時即亮。因此,編程將上端子第1個端子寫0,下端子第1個端子寫1即可。原理圖如下:
程序如下:
//本程序點亮綠色點陣第一個燈,P2.7接上排第1個,行選,應給低電平;P3.7接上排第1個,列選,應給高電平。
#include<reg52.h>  //定義頭文件
void main()  //主函數開始
{
              P2=0x7f;//0111 1111 第1位P2.7為0,即給行選一個低電平;
    P3=0x80;//1000 0000 第1位P3.7為1,即給列選一個高電平;
              while(1);//死循環,能讓程序停在這里
}
第2節:通過編程,控制綠色點陣點亮左上角第一排LED燈亮。
與上節相比,第1排仍需給低電平,再將列信號全部給高電平即可,仿真圖如下:
源程序如下:
#include<reg52.h>  //定義頭文件
void main()  //主函數開始
{
              P2=0x7f;//0111 1111 第1位P2.7為0,即給行選一個低電平;
    P3=0xff;//給列選全部加一個高電平;
              while(1);//死循環,能讓程序停在這里
}
其他行、列等由讀者按自己想法完成,接下來,介紹如果點亮我們需要的字符。
一般我們按行掃描方式,就是列信號給高電平,算出第一行的列信號哪個亮哪個不亮,待程序掃描完第一行,再到第二行,直到掃描完8行就完成一個字符的顯示了。“同一時刻,有且只有一行在亮”,這是編程的基礎,和數碼管動態顯示一樣的。下面我們在點陣上顯示“中國”的中字。首先我們把原理圖畫出來,如下圖:
分析:綠色點陣,上行選下列選,高電平選中列、低電平選中行時相應LED燈亮,這是編程的基礎。就上圖而言,我們按行掃描方式,第1行時,即給P2.7低電平時,P3口控制第一行哪一列亮就給高電平,否則給低電平。依次掃描完8行即可。我們可以把掃描第一行時,列信號應該給第一行送什么數先算出,其他一樣,這樣,先把列信號算出,可以用取模軟件。
1、新建圖像,選擇寬度是8,高度是8,即8*8點陣。
2、在取模方法選擇橫向取模,一般行掃描方式就選這個。字節倒序是滿足一些硬件需求,比如第一位應該是接最高位,但硬件第1位接最低位,所以此處不選即可。
3、在模擬動畫中,放大格點,把“中”字點選出來。以后到16*16時,可在文件輸入區輸入即可。在8*8時,還是手工選擇即可。
4、在取模方式中,選C51格式,點陣生成區出現了8*8點陣,行掃描時的列信號,將其復制到程序中即可。
完整程序如下:
#include<reg52.h>  //包含頭文件
char code hang[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //行編碼,分別選中第一行至第8行
char code lie[]={0x00,0x08,0x7f,0x49,0x49,0x7f,0x08,0x08}; //行掃描時,列信號編碼
void delay(int a) //延時函數
{
int x,y;
for(x=0;x<a;x++)
for(y=0;y<110;y++);
}
void main()  //主函數
{
int num;
while(1)
{
              for(num=0;num<8;num++)//行掃描8次,輪流選中第一行,第1個列編碼,直到第8行;
                            {
                            P2=hang[num]; //送行編碼,當num=0時送第一行時的編碼,依次類推送完1至8行;
                            P3=lie[num];  //送列編碼,每一行把相應列該亮哪個燈送到端口。
                            delay(5);     //送完行和列,適當做一下延時。
              }
  }
}
效果圖如下:
程序不變,只需改變char code lie[]里的編碼,即可改變顯示不同的字符。如字符1。在取模軟件得出列信號為:0x08,0x18,0x08,0x08,0x08,0x08,0x08,0x1C,效果圖如下:
至此,點陣學習基礎就學完了。我們可以在8*8點陣上顯示固定的一些字符了。要顯示漢字,后續將8*8拼成16*16再進行。8*8點陣,如何移動等問題還沒解決,而且8*8就用去了16個IO口,后續需減少IO口的使用,增加74LS138、74LS595等。我也在學習中,本文把學到的知識自己總結好發出來,希望對初學點陣的朋友有幫助!

全部資料51hei下載地址:
點陣學習基礎.rar (689.63 KB, 下載次數: 44)

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:487483 發表于 2020-10-31 17:08 | 只看該作者
寫的很詳細,大贊一個
回復

使用道具 舉報

板凳
ID:328014 發表于 2021-8-7 15:47 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

地板
ID:1047290 發表于 2022-10-11 13:38 | 只看該作者
寫的很詳細全面,贊一個,多謝樓主分享知識。
回復

使用道具 舉報

5#
ID:245820 發表于 2022-12-1 10:47 | 只看該作者
講解非常詳細,謝謝
回復

使用道具 舉報

6#
ID:245820 發表于 2023-2-17 11:01 | 只看該作者
非常詳細。謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 性大毛片视频 | 久精品久久 | 午夜影院中文字幕 | 久久99精品久久久久久秒播九色 | 日韩免费福利视频 | 久久91 | 亚洲国产精品久久久久秋霞不卡 | 国产成人短视频在线观看 | 在线观看免费av片 | 色婷婷亚洲一区二区三区 | 欧美性久久 | 国产夜恋视频在线观看 | 在线免费观看黄a | 妞干网av| 精品免费国产视频 | 亚洲国产精品人人爽夜夜爽 | 99久久亚洲 | 美女黄18岁以下禁止观看 | 福利视频一区二区 | 欧美精品电影一区 | 久久日本 | 欧美黄色一区 | 久久久视 | 精品国产一区二区三区久久久久久 | 青草青草久热精品视频在线观看 | 国产精品美女久久久久久久久久久 | 久久精品久久久 | 视频一区二区国产 | 欧美亚州综合 | 欧美精品久久 | 中文字幕免费观看 | 久久99精品久久久久子伦 | 99视频免费看 | 天天搞夜夜操 | 黄色免费在线网址 | 欧美日韩国产在线观看 | 黄色毛片黄色毛片 | 亚洲精品视频在线观看免费 | 成人免费在线观看 | 黄色毛片网站在线观看 | 自拍视频一区二区三区 |