实验1―王冰―0115
做这个实验的时候去向同学请教,遇到挺多的问题。但是比第二个实验玩好一点,第二个实验基本是大花一对一教学,还有场外援助,这个实验自己在做的时候不想光改改老师的只显示一个字的代码,想也做成会动的那种,就自己翻课本,看自己的程序和别人的程序有什么不同,最重成功了,还是比较开心的。
这个本身就是大板的程序,在置0置1上没有什么可以改的,这是我的程序
对要显示的字符的个数进行更改 设置循环体,设置视觉暂留效果具体的在编程时遇到的问题
void main()
{
u8 i,j,n;
while(1)
{
for(j=0;j<4;j++)//设置显示字的个数,进行循环(红色字体部分)
{
for(n=0;n<50;n++){//视觉暂留的效果,每屏扫描50次(蓝色字体部分)
P0=0x7f;
for(i=0;i<8;i++)
{
P0=ledwei[i]; //位选
Hc595SendByte(ledduan[j][i]); //发送段选数据
delay(100); //延时
Hc595SendByte(0x00); //消隐
} delay(100);(红色字体部分)
if(j==4){j=0;}//四个字完成后,循环,回到第一个字码
}
}
}
}
1.想在原有的基础上改编为可以一闪一闪的那种,一开始只写了红色字体部分,然后他就出现了整片全亮的状况,但是感觉他可能是变的太快了,于是就不断的加大Delay,但是还是不行,翻课本的时候发现他写的程序有一行代码是整屏扫描50次,产生视觉暂留的效果,于是就在原有代码的基础上添加了一个for循环,然后就可以正常显示了。(个人感觉这个极为重要)
然后就在想delay没有用吗,删掉delay之后发现每个字暂留的时间会变短,所以应该是有用的。
实验1―王冰―0115图片发自简书Ap出现的情况如图
2.在第一次只有一个字符点亮的时候出现了全亮的效果,代码基本就是老师给的源代码,感觉不可能出错,可是就是找不出问题出在哪里,去请教大花,才发现是跳线帽没拔,太粗心,老师给的程序上也有提示,不看题。
正常显示后效果如下
实验1―王冰―0115 实验1―王冰―0115