历史上的今天
今天是:2025年04月06日(星期日)
2020年04月06日 | 51单片机数码管的动态显示
2020-04-06 来源:eefocus
/*******************************************
* 本节实验,需要加深理解锁存器,位选线,
* 段选线等,以及防止重影的方法;和keil中数
* 组的定义;
*另外想让8个数码管同时显示不同的数字,
*靠的是程序的快速运行,和人眼的短时间缓冲原理实现的
*本例的延时设定是1ms,可以分别用100ms
*等尝试一下
******************************************/
#include #define uchar unsigned char #define uint unsigned int sbit dula = P2^6; //锁存器的段选线 sbit wela = P2^7;//锁存器位选线 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, //定义一个数组,每一个元素分别是0-f; }; void delayms(uint); void main() { while(1){ dula = 1;//打开端选线 P0 = table[0];//写入数组的第一个元素,即数字0 dula = 0;//关闭端选线,防止打开位选线时混乱 P0 = 0xff;//将数码管重置清楚,防止有重影发生,所以这步操作也叫做消影 wela = 1;//打开位选线 P0 = 0xfe;//选择位,需要点亮的数码管,当前选择的是第一个数码管 wela = 0;//关闭位选线 delayms(1);1ms的延迟。防止读写速率太快出现重影 dula = 1; P0 = table[1]; dula = 0; P0 = 0xff; wela = 1; P0 = 0xfd; wela = 0; delayms(1); dula = 1; P0 = table[2]; dula = 0; P0 = 0xff; wela = 1; P0 = 0xfb; wela = 0; delayms(1); dula = 1; P0 = table[3]; dula = 0; P0 = 0xff; wela = 1; P0 = 0xf7; wela = 0; delayms(1); } } void delayms(i) { uint j,k; for(j = i;j > 0;j--){ for(k = 110;k > 0;k--); } }
史海拾趣
|
招聘对象:嵌入式领域研发人员 招聘要求:热爱嵌入式行业,乐于助人,喜爱交流,坦诚待人。 招聘地址:上海及其周边更佳,其余也欢迎。 加入方式:39527548(QQ群号码) 上海嵌入式社区,为众多嵌入式同行提供一个交流平台,这里你可以讨论技术 ...… 查看全部问答> |
|
查了一些资料说是 必须是语音模式(AT+FCLASS=8) 用 AT+VLS=1 应答 然后输入按键值(如#键) 显示为 / 按键值(#) ~ 我试了一下结果却是这样的,为啥呢。。 AT+FCLASS=8 设置语音模式 R R R 响铃 AT+VLS ...… 查看全部问答> |
|
Is a server that maintains a TCP/IP connection to a client stateful or stateless? 最后两个单词什么意思啊 … 查看全部问答> |
|
我用的是VS2003的C#来开发WINCE4.2的应用程序....现在遇到了问题. 问题是: 我把应用程序关闭了,但发现程序还在运行, 有什么方式看我的程序里面的什么对象在运行? 注:我的板子是2410的,WINCE4.2版的操作系统,PC机开发软件是VS2003的C#. … 查看全部问答> |
|
急用,有大神有这方面的程序么?各个模块最好是分开的。 复接器实现:HDB3编码,码速调整,四路E1复接成一路E2 分接器实现:同步时钟提取,串并转换,码速恢复,HDB3译码。 有VerilogHDL的各模块代码就行。… 查看全部问答> |




