㈠ 在用proteus做仿真时怎么把程序放到单片机里面
双击该单片机,出现对话框,像我们平常的打开操作一样,“打开”找到你要烧写的hex文件点“确定”就行了……如果电路没有问题,点左下角的开始按钮就可以正常运行程序了
㈡ 哪位大虾帮帮我用AT89C51单片机控制8个Led的流水灯的单片机程序 希望是能够仿真运行的啊!急求
为了实现8个LED的流水灯效果,你需要使用正确的LED型号,例如LED-RED。下面是一个使用AT89C51单片机控制8个LED流水灯的程序示例。这个程序能够在仿真环境下运行。
程序代码如下:
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar i, j;
void delay(uint ms) {
uchar k;
while(ms--)
for(k=0;k<123;k++);
}
void main() {
while(1) {
i=0xfe;
for(j=0;j<7;j++) {
P1=i;
i=_crol_(i,1);
delay(500);
}
for(j=0;j<7;j++) {
P1=i;
i=_cror_(i,1);
delay(500);
}
for(j=0;j<8;j++) {
P1=i;
i=i<<1;
delay(500);
}
i=0x7f;
for(j=0;j<8;j++) {
P1=i;
i=i>>1;
delay(500);
}
}
}
这个程序首先设置了8个LED的初始状态,然后通过循环依次点亮每个LED,并在每个LED点亮后进行一定的延迟。通过改变i的值和使用位操作,实现了流水灯的效果。
使用_crol_和_cror_函数可以实现左移和右移操作,而delay函数用于产生延迟效果。整个程序通过在主循环中不断执行这些操作,实现了LED流水灯的动态效果。
注意,在仿真环境中运行这个程序前,确保你的仿真软件支持AT89C51单片机,并且已经正确配置了相关的寄存器和时钟设置。
如果你在编写和调试这个程序时遇到任何问题,可以尝试调整延迟时间或检查LED连接是否正确。希望这个示例能够帮助你实现预期的效果。