max7219/max7221为紧凑的串行输入/输出共阴极显示驱动器,用于连接微处理器(µp)与8位7段led数码管显示器、条形图显示器或64个独立的led。器件内置bcd b码译码器、多路复用扫描电路、段和位驱动器以及存储每位数字的8x8静态ram。只需一个外部电阻即可设置所有led的段电流。max7221兼容于spi™、qspi™以及microwire™接口,段驱动器带有摆率限制,以降低emi。
便利的4线串行接口可以连接所有通用µp。可对每位数字单独寻址和更新,无需重新写入整个显示器。max7219/max7221还允许用户为每位数字选择b码译码或非译码方式。
器件具有150µa低功耗关断模式、模拟和数字亮度控制、允许用户显示1至8位数字的扫描限制寄存器以及强制点亮所有led的测试模式。
如需3v工作电压或字段闪烁的应用,请参考max6951数据资料。
max7219多级联驱动程序
在使用多个7219级联时,只要在写入最后一片7219时作一特殊处理就可以了。
/*----------------显示模块----------------------*/
//级连的四个7219模块,以引出线在右边为准,自左至右为位3,2,1,0。每一个7219模块,自上至下,为a,b,。.g,h段
// 字符表的排列为charmap_x[a , b, c, d,e, f,g,h],
//模板的排列model_xxxx[char3[a , b, c, d,e, f,g,h],char2[a , b, c, d,e, f,g,h],char1[a , b, c, d,e, f,g,h],char0[a , b, c, d,e, f,g,h]]
//段数据的排列 seg_data的排列与模板的排列相同。
//7219控制寄存器
#define scanlimit 0x0b //扫描界限地址 #define scandigit 7 //0-7, 7全扫 #define decodemode 0x09 //译码模式地址 #define decodedigit 0x00 //0x00 不译码 0x01 只译字0 0x0f 译字0-3 0xff 全译码
#define intensity 0x0a // 亮度地址
#define intensitygrade 0x00 //0-f 16个档次 #define shutdown 0x0c //电源工作模式地址 #define normaloperation 1 //1 正常 0 掉电 #define displaytest 0x0f //测试模式地址 #define testmode 1 //0 正常 1 测试 #define testend 0 //0 正常 1 测试 #define no_op 0 //无操作寄存器 #define num_7219 4
延时子程序
***********************************************************/
///////////////// 延时 =6.6*x +9.6 us
void delay(unsigned int x) //22.1184mhz x=1时16.2us ,x=2 23us, x=3 29.6us
x=150 ~~=1ms { uint i;
for(i=0;i《x;i++); }
///////////延迟xms
void delay_xms(uchar x) //22mhz xms {
int i,set; set=0;
for(i=0;i《x;i++) { delay(150); //150 } }
void initmain (void) {
tmod=0x20;
th0=0xff; tl0=0xf4; ea=1; es=1;
tr1=1; }
//max7219的驱动led显示
/************************** ******************************** */ /*------------------------------------------------- 向max7219写入字节(8位)
--------------------------------------------------*/ void sendchar7219 (uchar ch)
{
uchar i,temp;
nop;
for (i=0;
i《8;i++) {
ps7219_pin_clk=0;
temp=ch&0x80;
ch=ch《《1;
if(temp) {
ps7219_pin_din=1;
}
else
{
ps7219_pin_din=0;
}
ps7219_pin_clk=1;
_nop_();
}
第四片7219 ps7219_pin_load=0;
//封锁第一片锁存操作 writeword7219 (addr,seg_data[8-addr]);
//写第四片 ps7219_pin_clk=1; writeword7219 (no_op,0);
//跳过第一、二、三片7219 writeword7219 (no_op,0);
writeword7219 (no_op,0);
ps7219_pin_load=1;
// 锁存操作
}
/*------------------------------------------------- 写一屏
/*-------------------------------------------------*/ void writeonescreen7219( )
{
char i;
for (i=7;
i》=0;
i--)
{
writeline7219 (i+1);
}
}
/*------------------------------------------------- max7219初始化
-------------------------------------------------*/
void initdis7219 (void) {
char i; for (i=num_7219; i》=0; i--)
{
writeword7219(shutdown,normaloperation);/*设置电源工作模式*/
ps7219_pin_load=1;
//锁存操作 writeword7219(scanlimit,scandigit);
/*设置扫描界限*/ ps7219_pin_load=1;
//锁存操作
writeword7219(decodemode,decodedigit);
/*设置译码模式*/ ps7219_pin_load=1;
//锁存操作 writeword7219(intensity,intensitygrade);
/*设置亮度*/ ps7219_pin_load=1;
//锁存操作 delay_xms(10);
//延迟10ms
writeword7219 (displaytest,testend);
//正常工作 ps7219_pin_load=1; //锁存操作
}
}
void main()
{
initdis7219 ();
delay_xms(50);
}
安科瑞ABAT100-HS采集器模块 电池数据监测 可配套AcrelEMS,EIOT平台
这几张关于碳化硅的图值得研究
那些能打败iPhone国产手机合集,小米MIX、华为mate9都有名
电装首创具有行车除霜功能的热泵系统
TPYBoard开发板实现LED点阵屏心形点阵的设计
max7219多级联程序
AMBA总线协议AHB、APB、AXI对比分析
嵌入式软件三大潜在问题及其测试技术
孚能科技镇江制造基地项目在江苏镇江新区举办了奠基仪式
贸泽电子新品推荐:提供来自近800家知名厂商的新产品与技术
大联大推出基于InnoGaN产品的1KW DCDC电源模块方案
oppo自称升级安卓7.1,实则改版本号?
宏齐将加强发展Mini LED及红外线两大产品业务 拟使营收恢复正成长
竹间智能和华为云推出了在线问答防疫机器人解决方案
物联网架构层如何做可以解决数据泛滥的问题
汇丰被迫为华为“求情”,忧英国5G将受到致命打击
安捷伦移动WiMAX测试仪更新固化软件,支持更高数据吞吐量
富士康进军造车能否成功?
测试工程师的发展方向和目标
汽车成像让您的汽车更安全