怎样用51单片机(限用C语言)控制数码管的闪烁,并且还要通过按键控制闪烁的位置,不用中断或者计时器 20
3个回答
展开全部
把P0接到数码管的数据段(段选),位选随意接个P口,具体要看你是要用几位数码管。按键也接p口,写程序就是判断按键是否按下,如果就显示一个数,那你就执行位选=0或=1.希望帮到你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<reg51.h>
#define uchar unsigned char
sbit weima=P1^0;
uchar code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uchar x)
{
uchar i;
for(i=0;i<x;i++);
for(j=0;j<120;j++);
}
main()
{
uchar num;
while(1)
{
weima=0;
P0=led_seg_code[num];
delay(100);
P0=0x00;
delay(50);
num++;
num%=10;
}
}
#define uchar unsigned char
sbit weima=P1^0;
uchar code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uchar x)
{
uchar i;
for(i=0;i<x;i++);
for(j=0;j<120;j++);
}
main()
{
uchar num;
while(1)
{
weima=0;
P0=led_seg_code[num];
delay(100);
P0=0x00;
delay(50);
num++;
num%=10;
}
}
追问
这个程序最后只显示了一个8、、、
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用简单的延时就行了。按键可以用普通的io口来读取就可以了。有问题可以发邮件到857656772@QQ.com邮箱。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询