本帖最后由 jinglixixi 于 2023-7-20 18:47 编辑
#申请原创#
这里用AC7802x开发板来驱动一个8*8点阵的显示模块,当然在级联的情况下它能显示更多的内容。 点阵模块与开发板的具体连接关系为: CS ---PA1
图1 使用接口
对使用引脚的配置函数为: void GPIO_DZMKInit(void)
{
GPIO_SetFunc(GPIOA, GPIO_PIN0, GPIO_FUN0);
GPIO_SetFunc(GPIOA, GPIO_PIN1, GPIO_FUN0);
GPIO_SetFunc(GPIOA, GPIO_PIN2, GPIO_FUN0);
GPIO_SetDir(GPIOA, GPIO_PIN0, GPIO_OUT);
GPIO_SetDir(GPIOA, GPIO_PIN1, GPIO_OUT);
GPIO_SetDir(GPIOA, GPIO_PIN2, GPIO_OUT);
}
为输出高低电平,所作的定义为: #defineDIN_SetHigh() GPIO_SetPinLevel(GPIOA,GPIO_PIN0, GPIO_LEVEL_HIGH) #defineDIN_SetLow() GPIO_SetPinLevel(GPIOA,GPIO_PIN0, GPIO_LEVEL_LOW)
#defineCS_SetHigh() GPIO_SetPinLevel(GPIOA,GPIO_PIN1, GPIO_LEVEL_HIGH) #defineCS_SetLow() GPIO_SetPinLevel(GPIOA,GPIO_PIN1, GPIO_LEVEL_LOW)
#defineCLK_SetHigh() GPIO_SetPinLevel(GPIOA,GPIO_PIN2, GPIO_LEVEL_HIGH) #define CLK_SetLow() GPIO_SetPinLevel(GPIOA,GPIO_PIN2, GPIO_LEVEL_LOW)
以GPIO口方式串行发送字节数据的函数为: void Write_Max7219_byte(char DATA)
{
char i;
CS_SetLow();
for(i=8;i>=1;i--)
{
CLK_SetLow();
if(DATA&0x80)
DIN_SetHigh();
else
DIN_SetLow();
DATA=DATA<<1;
CLK_SetHigh();
}
}
Max7219向指定地址发送控制字的函数为: void Write_Max7219(char address,char dat)
{
CS_SetLow();
Write_Max7219_byte(address);
Write_Max7219_byte(dat);
CS_SetHigh();
}
对Max7219进行初始化的函数为: void Init_MAX7219(void)
{
Write_Max7219(0x0b, 0x07);
Write_Max7219(0x0c, 0x01);
Write_Max7219(0x0f, 0x00);
}
为了进行显示,所配置的字库结构为: unsigned char disp[38][8]={
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x10},//1
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
...
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
...
{0x8,0x7F,0x49,0x49,0x7F,0x8,0x8,0x8}, //中
{0xFE,0xBA,0x92,0xBA,0x92,0x9A,0xBA,0xFE},//国
};
实现点阵模块显示测试的主程序为: int main(void)
{
char i,j;
InitDelay();
InitDebug();
TIMER_PrdInit();
GPIO_DZMKInit();
Init_MAX7219 ();
while (1)
{
for(j=0;j<38;j++)
{
for(i=1;i<9;i++)
{
Write_Max7219(i,disp[j][i-1]);
mdelay(40);
}
mdelay(200);
}
}
}
进行程序编译和下载,其显示效果如图2至图4所示。
图2 显示数字
图3 显示字符
图4 显示汉字
|