89系列单片机在响应中断时,需要采取以下3个步骤。
(1)将IE 寄存器中EA(允许所有中断)位置1。
(2)将IE 寄存器中相应的独立中断允许位置1。
(3)中断服务程序从相应的中断向量入口地址开始执行。
中断向量入口是指当有中断条件发生时,程序会自动跳转到相应的中断向量入口,以执行中断服务程序。而中断向量入口地址是在单片机芯片出厂前由生产厂商设定好的,不可更改。所有兼容51系列的单片机的中断向量入口地址定义是相同的。
8)键盘接口电路
键盘是最常用的一种人机接口,主要实现向单片机输入数据、传送命令等功能。通常分为独立按键和行列式按键。图10所示为独立式按键的两种接法,当按键按下时与键盘电路相连的管角为低电平,未按下时为高电平。图11为行列式按键,按键位于行线和列线的交叉点处,每一个按键对应唯一的行线和列线的交叉点,即唯一“坐标”。
对于行列式按键的响应,首先要判断是否有按键按下,主要有以下三种方法。
编程扫描方式:用程序来控制单片机对键盘的扫描,当有键按下时,进入按键响应,处理按键,也叫做查询方式。
定时扫描方式:当单片机忙于处理其他问题时,利用单片机的定时器中断,可以产生定时中断,单片机响应后对键盘进行扫描。
中断工作方式:为了进一步提高单片机的工作效率,可以采用中断的方式,当有按键按下时出发外部中断,响应后识别键值,但需要电路支持。
当判断有按键按下后,就要判断是哪个按键,主要有两种方法判断,以图11,4*4键盘为例。
扫描法:令列线L1-L4依次轮流输出低电平,监测H1-H4的状态,监测到有低电平输出时,对应的行线与列线交叉点上的按键即为按下的键。
线反转法:令行线H1-H4输出低电平,读入L1-L4的状态;将行线和列线状态反转,令列线L1-L4输出低电平,读入H1-H4的状态;将两次读入的状态合成一个字节,即为键值。(可列出键值表)
图10 独立按键
图11 行列式按键
响应按键还有几个问题要解决,一个是按键去抖动,由于机械扰动的因素,可能导致按键接通,为了排除这种情况造成错误,在软件编程时要加入一个10ms左右的延时,如果按键按下超过10ms才判定按键按下,即所谓去除抖动;重键按下时,读入的键值不存在键值表中,要设定为不响应;检测到按键释放后才能转去执行按键功能,因此不对连击进行处理,认为是一次按键动作。
9)显示接口电路
单片机的显示电路多为声光指示,包括LED、数码管、LCD、蜂鸣器等。其中LED和数码管用的较多。LED接法主要有三种,如图12所示。数码管通常以其公共端分为共阳极数码管和共阴极数码管,如图13所示。而数码管的显示方式又分为静态显示和动态显示,所谓静态显示如图14所示,只有一个数码管接在单片机的一组端口上。而动态显示如图15所示,两个数码管接在一组端口上,并由另外两个端口来决定哪个数码管工作。
图12 LED接法 图13 数码管接法
图14 数码管静态显示方法
图15 数码管动态显示法
另外,LCD模块由于其显示质量高,数字式接口,和单片机连接方便,体积小,重量轻,功耗低等一系列优点也被广泛应用。而发生装置像蜂鸣器,使用简单,具体接法如图16所示。
图16 蜂鸣器接法
2电源电路
由于提供的电源是DC 12V,而单片机正常工作的标准电压是5V,因此需要一个电源稳压器,输出DC 5V。常用而且较为简单的电路就是使用稳压器芯片78XX系列。
78XX系列集成稳压器是常用的固定正输出电压的集成稳压器,输出电压有5V、6V、9V、12V、15V、18V、24V等规格,最大输出电流为1.5A。它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。78XX系列集成稳压器为三端器件:1脚为输入端,2脚为接地端,3脚为输出端,使用十分方便。
78XX系列集成稳压器的典型应用电路如图17所示,这是一个输出正5V直流电压的稳压电源电路。IC采用集成稳压器7805,C1、C2分别为输入端和输出端滤波电容,RL为负载电阻。当输出电较大时,7805应配上散热板。
图17 7805的典型应用
3 串行通信
串行通信的概念和种类
计算机与外界信息交换称为通信。通信的基本方式可以分为并行通信和串行通信,并行通信是数据的各位同时发送或同时接收,而串行通信是数据的各位一次逐位发送或接收。并行通信传送速度快,但不便于长距离传送;而串行通信便于长距离传送,但传送速度慢。而单片机的一个重要应用就是进行串行通信。
串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平……等)不同,形成了多种串行通信的协议与接口标准。
常见的有:
☞通用异步收发器(UART)——本次实验所要用到的串口
☞通用串行总线(USB)
☞I2C总线
☞CAN总线
☞SPI总线
☞RS-485,RS-232C,RS422A标准……等等
串行通信分为异步通信和同步通信。异步通信依靠起始位、停止位保持通信同步。通信数据传送按帧传输,一帧数据包含起始位、数据位、校验位和停止位。异步通信对硬件要求较低,实现起来比较简单、灵活,适用于数据的随机发送/接收,但因每个字节都要建立一次同步,即每个字符都要额外附加两位,所以工作速度较低,在单片机中主要采用异步通信方式。
而同步通信依靠同步字符保持通信同步。它是由1~2个同步字符和多字节数据位组成,同步字符作为起始位以触发同步时钟开始发送或接收数据;多字节数据之间不允许有空隙,每位占用的时间相等;空闲位需发送同步字符。
2)串行通信的制式
串行通信按照数据传送方向可分为三种制式:
1,单工制式:是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。
2,半双工制式:是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。
3,全双工制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。
3)80C51串