📄 led_scan.h
字号:
#include <STC12C5412AD.H>
//移位寄存器端口映射 HC595
sbit S_OE =P1^0;
sbit S_CLK=P1^1;
sbit S_LAT=P1^2;
sbit S_DAT=P1^3;
//行线端口映射,低电平驱动
sbit Y0 = P3^7;
sbit Y1 = P2^7;
sbit Y2 = P2^6;
sbit Y3 = P2^5;
sbit Y4 = P2^4;
sbit Y5 = P3^4;
sbit Y6 = P3^5;
sbit Y7 = P3^3;
sbit Y8 = P0^3;
sbit Y9 = P0^2;
sbit Y10 = P0^1;
sbit Y11 = P0^0;
sbit Y12 = P2^3;
sbit Y13 = P2^2;
sbit Y14 = P2^1;
sbit Y15 = P2^0;
#define HC595_OE_Enable() {S_OE=0;}
#define HC595_OE_Disable() {S_OE=1;Y0=1;Y5=1;Y6=1;Y7=1;P2=0xff;P0=0xff;} //{S_OE=1;}
//行选通函数
#define Select_Y0() {Y0=0;Y5=1;Y6=1;Y7=1;P2=0xff;P0=0xff;}
#define Select_Y1() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0x7f;P0=0xff;}
#define Select_Y2() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xbf;P0=0xff;}
#define Select_Y3() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xdf;P0=0xff;}
#define Select_Y4() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xef;P0=0xff;}
#define Select_Y5() {Y0=1;Y5=0;Y6=1;Y7=1;P2=0xff;P0=0xff;}
#define Select_Y6() {Y0=1;Y5=1;Y6=0;Y7=1;P2=0xff;P0=0xff;}
#define Select_Y7() {Y0=1;Y5=1;Y6=1;Y7=0;P2=0xff;P0=0xff;}
#define Select_Y8() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xff;P0=0xf7;}
#define Select_Y9() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xff;P0=0xfb;}
#define Select_Y10() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xff;P0=0xfd;}
#define Select_Y11() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xff;P0=0xfe;}
#define Select_Y12() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xf7;P0=0xff;}
#define Select_Y13() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xfb;P0=0xff;}
#define Select_Y14() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xfd;P0=0xff;}
#define Select_Y15() {Y0=1;Y5=1;Y6=1;Y7=1;P2=0xfe;P0=0xff;}
#define EEPROM_BASEADDR 0x2600 //EEPROM扇区首址
#define EEPROM_ADDR_SET_DATA EEPROM_BASEADDR
#define EEPROM_ADDR_Display_Mode EEPROM_BASEADDR+0x0000//显示模式
#define EEPROM_ADDR_Refesh_Speed EEPROM_BASEADDR+0x0001//刷新率
#define EEPROM_ADDR_Move_L_Speed EEPROM_BASEADDR+0x0002//左移动速度
#define EEPROM_ADDR_Pause_Time EEPROM_BASEADDR+0x0003//定格时间
#define EEPROM_ADDR_Back_Ground EEPROM_BASEADDR+0x0004//显示背景
#define EEPROM_ADDR_HZ_CNT_TOTAL_MSB EEPROM_BASEADDR+0x0005//字符数目高位
#define EEPROM_ADDR_HZ_CNT_TOTAL_LSB EEPROM_BASEADDR+0x0006//字符数目低位
#define EEPROM_ADDR_POWERUP_MODE EEPROM_BASEADDR+0x0007//上电模式
#define EEPROM_ADDR_GB2312 0x2800//汉字内码区首址
#define EEPROM_ADDR_GB2312_1 0x2A00//汉字内码区首址
#define EEPROM_ADDR_GB2312_2 0x2C00//汉字内码区首址
#define EEPROM_ADDR_GB2312_3 0x2E00//汉字内码区首址
unsigned char xdata Display_Buffer_Y0[14] _at_ 0x0000; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y1[14] _at_ 0x000e; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y2[14] _at_ 0x001c; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y3[14] _at_ 0x002a; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y4[14] _at_ 0x0038; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y5[14] _at_ 0x0046; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y6[14] _at_ 0x0054; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y7[14] _at_ 0x0062; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y8[14] _at_ 0x0070; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y9[14] _at_ 0x007e; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y10[14] _at_ 0x008c; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y11[14] _at_ 0x009a; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y12[14] _at_ 0x00a8; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y13[14] _at_ 0x00b6; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y14[14] _at_ 0x00c4; //定义显示区域的映射缓冲区
unsigned char xdata Display_Buffer_Y15[14] _at_ 0x00d2; //定义显示区域的映射缓冲区
unsigned int HZ_CNT_TOTAL;//定义总汉字数,从上位机获得
extern unsigned char xdata Display_Mode; //显示模式
extern unsigned char xdata Refesh_Speed; //刷新率
extern unsigned char xdata Move_L_Speed; //左移动速度
extern unsigned char xdata Pause_Time; //定格时间
extern unsigned char xdata Back_Ground; //正显反显选择
extern void DownLoad_Mode(void);
void Shift_Left_One_bit(void); //显示左移一位点阵间距
extern void Delay_mS(unsigned int time);
extern unsigned char EEPROM_read (unsigned int addr);//EEPROM字节读
extern void SPI_Init(void); //SPI初始化
/*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -