单片机数码管显示hello..我用的是郭天祥的TX-1C标准版
答案:3 悬赏:20
解决时间 2021-03-24 13:01
- 提问者网友:痞子房西
- 2021-03-23 13:29
#include
#define uint unsigned int
#define uchar unsigned char
sbit duanl = P2^6;
sbit weil = P2^7;
uchar code duan[] = {0x76,0x79,0x38,0x38,0x3f};
uchar code wei[] = {0xfe,0xfd,0xfd,0xfc,0xef,0xdf};
int main(){
uint a,b;
while(1){
for(a=0;a<=5;a++);
for(b=0;b<=4;b++);
weil=1;
Po = wei[a];
weil = 0;
duanl = 1;
P0 = 0xff;
duanl = 1;
P0 = duan[b];
duanl = 0;
if(a==5)
a=0;
if(b==4)
b=0;
}
}
最佳答案
- 二级知识专家网友:晨与橙与城
- 2021-03-23 14:19
int main()干什么?用void main()就可以了 void 空的 没有返回值
用了FOR语句 本身就有判断大小的 功能,还要IF ?
段和位数组编号一致,就不要A和B 了
6个数码管,5个字符,空一个就行了
a,b 这么小的取值范围,用uchar型就可以了,养成节约内存的习惯
for(a=0;a<5;a++)
{
weil=1;
Po = wei[a];
weil = 0;
duanl = 1;
P0 = duan[a];
duanl = 0;
此处最好加小延时
}
全部回答
- 1楼网友:一身浪痞味
- 2021-03-23 16:06
你是想问什么问题呢?
- 2楼网友:绝望伪装
- 2021-03-23 15:02
数码管是共阴极的,hello[]={0x6e,0x9e,0x1c,0x1c,0xfc}
p0是段选;p2是位选
char i;
void delay()
{
for(i=10000;i>0;i--);
}
void main()
{
for(i=0;i<8;i++)
{
p2=~(0x01<<i);
p0=hello[i];
delay();
}
while(1);
}
差不多就是这样啦
我要举报
大家都在看
推荐资讯