毕业设计读书笔记

读书笔记

笔记一

51系列单片机的基本结构

单片机的基本结构有中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、并行I/O接口、定时器/计数器、中断系统等几大单元,以及地址总线和控制总线组成。

1.中央处理器(CPU)

中央处理器(CPU)是整个单片机的核心部件。CPU主要由控制器和运算器组成,主要负责控制、指挥和调度整个单元系统协调地工作,完成运算和控制输入功能操作。

2.程序存储器(ROM)

51系列单片机共有4096个8位掩模ROM,用于存放用户程序、原始数据或表格。有些新型的单片机,如AT89S系列单片机采用的是Flash存储器。

3.数据存储器(RAM)

51单片机内部有128个8位用户数据存储单元(00H-7FH)和128个专用寄存器单元(80H-FFH),它们是统一编址的。专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据。

4.并行输入输出(I/O)口

单片机需要和外部设备进行通信,以便于处理外部的输入和将运算结果反馈到外部设备。51单片机的32根I/O线分为四个双向并行口P0-P3,每一根I/O线都能独立地用作输入或输出。每一根I/O线均包含锁存器、输出驱动器和输入缓冲器(三态门)。

5.串行I/O口

51单片机有串行口,通过异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工通信。

6.定时/计数器

51单片机内的可编程定时/计数器,由控制位C/T来选择其功能。作为定时器时,每个机器周期加1(计数频率为时钟频率的1/12)。作为计数器时,对应外部事件脉冲的负沿加1(最高计数频率为时钟频率的1/24)。

7.中断系统

51单片机具备较完善的中断功能,有两个外部中断、两个定时、计数器中断和一个串行中断。这些功能可以满足不同控制要求,并具有2级的优先级别选择。

8.时钟

51单片机内部有晶振感抗振荡器。外接石英晶体形成谐振回路,产生时钟信号。若用外部时钟源,XTAL1接地,XTAL2接外部时钟。片内时钟发生器将振荡器信号二分频,为芯片提供2相时钟信号。一个机器周期由6个时钟状态组成,每个时钟状态又是由2个振荡脉冲组成,因此一个机器周期包括12个振荡脉冲。当外接晶振频率为12MHZ时,一个机器周期为1微秒;当晶振频率为6MHZ时,一个机器周期为2微秒。这说明时钟信号频率越高,执行程序指令操作的时间越短。

9.CPU的时序

在单片机内部,振荡器始终驱动内部时钟发生器向CPU提供时钟信号。时钟发生器的输入是一个二分频器,这个而分频器为单片机提供一个二相时钟信号,即相位信号P1和相位信号P2,驱动CPU产生执行指令功能的机器周期。

单片机的时序是用定时单位来描述的其描述了指令执行中各控制信号在时间上的关系。这里涉及节拍、状态、机器周期和指令周期4个概念,如图2-2所示。

图2-2 单片机指令周期

通过对51单片机的学习,我了解到了51单片机的基本结构。51单片机由中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、并行I/O接口、定时器/计数器、中断系统六大单元,以及地址总线和控制总线组成。CPU是单片机的核心部件,控制着各种数据的处理过程。程序存储器(ROM)存放着用户程序、原始数据等信息。数据存储器(RAM)有128个8位用户数据存储单元和128个专用寄存器单元,他们的地址是统一编排的,数据存储单元地址为00H—7FH

专用寄存器单元地址为80H—FFH。

51单片机有四组并行I/O接口,分别为P0、P1、P2、P3 每组都对应有8个(0--7)输入\输出接口。其中P0口没有内置的上拉电阻,其余的都有内置上拉电阻。对于单片机的时钟周期是依据所用的晶振频率来计算,设计中使用的晶振频率为12MHz,所以一个机械周期为1微秒,单片机在执行单周期指令所用的时间一个机械周期,了解单片机指令的执行周期,有助于正确使用延时函数,减少单片机的等待时间从而提高运行速度。

51系列单片机与52系列机构基本相同,所以在毕业设计中对于AT89C52的学习主要参照51系列单片机。

笔记二

单片机中断系统

51系列单片机是一种多中断源的单片机,有5个中断源,它们分别是外部中断源2个,定时/计数中断2个和1个串行口中断。

1.外部中断

外部中断是有外部信号一起的,共有2个中断源。称为外部中断0和外部中断1。外部中断0的中断信号引入到CPU的P3.2引脚,外部中断1的中断信号引入到P3.3引脚。外部中断的中断请求有2种信号触发方式即电平触发方式和脉冲触发方式。电平触发方式是一种静态方式,中断请求信号时低电平有效。CPU在每个机械周期的S5P2时刻都要对P3.2/P3.3这两个引脚的电平采样,若采样值为低电平,则表示为有效的中断请求信号。脉冲触发方式的中断请求是一种动态方式,中断请求信号是脉冲的下降沿有效。

2.定时/计数器中断

定时/计数器中断发生在单片机的内部,在单片机内部有2个定时/计数器T0和T1,它们以计数的方法来实现定时或计数功能。当它作为定时器使用时,计数信号来源为内部的机器周期脉冲;作为计数器使用时,计数信号来源为P3.4和P3.5引脚。定时/计数器启动后,每来一个机器周期或在对应的引脚上检测到一个脉冲时,定时/计数器自动加1,当计数器的值从全1变为全0时,溢出标志位被置1,CPU查询到后就知道有定时/计数器的溢出中断请求。

3.串行中断

串行中断是为串行数据传送的需要而设置的。当串行口发送完一组串行数据时,就会是串行中断标志位TX置1,当串行口接收完一组数据时就会使串行接收标志位RX位置1,作为串行口中断请求标志,产生中断请求信号。

4.中断控制寄存器

对应的位符号名称为:

TF0/TF1:定时/计数器溢出中断请求标志位。

TR0/TR1:定时/计数器的运行控制位,置1为启动,置0为停止。

IT0/IT1:外部中断请求触发标志位。

IE0/IE1:外部中断请求标志位。

对应的位符号名称为:

SM0/SM1/SM2:串行口工作方式控制位。

REN:接收允许位,置1为允许,置0为禁止。

TB8/ RB8:发送/接收数据第9位。

TI/RI:发送/接收中断标志位。

中断系统是单片机宝贵的资源,使用中断可以很大程度的较少源程序的编写,在这次毕业设计中使用到了单片机的外部中断0,主要应用在4x4的矩阵键盘部分,当有任意一个按键按下的时候将会产生中断信号并传送至单片机的P3.2引脚,进而单片机执行中断函数中的指令。

如果在程序的设计中不采用中断,那么程序的编写将会变得很复杂,对于中断的位置要十分明确,而且重复中断操作又要写程序调用中断函数显然是很麻烦的。单片机各种中断都有对用的中断请求标志位,标志位都可以进行相应的位操作。

在使用单片机的中断时要明确单片机相应的中断优先级,高优先级别的中断可以打断正在进行的低级别中断,而低级别的中断无法打断高优先级中断,系统默认的中断优先级由高到低分别为:外部中断0、定时/计数器T0、外部中断1、定时/计数器T1、串行口。单片机还有控制中断优先级的寄存器IP,对应的中断方式控制位置1则为高优先级的中断,否则按照系统默认的优先级进行中断响应。中断响应受中断允许控制寄存器IE的控制。IE=1时为允许IE=0时为禁止。

笔记三

行列式键盘

行列式键盘是用n条I/O线作为行线,m条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上设置一个按键。这样,键盘中的按键个数就为m x n个。这种形式的键盘结构能够有效的提高单片机系统中I/O口的利用率。行列式按键的软件设计与独立式按键不同的只是按键识别方法不同,在行列式按键的扫描程序中,要对按键逐行逐列的扫描,得到按下的按键行列信息。

行列式键盘的扫描常用线反转方式、编程扫描方式、定时扫描方式或中断扫描方式,无论采用哪种方式,都要编写相应的按键扫面程序,在按键扫面程序中一般要完成以下几个功能:判断有无按键按下、去抖动、求所按下的按键号、转向按键处理程序。

行列式矩阵键盘,按键采用中断式扫描方式。中断式扫描方式中,当键盘上有按键被按下时将会产生中断信号向单片机发出中断请求,单片机响应中断后在中断服务程序中完成按键扫面、识别按键位置并进行按键功能处理。

按键扫描使用的是外部中断0。,它是系统默认的最高中断优先级,所以不必再设置中断优先级。采用矩阵式键盘不仅节省的单片机的I/O接口资源,而且在程序的编写中使用中断式扫描方式也减少了程序编写量,使得设计更加合理化。

凭着这次设计的机会,在收集资料的过程中也学习到了单片机键盘的几种安排方式和程序编写方法,每种方式都在不通的场合下突显出它们特有的优点。所以在各种设计中根据设计本身的需要进行择优是很必要。

笔记四

液晶显示屏lcd1602资料

(1)1602LCD主要技术参数

显示容量:16×2个字符

芯片工作电压:4.5—5.5V

工作电流:2.0mA(5.0V)

模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm

(2)引脚功能说明

第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比

度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。

第16脚:背光源负极。

通过查阅网上的资料,我学习到了lcd1602的主要技术指标,了解到我它的工作电压、电流等信息。经过学习,我知道了它各个引脚的功能,它可以与单片机使用同一电源供电。在实际使用中我们会根据使用环境的需要来调节液晶显示屏的亮度,以满足显示效果的要求,因此在电路连接时我们就需要在它的亮度调节引脚上接上一个可调电阻与电源地相连,从而可以实现可调的功能。

Lcd1602内部有两个寄存器可供用户选择,相应的给RS引脚置高电平时为数据寄存器,置低电平时为程序寄存器。在一般情况下,我们大多数使用者都不会从1602中读取数据,而是向1602写指令或数据。1062内部还储存有一些常用的字符代码,使用时只需向1602写入字符或其代码就可以在屏幕上显示该字符。

作为显示工具,lcd1602在性能上明显优越于数码管,其操作性相对于数码管要简单得多,因此本设计采用它作为显示器件。

笔记五

E2PROM器件AT24C02资料

I2C总线密码存储芯片at24c02介绍

(1)引脚功能介绍及相关知识

WP:写保护引脚,将该引脚接VCC,E2PROM就实现写保护(只读)。引脚接地或悬空,可以对器件进行读写操作。

SCL:串行时钟引脚,串行输入输出时该引脚用于输入时钟。

SDA:串行数据输入输出引脚,用来输入输出数据,该引脚为射极开路输出,需接上拉电阻。

(2)I2C总线协议

只有总线非忙时才被允许进行数据传送,在传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被当作总线的启动或停止条件。

(3)起始条件

起始调教必须在所有操作命令之前发送。时钟线保持高电平期间,数据线电平从高到低跳变作为I2C总线的启动信号。CAT24Cxxx一直监视SDA和SCL电平信号,直到条件满足时才响应。

(4)停止条件

时钟线保持高电平期间,数据线电平从低到高跳变作为I2C总线的停止信号。

(5)器件地址的约定

主器件在发送启动命令后开始传送数据,主器件发送相应的从器件地址,8位从器件地址的高四位固定为1010,接下来的3位用来定义存储器的地址,对于CAT24C021/022,这三位无意义,对于CAT24C41/042,接下来的2位无意义,第三位是地址高位,CAT24C081/082中,第一位无意义,后两位表示地址高位。

最后一位为读写控制位,“1”表示对从器件进行读写操作,“0”表示写操作。在主器件发送启动命令和一字节从器件地址后,如果与从器件地址吻合,CAT24C02将发送一个应答信号,然后再根据读/写控制为进行读或写操作。

(6)应答信号

每次数据传送成功后,接收器件将发送一个应答信号。当第九个时钟信号产生时,产生应答型号的器件将SDA下拉为低,通知已经接受到8位数据,接收到起始条件和从器件地址后,CAT24C02发送一个应答信号,如果为写操作,每接收到一个字节数据,CAT24C02发送一个应答信号。如果为读操作,CAT24C02发送一个字节数据后释放总线等待应答信号,一旦接收到应答信号,它将继续发发送数据,如果接收到主器件发送非应答信号,将结束数据传送等待停止条件。

(7)写操作

在写字节模式下,助器件发送起始命令和从器件地址信息给从器件,在从器件响应应答信号后,主器件将要写入的数据地址发送到CAT24C02的地址指针,主器件收到从器件的应答信号后再送数据到相应的数据存储区地址,CAT24C02再响应一个应答信号,主器件产生一个停止信号,然后CAT24C02启动内部写周期,在内部写周期期间,CAT24C02不再响应主器件任何请求。

(8)读操作

CAT24C02读操作的初始化方式和写操作一样,仅把R/W位置1,读操作有三种方式:立即地址读、选择地址读、连续读。

通过对AT24C02芯片的学习,我掌握了它的基本使用方法,并且学会了编

写软件来控制它对数据的读写。

AT24C02的使用需要服从I2C总线协议,只有总线非忙时才被允许进行数据传送,在传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时数据线的任何电平变化将被当作总线的启动或停止条件。在对AT24C02芯片进行读写操作时需要配合它的续写操作周期来进行才能成功将数据写入或读出。应答信号是数据是否能成功写入或读出的关键所在,当对数据进行操作时,每发送或接受一个数据都要发送一个应答信号。

笔记六

51单片机驱动能力

在51单片机系列中,现在生产厂家很多,兼容型号也很多。不同厂家生产的单片机P1口的驱动能力是不同的。下面仅举最常用的3种单片机为例,谈谈驱动能力。1. 标准的Intel8051单片机:其P0口是一个漏极开路的准双向口,驱动能力是8个LS型TTL负载。P0没有上拉(即漏极开路)其实只对输出有影响,以致只能输出低电平,不能输出高电平,而不妨碍高低电平的输入。因此对P0口来说,输出为高电平时,其输出电流为0,必须外接上拉电阻才能输出高电平;输出低电平时,允许灌入电流为0.4mA×8=3.2mA。而P1、P2、P3口是有上拉的准双向口,带负载能力为4个LS型TTL门,因此,高电平输出电流为20μA×4=80μA,低电平允许灌入电流为0.4mA×4=1.6mA。输出高低电平的带负载能力都很差,因此应该接入4.7k~10k左右的上拉电阻。 2. AT89系列单片机:因为输出电流会影响输出电压,所以参数表中是结合输出电压来提供输出电流能力的。AT89C51和AT89S51允许的高电平输出电流为:输出电压为3.7V时,电流为25μA;允许的低电平输出电流(实际为灌入电流)为:输出电压为0.45V时,电流为-1.6mA。 AT89系列单片机中有一个另类,输出电流特别大,那就是AT89C2051,允许20mA的灌电流输入,但高电平输出电流也只有30μA。 3. STC89系列单片机:晶宏科技的STC89系列单片机现在应用的人很多。由于至今没有见到正规的Datasheet,只能从它的简介上得知:通用I/O 口(36/40 个),复位后为: 准双向口/ 弱上拉(普通8051 传统I/O 口)可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏每个I/O 口驱动能力均可达到20mA,44/40 管脚的IC 建议整个芯片不要超过100mA,20/18/16 管脚的IC 建议整个芯片不要超过60mA。由此可见,晶宏的STC89系列带负载能力最强。

通过对单片机驱动能力资料的查阅,我从中了解到了一般单片机的电流驱动能力都比较小,很难直接驱动功率比较大的器件。单片机的P0口没有上拉电阻,

其拉电流的能力几乎为零,在使用时时必须要接上上拉电阻的,而灌电流也有3 毫安左右。总体而言,单片机的驱动能力十分有限,很难驱动继电器、蜂鸣器等类似的电子元器件。因此,在使用这样的器件是必须要有相关的放大电路来进行功率放大,从而达到器件所需的额定功率,是器件能够正常工作。同时,我也认识到了单片机灌电流能力远大于拉电流的能力,从而明白了为什么大多数情况下都采用灌电流形势的电路接法。

笔记七

keil uvsion3 软件简介

keil uvsion3 是德国keil software 公司推出的51系列单片机开发应用平台之一,它集编辑、编译、仿真于一体,支持汇编语言、PL/M语言和C语言的程序设计。软件仿真时除了可以模拟单片机的I/O口、定时器、中断外还可以仿真单片机的串行通信。

Keil uvsion3 软件的使用一般步骤为:1、启动软件 2、新建工程文件,在启动软件后的界面中,单击“project new project ”,将弹出工程保存对话框,输入相应的工程名称并选择保存的路径,单击确定即可。3、选择CPU型号,上一步单击确定后弹出型号选择对话框,然后选择 atmel 中的C51 单片机。4、新建文本文件,选择 file new ,在弹出的对话框中选择保存路径,名称可用默认(C语言源程序后缀名为 .c ,汇编语言的为.asm)。5、在工程中加入源程序文件,在主界面管理窗口中将 target 1项目展开,右键单击 source group 1  add file to group ‘source group 1’然后在弹出的对话框中选择需要添加的源文件。6、双击打开程序文件,进行程序编写。7、编写完成后进行编译,无错误即可保存并退出。

通过之前对单片机开发软件keil uvsion3的学习,使我们学会了使用C语言来编写单片机的控制程序。这次毕业设计的程序编写,让我更加熟练地掌握了keil uvsion3 这个软件的基本功能,掌握了简单的C语言源程序的编写。

在程序的编写中经常需要对软件进行调试,以观察软件是否可以成功的控制单片机实现预期的功能,这就需要用到keil uvsion3软件中的仿真功能,对软件进行单步仿真,可以清楚地看到指令执行的顺序,以便于了解单片机执行指令的过程,从而容易的检查出软件中存在的不足之处。

笔记八

protel 99se 软件作图注意事项

在使用protel 99se画电路图的时候要十分注意电路原理图元器件的引脚编

号与画PCB图时元器件封装的引脚编号是否一致,如果两者的引脚编号不一致,会出现一些错误。这些错误将导致原理图无法导入PCB图的作图界面,更严重的是编号错误将使PCB中电路连接的网络标号发生错误,如果不及时发现做出来的电路板上的电路连接是错误的,实际电路将与原理图不一致。其中原理图元器件引脚编号与PCB封装引脚编号不一致的有:二极管、三极管、可调电阻。

1、 二极管

在protel原理图中二极管的引脚编号是1,2 。其中1是二极管的正极引脚编号,2为负极。而PCB封装的引脚编号为A,K。A为正极,K为负极。这样,在原理图导入时,便会发生错误,而无法导入PCB作图界面。

2、三极管

在protel原理图中三极管的引脚编号为:1为基极,2为集电极,3为发射极。而而PCB封装的引脚编号从元件的面观看时顺序为1,2,3 ,但是实物的引脚从三极管的正面看顺序为:发射极、基极、集电极。这样,如果不做修改则将导致,制作出来的电路板的电路连接发生错误,使三极管无法实现其功能,严重的将会损坏器件。

3、可调电阻

在protel原理图中可调电阻的引脚编号为:1,2为两端,3为可调端。而PCB封转则为:1,3为两端,2为可调端。这样,如果不做修改则将导致,制作出来的电路板的电路连接发生错误,使可调电阻无法正常实现其电阻调节功能,严重的将会损坏器件。

因此,需要修改这些引脚的编号,使之一致,可以选择修改原理图或PCB封装的编号,对应的找到该元器件的符号,选择编辑,进入编辑界面就可以对它们的引脚参数进行修改,修改完成后保存即可。

通过对Protel 99se的学习,我学会了protel电路原理图和PCB图的作图方法。在作图过程中要十分注意封转与实物引脚不一致的情况,如果不对这些元器件的封转进行相应的修改使两者一致,则将会导致严重的后果,特别是三极管,三极管在各种电路中都普遍应用,如果不注意其实物引脚与protel中封装的对应情况,做出来的电路很可能与原理图的电路连接不对应,而使得电路失去功能。这些错误,一旦忽视了,电路板制作出来后也就成为了废品,几乎无法挽救。同时,在画原理图的时候也要注意各种元器件的封装的使用,在写入封装时就应该检查封装与实际器件的对应情况,在原理图上就避免这类错误的发生。因此,在今后作图中要十分注意类似的问题,避免在这些地方犯错误。

笔记九

C语言运算符

1级优先级 左结合

() 圆括号

2级优先级 右结合

! 逻辑非运算符

~ 按位取反运算符

++ 前缀增量运算符

3级优先级 左结合

* 乘法运算符

/ 除法运算符

% 取余运算符

4级优先级 左结合

+ 加法运算符

- 减法运算符

5级优先级 左结合

>> 右移运算符

6级优先级 左结合

、>= 关系运算符

7级优先级 左结合

== 等于运算符

!= 不等于运算符

8级优先级 左结合

& 按位与运算符

9级优先级 左结合

^ 按位异或运算符

10级优先级 左结合

| 按位或运算符

11级优先级 左结合

&& 逻辑与运算符

12级优先级 左结合

|| 逻辑或运算符

13级优先级 右结合

? : 条件运算符

14级优先级 右结合

= += -= *= /= %= &= ^= |= >= 全为赋值运算符

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

通过对以上C语言运算符号的查询和学习,我了解到了各种运算符所表示的意义。对于掌握各种运算符的运算优先级是十分必要的,了解了运算的优先级才能准确的进行各种公式运算。在编写C源程序是经常会用到“++”、“――”“&&”、“||”、“==”、“!=”等运算符,理解这些运算符的含意是编写源程序的前提。逻辑运算符号“&&”和“||”,经常应用于条件是式语句的判断条件中,算术运算符“++”、“――”则用于变量值的增减运算中。还有一些常用的赋值符号如:“&=”、“>>=”等也常用于控制变量的运算中。

笔记十

C语言基本数据类型

在C语言中数据类型是按被定义变量的性质,表示形式,占用存储空间的多少,构造特点来划分的,数据类型可分为基本数据类型、构造数据类型、指针类型和空类型四大类。常用的数据类型有整型(int)和字符型(char)。int类型的数据范围为:-32768~32767。char类型数据范围为:-128~127。对于基本数据类型量,按其取值是否可以改变又可分为常量和变量两种。

在程序运行的过程中,其值不能改变的量称为常量。常量有不同德类型,可分为整型常量、浮点常量、字符常量和枚举常量等。C语言中可以用一个标识符来表示一个常量,称之为符号常量,符号常量在使用之前必须先定义,其一般格式为:#define 标识符 常量。#define宏定义命令。其功能是把该标识符定义为之后的常量值。

在程序运行的过程中,其值可以改变的量称为变量。变量定义的一般格式为:数据类型 变量1,变量2;在使用变量前必须先定义变量,变量名的选取必须遵守标识符定义的规则。

整型数据类型(int)和字符型(char)是程序编写时最常使用的的两种数据类型。无符号型数据(unsigned)在定义数据类型是经常会用到,通常定义有unsigned int和unsigned char两类。在定义变量时要根据所需要的变量值范围来定义变量的数据类型,适当的定义数据类型,可以节省系统的内存空间,优化程序的运行过程。所以对于一般的数据值通常会定义成为无符号型(unsigned),当然如果所定义的数据类型范围小于变量值所变化的范围,在程

序运行时由于系统分配给变量的内存空间不足可能会导致会发生不可预想的错误。

笔记十一

C语言常用语句

1、 if语句

if语句是选择结构的一种形式,又称为条件分支语句。它是通过对给定条件的判断,来决定所要执行的操作。C语言中提供了三种形式的if语句:if语句;if-else语句;if-else-if语句。

2、 while语句

while语句应用于条件选择判断语句,其格式为:while(表达式){循环体语句组;}。While语句的执行过程为:1求解表达式,其值为非0,转到2,否则转3。2执行循环体语句组,然后转1。3执行while语句的下一条语句。

3、 for语句

for为循环语句,在3条循环语句中for语句最为灵活,不仅可以用于循环次数已经确定的情况,也可以循环次数不确定,但给出了循环继续条件的情况。其语句结构为:for(变量赋初值表达式;循环条件表达式;循环变量增值表达式)。

4、 break语句

break语句一般格式为:break;其功能是,强行结束循环,转向执行循环一句的下一条语句。Break语句能应用于循环语句和switch语句中,循环嵌套时,break只影响包含它们的最内层循环冒雨外层循环无关。

5、 switch语句

switch为多分支选择语句,其语句格式为:

switch(表达式){case表达式1:语句1;

case表达式2:语句2;

„„

}

通过对C语言这些常用语句的学习,我基本掌握了单片机使用C语言来编写源程序的方法。在利用单片机控制电路实现相应的功能时,源程序中经常用到if或while这些条件判断语句来控制单片机,如果条件成立,则会立即执行相应的条件语句。For语句则多用于重复执行某一个指令,直至条件不在符合为止。而多分支的switch语句在程序设计中的按键扫描中得到了灵活的运用。Break语句则在if,while,switch语句中都有使用,达到了灵活控制单片机执行指令的目的。

笔记十二

C语言中数组的运用

1、数组中的相关概念

数组:数组是指一组具有相同类型的数据的有序的集合。在程序中使用数组的最大好处是,用一个数组名可以代表逻辑上相关的一批数据。

数组下标:是数组元素在数组中的位置的一个索引或指示。

数组元素:数组中的元素。

数组大小:数组中元素的格式,也称为数组长度。

数组维数:数组元素下标的个数。

2、一维数组

(1)一维数组的格式:类型标识符 数组名[整型常量表达式];例如 int a[2];类型标识符表示数组中元素的数据类型;数组名命名规则必须遵循C语言中的标识符命名规则;整型常量表达式表示数组长度,即数组中元素的个数。

(2)一维数组元素的引用

在引用数组前先要定义数组,在C语言中规定数组中的元素只能逐个引用,而不能一次引用整个数组。数组元素的引用时用数组名加下标组成的,其形式为: 数组名[下标]。

在引用数组时要注意数组长度与下标的对应关系,C编译系统不会对下标越界进行检查,错误地引用越界元素可能会破坏数组后的其他数据,造成不可预料的后果,因此引用数组时要注意避免下标越界。

(3)数组元素的初始化

所谓数组初始化就是在定义数组的同时给数组元素指定初值。例如:

int[5]={1,2,3,4,5};数组元素的初值放在“{}”内,初值之间用逗号分开,在个数组赋初值时,如果是给全部元素赋值,可以省略数组长度,C编译系统将会自动根据初值的个数来确定数组长度。

通过对一维数组的学习,我学会了在这次毕业设计中灵活的运用一维数组来存储各种提示语,在使用数组时要注意所需要的数组元素的数据类型,从而才能正确的定义整个数组的数据类型。数组的使用必须遵循先定义后使用的原则,对数组初始化时多数可以省略去数组的下标,因为编译系统会自动统计其数组的长度。同时,因为编译系统不会对数组的下标越界情况进行检查,因此在引用数组中的元素时要结合数组的长度进行调用,以免发生错误。数组名和数组下标就可以确定了数组中的元素,在引用数组中的元素时,可以定义一个变量,通过变量结合for函数,采用自增或自减的方法进行不同元素之间的调用。

笔记十三

Proteus

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:

1.原理布图

2.PCB自动或人工布线

3.SPICE电路仿真

革命性的特点

1.互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

2.仿真处理器及其外围电路

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型

上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。 笔记十四

Proteus基本操作

1、选择元件:P按钮

常用元件所在库及名称

名称 所在库名 元件名

51单片机 Microprocessor AT89C51

电阻 Resistors

排阻 Resistors RESPACK

电容 Capacitors

晶振 Miscellaneous CRYSTAL

继电器 Switches&Relays G2R

三级管 Transistors

7段数码管 Optoelectronics

7SEG-COM-AN(共阳)

7SEG-COM-CAT(共阴)

LED 同上 LED-BLUE/GREEN

两位、四位数码管 同上 7SEG-MPX2/MPX4

2、选择要使用的元件

在Pick Device窗口双击相应元件名称,即可将元件添加到主界面左侧的列表中

3、放置元件到绘图区

单击列表中的元件,然后在右侧的绘图区单击,即可将元件放置到绘图区。(每单击一次鼠标就绘制一个元件,在绘图区空白处单击右键结束这种状态)

4、删除元件

右击元件一次表示选中(被选中的元件呈红色),选中后再一次右击则是删除。

5、移动元件

右击选中,然后用左键拖动。

6、旋转元件

左下角旋转工具栏

7、元件连线

在引脚上鼠标指针变成X状,单击,移动到目的引脚,再次单击。

8、删除连线

同删除元件

9、绘制电源和地

单击工具栏上的左起第8个工具(Inter-Sheet Terminal),左侧工具栏显示TERMINALS,可在其中选择POWER或GROUND,像放置元件一样放置到绘图区。

笔记十五

Proteus功能模块

(1)智能原理图设计(ISIS)

丰富的器件库:超过27000种元器件,可方便地创建新元件;

智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;

智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰;

可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。

(2)完善的电路仿真功能(Prospice)

ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;

超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;

多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav

文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;

丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;

生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;

高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析;

(3)独特的单片机协同仿真功能(VSM)

支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;

支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;

实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;

编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、

AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试;

(4)实用的PCB设计平台

原理图到PCB的快速通道:原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;

先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;

完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览;

多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。

笔记十六

1.Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。

2.Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。

3.除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。

4.Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。

笔记十七

在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。

PROTEUS 是单片机课堂教学的先进助手。

PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检

测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。

使用Proteus 软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。

笔记十八

DS1302

DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。

现在流行的串行时钟电路很多,如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。本文介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭

的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。

笔记十九

控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。

实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC

接口。功耗低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。

笔记二十

DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位Write Protect(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。

在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。

DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。

要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。

DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。

读书笔记

笔记一

51系列单片机的基本结构

单片机的基本结构有中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、并行I/O接口、定时器/计数器、中断系统等几大单元,以及地址总线和控制总线组成。

1.中央处理器(CPU)

中央处理器(CPU)是整个单片机的核心部件。CPU主要由控制器和运算器组成,主要负责控制、指挥和调度整个单元系统协调地工作,完成运算和控制输入功能操作。

2.程序存储器(ROM)

51系列单片机共有4096个8位掩模ROM,用于存放用户程序、原始数据或表格。有些新型的单片机,如AT89S系列单片机采用的是Flash存储器。

3.数据存储器(RAM)

51单片机内部有128个8位用户数据存储单元(00H-7FH)和128个专用寄存器单元(80H-FFH),它们是统一编址的。专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据。

4.并行输入输出(I/O)口

单片机需要和外部设备进行通信,以便于处理外部的输入和将运算结果反馈到外部设备。51单片机的32根I/O线分为四个双向并行口P0-P3,每一根I/O线都能独立地用作输入或输出。每一根I/O线均包含锁存器、输出驱动器和输入缓冲器(三态门)。

5.串行I/O口

51单片机有串行口,通过异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工通信。

6.定时/计数器

51单片机内的可编程定时/计数器,由控制位C/T来选择其功能。作为定时器时,每个机器周期加1(计数频率为时钟频率的1/12)。作为计数器时,对应外部事件脉冲的负沿加1(最高计数频率为时钟频率的1/24)。

7.中断系统

51单片机具备较完善的中断功能,有两个外部中断、两个定时、计数器中断和一个串行中断。这些功能可以满足不同控制要求,并具有2级的优先级别选择。

8.时钟

51单片机内部有晶振感抗振荡器。外接石英晶体形成谐振回路,产生时钟信号。若用外部时钟源,XTAL1接地,XTAL2接外部时钟。片内时钟发生器将振荡器信号二分频,为芯片提供2相时钟信号。一个机器周期由6个时钟状态组成,每个时钟状态又是由2个振荡脉冲组成,因此一个机器周期包括12个振荡脉冲。当外接晶振频率为12MHZ时,一个机器周期为1微秒;当晶振频率为6MHZ时,一个机器周期为2微秒。这说明时钟信号频率越高,执行程序指令操作的时间越短。

9.CPU的时序

在单片机内部,振荡器始终驱动内部时钟发生器向CPU提供时钟信号。时钟发生器的输入是一个二分频器,这个而分频器为单片机提供一个二相时钟信号,即相位信号P1和相位信号P2,驱动CPU产生执行指令功能的机器周期。

单片机的时序是用定时单位来描述的其描述了指令执行中各控制信号在时间上的关系。这里涉及节拍、状态、机器周期和指令周期4个概念,如图2-2所示。

图2-2 单片机指令周期

通过对51单片机的学习,我了解到了51单片机的基本结构。51单片机由中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、并行I/O接口、定时器/计数器、中断系统六大单元,以及地址总线和控制总线组成。CPU是单片机的核心部件,控制着各种数据的处理过程。程序存储器(ROM)存放着用户程序、原始数据等信息。数据存储器(RAM)有128个8位用户数据存储单元和128个专用寄存器单元,他们的地址是统一编排的,数据存储单元地址为00H—7FH

专用寄存器单元地址为80H—FFH。

51单片机有四组并行I/O接口,分别为P0、P1、P2、P3 每组都对应有8个(0--7)输入\输出接口。其中P0口没有内置的上拉电阻,其余的都有内置上拉电阻。对于单片机的时钟周期是依据所用的晶振频率来计算,设计中使用的晶振频率为12MHz,所以一个机械周期为1微秒,单片机在执行单周期指令所用的时间一个机械周期,了解单片机指令的执行周期,有助于正确使用延时函数,减少单片机的等待时间从而提高运行速度。

51系列单片机与52系列机构基本相同,所以在毕业设计中对于AT89C52的学习主要参照51系列单片机。

笔记二

单片机中断系统

51系列单片机是一种多中断源的单片机,有5个中断源,它们分别是外部中断源2个,定时/计数中断2个和1个串行口中断。

1.外部中断

外部中断是有外部信号一起的,共有2个中断源。称为外部中断0和外部中断1。外部中断0的中断信号引入到CPU的P3.2引脚,外部中断1的中断信号引入到P3.3引脚。外部中断的中断请求有2种信号触发方式即电平触发方式和脉冲触发方式。电平触发方式是一种静态方式,中断请求信号时低电平有效。CPU在每个机械周期的S5P2时刻都要对P3.2/P3.3这两个引脚的电平采样,若采样值为低电平,则表示为有效的中断请求信号。脉冲触发方式的中断请求是一种动态方式,中断请求信号是脉冲的下降沿有效。

2.定时/计数器中断

定时/计数器中断发生在单片机的内部,在单片机内部有2个定时/计数器T0和T1,它们以计数的方法来实现定时或计数功能。当它作为定时器使用时,计数信号来源为内部的机器周期脉冲;作为计数器使用时,计数信号来源为P3.4和P3.5引脚。定时/计数器启动后,每来一个机器周期或在对应的引脚上检测到一个脉冲时,定时/计数器自动加1,当计数器的值从全1变为全0时,溢出标志位被置1,CPU查询到后就知道有定时/计数器的溢出中断请求。

3.串行中断

串行中断是为串行数据传送的需要而设置的。当串行口发送完一组串行数据时,就会是串行中断标志位TX置1,当串行口接收完一组数据时就会使串行接收标志位RX位置1,作为串行口中断请求标志,产生中断请求信号。

4.中断控制寄存器

对应的位符号名称为:

TF0/TF1:定时/计数器溢出中断请求标志位。

TR0/TR1:定时/计数器的运行控制位,置1为启动,置0为停止。

IT0/IT1:外部中断请求触发标志位。

IE0/IE1:外部中断请求标志位。

对应的位符号名称为:

SM0/SM1/SM2:串行口工作方式控制位。

REN:接收允许位,置1为允许,置0为禁止。

TB8/ RB8:发送/接收数据第9位。

TI/RI:发送/接收中断标志位。

中断系统是单片机宝贵的资源,使用中断可以很大程度的较少源程序的编写,在这次毕业设计中使用到了单片机的外部中断0,主要应用在4x4的矩阵键盘部分,当有任意一个按键按下的时候将会产生中断信号并传送至单片机的P3.2引脚,进而单片机执行中断函数中的指令。

如果在程序的设计中不采用中断,那么程序的编写将会变得很复杂,对于中断的位置要十分明确,而且重复中断操作又要写程序调用中断函数显然是很麻烦的。单片机各种中断都有对用的中断请求标志位,标志位都可以进行相应的位操作。

在使用单片机的中断时要明确单片机相应的中断优先级,高优先级别的中断可以打断正在进行的低级别中断,而低级别的中断无法打断高优先级中断,系统默认的中断优先级由高到低分别为:外部中断0、定时/计数器T0、外部中断1、定时/计数器T1、串行口。单片机还有控制中断优先级的寄存器IP,对应的中断方式控制位置1则为高优先级的中断,否则按照系统默认的优先级进行中断响应。中断响应受中断允许控制寄存器IE的控制。IE=1时为允许IE=0时为禁止。

笔记三

行列式键盘

行列式键盘是用n条I/O线作为行线,m条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上设置一个按键。这样,键盘中的按键个数就为m x n个。这种形式的键盘结构能够有效的提高单片机系统中I/O口的利用率。行列式按键的软件设计与独立式按键不同的只是按键识别方法不同,在行列式按键的扫描程序中,要对按键逐行逐列的扫描,得到按下的按键行列信息。

行列式键盘的扫描常用线反转方式、编程扫描方式、定时扫描方式或中断扫描方式,无论采用哪种方式,都要编写相应的按键扫面程序,在按键扫面程序中一般要完成以下几个功能:判断有无按键按下、去抖动、求所按下的按键号、转向按键处理程序。

行列式矩阵键盘,按键采用中断式扫描方式。中断式扫描方式中,当键盘上有按键被按下时将会产生中断信号向单片机发出中断请求,单片机响应中断后在中断服务程序中完成按键扫面、识别按键位置并进行按键功能处理。

按键扫描使用的是外部中断0。,它是系统默认的最高中断优先级,所以不必再设置中断优先级。采用矩阵式键盘不仅节省的单片机的I/O接口资源,而且在程序的编写中使用中断式扫描方式也减少了程序编写量,使得设计更加合理化。

凭着这次设计的机会,在收集资料的过程中也学习到了单片机键盘的几种安排方式和程序编写方法,每种方式都在不通的场合下突显出它们特有的优点。所以在各种设计中根据设计本身的需要进行择优是很必要。

笔记四

液晶显示屏lcd1602资料

(1)1602LCD主要技术参数

显示容量:16×2个字符

芯片工作电压:4.5—5.5V

工作电流:2.0mA(5.0V)

模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm

(2)引脚功能说明

第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比

度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。

第16脚:背光源负极。

通过查阅网上的资料,我学习到了lcd1602的主要技术指标,了解到我它的工作电压、电流等信息。经过学习,我知道了它各个引脚的功能,它可以与单片机使用同一电源供电。在实际使用中我们会根据使用环境的需要来调节液晶显示屏的亮度,以满足显示效果的要求,因此在电路连接时我们就需要在它的亮度调节引脚上接上一个可调电阻与电源地相连,从而可以实现可调的功能。

Lcd1602内部有两个寄存器可供用户选择,相应的给RS引脚置高电平时为数据寄存器,置低电平时为程序寄存器。在一般情况下,我们大多数使用者都不会从1602中读取数据,而是向1602写指令或数据。1062内部还储存有一些常用的字符代码,使用时只需向1602写入字符或其代码就可以在屏幕上显示该字符。

作为显示工具,lcd1602在性能上明显优越于数码管,其操作性相对于数码管要简单得多,因此本设计采用它作为显示器件。

笔记五

E2PROM器件AT24C02资料

I2C总线密码存储芯片at24c02介绍

(1)引脚功能介绍及相关知识

WP:写保护引脚,将该引脚接VCC,E2PROM就实现写保护(只读)。引脚接地或悬空,可以对器件进行读写操作。

SCL:串行时钟引脚,串行输入输出时该引脚用于输入时钟。

SDA:串行数据输入输出引脚,用来输入输出数据,该引脚为射极开路输出,需接上拉电阻。

(2)I2C总线协议

只有总线非忙时才被允许进行数据传送,在传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被当作总线的启动或停止条件。

(3)起始条件

起始调教必须在所有操作命令之前发送。时钟线保持高电平期间,数据线电平从高到低跳变作为I2C总线的启动信号。CAT24Cxxx一直监视SDA和SCL电平信号,直到条件满足时才响应。

(4)停止条件

时钟线保持高电平期间,数据线电平从低到高跳变作为I2C总线的停止信号。

(5)器件地址的约定

主器件在发送启动命令后开始传送数据,主器件发送相应的从器件地址,8位从器件地址的高四位固定为1010,接下来的3位用来定义存储器的地址,对于CAT24C021/022,这三位无意义,对于CAT24C41/042,接下来的2位无意义,第三位是地址高位,CAT24C081/082中,第一位无意义,后两位表示地址高位。

最后一位为读写控制位,“1”表示对从器件进行读写操作,“0”表示写操作。在主器件发送启动命令和一字节从器件地址后,如果与从器件地址吻合,CAT24C02将发送一个应答信号,然后再根据读/写控制为进行读或写操作。

(6)应答信号

每次数据传送成功后,接收器件将发送一个应答信号。当第九个时钟信号产生时,产生应答型号的器件将SDA下拉为低,通知已经接受到8位数据,接收到起始条件和从器件地址后,CAT24C02发送一个应答信号,如果为写操作,每接收到一个字节数据,CAT24C02发送一个应答信号。如果为读操作,CAT24C02发送一个字节数据后释放总线等待应答信号,一旦接收到应答信号,它将继续发发送数据,如果接收到主器件发送非应答信号,将结束数据传送等待停止条件。

(7)写操作

在写字节模式下,助器件发送起始命令和从器件地址信息给从器件,在从器件响应应答信号后,主器件将要写入的数据地址发送到CAT24C02的地址指针,主器件收到从器件的应答信号后再送数据到相应的数据存储区地址,CAT24C02再响应一个应答信号,主器件产生一个停止信号,然后CAT24C02启动内部写周期,在内部写周期期间,CAT24C02不再响应主器件任何请求。

(8)读操作

CAT24C02读操作的初始化方式和写操作一样,仅把R/W位置1,读操作有三种方式:立即地址读、选择地址读、连续读。

通过对AT24C02芯片的学习,我掌握了它的基本使用方法,并且学会了编

写软件来控制它对数据的读写。

AT24C02的使用需要服从I2C总线协议,只有总线非忙时才被允许进行数据传送,在传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时数据线的任何电平变化将被当作总线的启动或停止条件。在对AT24C02芯片进行读写操作时需要配合它的续写操作周期来进行才能成功将数据写入或读出。应答信号是数据是否能成功写入或读出的关键所在,当对数据进行操作时,每发送或接受一个数据都要发送一个应答信号。

笔记六

51单片机驱动能力

在51单片机系列中,现在生产厂家很多,兼容型号也很多。不同厂家生产的单片机P1口的驱动能力是不同的。下面仅举最常用的3种单片机为例,谈谈驱动能力。1. 标准的Intel8051单片机:其P0口是一个漏极开路的准双向口,驱动能力是8个LS型TTL负载。P0没有上拉(即漏极开路)其实只对输出有影响,以致只能输出低电平,不能输出高电平,而不妨碍高低电平的输入。因此对P0口来说,输出为高电平时,其输出电流为0,必须外接上拉电阻才能输出高电平;输出低电平时,允许灌入电流为0.4mA×8=3.2mA。而P1、P2、P3口是有上拉的准双向口,带负载能力为4个LS型TTL门,因此,高电平输出电流为20μA×4=80μA,低电平允许灌入电流为0.4mA×4=1.6mA。输出高低电平的带负载能力都很差,因此应该接入4.7k~10k左右的上拉电阻。 2. AT89系列单片机:因为输出电流会影响输出电压,所以参数表中是结合输出电压来提供输出电流能力的。AT89C51和AT89S51允许的高电平输出电流为:输出电压为3.7V时,电流为25μA;允许的低电平输出电流(实际为灌入电流)为:输出电压为0.45V时,电流为-1.6mA。 AT89系列单片机中有一个另类,输出电流特别大,那就是AT89C2051,允许20mA的灌电流输入,但高电平输出电流也只有30μA。 3. STC89系列单片机:晶宏科技的STC89系列单片机现在应用的人很多。由于至今没有见到正规的Datasheet,只能从它的简介上得知:通用I/O 口(36/40 个),复位后为: 准双向口/ 弱上拉(普通8051 传统I/O 口)可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏每个I/O 口驱动能力均可达到20mA,44/40 管脚的IC 建议整个芯片不要超过100mA,20/18/16 管脚的IC 建议整个芯片不要超过60mA。由此可见,晶宏的STC89系列带负载能力最强。

通过对单片机驱动能力资料的查阅,我从中了解到了一般单片机的电流驱动能力都比较小,很难直接驱动功率比较大的器件。单片机的P0口没有上拉电阻,

其拉电流的能力几乎为零,在使用时时必须要接上上拉电阻的,而灌电流也有3 毫安左右。总体而言,单片机的驱动能力十分有限,很难驱动继电器、蜂鸣器等类似的电子元器件。因此,在使用这样的器件是必须要有相关的放大电路来进行功率放大,从而达到器件所需的额定功率,是器件能够正常工作。同时,我也认识到了单片机灌电流能力远大于拉电流的能力,从而明白了为什么大多数情况下都采用灌电流形势的电路接法。

笔记七

keil uvsion3 软件简介

keil uvsion3 是德国keil software 公司推出的51系列单片机开发应用平台之一,它集编辑、编译、仿真于一体,支持汇编语言、PL/M语言和C语言的程序设计。软件仿真时除了可以模拟单片机的I/O口、定时器、中断外还可以仿真单片机的串行通信。

Keil uvsion3 软件的使用一般步骤为:1、启动软件 2、新建工程文件,在启动软件后的界面中,单击“project new project ”,将弹出工程保存对话框,输入相应的工程名称并选择保存的路径,单击确定即可。3、选择CPU型号,上一步单击确定后弹出型号选择对话框,然后选择 atmel 中的C51 单片机。4、新建文本文件,选择 file new ,在弹出的对话框中选择保存路径,名称可用默认(C语言源程序后缀名为 .c ,汇编语言的为.asm)。5、在工程中加入源程序文件,在主界面管理窗口中将 target 1项目展开,右键单击 source group 1  add file to group ‘source group 1’然后在弹出的对话框中选择需要添加的源文件。6、双击打开程序文件,进行程序编写。7、编写完成后进行编译,无错误即可保存并退出。

通过之前对单片机开发软件keil uvsion3的学习,使我们学会了使用C语言来编写单片机的控制程序。这次毕业设计的程序编写,让我更加熟练地掌握了keil uvsion3 这个软件的基本功能,掌握了简单的C语言源程序的编写。

在程序的编写中经常需要对软件进行调试,以观察软件是否可以成功的控制单片机实现预期的功能,这就需要用到keil uvsion3软件中的仿真功能,对软件进行单步仿真,可以清楚地看到指令执行的顺序,以便于了解单片机执行指令的过程,从而容易的检查出软件中存在的不足之处。

笔记八

protel 99se 软件作图注意事项

在使用protel 99se画电路图的时候要十分注意电路原理图元器件的引脚编

号与画PCB图时元器件封装的引脚编号是否一致,如果两者的引脚编号不一致,会出现一些错误。这些错误将导致原理图无法导入PCB图的作图界面,更严重的是编号错误将使PCB中电路连接的网络标号发生错误,如果不及时发现做出来的电路板上的电路连接是错误的,实际电路将与原理图不一致。其中原理图元器件引脚编号与PCB封装引脚编号不一致的有:二极管、三极管、可调电阻。

1、 二极管

在protel原理图中二极管的引脚编号是1,2 。其中1是二极管的正极引脚编号,2为负极。而PCB封装的引脚编号为A,K。A为正极,K为负极。这样,在原理图导入时,便会发生错误,而无法导入PCB作图界面。

2、三极管

在protel原理图中三极管的引脚编号为:1为基极,2为集电极,3为发射极。而而PCB封装的引脚编号从元件的面观看时顺序为1,2,3 ,但是实物的引脚从三极管的正面看顺序为:发射极、基极、集电极。这样,如果不做修改则将导致,制作出来的电路板的电路连接发生错误,使三极管无法实现其功能,严重的将会损坏器件。

3、可调电阻

在protel原理图中可调电阻的引脚编号为:1,2为两端,3为可调端。而PCB封转则为:1,3为两端,2为可调端。这样,如果不做修改则将导致,制作出来的电路板的电路连接发生错误,使可调电阻无法正常实现其电阻调节功能,严重的将会损坏器件。

因此,需要修改这些引脚的编号,使之一致,可以选择修改原理图或PCB封装的编号,对应的找到该元器件的符号,选择编辑,进入编辑界面就可以对它们的引脚参数进行修改,修改完成后保存即可。

通过对Protel 99se的学习,我学会了protel电路原理图和PCB图的作图方法。在作图过程中要十分注意封转与实物引脚不一致的情况,如果不对这些元器件的封转进行相应的修改使两者一致,则将会导致严重的后果,特别是三极管,三极管在各种电路中都普遍应用,如果不注意其实物引脚与protel中封装的对应情况,做出来的电路很可能与原理图的电路连接不对应,而使得电路失去功能。这些错误,一旦忽视了,电路板制作出来后也就成为了废品,几乎无法挽救。同时,在画原理图的时候也要注意各种元器件的封装的使用,在写入封装时就应该检查封装与实际器件的对应情况,在原理图上就避免这类错误的发生。因此,在今后作图中要十分注意类似的问题,避免在这些地方犯错误。

笔记九

C语言运算符

1级优先级 左结合

() 圆括号

2级优先级 右结合

! 逻辑非运算符

~ 按位取反运算符

++ 前缀增量运算符

3级优先级 左结合

* 乘法运算符

/ 除法运算符

% 取余运算符

4级优先级 左结合

+ 加法运算符

- 减法运算符

5级优先级 左结合

>> 右移运算符

6级优先级 左结合

、>= 关系运算符

7级优先级 左结合

== 等于运算符

!= 不等于运算符

8级优先级 左结合

& 按位与运算符

9级优先级 左结合

^ 按位异或运算符

10级优先级 左结合

| 按位或运算符

11级优先级 左结合

&& 逻辑与运算符

12级优先级 左结合

|| 逻辑或运算符

13级优先级 右结合

? : 条件运算符

14级优先级 右结合

= += -= *= /= %= &= ^= |= >= 全为赋值运算符

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

通过对以上C语言运算符号的查询和学习,我了解到了各种运算符所表示的意义。对于掌握各种运算符的运算优先级是十分必要的,了解了运算的优先级才能准确的进行各种公式运算。在编写C源程序是经常会用到“++”、“――”“&&”、“||”、“==”、“!=”等运算符,理解这些运算符的含意是编写源程序的前提。逻辑运算符号“&&”和“||”,经常应用于条件是式语句的判断条件中,算术运算符“++”、“――”则用于变量值的增减运算中。还有一些常用的赋值符号如:“&=”、“>>=”等也常用于控制变量的运算中。

笔记十

C语言基本数据类型

在C语言中数据类型是按被定义变量的性质,表示形式,占用存储空间的多少,构造特点来划分的,数据类型可分为基本数据类型、构造数据类型、指针类型和空类型四大类。常用的数据类型有整型(int)和字符型(char)。int类型的数据范围为:-32768~32767。char类型数据范围为:-128~127。对于基本数据类型量,按其取值是否可以改变又可分为常量和变量两种。

在程序运行的过程中,其值不能改变的量称为常量。常量有不同德类型,可分为整型常量、浮点常量、字符常量和枚举常量等。C语言中可以用一个标识符来表示一个常量,称之为符号常量,符号常量在使用之前必须先定义,其一般格式为:#define 标识符 常量。#define宏定义命令。其功能是把该标识符定义为之后的常量值。

在程序运行的过程中,其值可以改变的量称为变量。变量定义的一般格式为:数据类型 变量1,变量2;在使用变量前必须先定义变量,变量名的选取必须遵守标识符定义的规则。

整型数据类型(int)和字符型(char)是程序编写时最常使用的的两种数据类型。无符号型数据(unsigned)在定义数据类型是经常会用到,通常定义有unsigned int和unsigned char两类。在定义变量时要根据所需要的变量值范围来定义变量的数据类型,适当的定义数据类型,可以节省系统的内存空间,优化程序的运行过程。所以对于一般的数据值通常会定义成为无符号型(unsigned),当然如果所定义的数据类型范围小于变量值所变化的范围,在程

序运行时由于系统分配给变量的内存空间不足可能会导致会发生不可预想的错误。

笔记十一

C语言常用语句

1、 if语句

if语句是选择结构的一种形式,又称为条件分支语句。它是通过对给定条件的判断,来决定所要执行的操作。C语言中提供了三种形式的if语句:if语句;if-else语句;if-else-if语句。

2、 while语句

while语句应用于条件选择判断语句,其格式为:while(表达式){循环体语句组;}。While语句的执行过程为:1求解表达式,其值为非0,转到2,否则转3。2执行循环体语句组,然后转1。3执行while语句的下一条语句。

3、 for语句

for为循环语句,在3条循环语句中for语句最为灵活,不仅可以用于循环次数已经确定的情况,也可以循环次数不确定,但给出了循环继续条件的情况。其语句结构为:for(变量赋初值表达式;循环条件表达式;循环变量增值表达式)。

4、 break语句

break语句一般格式为:break;其功能是,强行结束循环,转向执行循环一句的下一条语句。Break语句能应用于循环语句和switch语句中,循环嵌套时,break只影响包含它们的最内层循环冒雨外层循环无关。

5、 switch语句

switch为多分支选择语句,其语句格式为:

switch(表达式){case表达式1:语句1;

case表达式2:语句2;

„„

}

通过对C语言这些常用语句的学习,我基本掌握了单片机使用C语言来编写源程序的方法。在利用单片机控制电路实现相应的功能时,源程序中经常用到if或while这些条件判断语句来控制单片机,如果条件成立,则会立即执行相应的条件语句。For语句则多用于重复执行某一个指令,直至条件不在符合为止。而多分支的switch语句在程序设计中的按键扫描中得到了灵活的运用。Break语句则在if,while,switch语句中都有使用,达到了灵活控制单片机执行指令的目的。

笔记十二

C语言中数组的运用

1、数组中的相关概念

数组:数组是指一组具有相同类型的数据的有序的集合。在程序中使用数组的最大好处是,用一个数组名可以代表逻辑上相关的一批数据。

数组下标:是数组元素在数组中的位置的一个索引或指示。

数组元素:数组中的元素。

数组大小:数组中元素的格式,也称为数组长度。

数组维数:数组元素下标的个数。

2、一维数组

(1)一维数组的格式:类型标识符 数组名[整型常量表达式];例如 int a[2];类型标识符表示数组中元素的数据类型;数组名命名规则必须遵循C语言中的标识符命名规则;整型常量表达式表示数组长度,即数组中元素的个数。

(2)一维数组元素的引用

在引用数组前先要定义数组,在C语言中规定数组中的元素只能逐个引用,而不能一次引用整个数组。数组元素的引用时用数组名加下标组成的,其形式为: 数组名[下标]。

在引用数组时要注意数组长度与下标的对应关系,C编译系统不会对下标越界进行检查,错误地引用越界元素可能会破坏数组后的其他数据,造成不可预料的后果,因此引用数组时要注意避免下标越界。

(3)数组元素的初始化

所谓数组初始化就是在定义数组的同时给数组元素指定初值。例如:

int[5]={1,2,3,4,5};数组元素的初值放在“{}”内,初值之间用逗号分开,在个数组赋初值时,如果是给全部元素赋值,可以省略数组长度,C编译系统将会自动根据初值的个数来确定数组长度。

通过对一维数组的学习,我学会了在这次毕业设计中灵活的运用一维数组来存储各种提示语,在使用数组时要注意所需要的数组元素的数据类型,从而才能正确的定义整个数组的数据类型。数组的使用必须遵循先定义后使用的原则,对数组初始化时多数可以省略去数组的下标,因为编译系统会自动统计其数组的长度。同时,因为编译系统不会对数组的下标越界情况进行检查,因此在引用数组中的元素时要结合数组的长度进行调用,以免发生错误。数组名和数组下标就可以确定了数组中的元素,在引用数组中的元素时,可以定义一个变量,通过变量结合for函数,采用自增或自减的方法进行不同元素之间的调用。

笔记十三

Proteus

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:

1.原理布图

2.PCB自动或人工布线

3.SPICE电路仿真

革命性的特点

1.互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

2.仿真处理器及其外围电路

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型

上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。 笔记十四

Proteus基本操作

1、选择元件:P按钮

常用元件所在库及名称

名称 所在库名 元件名

51单片机 Microprocessor AT89C51

电阻 Resistors

排阻 Resistors RESPACK

电容 Capacitors

晶振 Miscellaneous CRYSTAL

继电器 Switches&Relays G2R

三级管 Transistors

7段数码管 Optoelectronics

7SEG-COM-AN(共阳)

7SEG-COM-CAT(共阴)

LED 同上 LED-BLUE/GREEN

两位、四位数码管 同上 7SEG-MPX2/MPX4

2、选择要使用的元件

在Pick Device窗口双击相应元件名称,即可将元件添加到主界面左侧的列表中

3、放置元件到绘图区

单击列表中的元件,然后在右侧的绘图区单击,即可将元件放置到绘图区。(每单击一次鼠标就绘制一个元件,在绘图区空白处单击右键结束这种状态)

4、删除元件

右击元件一次表示选中(被选中的元件呈红色),选中后再一次右击则是删除。

5、移动元件

右击选中,然后用左键拖动。

6、旋转元件

左下角旋转工具栏

7、元件连线

在引脚上鼠标指针变成X状,单击,移动到目的引脚,再次单击。

8、删除连线

同删除元件

9、绘制电源和地

单击工具栏上的左起第8个工具(Inter-Sheet Terminal),左侧工具栏显示TERMINALS,可在其中选择POWER或GROUND,像放置元件一样放置到绘图区。

笔记十五

Proteus功能模块

(1)智能原理图设计(ISIS)

丰富的器件库:超过27000种元器件,可方便地创建新元件;

智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;

智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰;

可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。

(2)完善的电路仿真功能(Prospice)

ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;

超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;

多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav

文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;

丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;

生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;

高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析;

(3)独特的单片机协同仿真功能(VSM)

支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;

支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;

实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;

编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、

AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试;

(4)实用的PCB设计平台

原理图到PCB的快速通道:原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;

先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;

完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览;

多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。

笔记十六

1.Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。

2.Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。

3.除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。

4.Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。

笔记十七

在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。

PROTEUS 是单片机课堂教学的先进助手。

PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检

测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。

使用Proteus 软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。

笔记十八

DS1302

DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。

现在流行的串行时钟电路很多,如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。本文介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭

的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。

笔记十九

控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。

实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC

接口。功耗低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。

笔记二十

DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位Write Protect(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。

在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。

DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。

要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。

DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。


相关内容

  • 指导小学生做读书笔记的点滴体会
  • 文章正文 更多 指导小学生做读书笔记的点滴体会 作者:管理员    发布于:2009-12-14 12:41:15    文字:[大][中][小] 摘要: 内容提要: 随着课外阅读活动的开展,课余以书为伴的同学越来越多,可惜,我们发现其中不少同学阅读书籍,往往只追求紧张.生动的故事情节,许多精彩描写 ...

  • 第1阶段--关于读书调研报告的要求
  • 关于读书调研笔记(报告)的撰写要求 读书调研笔记(报告)是在针对某一研究领域或专题进行读书.调研和搜集大量文献资料的基础上,就国内外在该领域或专题的主要研究成果.最新进展.研究动态.前沿问题.技术现状等进行综合分析.加工,能比较全面的反映相关领域或专题的历史背景.他人工作.争论焦点.研究(或生产)现 ...

  • 五年级上学期课外阅读指导教学设计
  • 五年级上学期课外阅读指导教学设计 1.选择好书 2.学习略读 3.提纲式笔记 4.读书爱书 5.写读法 6.提出问题.解决问题 7.读懂一篇文章的方法 8.在诵读中想象,培养语感 9.中国名著介绍 课题 1.选择好书 课型 实践学习型 教学目标 指导学生明确选择好书的方法和途径,在实践中体会好处,初 ...

  • 读书笔记方式
  • 读书笔记方法1 上传: 谢秋晓 更新时间:2013-2-23 19:48:42 读书笔记方法 我们在阅读书籍或文章时,遇到文中精彩的部分或好词佳句和自己的心得.体会,随时 随地把它写下来的一种文体.古人有条著名的读书治学经验,叫做读书要做到:眼到.口到. 心到.手到.这"手到"就 ...

  • 书香校园活动策划书
  • 一:活动目的 为了提升师生们的阅读质量和培养学生良好的阅读习惯,帮助.引领老师.同学们陶冶情操.修养品性,发展人性,提升境界,丰富生活,愉悦身心,努力营造内涵丰富.特色鲜明的校园文化,推动学习型学校.学习型班级的建设,特举办一常德朗州科技职业学校"书香人生路"的读书活动,这次活动 ...

  • 2016年小学教师读书计划
  • 2016年小学教师读书计划 1.2016年小学教师读书计划 霍姆林斯基说过:"无限相信书籍的力量,是我的教育信仰的真谛之一."巴丹说:"阅读不能改变人生的长度,但可以改变人生的宽度.阅读不能改变人生的起点,但可以改变人的终点."营造书香校园,教师这种特殊的职业 ...

  • 读书笔记 | 关于产品,关于参与感
  • 今年的小米可以说是"流年不利",手机销量比去年下降了一半,国内的排名也滑到第五位.外界也是唱衰声一片.不知道可以让猪飞起来的雷军,可不可以让小米今年的销量飞起来呢? 今年给大家推荐的书就是这本<参与感:小米口碑营销内部手册>,看看@Rony 在此情此景下读这本书会有怎 ...

  • 15[海底两万里]教学设计
  • 大王镇第一小学教师授课教案 学科 阅读 备课人 郭丽 审核人 课 题 15 <海底两万里>教学设计 课 时 1 教 学 目 标 1.让学生在阅读中学会阅读,给他们提供阅读材料和阅读实践机会,利用多媒体和学生交 流. 2.让学生在阅读中,学会制作"读书笔记卡" ,从而进 ...

  • 19.中夏小学创建"书香校园"活动方案(1)
  • 中夏小学创建"书香校园"活动方案 书,是一泓清澈的溪水,是一片充满生机的芳草地.书中所表达的真.善.美对于一个人人格的塑造.灵魂的净化会产生巨大的影响,正如苏霍姆林斯基所说的那样:"我无限相信书籍的力量."本学期我校在教育局.教育组的正确领导下,开展以&quo ...

  • 高一语文教学计划
  • 2015级高一上学期语文教学计划 一.学期目标: 1.熟练识记高考必考的字音字形,掌握常见成语的含义,了解句子常见结构,提高辨析语病的能力! 2.理解并识记必修一.二教材中的文言现象!能够阅读浅易文言文,提高学生阅读文言文能力! 3.熟练背诵必修一.二中的篇目,防止眼高手低,要求人人过关,夯实基础! ...