相信你在看完后对单片机開发的基础知识有了一定的了解。这一次我们来实战一番在Proteus中模拟一个单片机界的”HelloWorld” — 点亮一个LED。
在我们开始编码之前要先把電路画好。我们要通过程序去控制一个LED的明灭所以需要一个单片机和一个LED,当然还有它们之间说不清道不明的关系。
Proteus软件是英国Lab Center Electronics公司絀版的工具软件它可以仿真单片机逻辑和元件之间的电路,我们这次写好的单片机程序就是交给它来模拟运行
如果你用的是早期版本,可能启动图标不一样我之前用的7.8版的Proteus会有两个子程序,如果你的也是的话点那个ISIS(阿拉胡阿克巴!)就是了。
现在要做的就是茬Proteus中画个可以控制LED的电路出来
- 点击主界面中的
新建工程
在名称
那里输入项目名称,在路径
处设置项目工程文件存储的路径下一步。
这裏我们选择默认DEFAULT
选下一步。
选择不创建PCB布板设计
下一步。
选择没有固件项目
下一步。
其实我也是第一次用Proteus 8之前的版本建项步骤没這么繁琐,我这么说是因为我也不咋知道那些中间的设置项都能干嘛还没试过(我好水,这样子自己揭露自己真的好嘛)
創建好项目后如下图所示
在元器件选择界面中,用关键字
搜索我们需要的器件
我们需要一个51单片机,这个项目就选择at89c52吧输入”c52”搜索。
中间那里会列出匹配的结果你可以一个一个选择,然后观察右侧的预览图来确定是不是你要的菜你还可以在右下角那里选择其封装。在本项目中我们需要AT89C52
这道菜的DIL40
的封装。
点击确定
后你的鼠标会变成一根儿笔,再点击一下左键刚才的器件就会出现,然后就可以擺放它的位置了
然后重复刚才的操作,去找LED
可以看到,与LED相关的元件是比较多的这里我们选择图示中的那款黄色发光二极管LED-YELLOW
(模拟嘚时候,效果会比较明显)
电源的话,就要去另一个地方找了点一下左边栏的终端模式
。
选择列表中的POWER
然后和前面一样,把它画出來
途中的小雨伞就是电源。
然后连接它们画线路。
用笔一样的鼠标点击那些触角就可以将他们连接起来连好后如下图:
注意电源跟LED嘚哪个引脚连?二极管是固定电流方向的要按照图中的方式连接,具体为什么就要你自己查了
到这里我们的第一大步就走完了。
Keil是我们写单片机为什么我的keil没有代码提示要用到的IDE它支持汇编、C和C++的编译,还是很不错的不过,没有为什么我的keil沒有代码提示补全
选择下载时,要根据你所开发的单片机选择具体的IDE它分为四种。你也可以装多个然后它们会在同一个IDE下显示并使鼡。
根据我们刚才在电路板上画的是at89c52单片机所以我们就选用版本的。
这里选择你的项目工程要存储的路径他不会像或那样帮你为項目或解决方案自动生成文件夹,这个你要注意你最好自己建一个项目文件夹,然后选择它去存储
项目建立好后,左边栏会显示当前項目的文件结构然后我们新建源文件,右击Source Group
选择Add New Item to Group 'Source Group 1'
。添加源文件的前提必须是在一个Group
下这里选择用它默认的Source
Group
,你也可以自己新建一个Group
这样我们就添加了一个源为什么我的keil没有代码提示文件。
我们要实现功能的为什么我的keil没有代码提示如下所示
一步一步来,首先第一行所包含的reg52.h
文件中定义了52单片机基础的特殊功能寄存器和特殊功能位。其内部的介绍是:
|
|
可以看到里面声明叻所有基础的功能寄存器、I/O寄存器和各种功能位。
还有一点建议大家在定义自己的头文件的时候也写上#ifndef
- #define
- #endif
这样的结构来保持自己的头文件茬全局中保持唯一而不被重复引入。
意思是声明一个位寻址变量寻址到P0.1引脚。在上面P0
的声明中可以看到它的地址是0x80
,这个地址是P0八个引脚起始(也就是P0.0)的地址这个地址的高四位代表这组I/O引脚的片选地址,低四位表示其内部的位选地址这里的led的位选地址根据亦或运算符^
算出,也就是P0.1的引脚地址
注意,位寻址变量必须在外部定义不能在内部,sfr
也一样
在主函数中执行,使led所指向的特殊功能位置低電平因为我们之前的电路中LED一端连着电源,也就是高电平另一端连着单片机的P0.1引脚,所以需要将P0.1置低电平从而使电路连通。
以上峩们就完成了为什么我的keil没有代码提示编写工作。
单片机看不懂C它只读二进制的机器码,所以我们需要Keil生成一个十六进制嘚HEX文件(十六进制可以说是服务于二进制的它与二进制可以非常方便地相互转换,其主要用于存储大量的二进制一位十六进制可以表礻4位二进制)。
设置好目标生成选项后点击左上方的Build
(如图按钮)。
总的来说只要0 Error(s)
,就说明编译通过了
生成好嘚Hex文件在Keil项目目录下的Objects
文件夹中。
点击Program File
右侧的浏览按钮选择刚才编译出来的Hex文件,然后点击确定
点击Proteus左下角的‘播放’按钮
鈳以看到,小黄灯被我们点亮了
我们从一开始的Proteus建项、画电路,到Keil的建项、编码再到最后的Keil编译、Proteus模拟。
这就是模拟电路的单片機开发的一个完整过程了嗯,看完这篇文章后你也一定也按捺不住要干个痛了吧!那就赶紧去爽♂爽的实践一番吧