数码管 通用驱动显示 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;
- 数码管 通用驱动显示 LCD可借鉴此方法
- LCD驱动(三):bmp图片的显示方法
- C51驱动数码管显示0~99
- zlg72128数码管驱动管理显示芯片
- 用单片机IO口直接驱动段式LCD的方法 用IO口驱动段式LED(数码管)的方法相信大家比较清楚,但用IO口直接驱动段式LCD的方法相对复杂一些。在网上搜了一下单片机IO口驱动段式LCD的方法,大
- 51单片机 时钟程序设计 数码管可闪烁显示数值
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- s3c2410+LCD+TFT+驱动+图片显示
- Linux LCD驱动(三)--图形显示
- Linux LCD驱动(三)--图形显示
- Linux LCD驱动(三)--图形显示
- linux LCD 驱动 (三) --- 图形显示
- Linux LCD驱动(三)--图形显示
- linux环境变量设置和查看
- lib仓库Nexus入门
- Program received signal SIGPIPE, Broken pipe
- hdu 2048 神、上帝以及老天爷
- 动态规划基础学习(一)线性
- 数码管 通用驱动显示 LCD可借鉴此方法
- 解析Jack.Wang网络爬虫
- STM32 位带应用
- hdu1051 Wooden Sticks (贪心)
- 《鸟哥的Linux私房菜》读书笔记一
- 第1章 1.1 什么是数据结构
- ERROR 1396 (HY000): Operation RENAME USER failed for 'root'@'%'
- The Rascal Triangle 题解
- 取订单状态