求一个单片机51的,用c语言编写,可对数码管闪烁赋值的程序

 我来答
窦哲
2012-04-11
知道答主
回答量:3
采纳率:0%
帮助的人:3.1万
展开全部
#include<reg52.h>
#include<intrins.h>
sbit LS138A=P2^2;
sbit LS138B=P2^3;
sbit LS138C=P2^4;
unsigned int i;
void delay(i)
{
unsigned int j;
for(i;i>0;i--)
for(j=110;j>0;j--);
}
unsigned int code Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
unsigned int DCN=0;
unsigned int NO=1;
unsigned int ledout[10];
main()
{
while(1)
{
if(++DCN>=100)
{
DCN=0;
++NO;
}

ledout[0]=Tab[NO%10000/1000];
ledout[1]=Tab[NO%1000/100]|0x80;
ledout[2]=Tab[NO%100/10];
ledout[3]=Tab[NO%10];
ledout[4]=Tab[NO%10000/1000];
ledout[5]=Tab[NO%1000/100]|0x80;
ledout[6]=Tab[NO%100/10];
ledout[7]=Tab[NO%10];
for(i=0;i<9;i++)
{
P0=ledout[i];
switch(i)
{
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(1);
}
}
yangbo911224
2012-04-09 · TA获得超过144个赞
知道小有建树答主
回答量:225
采纳率:100%
帮助的人:198万
展开全部
留爪 854091421
追问
??
追答
QQ   晕。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
960310983
2012-04-09 · TA获得超过352个赞
知道小有建树答主
回答量:867
采纳率:0%
帮助的人:210万
展开全部
闪烁 赋值? 啥意思? 是将显示的值变了还是改变闪烁的频率
追问
就是让数码管在闪烁状态赋值,然后切换到其他位置闪烁时候再次赋值
追答
哦 这个容易 
直接就是数码管扫描程序里面修改 增加延时的时间就可以闪烁 直接赋值就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式