⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ps7219.c

📁 单片机接口技术实用子程序配套源代码:里面有许多基本实用的例子
💻 C
字号:
//-----------------------函数声明--------------------------------------------------------#include "reg51.h"//-----------------------地址定义--------------------------------------------------------#define		addr_bit_1			0x01     //显示数据1的寄存器地址#define		addr_bit_2			0x02	 //显示数据2的寄存器地址#define		addr_bit_3			0x03	 //显示数据3的寄存器地址#define		addr_bit_4			0x04	 //显示数据4的寄存器地址#define		addr_bit_5			0x05	 //显示数据5的寄存器地址#define		addr_bit_6			0x06	 //显示数据6的寄存器地址#define		addr_bit_7			0x07	 //显示数据7的寄存器地址#define		addr_bit_8			0x08	 //显示数据8的寄存器地址#define		addr_trans_mode		0x09	 //译码方式寄存器的地址#define		addr_light_con		0x0a	 //亮度寄存器#define		addr_scan_count		0x0b	 //扫描界线寄存器#define		addr_close			0x0c	 //掉电控制寄存器#define		addr_glint_con		0x0d	 //闪烁控制寄存器#define     addr_show_test      0x0f     //显示测试寄存器//-----------------------管脚定义--------------------------------------------------------sbit	    ps7219_pin_RST  =    P1^4;sbit		ps7219_pin_LOAD =    P1^5;sbit		ps7219_pin_DIN	=    P1^6;sbit		ps7219_pin_CLK	=    P1^7;//-----------------------函数声明--------------------------------------------------------void  ps7219_reset();                //复位void  ps7219_init();				 //初始化控制寄存器void  ps7219_echo(unsigned char da_1,da_2,da_3,da_4,da_5,da_6,da_7,da_8);//数据寄存器void  ps7219_send_data(unsigned char addr,da);	  //完成一次寄存器的写操作void  ps7219_delay(void);//--------------------------------------------------------------------------------------------------// 函数名称: ps7219_reset// 函数功能: 完成ps7219的复位//--------------------------------------------------------------------------------------------------void  ps7219_reset(){unsigned char i;ps7219_pin_RST=0;for(i=0;i<125;i++)ps7219_delay();ps7219_pin_RST=1;for(i=0;i<255;i++)ps7219_delay();ps7219_pin_RST=0;for(i=0;i<125;i++)ps7219_delay();}//--------------------------------------------------------------------------------------------------// 函数名称: ps7219_init// 函数功能: 通过写控制寄存器,完成ps7219的初始化//--------------------------------------------------------------------------------------------------void  ps7219_init(){ps7219_reset();ps7219_send_data(addr_scan_count,0x04);ps7219_send_data(addr_light_con,0x0f);ps7219_send_data(addr_trans_mode,0xff);ps7219_send_data(addr_close,0x01);}//--------------------------------------------------------------------------------------------------// 函数名称: ps7219_echo// 入口参数: da_1,da_2,da_3,da_4,da_5,da_6,da_7,da_8 8个显示数据// 函数功能: 送八个显示数据到显示寄存器//--------------------------------------------------------------------------------------------------void  ps7219_echo(unsigned char da_1,da_2,da_3,da_4,da_5,da_6,da_7,da_8){	ps7219_send_data(addr_bit_1,da_1);	ps7219_send_data(addr_bit_2,da_2);    ps7219_send_data(addr_bit_3,da_3);    ps7219_send_data(addr_bit_4,da_4);	ps7219_send_data(addr_bit_5,da_5);	ps7219_send_data(addr_bit_6,da_6);    ps7219_send_data(addr_bit_7,da_7);    ps7219_send_data(addr_bit_8,da_8);}//--------------------------------------------------------------------------------------------------// 函数名称: ps7219_send_data// 入口参数: addr寄存器地址,da寄存器设置值// 函数功能: 把设置值写入对应的寄存器//--------------------------------------------------------------------------------------------------void  ps7219_send_data(unsigned char addr,da)                 {                 unsigned char i,byte_out;                 byte_out=addr;                 ps7219_pin_DIN=1;                 ps7219_pin_CLK=1;                 ps7219_pin_LOAD=0;                 for(i=0;i<8;i++)                  {                   ps7219_pin_CLK=1;                   ps7219_pin_DIN=(bit)(byte_out&0x80);                   byte_out=byte_out<<1;                   ps7219_pin_CLK=0;                   ps7219_delay();                  }                 ps7219_pin_CLK=1;                 byte_out=da;                 for(i=0;i<7;i++)                  {                   ps7219_pin_CLK=1;                   ps7219_pin_DIN=(bit)(byte_out&0x80);                   byte_out=byte_out<<1;                   ps7219_pin_CLK=0;                   ps7219_delay();                   }                 ps7219_pin_CLK=1;                 ps7219_pin_LOAD=1;                 ps7219_pin_DIN=(bit)(byte_out&0x80);                 ps7219_pin_CLK=0;                 ps7219_delay();                 ps7219_pin_CLK=1;                }//--------------------------------------------------------------------------------------------------// 函数名称: ps7219_delay// 函数功能: 延时子程序//--------------------------------------------------------------------------------------------------void  ps7219_delay(void){                 unsigned char i;                 for(i=0;i<125;i++)                 {}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -