历史上的今天
今天是:2025年04月11日(星期五)
2020年04月11日 | 51单片机开发中数码管显示与应用
2020-04-11 来源:eefocus
#include sbit dula=P2^6;//申明U1寄存器的锁存端,P2^6是段锁 sbit wela=P2^7;//申明U2,P2^7是挝凰? main() { wela=1; //打开U2锁存端 P0=0xfe;//送入位选信号 wela=0;//关闭U2锁存器 dula=1;//段锁 P0=0x5e;//0x06代表1 dula=0; while(1); } wela代表段选。 wela控制哪几个二数码管亮 dula 代表位选,控制数码管亮哪些?后者负责显示0~F中的十六进制中的任意字符 综合来说,控制段选是由一串二进制数字控制的,1111 1110,转化为十六进制为0xfe,只有第一个二极管会亮 如果要控制六个数码管,111000000,转换为十六进制为0xc0 同理,如果要使1,3,5中的数码管工作,二进制几位11101010,0xea 同理,2,4,6即为11010101为0xD5 #include #define uchar unsigned char #define uint unsigned int sbit dula=P2^6;//申明U1锁存端 sbit wela=P2^7;//申明U2锁存端,位生命 uchar num; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint z); void main() { wela=1;//打开U2 P0=0xd5;//表示对六个操作,一开始打开所有位选 wela=0; while(1) { for(num=0;num<16;num++) { dula=1;//打开U1,段口 P0=table[num];//送入段选信号 dula=0; delay(1000);//延时1.0秒 } } } void delay(uint z)//延时 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 这个程序实现了静态数码管的变化,6个数码管一起从0~F的变,间隔一秒。
上一篇:89C51单片机数码管显示
史海拾趣
|
KF750按键的蓝光是多个圈圈层叠,触摸的时候有“涟漪”的效果。今天有个客户想在一个产品上把原来的普通按键做成这个效果,触摸的好处理,但这个发光的材料好像是EL片。坛子里有知道的朋友吗?多谢! … 查看全部问答> |
|
我是一名初学8051者 最近看过很多关于8051的原理书 对单片机的基本原理略懂一二 想动手做些实验 一方面想加强自己对汇编指令或者说编程的熟悉程度 另一方面想对单片机有更彻底的了解 会些基本的应用 不知道怎么去选择购买板 ...… 查看全部问答> |
|
FL2440的板子,修改12M的晶体为16.9344M后,无法启动??? 请教高手们: 原FL2440的开发板,晶体为12MHz,修改为16.9344M后,无法启动,不知何因? 先说一下FL2440的bootloader的组成: 飞凌开发板提供的bootloader由uboot和eboot两部分组成,前面的uboot实现 ...… 查看全部问答> |
|
我在编译mamece3的时候出现如下错误 LINK : fatal error LNK1104: cannot open file \'subsystem:windowsce,4.00\' 请问高手如何解决这个问题,谢谢… 查看全部问答> |
|
用IAR给MSP430f4152烧写程序,总提示找不到单片机。仿真器用的UIF。 出错信息是: IarIdePm The debugging session could not be started。 Either the debugger initialization failed,or else the file \"F:\\Examination\\E-Meter\\Debug\\ ...… 查看全部问答> |




