国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用74HC595完成16*16led矩陣廣告牌(51單片機(jī)軟件仿真)

這篇具有很好參考價值的文章主要介紹了使用74HC595完成16*16led矩陣廣告牌(51單片機(jī)軟件仿真)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

74HC595簡介(個人理解)與模塊代碼

軟件仿真和代碼?


74HC595簡介(個人理解)與模塊代碼

SHCP是寫入595芯片數(shù)據(jù)的配置

STCP是發(fā)送595芯片內(nèi)信息的配置

DS是數(shù)據(jù)配置的區(qū)域

595芯片有9個輸出引腳,最后一個是供給下一塊串聯(lián)的595使用的,下一塊串聯(lián)的595stcp和shcp與上一塊連接的引腳一致,下一塊的DS與上一塊的第9個引腳相連。

實現(xiàn)了3位引腳當(dāng)8位使用的功能,節(jié)省引腳。

595串聯(lián)的數(shù)據(jù)流動規(guī)則:倘若堆了16位數(shù)據(jù)進(jìn)來,前八位會被推送到第二塊串聯(lián)的595芯片之中,后八位放在第一塊595芯片內(nèi)

通用配置:

定義引腳

sbit DS=P2^1;		
sbit shcp=P2^0;
sbit stcp=P2^2;

寫數(shù)值

    unsigned char i;
    for(i=0; i<8; i++)
    {
        DS = Data_row & (0x80 >> i);	// 從高到低遍歷寫入數(shù)據(jù)
        shcp = 0;
        _nop_();	// 軟件仿真處理速度較慢,故做此延遲
        _nop_();
        shcp = 1;
    }

發(fā)送數(shù)值

   stcp = 0;
    _nop_();
    _nop_();
    stcp = 1;

軟件仿真和代碼?

用的pctolcd2002生成字模,這個可以設(shè)置的東西有很多,相較于其他的軟件,這個更好用。

本次實驗中使用的字模顯示邏輯是

使用74HC595完成16*16led矩陣廣告牌(51單片機(jī)軟件仿真),單片機(jī),嵌入式硬件

紅色代表第一次刷新的字模;橙色代表第二次刷新的字模;藍(lán)色代表第三次刷新的字模;綠色代表第四次刷新的字模。

顯示流動刷新邏輯——一個簡單的定時器輸出給燈亮的那部分代碼即可

使用74HC595完成16*16led矩陣廣告牌(51單片機(jī)軟件仿真),單片機(jī),嵌入式硬件

主函數(shù)部分
#include <reg51.h>
#include <intrins.h>
#include "Delay.h"
#include "timer0.h"
#include "matrixled.h"

// 定義常量
#define TOTAL_ROWS 16
#define SHIFT_INTERVAL 100  // 定義0.1s的間隔為100

// 定義變量
unsigned char offset = 0; // 顯示上升變量

// “我是龜甲”字模數(shù)組
unsigned code MatrixLed_Code[128] = {
    0x04, 0x40, 0x0E, 0x50, 0x78, 0x48, 0x08, 0x48, 0x08, 0x40,
    0xFF, 0xFE, 0x08, 0x40, 0x08, 0x44, 0x0A, 0x44, 0x0C, 0x48,
    0x18, 0x30, 0x68, 0x22, 0x08, 0x52, 0x08, 0x8A, 0x2B, 0x06,
    0x10, 0x02, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0,
    0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0xFF, 0xFE,
    0x01, 0x00, 0x11, 0x00, 0x11, 0xF8, 0x11, 0x00, 0x29, 0x00,
    0x45, 0x00, 0x83, 0xFE, 0x04, 0x00, 0x04, 0x00, 0x0F, 0xE0,
    0x10, 0x20, 0x20, 0x40, 0x7F, 0xF8, 0xA1, 0x08, 0x21, 0x08,
    0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08,
    0x01, 0x02, 0x01, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0xF8,
    0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08,
    0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00,
    0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
};

// 掃描矩陣LED
void main(void)
{
    Timer0_Init(); // 定時器初始化
    while(1)
    {
        static unsigned char i = 0;

        // 輸入兩組八位的行選數(shù)據(jù),選擇十六行的其中一行點亮
        if(i < 8)
        {
            HC595_write_row(0x00);
            HC595_write_row(0x01 << i);
            HC595_Latch_row();
        }
        else  // i >= 8
        {
            HC595_write_row(0x01 << i - 8);
            HC595_write_row(0x00);
            HC595_Latch_row();
        }

        // 列選燈亮,輸入兩組數(shù)據(jù),左半邊一個,右半邊一個
        HC595_write_column(~MatrixLed_Code[2 * (i + offset) + 1]);
        HC595_Latch_column();
        HC595_write_column(~MatrixLed_Code[2 * (i + offset)]);
        HC595_Latch_column();
        Delay(1);
        
        // 消影操作,但效果很奇怪,故注釋掉了
        // HC595_write_row(0x00);
        // HC595_write_row(0x00);
        // HC595_Latch_row();

        i++;
        if(i == TOTAL_ROWS) 
            i = 0;
    }
}

// 定時器0中斷服務(wù)函數(shù)
void Timer0_Routine() interrupt 1
{
    static unsigned char count = 0;
    
    TL0 = 0x66;             // 設(shè)置定時初始值,1ms
    TH0 = 0xFC;
    count++;
    
    // 每隔0.1s,顯示就往下移一行
    if(count == SHIFT_INTERVAL)  
    {
        count = 0;
        offset++;
        if(offset == 64) 
            offset = 0;
    }
}
74HC595控制點陣屏顯示模塊
#include<reg51.h>
#include<intrins.h>
#include "Delay.h"

// 定義引腳
sbit DS=P2^1;		// 普通的是行選的74HC595
sbit shcp=P2^0;
sbit stcp=P2^2;
sbit DS1=P2^4;	// 帶數(shù)字1的是行選燈亮的74HC595
sbit shcp1=P2^3;
sbit stcp1=P2^5;


// 向595芯片寫行數(shù)據(jù)
void HC595_write_row(unsigned char Data_row)
{
    unsigned char i;
    for(i=0; i<8; i++)
    {
        DS = Data_row & (0x80 >> i);	// 從高到低遍歷寫入八位行選數(shù)據(jù)
        shcp = 0;
        _nop_();	// 軟件仿真處理速度較慢,故做此延遲
        _nop_();
        shcp = 1;
    }
}

// 向595芯片寫列數(shù)據(jù)
void HC595_write_column(unsigned char Data_column)
{
    unsigned char i;
    for(i=0; i<8; i++)
    {
        DS1 = Data_column & (0x80 >> i);	// 從高到低遍歷寫入八位行選燈亮的(列)數(shù)據(jù)
        shcp1 = 0;
        _nop_();
        _nop_();
        shcp1 = 1;
    }
}

// 觸發(fā)595的行鎖存
void HC595_Latch_row(void)
{
    stcp = 0;
    _nop_();
    _nop_();
    stcp = 1;
}

// 觸發(fā)595的列鎖存
void HC595_Latch_column(void)
{
    stcp1 = 0;
    _nop_();
    _nop_();
    stcp1 = 1;
}

定時器模塊
#include <REGX52.H>

/**
  * @brief 定時器0初始化,1毫秒@11.0592MHz
  * @param 無
  * @retval無
  */

void Timer0_Init()//創(chuàng)建精確的時間延時或進(jìn)行時間相關(guān)的任務(wù)
{
	TMOD &= 0xF0;			//設(shè)置定時器模式
	TMOD |= 0x01;			//設(shè)置定時器模式
	TL0 = 0x66;				//設(shè)置定時初始值
	TH0 = 0xFC;				//設(shè)置定時初始值
	TF0 = 0;				//清除TF0標(biāo)志
	TR0 = 1;				//定時器0開始計時
	ET0=1;//允許中斷
	EA=1;//允許總中斷
	PT0=0;//配置優(yōu)先級
}
Delay延時模塊
#include <intrins.h>
void Delay(unsigned int xms)
{
	unsigned char data i, j;
	while(xms--)
		{	
			_nop_();
			i = 2;
			j = 239;
			do
			{
				while (--j);
			} while (--i);
		}
	}

軟件仿真文章來源地址http://www.zghlxwxcb.cn/news/detail-742462.html

到了這里,關(guān)于使用74HC595完成16*16led矩陣廣告牌(51單片機(jī)軟件仿真)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 51單片機(jī)LED點陣控制原理、74HC595工作原理和字母和滾動顯示實驗代碼

    51單片機(jī)LED點陣控制原理、74HC595工作原理和字母和滾動顯示實驗代碼

    目錄 1. 74HC595工作原理圖解 ?2.LED點陣控制原理 3.點陣LED實驗 3.1 配置74HC595代碼 3.2 D點陣LED顯示H? ?3.3 滾動LED? (1) 滾動掃描圖示 ?(2)程序代碼 4.遇到奇怪的bug ? ?:? ? ? ? 輸出使能,輸入低電平允許輸出,因此需要用接線帽j24讓oe和地短接。 (但是我普中A2的板子,不

    2024年02月04日
    瀏覽(31)
  • 單片機(jī)(二):3個IO擴(kuò)展n*8個IO,基于74hc595與74hc165的8x8矩陣鍵盤

    單片機(jī)(二):3個IO擴(kuò)展n*8個IO,基于74hc595與74hc165的8x8矩陣鍵盤

    3個IO通過一片74hc595擴(kuò)展8個輸出IO,3個IO通過一片74hc1655擴(kuò)展8個輸入IO,最終成為8X8的矩陣鍵盤。對于普通的矩陣鍵盤,再加入防止鬼鍵、消抖和按下與松開識別。 74HC595是一個8位串行輸入、并行輸出的移位緩存器。通俗的來講就是在輸入時鐘的上升沿數(shù)據(jù)輸入端的數(shù)據(jù)可以位

    2024年02月10日
    瀏覽(27)
  • 74LS595 74HC595使用方法以及驅(qū)動數(shù)碼管顯示(附:使用代碼)

    74LS595 74HC595使用方法以及驅(qū)動數(shù)碼管顯示(附:使用代碼)

    由于74HC595與74LS595功能是一樣的沒有區(qū)別。LS和HC代表不同工作速度,HC代表CMOS芯片電路中工作速度最高的產(chǎn)品,LS表示普及、通用型產(chǎn)品。其驅(qū)動方法也是一樣的。 74LS595是串行輸入并行輸出的器件,可以串聯(lián)使用,達(dá)到引腳拓展的目的。主要引用在數(shù)碼管的驅(qū)動,點陣的驅(qū)動

    2024年02月06日
    瀏覽(110)
  • 51單片機(jī)通過兩片74HC595級聯(lián),用8位LED數(shù)碼管,分別顯示當(dāng)前日期,如:“2”、“0”、“-”、“0”、“5”、“-”、“2”、“6”,用Proteus仿真實現(xiàn)。

    51單片機(jī)通過兩片74HC595級聯(lián),用8位LED數(shù)碼管,分別顯示當(dāng)前日期,如:“2”、“0”、“-”、“0”、“5”、“-”、“2”、“6”,用Proteus仿真實現(xiàn)。

    1.先上仿真圖,但這么連仿真圖是不太正確的,要注意。展示的話能用就行。 2.從上到下依次放上數(shù)據(jù)手冊上的引腳解釋和邏輯功能和時序圖 ? ?3.貼上代碼:寫了發(fā)送一字節(jié)數(shù)據(jù)函數(shù),發(fā)送全部字節(jié)函數(shù),加上一些寫了很久的解釋(求贊)。

    2024年02月08日
    瀏覽(31)
  • STM32實現(xiàn)74HC595控制

    STM32實現(xiàn)74HC595控制

    ????????本文主要是實出74HC595的簡單控制功能實現(xiàn)(學(xué)習(xí)筆記整理)。 (一)74HC595簡述 ????????? 74HC595是一個8位串行輸入、平行輸出的位移緩存器:平臺行輸出為三態(tài)輸出 。 ????????在SCHCP的上升沿輸入,在STCP的上升沿進(jìn)入存儲寄存器中去,如果兩個時鐘連在

    2024年02月14日
    瀏覽(17)
  • 單片機(jī)課設(shè)-LED點陣廣告牌設(shè)計

    單片機(jī)課設(shè)-LED點陣廣告牌設(shè)計

    單片機(jī)課設(shè)系列文章-2-LED點陣廣告牌設(shè)計 ? 文章目錄 ???一、設(shè)計題目、內(nèi)容及要求 ???二、所用軟件以及版本 ???三、硬件設(shè)計 ???3.1、16*16點陣屏 ???3.2、38譯碼器的使用 ???四、仿真以及代碼 ???五、修改顯示字符 ???5.1 取字模軟件鏈接 ???5.2 取

    2024年02月09日
    瀏覽(15)
  • stm32 74hc595級聯(lián)編程

    stm32 74hc595級聯(lián)編程

    原理圖如下 ?代碼如下\\\"xl74hc595.c\\\" \\\"xl74hc595.h\\\"?代碼如下 GPIO初始化 具體IO口根據(jù)實際需求進(jìn)行修改 支持任意長度的的595芯片級聯(lián) ?

    2024年02月06日
    瀏覽(25)
  • 給WordPress網(wǎng)站增加一個帶時間的led廣告牌

    給WordPress網(wǎng)站增加一個帶時間的led廣告牌

    WordPress 后臺==》外觀==》小工具==》自定義html==》添加到合適位置 其他系統(tǒng)可自行添加合適位置

    2024年01月18日
    瀏覽(20)
  • STM32 4位數(shù)碼管和74HC595

    STM32 4位數(shù)碼管和74HC595

    ????????在使用一位數(shù)碼管的時候,會用到8個IO口,那如果使用4位數(shù)碼管,難道要使用32個IO口嗎?肯定是不行的,太浪費了IO口了。把四個數(shù)碼管全部接一起共用8個IO口,然后分別給他們一個片選。所以4位數(shù)碼管共有12個IO口。 ? ? ? ? 當(dāng)選擇數(shù)碼管1顯示的時候,這可以

    2024年04月17日
    瀏覽(38)
  • 【51單片機(jī)】IO 擴(kuò)展(串轉(zhuǎn)并)--74HC595

    【51單片機(jī)】IO 擴(kuò)展(串轉(zhuǎn)并)--74HC595

    參考: 普中 51 單片機(jī)開發(fā)攻略 第12章 【51單片機(jī)入門教程-2020版 程序全程純手打 從零開始入門】 https://www.bilibili.com/video/BV1Mb411e7re/?p=21share_source=copy_webvd_source=77e36f24add8dc77c362748ffb980148 nop ()是什么語句? and 位運算操作符 【51單片機(jī)入門教程-2020版 程序全程純手打 從零開始入

    2024年01月22日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包