数码管 通用驱动显示 LCD可借鉴此方法

来源:互联网 发布:linux route gateway 编辑:程序博客网 时间:2024/05/03 00:40
/*一般来说,如果连接数码管的引脚是按顺序来驱动,那么,对于程序员来说,是减少一些工作。而对于不规则(当然按顺序的连接电路也可以用)的连接方式,本人总结一个比价快速的方法,如果电路连接正常,不用借助图纸和万用表即可快速写好程序。第一步:取段显示对应的值,0~F;共阴极和共阳极都可以用,   //取值时 SEG0对应P0.0,.....SEG7对应P0.7
const uint8 TabNum[17]={ //ABCDEFG0X3F,0X06,0x5b,0X4f,0X66,0X6d,//0-50X7d,0X07,0X7f,0X6f,0X77, //6-A0X7c,0X39,0X5e,0X79,0X71,// B C D E F};第二步:确认是共阳极还是共阴极:1:使其中的任意COM1=1,任意SEG=0,如果点亮数码管,这是共阳极,不亮则为共阴极第三步:我们以共阳极为例1:先宏定义,以便操作:#defineSETB0(unsigned char)0X01#defineSETB1 (unsigned char)0X02#defineSETB2(unsigned char)0X04#defineSETB3(unsigned char)0X08#defineSETB4(unsigned char)0X10#defineSETB5(unsigned char)0X20#defineSETB6(unsigned char)0X40#defineSETB7(unsigned char)0X80//2:COM1=1//使其中一个数码管点亮//3://先熄灭所有段//SEG在 PC PG上// PG_OUT=0XFF;//PC_OUT=0XFF;//4:// PC_OUT&=~SETB0;//从SET0循环到SET7//PG_OUT&=~SETB0;//从SET0循环到SET7//一直循环执行,直到找到对应所有的引脚//比如当执行PC_OUT&=~SETB4; 点亮了G段,则说明PC的PC4脚连接到SEGG段//5://至此,我们就可以组合来写整个程序了;//以下是我个人项目的操作取值表//点亮SEG         执行指令//SETB3     APC_OUT&=~SETB3;//SETB0 BPG_OUT&=~SETB0;    //SETB7     CPC_OUT&=~SETB7;    //SETB5     DPC_OUT&=~SETB5;//SETB6     EPC_OUT&=~SETB6    //SETB4     G        PC_OUT&=~SETB4;    //SETB2 FPC_OUT&=~SETB2;://6整个函数为:*//*输入第一数码管显示数据:SHIWEI输入第一数码管显示数据:GEWEI*/PC_OUT&=~SETB1;//共阳极,熄灭第一个数码管,COM1脚连接在PC1上PG_OUT&=~SETB1;//共阳极,熄灭第二个数码管,COM2脚连接在PG1上/*PC_OUT |=SETB1;//共阳极,熄灭第一个数码管,COM1脚连接在PC1上PG_OUT|=SETB1;//共阳极,熄灭第二个数码管,COM2脚连接在PG1上*/sx_com ++;if(sx_com<=1) //显示第一位{temp_zj=TabNum[SHIWEI];PG_OUT|=SETB1;//共阳极,//PG_OUT&=~SETB1;//共阴极,}Else  if(sx_com>=2)//显示第二位{sx_com=0;temp_zj=TabNum[GEWEI];PC_OUT|=SETB1;//共阳极//PC_OUT&=~SETB1;//共阴极,}if(temp_zj&SETB0)//取SEG A PC_OUT&=~SETB3;//共阴极则PC_OUT|=SETB3;//后面的类推else  PC_OUT|=SETB3;//共阴极则PC_OUT&=~SETB3;if(temp_zj&SETB1)//取SEG B PG_OUT&=~SETB0;elsePG_OUT|=SETB0;if(temp_zj&SETB2)//取SEG C  PC_OUT&=~SETB7;else   PC_OUT|=SETB7;if(temp_zj&SETB3)//取SEG DPC_OUT&=~SETB5;elsePC_OUT|=SETB5;if(temp_zj&SETB4)//取SEG E PC_OUT&=~SETB6;else   PC_OUT|=SETB6;if(temp_zj&SETB5)//取SEG F PC_OUT&=~SETB2;elsePC_OUT|=SETB2;if(temp_zj&SETB6)//取SEG G PC_OUT&=~SETB4;elsePC_OUT|=SETB4;


 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 中石油油卡丢失怎么办 公司加油卡丢了怎么办 yy频道被回收了怎么办 油卡里的圈存怎么办 农商银行圈存怎么办 社保卡号忘记了怎么办 陕西壳牌加油卡怎么办 联通用超了流量怎么办 联通3g上不了网怎么办 车玻璃水冻住了怎么办 车里玻璃水冻了怎么办 做现货亏了60万怎么办 宿舍太吵晚上睡不着觉怎么办 脚扎了钉子肿了怎么办 龙血树叶子下垂怎么办 龙血树叶子卷曲怎么办 3岁宝宝长期便秘怎么办 4岁小儿便秘严重怎么办 3岁宝宝便秘严重怎么办 3岁宝宝一直便秘怎么办 11个月宝宝便秘怎么办 2个月的宝宝便秘怎么办 宝宝便秘拉不下来怎么办 5一6岁儿童便秘怎么办 3个月宝宝便秘怎么办 8个月宝宝便秘怎么办 孕5个月咳嗽厉害怎么办 孕8个月咳嗽厉害怎么办 拆石膏后关节僵硬怎么办 宝宝的小腿不直怎么办 鸡咳嗽有痰呼噜怎么办 风热感冒怎么办小窍门 吃完虾喝了牛奶怎么办 三文鱼头汤腥怎么办 晚上咳嗽厉害怎么办睡不着觉 刚怀孕发烧39度怎么办 刚怀孕发烧38度怎么办 怀孕10天发烧了怎么办 怀孕2个月发烧了怎么办 lol误封3年怎么办 心悦会员到期了怎么办