器。
(3) 定时/计数器
单片机正常工作时不仅要完成运算工作,而且还要完成控制工作,这就使得单片机的在正常工作时离不开定时和计数。STC89C52有3个16位的计数器/定时器。 (4)输入/输出接口
STC89C52有32个输入/输出(I/O)接口,分为4组,每组8个。它可以用来与外界进行并行的数据传输。 (5)中断系统
STC89C52拥有外部中断、定时器中断、计数器中断和串口中断等几种中断形式。各种中断都有其特定的用途,以满足不同系统的设计要求。 2.2.2 单片机STC89C52的外部引脚
STC89C52有40个外部引脚,在这40个外部引脚中,有8个为一组的输入输出引脚4组,正电源引脚1个,地线引脚1个,外部振荡器的时钟引脚2个,控制引脚3个,复位线路引脚一个。
10
电容式智能液位测量仪设计
(1)电源和地线引脚各1个
Vcc:电源正极引脚,序号为40,接电源正极,5V电压(可小幅度波动)。 Vss:电源负极引脚,序号为20,接电源负极。 (2)时钟引脚
XTAL1:XTAL1时钟引脚,序号为19,接片内震荡电路的输入端。 XTAL2:XTAL2时钟引脚,序号为18,接片内震荡电路的输出端。 时钟电路在STC89C52单片机中具有非常重要的作用。像人的心脏一样,心脏只有不停的跳动,人才能完成相应的动作。时钟电路能给单片机提供统一的时间脉冲,STC89C52的各种功能的实现,数据的处理与运算,系统的控制都需要在一个统一的脉冲之下才能顺利的进行。单片机有两种产生时钟的方式。一种方式是片内时钟震荡方式,另一种是片外时钟震荡方式。前者需要将18引脚和19引脚接震荡电容和石英晶体,后者是直接将外部脉冲信号输送给单片机,即直接连接19引脚和外部脉冲信号发生器同时将18引脚悬空。
(3)复位引脚
RST:复位信号引脚,序号为9.
复位电路能够使系统复位,也就是如果复位信号起作用后,程序将会从程序存储器的0000H单元重新开始运行,同时将一些专业寄存器的值变为复位状态值。在单片机正常运行时,只有在序号为9的引脚上出现2个或2个以上的连续时钟周期的有效电平才能使单片机进入复位状态。复位电路设计将在下一章有专门介绍。
(4)控制引脚
PSEN:对外部程序存储器进行读取的选通信号引脚,序号为29.当该引脚为负电平脉冲信号时,系统开始读取外部程序存储器中的程序。
ALE/PROG:地址锁存允许信号引脚,序号为30.在访问外部存储器的时候,P0扩展的地址低8位地址信号由ALE来锁存;当系统不访问外部存储器数据的时候,ALE引脚会输出固定的脉冲频率(时钟震荡频率的六分之一),该脉冲可以用于定时器或者其它方面。此外,在编写程序时,该引脚还可以用在输入编程脉冲,是一个复用引脚。
11
EA/Vpp:内外程序存储器选择控制引脚,序号为31.在该引脚接低电平的时候,STC89C52取指令的位置是外部程序存储器;在该引脚接高电平的时候,STC89C52取指令的位置是内部程序存储器,只有当程序的长度超过了一定值(Flash ROM的容量)时,单片机就会开始取外部程序存储器中的指令。
(5)输入/输出(I/O)引脚。
1) P0口有P0.0到P0.7八个引脚,序号为39到32。 P0口是一个的双向的漏极开路的8位I/O口,为使其正常工作,需要接上拉电阻。每个引脚都可以单独的作为输入或者输出引脚,然是当作为输入引脚时,应先将要使用的引脚置1.P0口的第二个功能就是作为地址/数据总线。当P0口作为地址引线时,它的八个端口输出的是一个8位地址;当P0口作为数据总线时,它的八个端口可以输入一个8位数据。
2) P1口有P0.0到P0.7八个引脚,序号为1到8。P1组引脚由于已经内置了上拉电阻,所以正常工作时不需要外接上拉电阻。它的八个端口也可以单独的作为输入输出接口使用,在作为输入接口时,要先将其置1。另外P1.0和P1.1具有第二功能,前者可以作为定时/计数器2的外部输入,后者可以作为定时/计数器2捕获/重载触发信号和方向控制引脚。
3)P2口有P2.0到P2.7八个引脚,序号为21到28.P2组引脚也已经内置了上拉电阻,所以正常工作时不需要外接上拉电阻。它的八个端口可以单独的作为输入输出端口,在作为输入端口时,要先将其置1.另外P2口具有第二功能,当访问外部存储器的时候,地址的高8位是由该口送出的。
4)P3口有P3.0到P3.7八个引脚,序号为10到17.该端口已经内置上拉电阻,正常工作时不需要外加上拉电阻。它的八个端口可以单独作为输入输出端口工作,但是作为输入接口时,要先将其置1.另外P3口还具有如表2.4所示的第2功能。
表2.1 P3口引脚第二功能
2.3.2 锁存器74HC573简介
锁存器的种类繁多,但所要完成的任务大致都是一样的,即都是为了使数据
12
电容式智能液位测量仪设计
得以保持。在有锁存器的情况下,可以解决慢速的外部设备和快速的控制器不同步的问题。如果给锁存器通入合适的控制电压,锁存器还能解决驱动问题,这时就省去了驱动装置,可以简化系统结构,使系统功能更容易实现。它也能解决一个输入输出接口既可以作为输出端口又可以作为输入端口的问题。在有锁存信号时,输入的状态才能被保持下来,一旦该信号改变后,数据就不能被保持下来。锁存信号只有两个值1和0。典型锁存器的逻辑电路是D触发器。由若干个D触发器所构成的单次可以保持多位二进制数的时序逻辑电路称为锁存器。74HC573一次能锁存8位二进制数据,属于8位锁存器。
74HC573的主要应用场合。在一些运算电路中,锁存器可以作为暂存器使用。锁存器之所以称为锁存器,是因为其输出端的输出信号可以被保存即输出信号可以保持不变,只有在锁存信号改变时新的数据才能被输出,直到下一次锁存信号到来之前输出信号都会保持在前一个数据。在某些电路中,锁存器可以和单片机的输出接口连接起来,在这种电路中锁存器可以连接外电路,从而实现单片机对外部电路的分时控制,若锁存器连在多位数码管上,即可实现数码管的动态扫描。如果外部线路不太复杂,外部设备不多且所需功率不高时,可以省去锁存器直接将外设连接控制装置如单片机。74HC573有20个引脚,其引脚图2.5,使用逻辑图如图2.4 。
图2.4 74HC573引脚 表2.2 使用逻辑表
2.4 程序编写语言
STC89C52单片机是城市交通灯模拟与控制系统的核心,数码管的数字显示,
二极管的正确发光,通信装置的正确通信,都依赖于单片机。而单片机能正常工作的必要前提是单片机内要有正确的程序。所以选择合适的语言给单片机编程显得尤为重要。
目前来说,单片机主要语言有汇编语言,BASIC语言,C语言等。这些语言各有优缺点。汇编语言是面向机器的程序设计语言。工作人员所编写的汇编语言并不能被机器直接识别,必须经过一个程序将其翻译成机器所认识的语言。汇编语言具有容易读写,容易调试和容易修改的优点,但是汇编语言也有明显的局限
13
性,例如汇编语言必须依赖具体的机器型号,通用性差。C语言是一种结构化语言。它具有书写层次清晰,易于模块化编写组织程序,易于维护和调试等优点。C语言的处理能力和表现能力极强,它不仅可以直接对指定内存物理地址的数据进行相应位操作,它还具有丰富的数据类型和运算符,可以方便的实现各类数据的运算。由于C语言是一种集低级语言与高级语言为一体的工程开发语言,它可移植性好,效率高,非常适用于单片机的开发与编程。STC89C52采用C语言有以下好处。
(1)使用灵活、方便,语言简单。
C语言是现有程序设计语言中规模最小的语言之一,其关键词少,ANSI C标准一共只有32个关键字,9种控制语句,压缩了一切不必要的成分。C语言的书写形式比较自由,表达方法简单,使用一些简单的方法就可以构造出相当复杂的数据类型和程序结构。同时,当前几乎所有单片机都有相应的C语言级别的仿真调试系统,调试十分方便。 (2)代码编译效率极高。
当前,较好的C语言编译系统编译出来的代码效率只比直接使用汇编语言低20%左右,如果使用优化编译选项甚至可以更低。况且,随着单片机计数的发展,ROM空间不断提高,51系列单片机中,片上ROM空间做到32KB、64KB的比比皆是,代码所差的百分之二十已经不再是一个十分严重的问题。 (3)无需深入理解单片机的内部结构
采用汇编语言进行编程时,编程者必须对单片机的内部结构及寄存器的使用方法十分清楚。在编程时,一般还要进行RAM分配,稍不小心,就会发生变量地址的重复和冲突。采用C语言进行设计,则不必对单片机硬件结构有深入的了解,编译器可以自动完成变量存储单元的分配,编程者可以专注于应用软件的部分设计,大大加快了软件的开发速度。 (4)可以模块化开发
C语言以函数作为程序设计的基本单元,其程序中的函数相当于汇编语言中的子程序。各种C语言编译器都会提供一个函数库,此外,C语言还具有自定义函数的功能。用户可以根据自己的需要编制满足某种特殊需要的自定义函数(程序模块),这些程序模块可不经修改,直接被其他项目所用。因此,采用C语言编程,可以最大程度的实现资源共享。 (5)可移植性好
14
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库城市交通灯模拟系统(哈尔滨工程大学学士学位论文) - 图文(4)在线全文阅读。
相关推荐: