#include #include

#define uint unsigned int

#define uchar unsigned char

uchar temp;void delay(uint);

void main()

{temp=0xfe;P0=temp;while(1)

{temp=_crol_(temp,1);delay(600);

P0=temp;} }

void delay(uint z)

{ u i n t x , y ; f o r(x = 1 0 0 ; x 》 0 ; x - -)

for(y=z;y》0;y-);}

4.3调试程序

经调试本程序,下边状态栏显示“0Errors,0 Warning”,表示“0”错误,“0”警告。

4.4生成。HEX目标文件

选中“Target 1”单击右键→“Optionfor Target ‘Target 1‘”,在弹出的对话框中,单击“Output”→“Create HEX File”打钩,再次运行程序即可生成。HEX目标文件。

5.原理图仿真

(1)在Proteus ISIS中,双击AT89C51单片机芯片,在弹出的“Edit Component”

对话框的“P r o g r a m F i l e”栏中选择“liushuideng.hex”,然后点击“OK”。

(2)在Proteus ISIS编辑窗口左下方点击播放按钮,或者在“Debug”菜单下选择“Execute”,可以看到,首先P0.0点亮LED灯,等待一秒后熄灭,同时P0.1点亮另一只LED灯,同样等待一秒后熄灭,P0.2点亮LED灯┄┄当P0.7点亮LED灯等待一秒后熄灭后,P0.0点亮LED灯┄┄如此循环,间隔时间可在delay函数中自行设定,在运行结果如图2所示。

基于Proteus软件和AT80C51单片机实现流水灯的仿真设计

LED灯左侧的点呈现蓝色时,表示点亮状态,红色时,表示熄灭状态。

6.PCB的制作

6.1统计电路原理图中使用的元器件

在ISIS中执行菜单命令“Tools”→“Billof Materials”→“2 ASCII Output”,生成元器件清单,如图3所示:

基于Proteus软件和AT80C51单片机实现流水灯的仿真设计

6.2导入网络表

在I S I S中,双击开关“K”,会弹出“Edit Component”对话框,将“Excludefrom PCB Layout”前的“√”去掉,点击“OK”;执行菜单命令“Tools”→“Netlistto ARES”,系统自动打开ARES软件。在ISIS中有些元器件没有指定封装形式,因此系统会自动弹出“Package Selector”对话框,在“Package”栏中输入相应的封装形式,对于发光二极管的封装形式为“LED”,按钮“K”的封装形式为“SW-PUSH1”。

6.3放置元器件

完成元器件封装后,进入A R E S操作界面,先要点击主工具箱中图标,此为2DGroaphics框体模式,在左下角下拉框中选择当前板层为“Board Edge”(黄色),在工作区内单击不放,拉出来个黄框,按需要设定大小,那就是PCB编辑板层。在元器件不多的情况下,为了达到自己想要的设计效果,采用手动布置元器件的方法,在主工具箱中单击元件模式图标,在元器件列表中选择某个元器件,然后在编辑区中合适位置单击鼠标左键,即可放置好该元器件;如果元器件比较多,采用自动布置元器件和手动布置元器件相结合的方法,可以大大提高制板效率。元器件放置完毕后,且右下角显示“No DRC errors”,无设计规则错误。