LED驱动电路设计 第5章 7段LED数码管和点阵驱动课件_第1页
LED驱动电路设计 第5章 7段LED数码管和点阵驱动课件_第2页
LED驱动电路设计 第5章 7段LED数码管和点阵驱动课件_第3页
LED驱动电路设计 第5章 7段LED数码管和点阵驱动课件_第4页
LED驱动电路设计 第5章 7段LED数码管和点阵驱动课件_第5页
已阅读5页,还剩91页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章LED数码管和点阵驱动主讲:第5章LED数码管和点阵驱动主讲:内容提要LED数码管的动态显示与驱动(倒计时器)8×8LED点阵模块的驱动(数字与英文)16×16LED点阵模块的驱动(中文)五邑大学.周党培第2页2014.9内容提要LED数码管的动态显示与驱动(倒计时器)五邑大学.LED数码管五邑大学.周党培第3页2014.9LED数码管五邑大学.周党培第3页2014.9数码管内部电路共阴共阳10只引脚(2只公共端)颜色(红、黄、绿、蓝、白)gfabedch公共端A/KVf:1.8v、2v、3vIf:5mA、20mA五邑大学.周党培第4页2014.9数码管内部电路共阴共阳10只引脚(2只公共端)gf各种规格多种尺寸(0.28”0.36”0.56”1”1.8”2”3”4”5”…)多位(1、2、3、4)

五邑大学.周党培第5页2014.9各种规格多种尺寸(0.28”0.36”0.56”1”1.8”大尺寸的数码管高12cm宽9cm厚1.5cm每段位由5个LED串联小数点为1个LEDVf=10VVf=2VIf=20mA7段全亮总功率1.5W4”红色五邑大学.周党培第6页2014.9大尺寸的数码管高12cm宽9cm厚1.5cm每段位由5个LE多位数的数码管段码输入位选信号决定显示内容决定显示位置仅比单个数码管多2只脚五邑大学.周党培第7页2014.9多位数的数码管段码输入位选信号决定显示内容决定显示位置仅比单数码管动态显示示例第8页2014.9手动移位和计数自动移位和计数(慢速)加快移位速度杂乱无章?计数0~9位移0~3快速很快数码管动态显示示例第8页2014.9手动移位和计数自动移位和数码管动态显示示例第9页2014.9计数:0~9移位:0~3计数:0~3移位:0~3每一位显示的内容必须是不变的,才能稳定(看起来是静止的)数码管动态显示示例第9页2014.9计数:0~9计数:0~3单个数码管的驱动VccVcc用开关接通电源abged手工设置电路控制gfbaedch01五邑大学.周党培第10页2014.9单个数码管的驱动VccVcc用开关接通电源abged手工设置7段数码管编码1/01/0高电平点亮低电平熄灭五邑大学.周党培第11页2014.97段数码管编码1/01/P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0使用编码显示字形共阴7段码驱动器三极管译码器单片机hgfedcba例:单片机的P1端口写入0x5B则数码管显示“2”五邑大学.周党培第12页2014.9P1.7使用编码显示字形共阴7段码驱动器三极管译码器单片机h对数码管的驱动能力分析MCU共地P1、P2、P3可直接驱动P0不可以直接驱动P1、P2、P3弱上拉输出P0集电极开路输出5v10k5v1502v/20mA单段需求2v/20mA五邑大学.周党培第13页2014.9对数码管的驱动能力分析MCU共地P1、P2、P3可直接驱动P提高对数码管的驱动能力MCUP1、P2、P3弱上拉输出10k5vP1.00.3mA5vP1.05v1002v/20mA1v7个三极管放大10k五邑大学.周党培第14页2014.9提高对数码管的驱动能力MCUP1、P2、P310k5vP1.案例5.1设计一个便携的LED倒计时器基本要求4位显示(2位分钟+2位秒)采用4英寸红色LED数码管可移动、便携显示驱动方案-选项1单片机4个端口全用上每个端口管驱动1个数码管例如:要显示12分34秒P0端口写入“1”的7段码P1端口写入“2”的7段码P2端口写入“3”的7段码P3端口写入“4”的7段码占用4个端口,4个数码管不间断地工作STC89C51P0P1P2P3五邑大学.周党培第15页2014.9案例5.1设计一个便携的LED倒计时器基本要求STC89C5显示驱动方案-选项2占用单片机1.5个端口端口P1管显示内容端口1/2P2管显示位置例如:显示12分34秒先在Y0位显示“1”再在Y1位显示“2”然后Y2位显示“3”最后Y3位显示“4”又回到Y0,不断循环动态显示Gnda~gY0Y1Y2Y3P1.0~P1.6P2.0~P2.3STC89C51通过快速扫描,利用人眼视觉暂留效应达到与静态显示相同的效果节省端口资源,减小功耗(数码管轮流工作)五邑大学.周党培第16页2014.9显示驱动方案-选项2动态显示Gnda~gY0P1.0~P1动态显示Gnda~gY0Y1Y2Y3P1.7~P1.4P1.3~P1.0STC89C51显示驱动方案-选项3

CD4511按键传感器电机BCD码使用译码器可以进一步节省单片机IO资源(但增加了外围硬件成本)五邑大学.周党培第17页2014.9动态显示Gnda~gY0P1.7~P1.4P1.3~P1.硬件解决方案其他硬件问题电源匹配共阳/共阴?输入方式(设置方式)解决方案动态扫描(方案2,省电省资源)STC89C51(普及,低价)5V供电(可移动)+升压(10V)手机蓝牙APP设置(便携,灵活)MCU5Vinput10V蓝牙模块Boost手机APP五邑大学.周党培第18页2014.9硬件解决方案其他硬件问题MCU5Vinput10V蓝牙Bo软件方案功能描述倒计时时间设置按秒倒计时(最大显示99分59秒)设置、清除倒计时时间启动、暂停提示功能:倒数10秒自由设置剩余时间提示提示方式:铃声、闪烁(可组合)五邑大学.周党培第19页2014.9软件方案功能描述五邑大学.周党培第19页2014.9任务分解下位机(单片机)任务接收数据(通过蓝牙串口接收来自上位机的数据)解释数据(分析数据中包括的信息:时间、指令)执行指令(相应的动作,如设置时间、启动计时、清零等)执行倒计时(按秒实施倒计时,到达设定时间要作相应提示)五邑大学.周党培第20页2014.9任务分解下位机(单片机)任务五邑大学.周党培第20页20上位机(手机APP)任务设置倒计时时间发送倒计时时间到下位机按键处理(清零、发送、启动、暂停)并发送指令代码到下位机设置剩余时间的提示选项处理,并发送指令代码到下位机

(自由设置和倒数10秒,以及铃声和闪烁提示,多种选项组合)数据格式设计数据包含有时间和指令两部分时间:最大计时99分59秒,即5999秒(4个字节表示)指令用1个字符表示(1个字节表示)五邑大学.周党培第21页2014.9上位机(手机APP)任务五邑大学.周党培第21页2014数据内容(1)例如:要发送倒计时时间为1分20秒,即80秒,则要发送给下位机的数据为:00801五邑大学.周党培第22页2014.9数据内容(1)例如:要发送倒计时时间为1分20秒,即80秒,数据内容(2)五邑大学.周党培第23页2014.9数据内容(2)五邑大学.周党培第23页2014.9LED点阵的应用与驱动五邑大学.周党培第24页2014.9LED点阵的应用与驱动五邑大学.周党培第24页2014.8×8点阵的结构每一行即一个数码管相当于8个数码管五邑大学.周党培第25页2014.9行线=位选信号,列线=显示内容8×8点阵的结构每一行即一个数码管相当于8个数码管五邑大学MAX7219点阵驱动器位选输出段码输出串行数据输入移入数据控制时钟输入写数据允许五邑大学.周党培第26页2014.9MAX7219点阵驱动器位段串行数据输入移入数据控写数据允许MAX7219的数据格式及寄存器功能举例从单片机移入MAX7219的数据格式(16位,双字节)五邑大学.周党培第27页2014.9MAX7219的数据格式及寄存器功能举例从单片机移入MAX7硬件连接和数据传输过程0x140x4数据寄存器①CS=0(允许数据更改)②CLK=0(为上升沿而先设置一个低电平)③DIN=DATA&0x80(选取数据的最高位)④CLK=1(把数据移入寄存器)⑤DATA<<1(数据左移一位)⑥重复②③④⑤直到移入全部16位数据为止⑦CS=1(数据锁存生效,不允许变更)数据从高位开始逐位向左移入寄存器高位寄存器低位高8位含地址驱动行线低8位显示数据驱动列线五邑大学.周党培第28页2014.9硬件连接和数据传输过程0x140x4数据寄存器①CS=0(MAX7219工作原理连接点阵的行线连接点阵的列线16位数据数据向后级联CS=0时开始移入到移位寄存器CS=1时分配到内部寄存器任意项(0000)内部寄存器地址数据MCU五邑大学.周党培第29页2014.9MAX7219工作原理连接点阵的行线连接点阵的列线16位数据示例:8x8点阵显示数字与字母五邑大学.周党培第30页2014.9示例:8x8点阵显示数字与字母五邑大学.周党培第30页2程序示例#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint

//定义单片机与Max7219的接口sbitMax7219_pinCLK=P2^2; //时钟信号接口sbitMax7219_pinCS=P2^1; //数据锁存生效控制信号sbitMax7219_pinDIN=P2^0; //串行数据接口五邑大学.周党培第31页2014.9程序示例五邑大学.周党培第31页2014.9//数字“0~9”和字母“A~F”显示内容ucharcodedisp1[16][8]={{0x0,0x3e,0x41,0x41,0x41,0x3e,0x0,0x0}, //0{0x0,0x0,0x1,0x7f,0x21,0x0,0x0,0x0}, //1{0x0,0x31,0x49,0x45,0x43,0x21,0x0,0x0}, //2{0x0,0x36,0x49,0x49,0x49,0x22,0x0,0x0}, //3{0x0,0x4,0x7f,0x24,0x14,0xc,0x0,0x0}, //4{0x0,0x4e,0x51,0x51,0x51,0x72,0x0,0x0}, //5{0x0,0x6,0x49,0x49,0x29,0x1e,0x0,0x0}, //6{0x0,0x60,0x50,0x48,0x47,0x40,0x0,0x0}, //7{0x0,0x36,0x49,0x49,0x49,0x36,0x0,0x0}, //8{0x0,0x3c,0x4a,0x49,0x49,0x30,0x0,0x0}, //9{0x0,0x1f,0x24,0x44,0x24,0x1f,0x0,0x0}, //A{0x0,0x36,0x49,0x49,0x41,0x7f,0x0,0x0}, //B{0x0,0x22,0x41,0x41,0x41,0x3e,0x0,0x0}, //C{0x0,0x3e,0x41,0x41,0x41,0x7f,0x0,0x0}, //D{0x0,0x41,0x49,0x49,0x49,0x7f,0x0,0x0}, //E{0x0,0x40,0x48,0x48,0x48,0x7f,0x0,0x0}, //F};五邑大学.周党培第32页2014.9//数字“0~9”和字母“A~F”显示内容五邑大学.周党//延时函数//功能:延时x毫秒voidDelay_xms(uintx){uinti,j;for(i=0;i<x;i++)for(j=0;j<112;j++);}五邑大学.周党培第33页2014.9//延时函数五邑大学.周党培第33页2014.9//写入一个字节//功能:向MAX7219写入8位数据//入口参数:DATA(8位的显示内容的数据或地址码)//出口参数:无voidWrite_Max7219_byte(ucharDATA){ uchari; Max7219_pinCS=0; //允许数据更新(不锁存)

for(i=8;i>=1;i--) //送8位数据{ Max7219_pinCLK=0; //时钟置低,为产生上升沿作准备Max7219_pinDIN=DATA&0x80;//从最高位开始逐位移入DATA=DATA<<1; //左移一位Max7219_pinCLK=1; //时钟上升沿,执行移入一位数据}}五邑大学.周党培第34页2014.9//写入一个字节五邑大学.周党培第34页2014.9//载入地址和数据//功能:向MAX7219写入数据(完整的16位)//入口参数:address、dat//出口参数:无voidWrite_Max7219(ucharaddress,uchardat){Max7219_pinCS=0; Write_Max7219_byte(address);//写入地址,即点阵第几行(高8位)Write_Max7219_byte(dat);//写入数据,即该行哪些灯亮灭(低8位) Max7219_pinCS=1;//数据锁存生效,地址送行扫描处理,内容//送到相应行的显示寄存器}五邑大学.周党培第35页2014.9//载入地址和数据五邑大学.周党培第35页2014.9//MAX7219初始化//功能:对MAX7219的工作模式进行初始化(向相应的地址写控制码)//入口参数:无//出口参数:无voidInit_MAX7219(void){Write_Max7219(0x09,0x00);//译码方式:不需要译码Write_Max7219(0x0a,0x03);//亮度

Write_Max7219(0x0b,0x07);//扫描界限;8个数码管显示Write_Max7219(0x0c,0x01);//掉电模式:0,普通模式:1Write_Max7219(0x0f,0x00);//显示测试:1;测试结束,正常显示:0}五邑大学.周党培第36页2014.9//MAX7219初始化五邑大学.周党培第36页2014voidmain(void) //主程序{uchari,j;Delay_xms(50); //延时50msInit_MAX7219(); //初始化while(1) //死循环{for(j=0;j<16;j++) //要显示“0~F”共16个字符{for(i=1;i<9;i++) //每个字符点阵有8行数据Write_Max7219(i,disp1[j][i-1]);//地址i=0x1~0x8,第j个字符disp[j][*]Delay_xms(1000); //每个数字或字母显示1秒}}}五邑大学.周党培第37页2014.9voidmain(void) //主程序五邑大学.周2、LED点阵的级联多个LED点阵的连接MAX7219MAX7219数据从MAX7219的Din脚输入,从Dout脚输出,逐级向下传递(即级联)其他4只引脚的信号各级相同(并联)五邑大学.周党培第38页2014.92、LED点阵的级联多个LED点阵的连接MAX7219MAX数据传输(以MAX7219驱动芯片为例)000010000001110000011100地址码为0x02(2号数据寄存器),要传送的16位数据为

000000100000100000000010000111000000001000011100移入次序0000001000011100数据移入寄存器的方向(因此末级数据先入)00000010000111000000001000001000第1级第2级第3级CS=0CS=1锁存数据传输(以MAX7219驱动芯片为例)000010000实例每一级显示一个字符3级显示4个字符(图案)五邑大学.周党培第40页2014.9实例每一级显示一个字符3级显示4个字符(图案)五邑大学.16×16点阵显示汉字点阵显示实质上是图形显示,每个字符由点阵图形构成点阵的点数(像素)越多,分辨率越高中文字符的笔画较多,通常1个字符最小分辨率需要16×1616×16点阵由4个8×8点阵构成五邑大学.周党培第41页2014.916×16点阵显示汉字点阵显示实质上是图形显示,每个字符由中文字符的点阵数据汉字字形数据排列2:0x084:0xFC6:0x088:0x4810:0xE812:0x0814:0x2816:0xF818:0x4820:0xE822:0x4824:0x4826:0x4828:0xC830:0x2832:0x101:0x003:0x3F5:0x217:0x219:0x2F11:0x2113:0x2115:0x3F17:0x2019:0x2721:0x2423:0x2425:0x2427:0x4729:0x8431:0x00一个中文字符需要32个字节的数据组成第42页2014.9中文字符的点阵数据汉字字形数据排列2:0x084:0xFC6字模、字库、区位码Byte1Byte3Byte5Byte7Byte9Byte11Byte13Byte15Byte2Byte4Byte6Byte8Byte10Byte12Byte14Byte16Byte17Byte19Byte21Byte23Byte25Byte27Byte29Byte31Byte18Byte20Byte22Byte24Byte26Byte28Byte30Byte328×8点阵(1)8×8点阵(2)8×8点阵(3)8×8点阵(4)中文字符标准化,做成字模数据存放在二进制文件中16×16点阵中文字库文件HZK16一级汉字3755个二级汉字3008个图形符号682个分94区,每区94个字符存放调取这些字模数据,首先要找到该字符的字模数据在字库文件中的位置(区码和位码)提取字模数据的步骤输入外码(拼音、五笔)转换为内码(区位码)定位该字符字模数据的首地址依次读出连续32个字节的数据五邑大学.周党培第43页2014.9字模、字库、区位码Byte1Byte3Byte5Byt区位码查询APP第44页2014.9周:54区60位党:21区19位培:37区64位区位码查询APP第44页2014.9周:54区60位16×16点阵的驱动16行16列决定某一时刻点亮哪一行决定该时刻该行的显示内容第45页2014.916×16点阵的驱动16行16列决定某一时刻决定该时刻该行示例一个16×16点阵显示中文字符示例五邑大学.周党培第46页2014.9示例一个16×16点阵显示中文字符示例五邑大学.周党培示例一个16×16点阵显示中文字符示例五邑大学.周党培第47页2014.9示例一个16×16点阵显示中文字符示例五邑大学.周党培五邑大学.周党培第48页2014.9五邑大学.周党培第48页2014.9第5章LED数码管和点阵驱动主讲:第5章LED数码管和点阵驱动主讲:内容提要LED数码管的动态显示与驱动(倒计时器)8×8LED点阵模块的驱动(数字与英文)16×16LED点阵模块的驱动(中文)五邑大学.周党培第50页2014.9内容提要LED数码管的动态显示与驱动(倒计时器)五邑大学.LED数码管五邑大学.周党培第51页2014.9LED数码管五邑大学.周党培第3页2014.9数码管内部电路共阴共阳10只引脚(2只公共端)颜色(红、黄、绿、蓝、白)gfabedch公共端A/KVf:1.8v、2v、3vIf:5mA、20mA五邑大学.周党培第52页2014.9数码管内部电路共阴共阳10只引脚(2只公共端)gf各种规格多种尺寸(0.28”0.36”0.56”1”1.8”2”3”4”5”…)多位(1、2、3、4)

五邑大学.周党培第53页2014.9各种规格多种尺寸(0.28”0.36”0.56”1”1.8”大尺寸的数码管高12cm宽9cm厚1.5cm每段位由5个LED串联小数点为1个LEDVf=10VVf=2VIf=20mA7段全亮总功率1.5W4”红色五邑大学.周党培第54页2014.9大尺寸的数码管高12cm宽9cm厚1.5cm每段位由5个LE多位数的数码管段码输入位选信号决定显示内容决定显示位置仅比单个数码管多2只脚五邑大学.周党培第55页2014.9多位数的数码管段码输入位选信号决定显示内容决定显示位置仅比单数码管动态显示示例第56页2014.9手动移位和计数自动移位和计数(慢速)加快移位速度杂乱无章?计数0~9位移0~3快速很快数码管动态显示示例第8页2014.9手动移位和计数自动移位和数码管动态显示示例第57页2014.9计数:0~9移位:0~3计数:0~3移位:0~3每一位显示的内容必须是不变的,才能稳定(看起来是静止的)数码管动态显示示例第9页2014.9计数:0~9计数:0~3单个数码管的驱动VccVcc用开关接通电源abged手工设置电路控制gfbaedch01五邑大学.周党培第58页2014.9单个数码管的驱动VccVcc用开关接通电源abged手工设置7段数码管编码1/01/0高电平点亮低电平熄灭五邑大学.周党培第59页2014.97段数码管编码1/01/P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0使用编码显示字形共阴7段码驱动器三极管译码器单片机hgfedcba例:单片机的P1端口写入0x5B则数码管显示“2”五邑大学.周党培第60页2014.9P1.7使用编码显示字形共阴7段码驱动器三极管译码器单片机h对数码管的驱动能力分析MCU共地P1、P2、P3可直接驱动P0不可以直接驱动P1、P2、P3弱上拉输出P0集电极开路输出5v10k5v1502v/20mA单段需求2v/20mA五邑大学.周党培第61页2014.9对数码管的驱动能力分析MCU共地P1、P2、P3可直接驱动P提高对数码管的驱动能力MCUP1、P2、P3弱上拉输出10k5vP1.00.3mA5vP1.05v1002v/20mA1v7个三极管放大10k五邑大学.周党培第62页2014.9提高对数码管的驱动能力MCUP1、P2、P310k5vP1.案例5.1设计一个便携的LED倒计时器基本要求4位显示(2位分钟+2位秒)采用4英寸红色LED数码管可移动、便携显示驱动方案-选项1单片机4个端口全用上每个端口管驱动1个数码管例如:要显示12分34秒P0端口写入“1”的7段码P1端口写入“2”的7段码P2端口写入“3”的7段码P3端口写入“4”的7段码占用4个端口,4个数码管不间断地工作STC89C51P0P1P2P3五邑大学.周党培第63页2014.9案例5.1设计一个便携的LED倒计时器基本要求STC89C5显示驱动方案-选项2占用单片机1.5个端口端口P1管显示内容端口1/2P2管显示位置例如:显示12分34秒先在Y0位显示“1”再在Y1位显示“2”然后Y2位显示“3”最后Y3位显示“4”又回到Y0,不断循环动态显示Gnda~gY0Y1Y2Y3P1.0~P1.6P2.0~P2.3STC89C51通过快速扫描,利用人眼视觉暂留效应达到与静态显示相同的效果节省端口资源,减小功耗(数码管轮流工作)五邑大学.周党培第64页2014.9显示驱动方案-选项2动态显示Gnda~gY0P1.0~P1动态显示Gnda~gY0Y1Y2Y3P1.7~P1.4P1.3~P1.0STC89C51显示驱动方案-选项3

CD4511按键传感器电机BCD码使用译码器可以进一步节省单片机IO资源(但增加了外围硬件成本)五邑大学.周党培第65页2014.9动态显示Gnda~gY0P1.7~P1.4P1.3~P1.硬件解决方案其他硬件问题电源匹配共阳/共阴?输入方式(设置方式)解决方案动态扫描(方案2,省电省资源)STC89C51(普及,低价)5V供电(可移动)+升压(10V)手机蓝牙APP设置(便携,灵活)MCU5Vinput10V蓝牙模块Boost手机APP五邑大学.周党培第66页2014.9硬件解决方案其他硬件问题MCU5Vinput10V蓝牙Bo软件方案功能描述倒计时时间设置按秒倒计时(最大显示99分59秒)设置、清除倒计时时间启动、暂停提示功能:倒数10秒自由设置剩余时间提示提示方式:铃声、闪烁(可组合)五邑大学.周党培第67页2014.9软件方案功能描述五邑大学.周党培第19页2014.9任务分解下位机(单片机)任务接收数据(通过蓝牙串口接收来自上位机的数据)解释数据(分析数据中包括的信息:时间、指令)执行指令(相应的动作,如设置时间、启动计时、清零等)执行倒计时(按秒实施倒计时,到达设定时间要作相应提示)五邑大学.周党培第68页2014.9任务分解下位机(单片机)任务五邑大学.周党培第20页20上位机(手机APP)任务设置倒计时时间发送倒计时时间到下位机按键处理(清零、发送、启动、暂停)并发送指令代码到下位机设置剩余时间的提示选项处理,并发送指令代码到下位机

(自由设置和倒数10秒,以及铃声和闪烁提示,多种选项组合)数据格式设计数据包含有时间和指令两部分时间:最大计时99分59秒,即5999秒(4个字节表示)指令用1个字符表示(1个字节表示)五邑大学.周党培第69页2014.9上位机(手机APP)任务五邑大学.周党培第21页2014数据内容(1)例如:要发送倒计时时间为1分20秒,即80秒,则要发送给下位机的数据为:00801五邑大学.周党培第70页2014.9数据内容(1)例如:要发送倒计时时间为1分20秒,即80秒,数据内容(2)五邑大学.周党培第71页2014.9数据内容(2)五邑大学.周党培第23页2014.9LED点阵的应用与驱动五邑大学.周党培第72页2014.9LED点阵的应用与驱动五邑大学.周党培第24页2014.8×8点阵的结构每一行即一个数码管相当于8个数码管五邑大学.周党培第73页2014.9行线=位选信号,列线=显示内容8×8点阵的结构每一行即一个数码管相当于8个数码管五邑大学MAX7219点阵驱动器位选输出段码输出串行数据输入移入数据控制时钟输入写数据允许五邑大学.周党培第74页2014.9MAX7219点阵驱动器位段串行数据输入移入数据控写数据允许MAX7219的数据格式及寄存器功能举例从单片机移入MAX7219的数据格式(16位,双字节)五邑大学.周党培第75页2014.9MAX7219的数据格式及寄存器功能举例从单片机移入MAX7硬件连接和数据传输过程0x140x4数据寄存器①CS=0(允许数据更改)②CLK=0(为上升沿而先设置一个低电平)③DIN=DATA&0x80(选取数据的最高位)④CLK=1(把数据移入寄存器)⑤DATA<<1(数据左移一位)⑥重复②③④⑤直到移入全部16位数据为止⑦CS=1(数据锁存生效,不允许变更)数据从高位开始逐位向左移入寄存器高位寄存器低位高8位含地址驱动行线低8位显示数据驱动列线五邑大学.周党培第76页2014.9硬件连接和数据传输过程0x140x4数据寄存器①CS=0(MAX7219工作原理连接点阵的行线连接点阵的列线16位数据数据向后级联CS=0时开始移入到移位寄存器CS=1时分配到内部寄存器任意项(0000)内部寄存器地址数据MCU五邑大学.周党培第77页2014.9MAX7219工作原理连接点阵的行线连接点阵的列线16位数据示例:8x8点阵显示数字与字母五邑大学.周党培第78页2014.9示例:8x8点阵显示数字与字母五邑大学.周党培第30页2程序示例#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint

//定义单片机与Max7219的接口sbitMax7219_pinCLK=P2^2; //时钟信号接口sbitMax7219_pinCS=P2^1; //数据锁存生效控制信号sbitMax7219_pinDIN=P2^0; //串行数据接口五邑大学.周党培第79页2014.9程序示例五邑大学.周党培第31页2014.9//数字“0~9”和字母“A~F”显示内容ucharcodedisp1[16][8]={{0x0,0x3e,0x41,0x41,0x41,0x3e,0x0,0x0}, //0{0x0,0x0,0x1,0x7f,0x21,0x0,0x0,0x0}, //1{0x0,0x31,0x49,0x45,0x43,0x21,0x0,0x0}, //2{0x0,0x36,0x49,0x49,0x49,0x22,0x0,0x0}, //3{0x0,0x4,0x7f,0x24,0x14,0xc,0x0,0x0}, //4{0x0,0x4e,0x51,0x51,0x51,0x72,0x0,0x0}, //5{0x0,0x6,0x49,0x49,0x29,0x1e,0x0,0x0}, //6{0x0,0x60,0x50,0x48,0x47,0x40,0x0,0x0}, //7{0x0,0x36,0x49,0x49,0x49,0x36,0x0,0x0}, //8{0x0,0x3c,0x4a,0x49,0x49,0x30,0x0,0x0}, //9{0x0,0x1f,0x24,0x44,0x24,0x1f,0x0,0x0}, //A{0x0,0x36,0x49,0x49,0x41,0x7f,0x0,0x0}, //B{0x0,0x22,0x41,0x41,0x41,0x3e,0x0,0x0}, //C{0x0,0x3e,0x41,0x41,0x41,0x7f,0x0,0x0}, //D{0x0,0x41,0x49,0x49,0x49,0x7f,0x0,0x0}, //E{0x0,0x40,0x48,0x48,0x48,0x7f,0x0,0x0}, //F};五邑大学.周党培第80页2014.9//数字“0~9”和字母“A~F”显示内容五邑大学.周党//延时函数//功能:延时x毫秒voidDelay_xms(uintx){uinti,j;for(i=0;i<x;i++)for(j=0;j<112;j++);}五邑大学.周党培第81页2014.9//延时函数五邑大学.周党培第33页2014.9//写入一个字节//功能:向MAX7219写入8位数据//入口参数:DATA(8位的显示内容的数据或地址码)//出口参数:无voidWrite_Max7219_byte(ucharDATA){ uchari; Max7219_pinCS=0; //允许数据更新(不锁存)

for(i=8;i>=1;i--) //送8位数据{ Max7219_pinCLK=0; //时钟置低,为产生上升沿作准备Max7219_pinDIN=DATA&0x80;//从最高位开始逐位移入DATA=DATA<<1; //左移一位Max7219_pinCLK=1; //时钟上升沿,执行移入一位数据}}五邑大学.周党培第82页2014.9//写入一个字节五邑大学.周党培第34页2014.9//载入地址和数据//功能:向MAX7219写入数据(完整的16位)//入口参数:address、dat//出口参数:无voidWrite_Max7219(ucharaddress,uchardat){Max7219_pinCS=0; Write_Max7219_byte(address);//写入地址,即点阵第几行(高8位)Write_Max7219_byte(dat);//写入数据,即该行哪些灯亮灭(低8位) Max7219_pinCS=1;//数据锁存生效,地址送行扫描处理,内容//送到相应行的显示寄存器}五邑大学.周党培第83页2014.9//载入地址和数据五邑大学.周党培第35页2014.9//MAX7219初始化//功能:对MAX7219的工作模式进行初始化(向相应的地址写控制码)//入口参数:无//出口参数:无voidInit_MAX7219(void){Write_Max7219(0x09,0x00);//译码方式:不需要译码Write_Max7219(0x0a,0x03);//亮度

Write_Max7219(0x0b,0x07);//扫描界限;8个数码管显示Write_Max7219(0x0c,0x01);//掉电模式:0,普通模式:1Write_Max7219(0x0f,0x00);//显示测试:1;测试结束,正常显示:0}五邑大学.周党培第84页2014.9//MAX7219初始化五邑大学.周党培第36页2014voidmain(void) //主程序{uchari,j;Delay_xms(50); //延时50msInit_MAX7219(); //初始化while(1) //死循环{for(j=0;j<16;j++) //要显示“0~F”共16个字符{for(i=1;i<9;i++) //每个字符点阵有8行数据Write_Max7219(i,disp1[j][i-1]);//地址i=0x1~0x8,第j个字符disp[j][*]Delay_xms(1000); //每个数字或字母显示1秒}}}五邑大学.周党培第85页2014.9voidmain(void) //主程序五邑大学.周2、LED点阵的级联多个LED点阵的连接MAX7219MAX7219数据从MAX7219的Din脚输入,从Dout脚输出,逐级向下传递(即级联)其他4只引脚的信号各级相同(并联)五邑大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论