记录|嵌入式实验|发光二极管——流水灯的实现

关于proteus 8的一些基本操作在另一篇记录中。

实验原理图如下(直接在proteus中绘制):

第一个LED旁边多了一个元器件,手误不小心画上去的,不碍事,去掉即可

绘图时的注意事项:

1.电阻不可过大,最好不能超过1k,不然的话,电路虽然可以正常运行,但是灯不亮。
2.选用的二极管,在libraries中输入LED时能发现好几个LED种类,比如说:LED-BIBY、LED_BIGY ,LED_BIRG等,在这个实验里区别不大。我选用的是LED-BIBY,最后两个字母的意思是连接在两种极性上LED显示不同的颜色:B-blue,Y-yellow。
3.及时保存,可能是破解版不太稳定的缘故,我的打开了一个上午没有保存,结果到了下午发现保存不了,只能重新画一次。

程序相关(我是直接在老师提供的案例里修改的):

安装好Keil uVision5后在老师提供的资料里的USER文件夹有一个LED.uvprojx文件,双击可修改程序。


main.c

鼠标选中上图中的LED_pmd(),右击选择“Go To Definition of'LED_pmd' ”,就能跳转到下图。
下面这张有修改(其实就是复制粘贴修改了一下):


LED.c

关于时间间隔的调整:
程序里有“delay_ms(500)”,括号里数字的可以修改。

同样选中“K_Data_Write”右击选择Go To Definition of'K_Data_Write' 跳转到led.h


led.h

在这里就加了一行

define K_Data_Write(num) PEout(8)=(num&0x01);PEout(9)=((num>>1)&0x01);PEout(10)=((num>>2)&0x01);PEout(11)=((num>>3)&0x01);PEout(12)=((num>>4)&0x01);PEout(13)=((num>>5)&0x01);PEout(14)=((num>>6)&0x01);PEout(15)=((num>>7)&0x01);

其实就是在上面的程序上面修改了一点然后复制粘贴下来。
~是取反的意思。

你可能感兴趣的:(记录|嵌入式实验|发光二极管——流水灯的实现)