《武汉理工大学单片机应用》实习报告
在对Flash ROM编程或程序校验时,P3还接收一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示: 引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 复用功能 RXD(串行输入口) TXD(串行输出口) (外部中断0) (外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) 外部数据存储器写选通 外部数据存储器读选通 表二 P3口引脚功能表
RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。
ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN(29引脚):是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。
EA/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到
11
《武汉理工大学单片机应用》实习报告
FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。
XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18引脚):振荡器反相放大器的输入端。 特殊功能寄存器
在STC89C52RC片内存储器中,80H~FFH共128个单元位特殊功能寄存器(SFR)
单片机可实现“看门狗”功能。所谓“看门狗”是指在单片机构成的系统中,由于单片机的工作可能受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,这样会使整个系统处于停滞状态,发生不可预料的后果,所以处于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”。STC系列单片机内部自带了看门狗,通过对相应的特殊功能寄存器的设置就可实现看门狗的应用。其相应的功能及原理介绍见下表三: 符号 EN_WDT 功能 看门狗允许位,当设置为“1”,看门狗启动 CLR_WDT 看门狗清“0”位,当设为“1”时,看门狗将重新计数。硬件将自动清“0” 此位 IDLE_WDT 看门狗“IDLE”模式位,当设置为“1”时,看门狗定时器在“空闲模式”计数;当清“0”该位时,看门狗在“空闲模式”时不计数 PS2,PS1,看门狗定时器预分频值 12
《武汉理工大学单片机应用》实习报告
PS0 表三 “看门狗”定时器寄存器的功能表
2.2 单片机最小系统
51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
51单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好
P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。
13
《武汉理工大学单片机应用》实习报告
图2 单片机最小系统图
2.3 键盘检测原理
键盘是计算机系统中不可缺少的输入设备,当键盘较少时可接成线性键盘。当按键较多时接成矩阵的形式,可以节省口线。键盘是一组按键的组合。键通常是一种常开型按钮开关,常态下键的两个触点处于断开状态,按下键时它们才闭合(短路)。通常,键盘有编码和非编码两种。矩阵键盘每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵键盘的行线和列线分别通过两并行口中,一个输出扫描码,使按键动态接地(称行扫描码),另一个并行口输入按键状态(称回馈信号)。通过编码识别不同的按键,再通过软件查表,查出该键的功能,转向不同的处理程序。因此键盘处理程序的任务是:确定有无键按下;判断哪一个键按下;形成键编码;根据键的功能,转相应的处理程序。
14
《武汉理工大学单片机应用》实习报告
图3 矩阵键盘
键扫描就是要判断有无键按下,当扫描到有键按下时再进行下一步处理,否则退出键盘处理程序。独立式键盘扫描只需读取IO口状态,而矩阵式键盘描通常有两种实现方法:逐行扫描法和线反转法。
(1) 逐行扫描法。依次从第一至最末行线上发出低电平信号, 如果该行线所连接的键没有按下的话, 则列线所接的端口得到的是全“1”信号, 如果有键按下的话, 则得到非全“1”信号。 (2)线反转法。
线反转法也是识别闭合键的一种常用方法, 该法比行扫描速度快, 但在硬件上要求行线与列线外接上拉电阻。
先将行线作为输出线, 列线作为输入线, 行线输出全“0”信号, 读入列线的值, 那么在闭合键所在的列线上的值必为0;然后从列线输出全“0”信号,再读取行线的输入值,闭合键所在的行线值必为 0。这样,当一个键被按下时, 必定可读到一对唯一的行列值。再由这一对行列值可以求出闭合键所在的位置。
本次设计采用简单的逐行扫描的方式。
2.4数码管显示
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码
15