修改一个51单片机C语言程序问题,要求实现数码管灯动态闪烁。

程序如下#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcha... 程序如下
#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar i,wei,ge,shi;uint temp;sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xc6, 0xa1,0x86, 0x8e};void main(){ TH0=(65536-5000)/256; TL0=(65536-5000)%256; i=0; TMOD=0x01; ET0=0x01; EA=1; TR0=1; temp=23; ge=temp%10; shi=temp/10;
while(1) { wela=1; P0=~0xfe; wela=0; dula=1; P0=table[shi]; dula=0; if(i==1) { wela=1; P0=~0xfd; wela=0; i=0; dula=1; P0=table[ge]; dula=0; }
}

}
void Timer0IRQ(void) interrupt 1{ TH0=(65536-5000)/256; TL0=(65536-5000)%256; i++;
}修改程序,使它在数码管上动态显示23,不能另起炉灶编程,要基于本程序为基础。
展开
 我来答
匿名用户
推荐于2017-08-19
展开全部
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned charsbit dula=P2^6;
sbit wela=P2^7;
uchar i,wei,ge,shi;
uint temp=23;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ,0x88,0x83, 0xc6, 0xa1,0x86, 0x8e};//void Timer0IRQ(void) interrupt 1
//{
// TH0=(65536-5000)/256;
// TL0=(65536-5000)%256;
// i++;
//}
delay(uint i)
{
uint h,f;
for(h=0;h<i;h++)
for(f=0;f<125;f++);
} void xs_hs()
{
ge=temp/10;
shi=temp%10;
wela=1;
P0=table[shi];
delay(5);
wela=0;
dula=1;
P0=table[ge];
delay(5);
dula=0;
}
void main()
{
// TMOD=0x01;
// TH0=(65536-5000)/256;
// TL0=(65536-5000)%256;
// i=0;
// EA=1;
// ET0=1;
// TR0=1; while(1)
{
xs_hs();
} }
逄佩阳曼吟
2020-01-07 · TA获得超过3582个赞
知道大有可为答主
回答量:3083
采纳率:35%
帮助的人:196万
展开全部
数码管的动态显示原理没搞懂。只要一个if语句就够了,先显十位,再显各位。利用人眼的视觉暂留效应实现动态显示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-08
展开全部
portel99se中文版的在哪下载啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式