用89c51单片机写一个数码管显示HELLO的程序,是在一个七段数码管上依次出现几个字母
答案:2 悬赏:70 手机版
解决时间 2021-02-17 02:59
- 提问者网友:龅牙恐龙妹
- 2021-02-16 02:45
用89c51单片机写一个数码管显示HELLO的程序,是在一个七段数码管上依次出现几个字母
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-02-16 03:36
大概理解你的意思,是在数码管一次排列好这一句话,首先第一步需要做的是数码管的取模工作。
#include
//这边为了让你看的更容易,用的是单独操作,没有用总线
sbit led1 = P1^0;
sbit led2 = P1^1;
sbit led3 = P1^2;
sbit led4 = P1^3;
sbit led5 = P1^4;
sbit led6 = P1^5;
sbit led7 = P1^6;
//看清楚自己的管脚,不一定对应,这里采用P0对应段选
code unsigned char led_paly[5] = {0x76,0x79,0x38,0x38,0x5c};
// H E L L O
void delay(unsigned int um)//延时函数
{
int i,j;
for(i = 0;i < um;i++)
{
for(j = 0;j < 200;j++);
}
}
void display()
{
P0 = led_paly[0];//显示H
led2 = 0;
delay(50);
led2 = 1;
P0 = led_paly[1];//显示E
led3 = 0;
delay(50);
led3 = 1;
P0 = led_paly[2];//显示L
led4 = 0;
delay(50);
led4 = 1;
P0 = led_paly[3];//显示E
led5 = 0;
delay(50);
led5 = 1;
P0 = led_paly[4];//显示O
led6 = 0;
delay(50);
led6 = 1;
}
void main(void)
{
while(1)
{
display();
}
}
未验证,应该差不多,首先取模,然后写显示函数,写完函数放置while(1)中无限循环下去,可追问
#include
//这边为了让你看的更容易,用的是单独操作,没有用总线
sbit led1 = P1^0;
sbit led2 = P1^1;
sbit led3 = P1^2;
sbit led4 = P1^3;
sbit led5 = P1^4;
sbit led6 = P1^5;
sbit led7 = P1^6;
//看清楚自己的管脚,不一定对应,这里采用P0对应段选
code unsigned char led_paly[5] = {0x76,0x79,0x38,0x38,0x5c};
// H E L L O
void delay(unsigned int um)//延时函数
{
int i,j;
for(i = 0;i < um;i++)
{
for(j = 0;j < 200;j++);
}
}
void display()
{
P0 = led_paly[0];//显示H
led2 = 0;
delay(50);
led2 = 1;
P0 = led_paly[1];//显示E
led3 = 0;
delay(50);
led3 = 1;
P0 = led_paly[2];//显示L
led4 = 0;
delay(50);
led4 = 1;
P0 = led_paly[3];//显示E
led5 = 0;
delay(50);
led5 = 1;
P0 = led_paly[4];//显示O
led6 = 0;
delay(50);
led6 = 1;
}
void main(void)
{
while(1)
{
display();
}
}
未验证,应该差不多,首先取模,然后写显示函数,写完函数放置while(1)中无限循环下去,可追问
全部回答
- 1楼网友:行雁书
- 2021-02-16 05:04
将HELLO编码做成表,依次出现的话,用一个变量,查表里的第一个值也就是“H”送到数码管段选显示并用一个变量记录显示位置,假如在第一个数码管上显示,这个变量为0,然后500ms后前面查表用的变量加1,查第二个 也就是E 显示在第二个数码管上,然后依次类推
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯