(一)流水灯 到目前为止咱们可以进行的开发就是流水灯了,但是花样很多也很漂亮,这里仅展示之一吧: #include<reg52.h> Typedef unsigned char uchar; Uchar code num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; Void delay() { For (int i=0;1!=100;i++) For(int j=0;j!=1000;j++){}; } Void main() { While(1) { For(int i=0;i!=15;i++) { P1=num[i]; Delay();} } } |
当然,实现方法很多种,这里举例的是一种,还可以使用_crol_(,)函数的调用来实现,这里不进行举例了。 (二)七位数码管: 这里原理就不多讲了,主要一点是数码管是共阴还是共阳的,主要和74HC573和74HC138有关系了,我们以共阴数码管为例进行测试:注意J6需要2、3短接上,J16上把两端口短接上。 测试程序如下: #include <reg51.h> #include <intrins.h> sbit LS138A = P2^0; //定义138译码器的输入A脚由P2.0控制 sbit LS138B = P2^1; //定义138译码器的输入脚B由P2.1控制 sbit LS138C = P2^2; //定义138译码器的输入脚C由P2.2控制 void delay(unsigned int i); //函数声名 char DelayCNT; //此表为 LED 的字模, 共阴数码管 0-9 - unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; /************主函数**********************/ main() { unsigned int i,LedNumVal=1 ; unsigned int LedOut[10]; DelayCNT=0; while(1) //进入循环状态 { if(++DelayCNT>=50) { DelayCNT=0; //延时计数 每扫描一次加一次 ++LedNumVal; //每隔50个扫描周期加一次 } LedOut[0]=Disp_Tab[LedNumVal%10000/1000]; LedOut[1]=Disp_Tab[LedNumVal%1000/100]|0x80; LedOut[2]=Disp_Tab[LedNumVal%100/10]; LedOut[3]=Disp_Tab[LedNumVal%10]; LedOut[4]=Disp_Tab[LedNumVal%10000/1000]; //千位 LedOut[5]=Disp_Tab[LedNumVal%1000/100]|0x80; //百位带小数点 LedOut[6]=Disp_Tab[LedNumVal%100/10]; //十位 LedOut[7]=Disp_Tab[LedNumVal%10]; //个位 for( i=0; i<9; i++) //实现8位动态扫描循环 { P0 = LedOut[i]; //将字模送到P0口显示 switch(i)//使用switch 语句控制位选 { case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; case 2:LS138A=0; LS138B=1; LS138C=0; break; case 3:LS138A=1; LS138B=1; LS138C=0; break; case 4:LS138A=0; LS138B=0; LS138C=1; break; case 5:LS138A=1; LS138B=0; LS138C=1; break; case 6:LS138A=0; LS138B=1; LS138C=1; break; case 7:LS138A=1; LS138B=1; LS138C=1; break; } delay(150); } } } /********************************************************************** 延时子程序 *********************************************************************/ void delay(unsigned int i) { char j; for(i; i > 0; i--) for(j = 200; j > 0; j--); } |
共4条
1/1 1 跳转至页
whlgzf的MCU DIY进程贴

关键词: whlgzf 进程 LedOut

共4条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 |