文档详情

数码管驱动.doc

发布:2017-12-26约1.04万字共18页下载文档
文本预览下载声明
数码管驱动 //P201 电压 P202 电流 //LG5641AH管脚 共阴极 1至12脚分别为:e d h c g 4 b 3 2 f a 1 管脚的数法:有字面向自己,左下脚为第一脚,逆时针数。 #define SMYS 1 //扫描延时 #define KJYS 1000 //开机延时 #define AA 10 //A #define bb 11 //b #define CC 12 //C #define dd 13 //d #define EE 14 //E #define FF 15 //F #define HH 16 //H #define LL 17 //L #define PP 18 //P #define rr 19 //r #define UU 20 //U #define ZHX 21 //中横线 #define XHX 22 //下横线 #define OFF 23 //全灭 #define POINT 24 //带点的0 unsigned char code font[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71, 0x76,0x38,0x73,0x31,0x3e, 0x40,0x08, 0x00, 0x3f+0x80,0x06+0x80,0x5b+0x80,0x4f+0x80,0x66+0x80,0x6d+0x80,0x7d+0x80,0x07+0x80,0x7f+0x80,0x6f+0x80,}; //不带小数点 +0x80则带小数点 //0-9 A b C d E F H L P r U - _ 全灭 带点的0-9 //0-9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24-33 //unsigned char code led[]={0x31,0x32,0x34, 0x51,0x52,0x54, 0x18, }; //分别为待机,准备,工作 unsigned char data xsbuf[8]; //对应8个数码管 unsigned char data xspos; // void xsinit() { P0M0 =0xff; //提高驱动能力 P0M1 =0x00; // P2M0=0xff; // P2M1=0x00; // P0=0; //全灭 //单片机开机复位后,所有引脚为高电平,全亮?? // P2=0; } void xscl() small //显示任务 { while(1) { xspos=0; // 从第0个xsbuf开始,以下顺序不能巅倒,可以把显示缓冲放在任意数据码中显示 P0=font[xsbuf[xspos]];//加载内容 P24=0; //(低)显示 wait(SMYS); P24=1; //(高)不显示 xspos++; P0=font[xsbuf[xspos]];//加载内容 P25=0; //(低)显示 wait(SMYS); P25=1; //(高)不显示 xspos++; P0=font[xsbuf[xspos]];//加载内容 P26=0; //(低)显示 wait(SMYS); P26=1; //(高)不显示 xspos++; P0=font[xsbuf[xspos]];//加载内容 P27=0; //(低)显示 wait(SMYS); P27=1; //(高)不显示 xspos++; P0=font[xsbuf[xspos]];//加载内容 P20=0; //(低)显示 wait(SMYS); P20=1; //(高)不显示 xspos++; P0=font[xsbuf[xspos]];//加载内容 P21=0; //(低)显示 wait(SMYS); P21=1; //(高)不显示 xspos++; P0=font[xsbuf[xspos]];//加载内容 P22=0; //(低)显示 wait(SMYS); P22=1; //(高
显示全部
相似文档