加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

嵌入式外設(shè)-16X16點(diǎn)陣顯示器

04/30 08:32
5189
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

一、模塊介紹

16X16點(diǎn)陣顯示器是一種采用LED點(diǎn)陣組成的顯示設(shè)備,

它由16行16列的LED點(diǎn)組成,用于顯示字符、圖形等信息。每個(gè)LED點(diǎn)可以獨(dú)立控制亮滅,通過控制每個(gè)點(diǎn)的亮度,可以組合成不同的字符和圖形,實(shí)現(xiàn)信息的顯示。 16X16點(diǎn)陣顯示器通常用于戶外廣告、公交車站信息顯示、商場(chǎng)信息公告、停車場(chǎng)引導(dǎo)等領(lǐng)域,具有顯示效果好、可視距離遠(yuǎn)、使用壽命長(zhǎng)等特點(diǎn)。

16X16點(diǎn)陣顯示器的工作原理是通過控制器發(fā)送指令,控制每個(gè)LED點(diǎn)的亮滅,形成所需的字符和圖形??刂破骺梢酝ㄟ^串口、并口、網(wǎng)絡(luò)等方式與計(jì)算機(jī)或其他設(shè)備連接,實(shí)現(xiàn)信息的傳輸和顯示。

16X16點(diǎn)陣顯示器的優(yōu)點(diǎn)包括:

1. 顯示效果好:采用LED點(diǎn)陣顯示,字符和圖形清晰,可視距離遠(yuǎn)。

2. 使用壽命長(zhǎng):LED燈具有很長(zhǎng)的使用壽命,一般可以達(dá)到10萬小時(shí)以上。

3. 低功耗:LED燈具有較低的功耗,有利于節(jié)能降耗。

4. 安裝方便:可以根據(jù)需要進(jìn)行懸掛、固定等方式安裝。

5. 維護(hù)簡(jiǎn)單:LED點(diǎn)陣顯示器采用模塊化設(shè)計(jì),維護(hù)方便。

6. 廣泛應(yīng)用:適用于各種場(chǎng)合的信息顯示,如戶外廣告、公交車站、商場(chǎng)、停車場(chǎng)等。 總之,16X16點(diǎn)陣顯示器是一種性能優(yōu)良、應(yīng)用廣泛的顯示設(shè)備,具有很高的實(shí)用價(jià)值。

二、資料獲取

關(guān)注微信公眾號(hào)--星之援工作室 發(fā)送關(guān)鍵字(16X16點(diǎn)陣

????

效果展示

接線規(guī)則(可在lcd.h中自行修改)

三、代碼編寫

main

/*--------------------------------------------------------*
 *                                       								  *
 *   星之援網(wǎng)絡(luò)科技工作室學(xué)習(xí)資料v1.0    									*
 *		              																			*
 *		 程序介紹:16*16實(shí)驗(yàn)               								  *
 *		 實(shí)現(xiàn)效果:顯示漢字何   								 						 *
 *                                      							    *
 *--------------------------------------------------------*
*/

#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "usart.h"
#include "lcd.h"

const unsigned char  Word1[1][32] = 
{

0xF7,0xF7,0xF0,0xEF,0xEF,0xCC,0xCD,0xAD,0x6D,0xED,0xEC,0xED,0xEF,0xEF,0xEF,0xEF,
0xFF,0xFF,0x01,0xF7,0xF7,0x37,0xB7,0xB7,0xB7,0xB7,0x37,0xB7,0xF7,0xF7,0xD7,0xEF,/*"何",0*/

};

int main(void)
{
	char str[50];
	u8 key=0;
	delay_init();
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	 //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
	// LED 端口初始化 
	LED_GPIO_Config();
	// 串口初始化
	uart_init(115200);
	
	System_PB34_setIO();
	lcd_GPIO_init();

	printf("init okn");
				
  while(1)
	{
		Display(Word1);
  }   
}

lcd.h

可以自行修改定義的io口

#ifndef __lcd12864_H_
#define __lcd12864_H_

#include "sys.h"
//  引腳定義
#define D_GPIO_CLK RCC_APB2Periph_GPIOB
#define D_GPIO_PORT GPIOB
#define D_GPIO_PIN GPIO_Pin_0

#define C_GPIO_CLK RCC_APB2Periph_GPIOB
#define C_GPIO_PORT GPIOB
#define C_GPIO_PIN GPIO_Pin_9

#define B_GPIO_CLK RCC_APB2Periph_GPIOB
#define B_GPIO_PORT GPIOB
#define B_GPIO_PIN GPIO_Pin_8

#define A_GPIO_CLK RCC_APB2Periph_GPIOB
#define A_GPIO_PORT GPIOB
#define A_GPIO_PIN GPIO_Pin_7

#define G_GPIO_CLK RCC_APB2Periph_GPIOB
#define G_GPIO_PORT GPIOB
#define G_GPIO_PIN GPIO_Pin_6

#define DI_GPIO_CLK RCC_APB2Periph_GPIOB
#define DI_GPIO_PORT GPIOB
#define DI_GPIO_PIN GPIO_Pin_5

#define CLK_GPIO_CLK RCC_APB2Periph_GPIOB
#define CLK_GPIO_PORT GPIOB
#define CLK_GPIO_PIN GPIO_Pin_4

#define LAT_GPIO_CLK RCC_APB2Periph_GPIOB
#define LAT_GPIO_PORT GPIOB
#define LAT_GPIO_PIN GPIO_Pin_3
// 狀態(tài)
#define D_ON digitalHi(D_GPIO_PORT, D_GPIO_PIN)
#define D_OFF digitalLo(D_GPIO_PORT, D_GPIO_PIN)

#define C_ON digitalHi(C_GPIO_PORT, C_GPIO_PIN)
#define C_OFF digitalLo(C_GPIO_PORT, C_GPIO_PIN)

#define B_ON digitalHi(B_GPIO_PORT, B_GPIO_PIN)
#define B_OFF digitalLo(B_GPIO_PORT, B_GPIO_PIN)

#define A_ON digitalHi(A_GPIO_PORT, A_GPIO_PIN)
#define A_OFF digitalLo(A_GPIO_PORT, A_GPIO_PIN)

#define G_ON digitalHi(G_GPIO_PORT, G_GPIO_PIN)
#define G_OFF digitalLo(G_GPIO_PORT, G_GPIO_PIN)

#define DI_ON digitalHi(DI_GPIO_PORT, DI_GPIO_PIN)
#define DI_OFF digitalLo(DI_GPIO_PORT, DI_GPIO_PIN)

#define CLK_ON digitalHi(CLK_GPIO_PORT, CLK_GPIO_PIN)
#define CLK_OFF digitalLo(CLK_GPIO_PORT, CLK_GPIO_PIN)

#define LAT_ON digitalHi(LAT_GPIO_PORT, LAT_GPIO_PIN)
#define LAT_OFF digitalLo(LAT_GPIO_PORT, LAT_GPIO_PIN)



void lcd_GPIO_init(void);


void Scan_Line(unsigned char Dbyte);
void Send( unsigned char dat);
void Display(const unsigned char dat[][32]);		

/*********************************************************************************
 * @Function	:	系統(tǒng)設(shè)置PB3和PB4為普通IO口
 * @Input		:	deviceSta,設(shè)備狀態(tài)
 * @Output		: 	None
 * @Return		: 	None
 * @Others		: 	JTAG調(diào)試方式會(huì)受影響
 * @Date			:  2020-04-22
 **********************************************************************************/
void System_PB34_setIO(void);
	
#endif

lcd.c

#include "lcd.H"
#include "delay.h"


unsigned char Display_Buffer[2];

/*!
 *  @brief      GPIO_init
 *  @since      v1.0
 *  @param  None
 */
void lcd_GPIO_init()
{

	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(D_GPIO_CLK, ENABLE); // 使能PB,PE端口時(shí)鐘

	GPIO_InitStructure.GPIO_Pin = D_GPIO_PIN|C_GPIO_PIN |B_GPIO_PIN|A_GPIO_PIN|G_GPIO_PIN|DI_GPIO_PIN|CLK_GPIO_PIN|LAT_GPIO_PIN; // 端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	   // 推挽輸出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	   // IO口速度為50MHz

	GPIO_Init(GPIOB, &GPIO_InitStructure); // 根據(jù)設(shè)定參數(shù)初始化GPIOB.5

}
/*!
 *  @brief     掃描行
 *  @since      v1.0
 *  @param 
 *  @author     hr
 */
void Scan_Line( unsigned char Dbyte)
{	
	switch(Dbyte)
	{
		case 0:			
			D_OFF;C_OFF;B_OFF;A_OFF; 					
			break;
		case 1:					
			D_OFF;C_OFF;B_OFF;A_ON; 		
			break;
		case 2:					
			D_OFF;C_OFF;B_ON;A_OFF; 		
			break;
		case 3:					
			D_OFF;C_OFF;B_ON;A_ON; 		
			break;
		case 4:
			D_OFF;C_ON;B_OFF;A_OFF; 		
			break;
		case 5:
			D_OFF;C_ON;B_OFF;A_ON; 		
			break;
		case 6:
			D_OFF;C_ON;B_ON;A_OFF; 		
			break;
		case 7:
			D_OFF;C_ON;B_ON;A_ON; 		
			break;
		case 8:
			D_ON;C_OFF;B_OFF;A_OFF; 		
			break;
		case 9:
			D_ON;C_OFF;B_OFF;A_ON; 		
			break;	
		case 10:
			D_ON;C_OFF;B_ON;A_OFF; 		
			break;
		case 11:
			D_ON;C_OFF;B_ON;A_ON; 		
			break;
		case 12:
			D_ON;C_ON;B_OFF;A_OFF; 		
			break;
		case 13:
			D_ON;C_ON;B_OFF;A_ON; 		
			break;
		case 14:
			D_ON;C_ON;B_ON;A_OFF; 		
			break;
		case 15:
			D_ON;C_ON;B_ON;A_ON; 		
			break;
		default : break;	
	}
}
/*!
 *  @brief     發(fā)送數(shù)據(jù)
 *  @since      v1.0
 *  @param 
 *  @author     hr
 */
void Send( unsigned char dat)
{
	unsigned char i;
	CLK_OFF;
	delay_us(1);;	
	LAT_OFF;
	delay_us(1);;

	for( i = 0 ; i < 8 ; i++ )
	{
		if( dat&0x01 )
		{
			DI_ON;	
		}
		else
		{
			DI_OFF;
		}

		delay_us(1);
		CLK_ON;				//上升沿發(fā)送數(shù)據(jù)   
		delay_us(1);
		CLK_OFF;
		delay_us(1);		
		dat >>= 1;
			
	}			
}
/*!
 *  @brief     num為字?jǐn)?shù)  dat[][32]為字模的名稱
 *  @since      v1.0
 *  @param 
 *  @author     hr
 */
void Display(const unsigned char dat[][32])					
{
	unsigned char i;

	for( i = 0 ; i < 16 ; i++ )
	{
		G_ON;		//更新數(shù)據(jù)時(shí)候關(guān)閉顯示。等更新完數(shù)據(jù),打開138顯示行。防止重影。
		
		Display_Buffer[0] = dat[0][i];		
		Display_Buffer[1] = dat[0][i+16];

		Send(Display_Buffer[1]);
		Send(Display_Buffer[0]);

		LAT_ON;					//鎖存數(shù)據(jù)   
		delay_us(1);
		LAT_OFF;
		delay_us(1);
		Scan_Line(i);							//選擇第i行
		G_OFF;
		delay_us(100);;			//延時(shí)一段時(shí)間,讓LED亮起來。    				
	}	
}

/*********************************************************************************
 * @Function	:	系統(tǒng)設(shè)置PB3和PB4為普通IO口
 * @Input		:	deviceSta,設(shè)備狀態(tài)
 * @Output		: 	None
 * @Return		: 	None
 * @Others		: 	JTAG調(diào)試方式會(huì)受影響
 * @Date			:  2020-04-22
 **********************************************************************************/
void System_PB34_setIO(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 打開AFIO時(shí)鐘
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
}

四、參考

 

聯(lián)系方式 微信號(hào):13648103287

  • 聯(lián)系方式.docx

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
STM32F103RCT6TR 1 STMicroelectronics Mainstream Performance line, Arm Cortex-M3 MCU with 256 Kbytes of Flash memory, 72 MHz CPU, motor control, USB and CAN

ECAD模型

下載ECAD模型
$9.98 查看
MCF52259CVN80 1 NXP Semiconductors 32-BIT, FLASH, 80MHz, RISC MICROCONTROLLER, BGA144
$48.73 查看
STM32F405RGT6 1 STMicroelectronics High-performance foundation line, Arm Cortex-M4 core with DSP and FPU, 1 Mbyte of Flash memory, 168 MHz CPU, ART Accelerator

ECAD模型

下載ECAD模型
$16.63 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

方案定制,程序設(shè)計(jì)方案、單片機(jī)程序設(shè)計(jì)與講解、APP定制開發(fā)。本公眾號(hào)致力于向讀者傳遞關(guān)于程序設(shè)計(jì)和開發(fā)的相關(guān)知識(shí),并分享一些關(guān)于軟件開發(fā)的最佳實(shí)踐。如果您有什么問題或建議,請(qǐng)隨時(shí)聯(lián)系我們。我們將竭誠(chéng)為您服務(wù)