找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5110|回复: 2
打印 上一主题 下一主题
收起左侧

proteus和c51的学习笔记

[复制链接]
跳转到指定楼层
楼主
ID:94349 发表于 2015-11-3 20:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、        什么是单片机?
单片机是将中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时器芯片和一些输入输出接口(IO)集成在一个芯片上的微控制器(Micor-Controller)。
CPU包括运算器、控制器和寄存器三个主要部分,是单片机的核心;RAM可以被CPU随机的读写,断电后存储的内容消失;ROM中的信息只能被读取,一般用于存放固定的程序,其中的内容一般要采用专门的设备写入;IO接口是单片机与外部进行数据交换的通道,程序、数据以及现场信息需要进行输入,常用的有键盘、AD等,而计算结果需要进行输出,一般用LED、DA、电机等输出。
在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。天!这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。
不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只8只引脚。
为什么会这样呢?功能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种芯片的生产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。
既然如此,单片机的功能肯定不强,干吗要学它呢?
话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用PIII?应用的关键是看是否够用,是否有很好的性能价格比。所以8051出来十多年,依然没有被淘汰,还在不断的发展中。
为了便于理解,可以将其与PC机进行一个比较。
为了形象认识,看一个常用的MCS-51的单片机外形。MCS-51单片机是指由美国Intel公司生产的一系列单片机的总称。如80C31、80C51、80C32、80C52、87C52等。其中80C51是最早、最典型的产品,其他都是在80C51上面进行功能的增减改变而来的。所以,习惯上用80C51来称呼MCS-51系列单片机。
后来,Intel 公司将MCS-51的核心技术授权给了很多期他公司,所以,有很多公司开发有以80C51为核心的单片机。
常用的除了Intel公司的之外,还有:Atmel公司:89C51、89C52、89C2051等;Philips/Signetics公司:AMD:Siemens(Infineon)公司:Dallas公司:等等。
当然,除了常用的51系列单片机之外,还有一些其它的单片机系列,如摩托罗拉、PIC等系列,但是由于不兼容、指令系统也不相同,在此不做介绍。
二、        单片机能够干什么
单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算机外部设备,特别是机电一体化产品中,都有十分重要的用途。主要用于:
显示:通过单片机控制发光二极管或者液晶,显示特定的图形和字符;
机电控制:通过单片机控制机电产品做定时或者定向的动作;
检测:通过单片机和传感器的联合使用,用来检测产品或者工况的意外发生;
通信:通过RS232串口通信或者USB通信,传输数据和信号;
科学计算:用来实现简单的算法。等等。
那么单片机并不是解决上述应用的唯一选择,目前,可以选择的有嵌入式微机、DSP和单片机三种形式,单片机主要用于对处理速度要求不是太高,信息量不大的情况下,其主要优势就是价格低廉,技术成熟。
虽然单片机无论处理速度海曙容量方面都远小于其他两种解决方案,但是,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能。例如控制冰箱温度的控制器就不需要采用其他结构,用一片51就可以轻松实现,这样才既有较好的性能价格比。51单片机目前还在不断的发展进步,就已经说明了它有很好的应用前景。
三、        如何选择51系列单片机
不同公司生产的51系列单片机尽管型号不尽相同,但是,都对其内部的硬件资源,尤其是RAM和ROM的大小、IO的数目、中断数目和定时器数据进行了相关的参数描述。在选择时,只要能够依据实际设计要求,保证够用就行了。
我们实验选择模拟仿真,对其要求并不高,下面对51系列单片机的名称做一个简要说明。
例子:STC 89S52RC 40I PIDP40 1020。。
生产公司:商标  AD 。。
8:8051内核;
9:Flash存储器,不是其他形式, 速度快
C:CMOS工艺
5--
2:ROM的大小,8K,1是4K
RC 内部随机读写存储器的大小512B,RD+ 1280B
40 最大晶振40MHz
I工业级用品-40-85   C商业用0-70  A汽车 -40-125  M军品-55-155
PDIP 双列直插
40 引脚数
1020:2010年第20周
后面是处理工艺、序号等。
四、        什么是单片机最小系统
单片机工作时,必须提供相应的电源、晶振、复位电路,以保证单片机能够按照一定的时序读取内部程序,并逐条执行。
1、为什么要晶振
首先说晶振。简单的将,没有晶振,就没有时钟周期,就没有办法执行程序,单片机无法工作。因为单片机工作时,需要一条一条的从ROM中取出指令(数据),然后一步一步的执行。我们把这个过程称为访问存储器。单片机访问存储器一次的时间,称为一个机器周期,一般包含12个时钟周期。如果选择的晶振是12MHz,那么其时钟周期就是1/12us,一个机器周期就是1us。
单片机的所有指令中,有一些完成的较快,需要一个机器周期,还有一些是2各机器周期,还有2个比较特殊的是4各机器周期。由于执行的时间长短不同,又引入了指令周期的概念。将指令分为单周期指令,双周期指令。
机器周期除了对指令执行具有重要的意义之外,他同时也是定时器、计数器的时间基准。
2、选择什么晶振
晶振一般分为晶体振荡器和晶体谐振器。其中,晶体振荡器将外围的电容集成到振荡器内部,不需再另行设计晶振电路,只需要加载电源就可以,但是其体积较大,价格较贵。
我们一般是使用晶体谐振器,也就是常说的立式晶振,设计相应的晶振电路,非常简单,并且使用灵活,在单片集中有广泛的使用。另外,有些时候单片机需要外接时钟,那么就不需要接晶振了。
在晶振的选择上,实际应用中要依据器频率,选择,有很多单片机的开发板上采用非焊接的形式给出,便于更换,而在proteus中,只需要进行频率的修改就可以正常工作了。在外围电容大小上,一般晶振要求在8-50pF之间,经常选择的就是22pF。
3、通用的晶振电路
有的。下面利用proteus画出。




4、什么是复位电路
简单的说,单片机的复位就是和计算机的重新启动是一个概念。任何单片机在工作之前必须进行复位,是程序开始执行之前的一个准备工作,一般需要5ms左右的时间,这样才能保证里面的程序从第一步开始执行。
复位只要在单片机的RST引脚上加上高电平就可以了,并且保证5ms。
复位电路有很多种,但是从功能上讲,一般有两种,一种是电源复位,也就是单片机的启停受电源的控制,另一种是按键控制,通过按键开关连接系统电源,控制单片机复位。
5、通用的复位电路
一般采用上电复位。下面利用proteus画出。



通电时,电容两端相当是短路,于是RST高电平。然后电源通过电阻对电容充电,RST电压逐渐下降,降到一定程度后,为低电平,单片机开始工作。只要充电时间大于5ms就可以使单片机正常工作。
并不是必须采用这样的复位电路,可以根据自己的需要进行设计。比如由一个22uF的电容、1k的电阻和一个IN4148二极管构成的复位电路。其优点是降低复位引脚的对地阻抗,可以增加抗干扰能力;同时实现对电容快速放电,满足短时间复位要求。
6、电源电路
以后涉及到更多的芯片时在说。现在仅提及一个+5V。




在Protues中,电源一般是可以不画出的,因此,就简单构成了51单片机的最小系统。
图中,P0口接了一个上拉电阻,具体的作用以后讲。
五、        如何利用单片机控制二极管发光
1、二极管的发光原理是什么?
发光二极管在其两端的电压差超出其导通压降时开始工作——发光。一般情况下,这个导通压降为1.7~1.9V。下面的一些数据是网络上人们测量出来的结果,供参考。
?8?3        红色的压降为1.82~1.88V,电流5~8mA;
?8?3        绿色的压降为1.75~1.82V,电流3~5mA;
?8?3        橙色的压降为1.7~1.8V,电流3~5mA;
?8?3        兰色的压降为3.1~3.3V,电流8~10mA;
?8?3        白色的压降为3~3.2V,电流10~15mA;(5V,Φ5mm管)。
换句话说,发光二极管工作要满足电流电压的要求。由于单片机系统的信号往往是数字信号,不是5V就是0V,所以只要将发光二极管的正负极接上相应的电源就可以了。
如果用一个万用表笔测量工作的二极管,发现其存在压降,下图是利用protues仿真兰色二级管时的情况,虽然六个二极管均处于工作状态,但是亮度不同。从仿真观察的角度看,即使在二极管上串一个10Ω的电阻,这个电阻上的压降也有2V,那么,二极管上的压降就是3V;当二极管串联一个330Ω的电阻时,二极管上的压降约为2.3V,电流8mA。




如果用红色管来代替,其数值在仿真时是一样的。但是,在实际使用过程中,一般采用470Ω的限流电阻(或者采用330Ω来取得较大的亮度)。限流电阻要保证二极管的点亮电流达到5~10mA,并且保证二极管的工作电流不超出单片机IO口的最大电流。
2、如何点亮发光二极管?
为了点亮一个发光二极管,我们来准备一下。
首先是protues软件,准备好单片机AT89S52及其最小工作系统;利用P0口作2个二极管,D1连接到P0.0上,D2连接到P0.7上。理论上讲,P0.0高电平时,D1亮;P0.7低电平时,则D2亮。






然后是Keil软件,编写相应的程序。代码如下:
#include <REGX51.H>
sbit d1=P0^0;
sbit d2=P0^7;
void main()
{
while(1)
{
d1=1;
d2=0;
}
}
编译成hex文件后下载在protues的AT89S52中,就可以看到如上图的结果。




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:95689 发表于 2015-11-14 22:25 来自手机 | 只看该作者
笔记就是好看,易懂
回复

使用道具 举报

板凳
ID:382728 发表于 2021-11-20 14:37 | 只看该作者

笔记就是好看,易懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表