1、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-
2、yellow(6) 选择按钮:输入 button,选择 USERDVC 库的 BUTTON(7) 选择好的元器件如图所示3. 放置器件振荡电路:(1) 放置 AT89C51 单片机:在 DEVICES 栏中选中 AT89C51,然后在绘制区放置到合适的位置(2) 放置晶振,隐藏 text 属性(菜单模板设置设计默认值显示隐藏文本不勾选)(3) 分别将晶振的两脚与 AT89C51 的 19、18 脚相连(4) 放置两个 22p 的电容,一端与晶振相连,另一端互连(5) 放置地节点(左侧快捷菜单栏里按下 GROUND) ,与两个电容相连复位电路:a. 放置电源节点(左侧快捷菜单栏里按下 POWER
3、)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. 使用属性
4、分配工具进行快速网络标号:按下 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,进入编辑窗口,编写跑马灯源程序(如下所示) ,保存ORG 00HSTART: MOV R2,#8MOV A, #0F
5、EHLOOP: MOV P1, ALCALL DELAYRL ADJNZ R2, LOOPLJMP STARTDELAY: MOV R5, #20D1: MOV R6, #20D2: MOV R7, #248DJNZ R7, $DJNZ R6, D2DJNZ R5, D1RETEND(3) 编译代码:源代码全部编译2. 运行仿真(1) 暂停,观察源代码窗口,寄存器窗口(调试寄存器窗口) ,SFR 窗口中的值三、 PCB(Printed Circuit Board,印制电路板)制版1. 封装检查(1) 菜单设计设计浏览器,查看(2) 回到 ISIS 界面,处理 “按钮”:右键封装工具 添加关键字
6、输入 button,选择一个,引脚 A 分别输入 1、2指定封装(3) 批量修改电阻的封装值:选中 R2-R9,按下 a,出现属性分配窗口, “字符串”框输入“package=RES40”,确定(4) 批量修改 led 的封装值:选中 D1-D8,按下 a,出现属性分配窗口, “字符串”框输入“package=LED”,确定(5) 修改 R1 的封装值:右击 编辑属性PCB Package 设置为 RES40(6) 保存:路径和文件名不要有中文2. 点击 ARES,制作 PCB 板(1) 画板框:左下角下拉框“选择当前板层”Board Edge ,顶部快捷菜单栏里按下 ,左侧快捷菜单栏里按下 ,画一个 100mm100mm 的框(2) 布局各元器件:按下 ,分别放置单片机 U1、电阻 R2-R9、晶振 X1、电容 C1-C3、按钮、led 灯 D1-D8、电阻 R1 到刚才画的板框中(3) 自动布线:顶部快捷菜单栏里按下 开始布线(4) 调整板框到合适的大小(5) 3D 预览 PCB:菜单输出3D 预览(6) 生成电源层:菜单工具生成电源层网络下拉框选择“GND=POWER” ,层下拉框选择“Top Copper”确定