永发信息网

求用51单片机接两个数码管,0-99动态显示程序(用C语言)

答案:2  悬赏:60  手机版
解决时间 2021-01-14 16:20
求用51单片机接两个数码管,0-99动态显示程序(用C语言)
最佳答案
#include 
#define uchar unsigned char
#define uint unsigned int
uchar DSY_CODE[]=
{
  0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
void delay(uint x)
{
     uchar i;
     while(x--)for(i=0;i<120;i++);
}
void main()
{
 uchar i;
  P0 = 0x00;
 P2 = 0x00;
  while(1)
 {
   for(i=0;i<=99;i++)
{
   P0 = DSY_CODE[i/10];
   P2 = DSY_CODE[i%10];
   delay(100);
}
 }
}
是根据你的要求设计的,你复制进去编译试一下,不过提示一下:你的51单片机P0口是要接上拉电阻的。

全部回答

兄弟,你刚学的吧,不知道你是大学生还是非大学生的,如果是大学生的话我觉得我不应该回答了,俺只是说方法,不会给什么程序的,当然并不是程序简单我就不写,不是这样的,而是你要弄清电路的工作原理,弄清程序和电路的关系,弄清的硬件,结合程序看就应该能弄清楚了。
数码的显示方式:静态和动态
静态简单,动态是用扫描技术,进行扫描的,就是显示的数据是一样的,不过利用的扫描后,就造成显示的数据不一样了,原因是显示的速度是非常快的,人的眼是分辨不出的。而你的电路采用的静态显示,那么就是数码的共极部分,当然proteus里的数码应该是共阴极的吧,而阳极是送显示的数据,这样显示的方式是静态显示
P0 P2是数码管送显示的数据,当然这两数码管一个显示个位,一个显示十位,那么你要对显示的数据进行处理一下,比如是要显示99:
uint a,b;
uint k=99;
a=99/10;//这里只取十位而已,也就是9
b=99%10//这是求模,相当于数学里说的取余数
然后再将这a和b的数据指向一个数码管显示的代码数组[弄清数码管的显示就知道怎么写出显示代码了]
第一个是个位,先显示个位,数组的运用是利用下标控制的,我们用变量b控制下标。
第二个是十位,也是利用下标控制数组的。
当然这个变量k我们可以先不赋值,让它自增或自减从最大值一直减到最小,就是从99显示到0了,
当然你的电路有些浪费I/O口,两个数码管你把段全部连在一起不就行了,然后把共极各自连接I/O口,利用动态显示,你上图所示的,根本就是静态显示,浪费资源啊,当你在设计产品时是浪费I/O口的,

我认为应该是这样的,这样节省资源,控制也非常方便的,一点儿也不能,这个才是动态显示,利用动态扫描就搞定了,要不然会浪费资源的,俺的基础有限,再说也是自学的,也好久没弄51了,现在在做其经类型的MCU了,兄弟祝你学习有成。
注意要外接上拉电阻的,P0内部没带上拉电阻,要自己接上哦,俺没画上,你做实际产品时不要忘记了。追问非常谢谢你,,追答要注意,P0要外接上拉电阻的。不知道为什么,网不太给力,给俺修改的机会都没有,你做实际产品时不能忘了,因为P0口内部是不带上拉的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
麦热孜亚是谁,有人知道嘛
单选题随着海峡两岸关系的进一步发展,包括宋
神奇的天堂…… 美丽的家乡……这是哪首歌曲
—The weather isn't good enough for an out
如图是小金鱼吐出的小气泡自深水处向上冒的过
台湾彭化县属于哪个市
这个金蝴蝶奖是谁办的?
济徐高速苏鲁收费站属于哪个交警队
表示秋天景色的词语
马自达6 13.58万上路的话要多少钱啊。
《因果:国际佛学论丛5》 这本电子版能找到吗
打篮球的三步上篮是抱着球走三步还是只能走两
有甲乙两个仓库,甲仓库原有65吨,乙仓库有25
石磨能磨豆油吗
智者修为,愚者责人什么意思
推荐资讯
杭州城北旧货市场有没有瓦缸卖
52×15的奥数计算方法怎么算
Happy street Excavation Site不能建怎么办呀
成功人士英文名A开头的
怎么才能中500万
“居”字拼音?
多选题一带电小球在空中由a点运动到b点的过程
塑料杯第一次用用开水烫过后有异味 以后还能
流域的地形、气候、水文特征以及矿产资源的蕴
求二层半农村住宅设计图
翻译:尽我之力去在茫茫人海中找到你,爱上你
凯立德导航出现:Application NaviOne.exe enc
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?