本次实验参考的是《手把手教你学51单片机(宋雪松)》,编程软件是Keil uVision5,仿真软件是Proteus 8 Professional。
本次实现的是从右到左的实现流程,上一篇实现从左到右的实现流程,欢迎大家浏览!
我们了解到控制引脚 P0.0 经过 74HC245 控制了 DB0,P0.1 控制 DB1……P0.7 控制 DB7。我们还学到一个字节是 8 位,我们如果写一个 P0,就代表了 P0.0 到 P0.7 的全部 8 个位。图片进行说明。
在上一次实验中我采用了一种方法,而本次实验我采用了另外一种方法,当然上一种方法也是可以实现的,如果你有此疑虑,欢迎留言。
仿真图:
源码:
新建一个51工程后,可以参考此程序,希望你能有所收益,采用C语言进行编程
xx.c(xx是你的文件名):
#include<reg52.h>
void Delay (unsigned long nCount)
{
for(;nCount!=0;nCount--);
}
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
main()
{
unsigned int i=0;
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 0;
ADDR0 = 0;
while(1){
while(1){
for(i=0;i<8;i++){
Delay(5000);
P0=~(0x01<<i);
Delay(5000);
}
for(i=0;i<8;i++){
Delay(5000);
P0=~(0x01<<(7-i));
Delay(5000);
}
}}
如果你的实验出现问题,请仔细检查你的工程,代码无错。
如果你想实现下从右到左的实现流程,可以看看此篇文章