Proteus虚拟仿真案例-——流水灯制作一、原理图设计1.打开proteus,新建文件2.选择元器件(1)选择单片机芯片左侧快捷菜单栏里按下,按下P,在“关键字”栏中输入“8951”,选择AT89C51(2)选择晶振:输入crystal,选择CRYSTAL(3)选择电容:输入22p,左边类别中选择Capacitors,右边选择CERAMIC22P(4)选择电阻:输入10k,左边类别中选择Resistors,右边选择RESISTORS库的3WATT10K(5)选择led:输入led,左边类别中选择Optoelectronics,右边选择led-yellow(6)选择按钮:输入button,选择USERDVC库的BUTTON(7)选择好的元器件如图所示3.放置器件振荡电路:(1)放置AT89C51单片机:在DEVICES栏中选中AT89C51,然后在绘制区放置到合适的位置(2)放置晶振,隐藏text属性(菜单—模板—设置设计默认值—显示隐藏文本不勾选)(3)分别将晶振的两脚与AT89C51的19、18脚相连(4)放置两个22p的电容,一端与晶振相连,另一端互连(5)放置地节点(左侧快捷菜单栏里按下——GROUND),与两个电容相连复位电路:a.放置电源节点(左侧快捷菜单栏里按下——POWER)b.放置地节点c.放置电容,电阻,电阻一端接地,一端与电容相连,电容一端接+5V电源d.AT89C51第9脚接电阻、电容中间e.放置按钮,接电容两端f.右击按钮——编辑属性——元件参考:BUTTON,并取消“本元件不用于PCB制版”g.修改C3电容的值:右击——编辑属性——Capacitance改为10u绘制流水灯:a.放置电阻、led,右击led——编辑属性——隐藏元件值,连接电阻和ledb.使用块复制,复制7组电阻和ledc.放置电源,分别与D1-D8的一端连接d.总线绘制:左侧选择“总线模式”,绘制一条总线,连接P1口与R2-R9e.使用属性分配工具进行快速网络标号:按下a,出现属性分配窗口,“字符串”框输入“net=D#”,单击P0口的8条线,进行编号,再次按下a,出现属性分配窗口,“字符串”框输入“net=D#”,单击R2-R9的8条线,进行编号f.批量修改R2-R9的值:按下a,出现属性分配窗口,“字符串”框输入“VALUE=100”,确定二、系统仿真1.编写源代码(1)菜单——源代码——添加/删除源文件——new——文件名输入pmd.asm——打开——确定(2)菜单——源代码——pmd.asm,进入编辑窗口,编写跑马灯源程序(如下所示),保存ORG00HSTART:MOVR2,#8MOVA,#0FEHLOOP:MOVP1,ALCALLDELAYRLADJNZR2,LOOPLJMPSTARTDELAY:MOVR5,#20D1:MOVR6,#20D2:MOVR7,#248DJNZR7,$DJNZR6,D2DJNZR5,D1RETEND(3)编译代码:源代码——全部编译2.运行仿真(1)暂停,观察源代码窗口,寄存器窗口(调试——寄存器窗口),SFR窗口中的值三、PCB(PrintedCircuitBoard,印制电路板)制版1.封装检查(1)菜单——设计——设计浏览器,查看(2)回到ISIS界面,处理“按钮”:右键——封装工具——添加——关键字输入button,选择一个,引脚A分别输入1、2——指定封装(3)批量修改电阻的封装值:选中R2-R9,按下a,出现属性分配窗口,“字符串”框输入“package=RES40”,确定(4)批量修改led的封装值:选中D1-D8,按下a,出现属性分配窗口,“字符串”框输入“package=LED”,确定(5)修改R1的封装值:右击——编辑属性——PCBPackage设置为RES40(6)保存:路径和文件名不要有中文2.点击ARES,制作PCB板(1)画板框:左下角下拉框“选择当前板层”——BoardEdge,顶部快捷菜单栏里按下,左侧快捷菜单栏里按下,画一个100mm×100mm的框(2)布局各元器件:按下,分别放置单片机U1、电阻R2-R9、晶振X1、电容C1-C3、按钮、led灯D1-D8、电阻R1到刚才画的板框中(3)自动布线:顶部快捷菜单栏里按下——开始布线(4)调整板框到合适的大小(5)3D预览PCB:菜单——输出——3D预览(6)生成电源层:菜单——工具——生成电源层——网络下拉框选择“GND=POWER”,层下拉框选择“TopCopper”——确定