标题:
用proteus 在8位数码管上显示 01234567,并闪烁 程序有错 拜托高手指导
[打印本页]
作者:
鱼爱水
时间:
2018-5-15 08:22
标题:
用proteus 在8位数码管上显示 01234567,并闪烁 程序有错 拜托高手指导
实验目的: 用proteus 在8位数码管上显示 01234567 ,并闪烁。请确认程序哪里有错?
Proteus中,省略了 三极管。应该不影响实验效果。但是 一直显示乱码
#include<reg52.h>
#include<intrins.h>
#define ucharunsigned char
#define uintunsigned int
uchar codeLED_DX[]=
{
0xC0, //"0"
0xF9, //"1"
0xA4, //"2"
0xB0, //"3"
0x99, //"4"
0x92, //"5"
0x82, //"6"
0xF8, //"7"
};
uchar codeLED_WX[]=
{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void DelayMs(uintx)
{
uchar i;
while(x--)
{
for(i=120;i>0;i--);
}
}
void main()
{
uchar m,k;
P0 = 0xff;
P2 = 0x00;
while(1)
{
for(k=0;k<8;k++)
{
for(m=0;m<8;m++)
{
P2 =LED_WX[k];
P0 =LED_DX[m];
DelayMs(2);
}
}
}
}
复制代码
作者:
鱼爱水
时间:
2018-5-15 08:22
拜托 各位高手,谢谢了
作者:
lxa0
时间:
2018-5-15 12:44
有闪烁是因为你的扫描时间不对。
作者:
头田荣一郎
时间:
2018-5-15 23:40
你把你的双重for循环里面的延时函数调整一下,用扫描法来显示,最关键的就是延时了,是乱码是因为闪的过快,人眼跟不上,加油,希望我可以帮到你哟
作者:
454756
时间:
2018-5-16 08:45
for(k=0;k<8;k++)
{
P2 =LED_WX[k];
P0 =LED_DX[k];
DelayMs(2);
}
嵌套for 这样肯定是不行的
作者:
hudson_51
时间:
2018-5-16 09:57
位码传输与段码传输之间要有延时 否则频率太快数码管与微处理器速度不匹配
作者:
BUYYBU
时间:
2018-5-16 10:08
void Delay1ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
作者:
wulin
时间:
2018-5-16 11:25
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code LED_DX[]=
{
0xC0, //"0"
0xF9, //"1"
0xA4, //"2"
0xB0, //"3"
0x99, //"4"
0x92, //"5"
0x82, //"6"
0xF8, //"7"
};
uchar code LED_WX[]=
{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void DelayMs(uint x)
{
uchar i;
while(x--)
{
for(i=120;i>0;i--);
}
}
void main()
{
uchar k;
P0 = 0xff;
P2 = 0x00;
while(1)
{
for(k=0;k<8;k++)
{
P0=0xff;
P2=LED_WX[k];
P0=LED_DX[k];
DelayMs(2);
}
}
}
作者:
weidoit
时间:
2018-5-30 17:13
一、运行效果
flash.gif
(702.07 KB, 下载次数: 15)
下载附件
2018-5-30 17:12 上传
二、文档打包
Test.zip
(515.04 KB, 下载次数: 42)
2018-5-30 17:12 上传
点击文件名下载附件
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1