Proteus 入门教程之AVR 单片机的仿真实例
2015-01-29
(一)、AVR 单片机的仿真实例
本例是实现 AVR 驱动LCD1602,并用示波器监测数据线。
开始前先要准备好仿真文件,就是用编译器编译连接产生的调试或下载文件,不同编译器产生的文件格式是不同的,如ICC 是COF、IAR 是D90,GCC是COF、ELF。Proteus6.7sp3 支持的有COF、D90、HEX 等,ELF 暂不支持。
本例用的是:lcd_C.hex。
开始了!!!!!
运行 Proteus 6 Professional(ISIS6 Professional)出现下面窗口:
1、添加元件到元件列表中:本例要用到的元件有:ATMEGA16、LM016L(LCD1602)、“地“、示波器。单击“P”按钮,出现挑选元件对话框
在对话框的KEYWORDS 中输入ATMEGA16,得到以下结果:
单击 OK,关闭对话框,这时元件列表中列出ATMEGA16,同样找出LM016L。
最终结果:
2、放置元件:在元件列表中左键选取ATMEGA16,在原理图编辑窗口中单击左键,这样ATMEGA16 就被放到原理图编辑窗口中了。同样放置LM016L。
添加“地” :左键选择模型选择工具栏中的图标,出现:
左键选择 GROUND,并在原理图编辑窗口中左击,这样“地”就被放置到原理图编辑窗口中了。添加示波器:左键选择模型选择工具栏中的 图标,出现:
左键选择 OSCILLOSCOPE,并在原理图编辑窗口中左击,这样示波器就被放置到原理图编辑窗口中了。
补充:放置元件时要注意所放置的元件应放到蓝色方框内,如果不小心放到外面,由于在外面鼠标用不了,要用到菜单“Edit”的“Tidy” 清除,方法很简单只需单击“Tidy”即可。操作中可能要整体移动部分电路,操作方法: 先用右键拖选,再单击中的,这时这部分电路会随鼠标移动,在目标位置单击左键,这部分电路将被放到该处。
3.连线
AVR、LCD 的VSS、VDD、VEE 不需连接,默认VSS=0V、VDD=5V、VEE= -5V、GND=0V
4.添加仿真文件
先右键 ATMEGA16 再左键,出现
在Program File 中单击出现文件浏览对话框,找到lcd_C.hex 文件,单击确定完成添加文件,在Clock Frequency 中把频率改为8MHz,单击OK 退出。
5.仿真
单击开始仿真。
说明:红色代表高电平,兰色代表低电平,灰色代表不确定电平(floating)。运行时,在 Debug 菜单中可以查看AVR 的相关资源。
6、源代码调试
先声明一下,我是用ICC 的,版本ICC6.31a Pro。Proteus 是支持COF 文件调试的。在用ICC 时,你应该改一下编译器选项,AVR Studio Version 选Studio 3.x,这样在Proteus中可看到原代码了。
在 Proteus 中,完成绘制原理图和添加调试文件后(COF 文件),单击会出现AVR Source Code 窗口,如果在调试状态下没出现,请到菜单Debug 中找。
说一下,下面依次说明
1* 连续运行,会退出单步调试状态,并关闭AVR Source Code 窗口
2* 单步运行,遇到子函数会直接跳过
3* 单步运行,遇到子函数会进入其内部
4* 跳出当前函数,当用3*进入到函数内部,使用它会立即退出该函数返回上一级函数,可
见它应该与3*配合使用
5* 运行到鼠标所在行
6* 添加或删除断点,设置了断点后用程序会停在断点处。
另外,你可 AVR Source Code 窗口中右击,会出现右键菜单,上面的功能在这里不作说明。