51单片机写一个两位数码管的静态秒表

我就会写一个的,不会写了。。。各位朋友用C写一个两位数码管秒表我写到这里不知道那个口怎么写了。#include<reg51.h>#defineucharunsignedc... 我就会写一个的,不会写了。。。

各位朋友 用C写一个两位数码管秒表 我写到这里不知道那个口怎么写了。
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay ()
{
uchar i;
uint j;
for(i=0;i<200;i++)
for(j=0;j<1000;j++);
}

void main()
{
uchar i,j;
while(1)
{
for(i=0;i<10;i++)
{
P2=seg[i];
delay();
}
if (P2==0)
for(j=0;j<10;j++)
{P2=seg[j];
delay();}

}
}
展开
 我来答
靓丽还清湛的标兵5177
推荐于2017-10-29 · TA获得超过1649个赞
知道小有建树答主
回答量:1032
采纳率:100%
帮助的人:1009万
展开全部
两位跟一位电路不一样,一位时不必位选引脚,两位则必需指明位选的两个引脚,
两位时要轮询动态刷两个位,你这个delay方法不好使,要用时间中断处理
更多追问追答
追问
我说的是静态的方式
追答
静态方式多个位就得多个锁存器,加在你的硬件成本的情况下你当然可以继续用静态方法来处理,那也得指明位选引脚啊,如个位,十位等,你都没有电路图,一个8段数码管和多个8段数码管是如何接的,你得先弄明白了,然后才能设计程序去操作它们
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
11kxmx
2017-10-29 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2667万
展开全部
两重循环,一重循环0到9显示个位,另外重循环显示10位
for(j=0;j<10;j++)
{
P0=seg[j];
for(i=0;i<10;i++)
{P2=seg[i];delay();}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvt312
2013-04-12 · 超过14用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:22.4万
展开全部
我给你个程序参考一下,用的是定时器定时,是六位动态显示。发你的邮箱过来
追问
我说的是静态的方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式