51单片机模块简介
矩阵式键盘的结构
在键盘中按键 数量较多时,为了 减少I/O口的占用, 通常将按键排列成 矩阵形式。在矩阵 式键盘中,每条水 平线和垂直线在交 叉处不直接连通, 而是通过一个按键 加以连接。
矩阵式键盘的按键识别方法
• • 行扫描法 行扫描法又称为逐行(或列) 扫描查询法,是一种最常用的按键识别方法. 判断键盘中有无键按下: 将全部行线置 低电平,然后检测列线的状态。只要有一列 的电平为低,则表示键盘中有键被按下,而 且闭合的键位于低电平线与4根行线相交叉 的4个按键之中。若所有列线均为高电平, 则键盘中无键按下。 判断闭合键所在的位置: 在确认有键按 下后,即可进入确定具体闭合键的过程。其 方法是:依次将行线置为低电平,即在置某 根行线为低电平时,其它线为高电平。在确 定某根行线位置为低电平后,再逐行检测各 列线的电平状态。若某列为低,则该列线与 置为低电平的行线交叉处的按键就是闭合的 按键。
LED电路图
• LED串了470欧的电阻。 • 当P0口某位为高电平时, LED灭 • 当P0口某位为低电平时, LED亮 • 我们单独来分析一个LED。 • 电路如上,假定LED发光时 的电压为1.5V,那么: • 5 - 1.5 =470 * I • I = 0.0074A • 为7.4毫安。
•
≥1
TMOD T0引脚 1 1 0 0 0 M0 M1 C/T 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0
二、方式1
方式1的计数位数是16位,由TL0作为低8位、TH0 作为高8位,组成了16位加1计数器 。
TCON TF1 申请 中断 TR1 TF0 TR0 D7 溢出 1 TH0 8位 TL0 8位 &
初始化程序应完成如下工作:
•对TMOD赋值,以确定T0和T1的工作方式。 •计算初值,并将其写入TH0、TL0或TH1、TL1。 •中断方式时,则对IE赋值,开放中断。 •使TR0或TR1置位,启动定时/计数器定时或计数。
例 利用定时/计数器T0的方式1,产生10ms的定时, 计算初值 解:计算计数初值X: 由于晶振为12 MHz,所以机器周期Tcy为1 s。 所以: X=65536-10000=55536=D8F0H 即应将D8H送入TH0中,F0H送入TL0中
LED实验,实验的重要性 1、作为产品功能指示灯 2、在产品开发中经常会用到LED 来验证程序的正确性。
流水灯
• 八个发光二极管L1-L8分别接在单片机的 P0.0-P0.7接口上,输出“0”时,发光二 极管亮,按着 LED1→LED2→LED3→LED4→LED5→LE D6→LED7→LED8的顺序依次点亮。只需 要将P0口的某位依次变为低电平就行了。 我们这里用了头文件intrins.h中的 _crol_(A,B),_cror_(A,B)函数,功能为循环 移动。
≥1
TMOD T0引脚 0 1 M0 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0
计数个数与计数初值的关系为: X = 2 8 -N
工作方式2特别适合于用作较精确的脉冲信号发生器。
四、方式3
方式3只适用于定时/计数器T0,定时器T1处于方式3时相当
• • • • • • • • • • • • •
LED灯闪烁的流程图
• 根据流程图,写出主函数如下:
• • • • • • • • • • •
配套试验程序一中部分程序。 void Main(void) { while(1) { Show_LED = 1; Delay(20); Show_LED = 0; Delay(20); } }
MCS-51单片机的中断系统结构
主程序 中断响应
中断请求
执行主 程序
断点 继续执行 主程序 执行 中断 处理 程序
中断返回
主程序A
断点
返回
RETI 中断服务程序B
引起CPU中断的根源,称为中断源。中断源向CPU提 出的中断请求。CPU暂时中断原来的事务A,转去处理事 件B。对事件B处理完毕后,再回到原来被中断的地方(即 断点),称为中断返回。实现上述中断功能的部件称为中 断系统(中断机构)。
5.3.1 定时/计数器的结构和工作原理
一、定时/计数器的结构 定时/计数器的实质是加1计数器(16位),由高8位和低8 位两个寄存器组成。TMOD是定时/计数器的工作方式寄存 器,确定工作方式和功能;TCON是控制寄存器,控制T0、 T1的启动和停止及设置溢出标志。
T1引脚 T0引脚
机器周 期脉冲
于TR1=0,停止计数。
溢出 申请 中断 申请 中断 TCON TF1 TR1 TF0 TR0 溢出 TH0 8位 T0引脚 1 TL0 8位 &
≥1
机器周期 TMOD 1 1 M0 M1 C/T 0 机器周期 GATE M0 1 M1 C/T GATE D7 D0
D0
INT0引脚
工作方式3将T0分成为两个独立的8位计数器TL0和TH0 。
≥1
TMOD T0引脚 1 0 M0 M1 C/T 0 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0
计数个数与计数初值的关系为: X = 2 1 6 -N
三、方式2 方式2为自动重装初值的8位计数方式。
TCON TF1 申请 中断 TR1 TF0 TR0 TH0 8位 D0 D7 溢出 1 TL0 &
8*8点阵LED等效电路
8 X 8 点阵LED工作原理说明 :8X8点阵共需要64个发光二极管组成, 且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1 电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮 法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱, 因此实现柱的亮的方法如下所述: 一根竖柱:对应的列置1,而行则采用扫描的方法来实现。 一根横柱:对应的行置0,而列则采用扫描的方法来实现。
5.1 80C51的中断系统
5.1.1 80C51的中断系统结构
一、中断的概念 CPU在处理某一事件A时,发生了另一事件B请 求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中 断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被 中断的地方继续处理事件A(中断返回),这一过 程称为中断 。
•设置为定时器模式时,加1计数器是对内部机器周期 计数(1个机器周期等于12个振荡周期,即计数频率 为晶振频率的1/12)。计数值N乘以机器周期Tcy就 是定时时间t 。
5.3.2 定时/计数器的控制
80C51单片机定时/计数器的工作由两个特殊功 能寄存器控制。TMOD用于设置其工作方式; TCON用于控制其启动和中断申请。 一、工作方式寄存器TMOD 工作方式寄存器TMOD用于设置定时/计数器的 工作方式,低四位用于T0,高四位用于T1。其格式 如下:
•
矩阵键盘识别的详细步骤:
• 8051单片机的P1口用作键盘I/O口,键盘的行线 接到P1口的低4位,键盘的列线接到P1口的高4位。 把行线P1.0-P1.3设置为输出线,行线P1.4-P.17 设置为输入线。4根行线和4根列线形成16个相交 点。 • 1、检测当前是否有键被按下。检测的方法是 P1.0-P1.3输出全“0”,读取P1.4-P1.7的状态, 若P1.4-P1.7为全“1”,则无键闭合,否则有键 闭合。 • 2、去除键抖动。当检测到有键按下后,延时一段 时间再做下一步的检测判断。
二、控制寄存器TCON
TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于 控制定时/计数器的启动和中断申请。其格式如下:
•TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自 动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU 可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可 以用软件置1或清0,同硬件置1或清0的效果一样。 •TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置 0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/ 计数器的启动与停止。 •TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 •TR0(TCON.4):T0运行控制位,其功能与TR1类同。
数码管基本构造
数码管的基本构造可以看成如上图。他们的一端全连在 一起。如果LED的阴极相连,那么该数码管被称为共阴 数码管;如果LED的阳极相连,那么该数码管被称为共 阳数码管。上面每个LED相当于数码管的段。
数码管的编码
数码管电路图分析
独立按键电路图
按键消抖
从上图中可以看出,我们在程序设计时,从按 键被识别按下之后,延时 5ms 以 上 ,从而避 开了干扰信号区域,我们再来检测一次,看按 键是否真得已经按下,若真得已经按下,这时 肯定输出为低电平,若这时检测到的是高电平, 证明刚才是由于干扰信号引起的误触发,CPU 就认为是误触发信号而舍弃这次的按键识别过 程。从而提高了系统的可靠性。
GATE:门控位。GATE=0时,只要用软件使TCON中的 TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时, 要用软件使TR0或TR1为1,同时外部中断引脚或也为高电 平时,才能启动定时/计数器工作。即此时定时器的启动条 件,加上了或引脚为高电平这一条件。 C / T :定时/计数模式选择位。 / T =0为定时模式;/ T =1 C C 为计数模式。 M1M0:工作方式设置位。定时/计数器有四种工作方式, 由M1M0进行设置。
5.3.3 定时/计数器的工作方式
一、方式0
方式0为13位计数,由TL0的低5位(高3位未用)和TH0 的8位组成。TL0的低5位溢出向TH0进位,TH0溢出时, 置位TCON中的TF0标志,向CPU发出中断请求。