max7219驱动数码管显示程序
#include
#include
#define uchar unsigned char
char bright=0x04; /*亮度设置*/
/********************************* 定义MAX7219内部寄存器***************/
#define reg_decode 0x09 /*译码控制寄存器*/ #define reg_intensity 0x0a /*亮度寄存器*/
#define reg_scan_limit 0x0b /*扫描寄存器,控制显示亮度*/ #define reg_shutdown 0x0c /*掉电模式*/
#define reg_display_test 0x0f /*显示检测寄存器*/
/*******************定义7219端口信号************/ sbit dataa=P1^0; /*串行数据输入端口*/
sbit load=P1^1; /*载入数据*/
sbit clk=P1^2; /*片选端*/
/*************定义显示常数表格************/ static const struct{
char asci;
char segs;
}font[21]=
{{'
',0x00},{'0',0x7e},{'1',0x30},{'2',0x6d},{'3',0x79},{'4',0x33},{'5',0x5b},{'6',0
x5f},{'7',0x70},{'8',0x7f},{'9',0x7b}, {'A',0x77},{'b',0x1f},{'C',0x4e},{'d',0x3d},{'E',0x4f},{'F',0x47},{'H',0x37},{'L
',0x0e},{'r',0x46},{'P',0x67} };//5
/*****************发送一字节串行数据******************/ static void Sendbyte(uchar dataout) {char i;
load=0;
for(i=8;i>0;i--)
{
uchar mask=1<<(i-1);
clk=0;
if(dataout&mask)
dataa=1;
else
dataa=0;
clk=1;
}
}
/*********写入数据**********/
static void Write(uchar reg_number,uchar dataout)
{
load=0;
Sendbyte(reg_number);
Sendbyte(dataout);
load=1;
}
/***********查段码表将显示字符转换为显示段码************/ static uchar Lookupcode(char character) {char i;
for(i=0;i<21;i++)
{if(character==font[i].asci)
{return font[i].segs;}
}
return (0);
}
/*max7219驱动数码管显示电路程序*/
void display(char digit,char character) {
Write(digit,Lookupcode(character)); }
/**********初始化************/
void init(void)
{char i;
dataa=1;
load=1;
clk=1;
Write(reg_scan_limit,3);
Write(reg_decode,0x00);
Write(reg_shutdown,1); /*结束停机测试,正常工作*/
Write(reg_display_test,0); /*结束显示测试,正常工作*/
for(i=1;i<=8;i++)
{Write(i,0x00);
} /*关闭全部显示器*/
}
/*delay*/
/*void delay(int j) {uchar i;
for(i=0;i
本文档为【max7219驱动数码管显示程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。