点击上方蓝字关注我们
很多计算机专业学生或爱好者,在系统学习计算机相关知识时,一定会接触到 《计算机体系结构》这门课程,如果你热爱编程,C语言往往是首选也是基础。很多人会认为这两门课程过于基础,很难看到现实的应用。
如果你也这么认为,那么来看一下单片机吧,小小的芯片却五脏俱全,用简单的C语言直接操作寄存器,实现各种花哨功能,并且单片机还是嵌入式学习的基础入门,在物联网时代无疑会得到更广泛的应用。
在接下来的8次课程中,我们将会从仿真软件的使用开始,依次了解学习GPIO、外部中断、定时器中断以及串口中断,并在最后用三天时间,利用仿真软件模拟制作一辆简单的超声波避障小车车~
骑上我心爱的小车车~~它永远不会堵车~
第一天
单片机一套开发板成本大约400左右,如果囊中羞涩,我们可以先利用仿真软件进行学习(但强烈推荐购买一块开发板!!!)
Keil与Proteus
这两款软件是常见的搭配,Keil负责软件编译,Proteus则是原理图的制作,可以直观的看到程序运行时各个器件的工作状态。
今天我们会学习Keil与Proteus软件的基本操作与联调方式,并创建一个以一秒为间隔闪烁的LED小项目进行练习、验证。
咳咳咳,以下为正儿八经步骤哈:
安装Keil与Proteus软件
Keil与Proteus是开发单片机常见的编译与仿真软件,网上有很多分享版本与安装教程,请各位小可爱小宝贝小甜心儿自行百度下载安装,教程中的所有程序全部使用Keil4与Proteus8编译仿真通过。
建立Keil与Proteus的联调
分别安装成功后,Keil与Proteus如何联调工作?
第一步
将Proteus 8 Professional\MODELS 目录中的VDM51.dll文件复制到Keil/C51/BIN 目录下(如果没有可以百度下载并放入两个目录内)
第二步
用记事本打开Keil安装目录下的TOOLS.INI文件,添加黄色标识的内容,注意红线标注的数字是顺延的,因人而异。
编写第一个LED闪烁仿真程序
第一步
打开Proteus软件,选择新建,依次设置工程名、工程路径、使用模板(选择“default”)、PCB布版设计(无)、固件项目(无),完成工程创建,进入原理图绘制界面。
第二步
选择放入所需的元器件
点击元件模式,选择“P”,在关键字一栏中输入所需要的元器件名称,这里依次查找并放入 AT89C51、CAP、CAP-ELEC、CRYSTAL、RES,在“终端模式”中找到并放入POWER(电源)、GROUND,并如下图连接
这样我们就完成了单片机最小系统的构建。
第三步
在“元器件模式”中找到LED-YELLOW模块,用连接线连接,如下图所示
第四步
打开Proteus的远程编译监控器功能
确保该选项上有对勾
此时我们就完成了该案例在Proteus中的全部操作~~~~
第五步
打开Keil软件,新建一个工程,数据库选择为Atmel中的AT89C51,创建.C 文件并将该文件添加至刚刚创建的工程中
(创建新工程)
(将C文件添加到该工程中)
第六步
输入如下代码:
#include
sbit LED = P0^0;
void delay(unsigned int c)
{
unsigned char a, b;
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
void main()
{
while(1)
{
LED = ~LED;
delay(100);
}
}
第七步
选择“target option“,设置输出选项与联调软件
Output选项卡中选择生成的HEX文件就是联调时所传输给Proteus的文件,也是实际单片机中所要烧录的内容。
第八步
在Keil中运行程序,到Proteus中查看结果(Proteus应该处于开启状态,且已经打开了远程调试监视器功能)
(选择start Debug)
(Run!)
(在Proteus中观察实验现象)
如果可以观察到LED以一秒为间隔闪烁,那么表示试验成功!
另外~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果Proteus中提示“No program code load”,这一般是Proteus没有找到需要加载的二进制文件,请在Proteus中双击AT89C51芯片,在打开的窗口中“Program File”下,手动查找添加Keil生成的HEX文件,再次运行,往往可以解决该问题。
(其他文中没有提到的问题或读者有什么好的建议,欢迎后台留言~)
关注我们
发现更多精彩
~吖白白小注 关迎欢,果效病椎颈疗治有转不,野视屏大有拥能就度90转翻