最新单片机原理及应用(李建忠)精品课件定时器例题
《单片机原理及应用教程》第6章:定时、计数器
TCON (88H) 8FH TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0
图6.3 TCON的位定义
6.2 定时器的工作方式
6.2.1 模式 及应用 模式0及应用
模式0是选择定时器(T0或T1)的高8位和低5位组成的一个13位定时器 /计数器。图6.4是T0在模式0时的逻辑电路结构。T1的模式0电路结 构与T0相同。
6.2.2 模式 及应用 模式1及应用
图6.5 定时器T0的模式1 例1 利用定时器T0产生一个频率为50Hz的方波,由P1.1输出。要求 采用中断方式。fosc=12MHz。 解:方波周期T=1/50Hz=0.02s=20ms,如果要输出方波,则需要将 P1.1状态每半个周期翻转一次。故定时时间为10ms,则定时器初值 为: X===65536-10000=55536=D8F0H 则:TH0=0D8H,TL0=0F0H
图6.4 定时器T0的模式0
例1 设定时器T0选择工作模式0,求最长定时时间,如果要实现 定时时间为1ms,fosc=6MHz。试确定T0的初值。 解:当T0处于工作模式0时,加1计数器为13位。T0最大定时时间 对应于13位计数器T0的各位全为0,即(TH0)=00H,(TL0)=00H。 最长定时时间为: tmax=(213-0)×=213×=16.384ms 设定时时间为1ms时的初值为X,则: X===7692 转化成二进制为:1111000001100B 按照低5位,高8位拆开,T0的低5位TL0=01100B=0CH T0的高8位TH0= 11110000B,即F0H
程序如下
ORG LJMP ORG T0INT:LJMP ORG MAIN:MOV MOV MOV MOV SETB SETB SET SJMP T0SEV:MOV MOV CPL RETI
单片机原理及应用第二版--李建忠
单片机原理及应用第二版--李建忠第二章习题参考答案2-1 51单片机内部包含哪些主要逻辑功能部件?(1)一个8位微处理器CPU。
(2)256B数据存储器RAM和特殊功能寄存器SFR。
(3)4K程序存储器ROM。
(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。
(5)四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。
(6)一个串行端口,用于数据的串行通信(7)1个可管理5个中断源、2级优先嵌套的中断管理系统;。
(8)片内振荡器及时钟发生器。
2-2 MCS-51引脚中有多少I/O总线?它们和单片机对外的地址总线和数据总线有什么关系?地址总线和数据总线各是几位?32条I/O口线,分为4组,每组8条,称为P0~P3口,P0口有8位数据总线和地址总线的低8位,P2口有地址总线的高8位,因此单片机的地址总线位是16位,寻址空间为64KB,数据总线位宽为8位。
同时在P3口还R/W控制信号线。
I/O口线的总数与地址总线和数据总线没有多大联系,只是说地址总线和数据总线需要占用一定的端口。
像AT89C2051单片机,只有15条I/O口线(P3.6没有引出,作为内部使用),分为P1口(8位)和P3口(7位),没有所谓的地址总线和数据总线,并且P1口并不完整,因为P1.0和P1.1被电压比较器占用了。
2-3 51单片机的EA, ALE,PSEN信号各自功能是什么?EA:为片外程序存储器选用端,该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。
ALE:地址锁存有效信号输出在访问片外程序存储器期间,ALE以每机器周期两次进行信号输出,其下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,ALE端仍以上述频率(振荡频率f osc的1/6)出现,可作为对外输出的时钟脉冲或用于定时目的.PSEN:片外程序存储器读选通信号输出端,低电平有效。
单片机原理及应用C语言版定时器课件
可编程计数器
允许用户根据需要设置计数器的初始值和计 数模式。
同步/异步模式
定时器可以在同步或异步模式下工作,适应 不同工作场景。
定时器的优化方法
01
算法优化
采用更高效的算法来减少定时器启 动和停止的延迟。
中断优先级调整
根据应用需求调整定时器中断优先 级,确保及时响应。
03
02
硬件资源共享
将定时器与其他硬件模块共享,提 高资源利用率及如何设置和改变中断优 先级。
03
单片机定时器的应用实例
定时器在LED闪烁中的应用
总结词
实现LED的闪烁效果
详细描述
利用单片机定时器产生一定频率的计时中断,在中断服务程序中控制LED的亮灭 状态,从而实现LED的闪烁效果。
定时器在电机控制中的应用
总结词
实现电机的速度控制
单片机原理及应用C 语言版定时器课件
xx年xx月xx日
• 单片机定时器原理 • 单片机定时器的C语言编程 • 单片机定时器的应用实例 • 单片机定时器的调试与测试 • 单片机定时器的扩展与优化
目录
01
单片机定时器原理
定时器的基本概念
定时器
是一种用于产生固定时间延迟或计数的硬件或软 件模块。
定时器类型
单片机开发环境、仿真器等。
万用表、示波器、逻辑分 析仪等。
硬件工具
软件工具
调试环境
调试步骤与方法
硬件连接
软件编程
将单片机开发板与电脑连接,并确保电源 线连接正确。
在单片机开发环境中编写C语言程序,实现 定时器功能。
编译与烧录
将程序编译后烧录到单片机中。
调试过程
通过观察单片机的输入输出信号,使用调 试工具对定时器进行调试,确保其正常工作。
精品文档-单片机原理及应用(李建忠)-第3章
第3章 51单片机指令系统和汇编语言程序示例
14
3.2.2 寄存器寻址 在指令选定的某寄存器中存放或取得操作数的方式,称为
寄存器寻址。 例如:MOV A,R0指令中的源操作数是寄存器寻址。该指
令的功能是把工作寄存器R0中的内容传送到累加器A中,如R0中 的内容为30H,则执行该指令后A的内容也为30H。
(2) #data: 表示包含在指令中的8位立即数。 (3) #data16: 表示包含在指令中的16位立即数。
第3章 51单片机指令系统和汇编语言程序示例
10
(4) rel: 以补码形式表示的8位相对偏移量, 范围为128~127, 主要用在相对寻址的指令中。
(5) addr16和addr11: 分别表示16位直接地址和11位直 接地址。
第3章 51单片机指令系统和汇编语言程序示例
4
因此, 学习指令系统时, 既要从编程使用的角度掌握指 令的使用格式及每条指令的功能, 又要掌握每条指令在计算 机内部的微观操作过程(即工作原理), 从而进一步加深对硬 件组成原理的理解。
指令一般有功能、 时间和空间三种属性。 功能属性是 指每条指令都对应一个特定的操作功能; 时间属性是指一条 指令执行所用的时间, 一般用机器周期来表示; 空间属性是 指一条指令在程序存储器中存储时所占用的字节数。
27
图3.3中一条单向箭头线表示一种传送操作,箭头线尾是 源操作数,箭头指向的是目的操作数,箭头线旁的标识符 表示对片内RAM的某种寻址方式。因此,一条单向箭头线对 应一种寻址方式,就有一条“MOV”指令。双向箭头线可以 看做两条单向箭头线。
第3章 51单片机指令系统和汇编语言程序示例
28
从图中可以看出,立即数只能作为源操作数,而不能作 为目的操作数;工作寄存器中的内容只能和直接寻址方式寻址 的片内RAM单元的内容相互传送,不能和其他寻址方式寻址的 单元进行数据传送;累加器A的内容可以和寄存器间接寻址方 式、直接寻址方式寻址的片内RAM单元的内容相互传送;寄存 器间接寻址方式寻址的片内RAM单元的内容可以和直接寻址方 式寻址的另一个RAM单元的内容相互传送;直接寻址方式寻址 的两个不同RAM单元的内容可以相互传送。16位传送指令只有 一条,它是给DPTR置数的指令。根据图3.3可很快推写出本类 的16条指令。表3.1给出了这些指令及相关说明。
最新单片机原理及应用(李建忠)精品课件第三章例题(教材)
例17
将片外RAM首地址为DATA1的一个数据块转送到片内
RAM首地址为DATA2的存储区中。
MOV R0,#DATA1 MOV R1,#DATA1 LOOP: MOVX A,@R0 HERE: JZ HERE MOV @R1,A INC R0 INC R1 SJMP LOOP ;循环取数 ;R0作为外部数据块的地址指针 ;R1作为内部数据块的地址指针 ;取外部RAM数据送入A ;数据为零则终止传送 ;数据传送至内部RAM 单元 ;修改指针,指向下一数据地址
表示的被减数和减数,两数相减的差仍以BCD码的形式存放在
32H单元中。 CLR C MOV A,#9AH SUBB A,31H ADD A,30H DA A MOV 32H,A ;求减数的十进制补码 ;作十进制补码加法 ;进行BCD调整 ;将BCD码的差送存32H单元
例12
(P1)=C5H=11000101B,屏蔽P1口高4位而保留低4位。
例4
设外部RAM(0203H)= FFH,分析以下指令执行后的结果。 ;(DPTR)←0203H ;(A)←((DPTR)) ;(30H)←(A) ;(A)←0FH ;((DPTR))←(A)
MOV DPTR,#0203H MOVX A,@DPTR MOV 30H,A MOV A,#0FH MOVX @DPTR,A
MOV A,#03H PUSH DPH PUSH DPL MOV DPTR,#2000H MOVC A,@A+DPTR POP DPL POP DPH ;(A)←03H ;保护DPTR高8位入栈 ;保护DPTR低8位入栈 ;(DPTR)←2000H ;(A)←(2000H+03H) ;弹出DPTR低8位 ;弹出DPTR高8位
结果为:(DPTR)=0203H,(30H)=FFH,(0203H)=(A)=0FH。
教学课件 单片机原理及应用--李建忠
从物理空间上:片内ROM、片外ROM、片内RAM、 片外RAM。
从功能上:片内外统一的ROM、片内RAM、片外 RAM。
2.4 存 储 器
2.4.1 程序存储器
1.编址与访问 程序计数器PC:用以存放将要执行的指令地址。 可寻址的地址空间为64 KB(0000H~0FFFFH)。
图2.5 程序存储器编址图 (a) 51子系列;(b) 52子系列
2.4.2 数据存储器
1.编址与访问 片内、外数据存储器是两个独立的地址空间,单独编址。
片内数据存储器除RAM块外,还有特殊功能寄存器(SFR)块。 51子系列: RAM有128个字节(00H~7FH)
SFR有128个字节(80H~FFH) 52子系列: RAM有128个字节(00H~0FFH)
SFR有128个字节(80H~0FFH)
C
AC
F0
RS1 RS0 OV
--- P
字节地址D0H
3.布尔处理机
指令系统中的位处理指令集(17条位操作指令),存储器中的位地址空间,程序状 态寄存器PSW中的进位标志CY作为位操作"累加器",构成了MCS-51单片机内的布 尔处理机。
2.3.2 控制部件及振荡器
控制部件包括定时和控制电路、指令寄存器、译码器以及信息传送控制等部件。
1
40
2
39
3
38
4
37
5
36
6
35
7
34
8
33
9 8051 32
10 8751 31
11 8031 30
12
29
13
28
14
27
15
26
16
单片机原理及应用(李建忠)2答案
单片机原理与技术课后习题答案七
1、答:用P2.7直接控制2764的片选。
硬件接线图如下:
2、答:用80C31作主机扩展2KBRAM和4KBEPROM。
2KBRAM使用芯片6116,因为只有2k的容量,所以只需连上单片机的10根地址线。
4KBEPROM使用芯片2732,地址线数目为11根。
连接图如下:
3、答:不会发生冲突,因为访问片外数据存储器RAM时使用指令MOVX;而访问片外程
序存储器EPROM时使用MOVC,并使EA’=0。
4、答:是的。
因为80C51只需外接晶振和复位电路就可以构成最小系统,此时如果没有扩
展存储器和外设时,P0,P2口可以直接作为I/O口连接开关、指示灯等外围设备。
5、答:对于静态显示方式,LED显示器由接口芯片直接驱动,采用较小的驱动电流就可以
得到较高的显示亮度。
但是,并行输出显示的十进制位数多时,需要并行I/O接口芯片的数量较多。
采用串行输出可以大大节省单片机的内部资源,串并转换器采用74LS164,低电平时允许通过8mA电流,无需添加其它驱动电路。
TXD为位时钟输出,RXD为移位数据输出,一般采用P1.0作为显示器允许控制输出线。
具体接口电路图可参考书本图
7.19。
对于动态显示,显示器的位数不大于8位时,则控制显示其公共极电位只需一个I/O 口(称为扫描口或字位口),控制各位LED显示器所显示的字型也需要一个8位口(称为段数据口过字型口)。
具体接口电路图可参考书本图7.20。
6、答:键盘显示接口电路图如下:
程序的原理框图如下:
7、答: 程序原理图如下:。
第6章定时器及应用李朝青--单片机原理及接口技术北京航空航天大学出版社(第3版)课件
MOV TH1,#63H ;送初值
MOV TL1,#18H
SETB P1.0
;P1.0置1
SETB TR1
;启动定时
SETB ET1
;T1开中断
SETB EA
;CPU开中断
HERE: AJMP HERE 入中断服务程序
;等待时间到,转
中断服务程序
ORG 0150H
ITOP: MOV TL1,#18H;重新装 入初值
定时工作方式
定时器计数89C51片内振荡器输出经12分频 后的脉冲,即每个机器周期使定时器(T0或T1) 的数值加1直至计满溢出。
当89C51采用12MHz晶振时,一个机器 周期为1μs,计数频率为1MHz。
22:20
单片机原理及接口技术
计数工作方式
• 通过引脚T0(P3.4)和T1(P3.5)对外部脉冲 信号计数。当输入脉冲信号产生由1至0的下降 沿时计数器的值加1。
• CPU检测一个1至0的跳变需要两个机器周期, 故最高计数频率为振荡频率的1/24。
• 为了确保某个电平在变化之前被采样一次,要 求电平保持时间至少是一个完整的机器周期。
• 对输入脉冲信号的基本要求如 图6-2所示。
22:20
单片机原理及接口技术
§6.2 定时器的控制
• §6.2.1 工作模式寄存器 TMOD • §6.2.2 控制器寄存器 TCON
22:20
单片机原理及接口技术
图6-5 控制寄存器TCON的位定义
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
TCON (88H)
TF1
TR1
TF0
TR0 IE1
IT1
IE0 IT0
单片机原理及应用李建忠
单片机原理及应用李建忠单片机是一种集成电路芯片,它内部集成了CPU、RAM、ROM、I/O口以及定时器等功能模块。
它通过使用内置的程序进行控制和运算,可以完成各种不同的任务和应用。
单片机的工作原理是基于存储程序的方式,这意味着用户可以根据具体需求编写程序,然后将程序下载到单片机中进行执行。
单片机可以根据用户程序的要求,通过内部的逻辑电路和指令执行系统,对外部设备和信号进行检测、输入、输出等操作。
单片机的应用非常广泛,主要分为以下几个方面:1. 嵌入式系统:单片机广泛应用于各种嵌入式系统中,如自动控制系统、工控系统、家电控制系统等。
由于单片机具有体积小、功耗低、成本低等特点,使得它非常适合应用于嵌入式系统。
2. 电子产品:单片机广泛应用于各种电子产品中,如电视机、音响、计算机外设等。
在这些产品中,单片机负责处理各种输入输出、控制设备和实现各种功能。
3. 通信系统:单片机也被广泛应用于通信系统中,如手机、路由器、无线电等。
单片机可以实现通信系统的各种功能,如信号处理、数据传输、射频调制等。
4. 汽车电子:单片机在汽车电子领域也有重要应用,如汽车发动机控制单元、车载娱乐系统、车载导航系统等。
通过单片机的应用,可以实现汽车的动力控制、车速控制、多媒体播放等功能。
5. 仪器仪表:单片机广泛应用于各种仪器仪表中,如温度计、电压表、频率计等。
单片机可以实现仪器仪表的各种测量、控制和显示功能。
总之,单片机凭借其灵活性、可编程性以及功能强大的特点,被广泛应用于各个领域。
无论是娱乐、通信、控制还是测量,单片机都起到了至关重要的作用。
随着科技的进步和单片机技术的不断发展,我们相信单片机的应用将会更加广泛,并且在未来的发展中也会不断涌现出更多的应用领域。
精品文档-单片机原理及应用(李建忠)-第5章
空 振铃指示 数据率选择 发送时钟
空
符号 DCD TxD(2) RxD(2)
DTR RI
流向 DTE←DCE DTE←DCE DTE→DCE DTE←时钟 DTE←DCE DTE←时钟
DTE→DCE DTE→DCE
DTE←DCE DTE→DCE DTE→DCE
功能 在第二信道检测到远程载波信号 第二信道允许发送 第二信道发送数据 提供发送器定时信号 第二信道接收数据 为接口和终端提供定时 未用 连接第二信道的发送器 DTE 准备就绪
第5章 单片机串行口功能扩展
23
图5.5(b)所示为更简单的连接方法。 如果说图5.5(a)所 示的连接方法在软件设计上还需要检测“清除发送(CTS)”和 “数据设备就绪(DSR)”的话, 那么图5.5(b)所示的连接方法 则完全不需要检测这些信号, 随时可进行数据发送和接收。
第5章 单片机串行口功能扩展
第5章 单片机串行口功能扩展
25
图5.6 PC机与51单片机串行通信接口电路示例
第5章 单片机串行口功能扩展
26
2. PC机端通信软件设计 1) 通信协议 波特率: 1200 b/s; 信息格式: 8位数据位, 1位停止位, 无奇偶检验; 传送方式: PC机采用查询方式收发数据, 51单片机采用 中断方式接收数据, 查询方式发送数据; 校验方式: 累加和校验;
第5章 单片机串行口功能扩展
27
握手信号: 采用软件握手。 发送方在发送之前先发一 联络信号(用“?”号的ASCII码, 接收方接到“?”号后, 回 送一个“·”号作为应答信号), 随后依次发送数据块长度 (字节数), 发送数据, 最后发送校验和。 接收方在收到发 送方发过来的校验和后, 与自己所累加的校验和相比较。 若相同, 则回送一个“0”, 表示正确传送并结束本次通信 过程; 若不相同, 则回送一个“F”, 并使发送方重新发送 数据, 直到接收正确为止。
最新单片机原理及应用(李建忠)精品课件第4章 MCS-51单片机系统功能的扩展
例:试用EPROM2764构成8031的最小系统。
图4.11
2764与8031的扩展连接图
图4.11所示连接电路的8个重叠的地址范围为
0000000000000000~0001111111111111,0000H ~ 1FFFH;
0010000000000000 ~ 0011111111111111,2000H ~ 3FFFH; 0100000000000000 ~ 0101111111111111,4000H ~ 5FFFH; 0110000000000000 ~ 0111111111111111,6000H ~ 7FFFH; 1000000000000000 ~ 1001111111111111,8000H ~ 9FFFH; 1010000000000000 ~ 1011111111111111,A000H ~ BFFFH; 1100000000000000 ~ 1101111111111111,C000H ~ DFFFH; 1110000000000000 ~ 1111111111111111,E000H ~ FFFFH。
※
采用线选法的多片程序存储器的扩展
例:使用两片2764扩展16 KB的程序存储器,采用线选法选
中芯片。
图4.12
用两片2764 EPROM的扩展连接图
左片:00000000000000000~0001111111111111,即0000H~1FFFH; 00100000000000000~0011111111111111,即2000H~3FFFH;
/OE,与单片机的/PSEN相连,数据存储器的读、写信号线 与单片机的/RD、/WR分别相连。 存储器芯片的数据线:存储器芯片的数据线与单片机的数 据总线(P0.0~P0.7)按由低位到高位的顺序顺次相接。 存储器芯片的地址线:地址线的数目由芯片的容量决定。 容量(Q)与地址线数目(N)满足关系式:Q=2N。存储器芯片
精品文档-单片机原理及应用(李建忠)-第8章
第8章 单片机C语言应用程序设计
4
随着计算机应用技术的发展,软件开发工具日益丰富,出 现了众多支持高级语言编程的单片机开发工具。利用C语言设计 单片机应用程序已经成为单片机应用系统开发设计的一种趋势。 使用C语言编程更符合人的思维方式和思考习惯,编写代码效率 高、维护方便。采用C语言,易于开发复杂的单片机应用程序, 有利于进行单片机产品的重新选型和应用程序的移植,大大提 高了单片机应用程序的开发速度。现在,单片机仿真器普遍支 持C语言程序调试,为使用C语言进行单片机程序开发提供了便 利的条件。
第8章 单片机C语言应用程序设计
11
第 8 章 单片机C语言应用程序设计
8.1 C语言与51单片机 8.2 C51数据类型及其在51单片机中的存储方式 8.3 C51数据的存储类型与51单片机存储结构 8.4 51单片机特殊功能寄存器的C51定义 8.5 51单片机并行接口的C51定义 8.6 位变量的C51定义
第8章 单片机C语言应用程序设计
2
8.7 8.8 8.9 8.10 8.11 8.12 8.13
C51的指针 与使用51单片机内部资源有关的头文件 51单片机内部资源应用的C语言编程
51单片机片外扩展的C语言编程 频率、周期测量的C语言编程 51单片机间通信的C语言编程 键盘和数码显示人机交互的C语言编程
第8章 单片机C语言应用程序设计
7
用汇编语言设计51单片机应用程序时, 必须考虑存储器 结构, 尤其要考虑其片内数据存储器与特殊功能寄存器的正 确、 合理使用以及按实际地址处理端口数据。 尽管采用C语 言编写51单片机应用程序时, 不像用汇编语言那样具体地组 织、 分配存储器资源和处理端口数据, 甚至可以在对单片机 内部结构和存储器结构不太熟悉、 对处理器的指令集没有深 入了解的情况下编写应用程序, 但要使编译器产生充分利用 单片机资源、 执行效率高、 适合51单片机目标硬件的程序 代码, 对数据类型和变量的定义就必须与单片机的存储结构 相关联, 否则编译器就不能正确地映射定位。
精品文档-单片机原理及应用(李建忠)-第2章
第2章 51系列单片机的硬件结构
24
执行乘法指令MUL AB也会影响OV标志, 积大于255时, OV=1, 否则OV=0。
执行除法指令DIV AB 也会影响OV标志, 如B中所放除数为 0时, OV=1, 否则 OV=0。
P: 奇偶标志位P(PSW.0): 在执行指令后, 单片机根据累 加器A中1的个数的奇偶性自动给该标志置位或清零。 若A中1 的个数为奇数, 则P=1, 否则P=0。 该标志对串行通信的数据 传输非常有用, 通过奇偶校验可检验传输的可靠性。
AC:辅助进位(或称半进位)标志位AC(PSW.6): 它表示两 个8位数运算, 低4位有无进/借位的状况。 当低4位相加(或相 减)时, 若D3位向D4位有进位(或借位)时, 则AC=1, 否则AC=0。 在BCD码运算的十进制调整中要用到该标志。
第2章 51系列单片机的硬件结构
22
F0:用户自定义标志位F0(PSW.5): 用户可根据自己的 需要对F0赋予一定的含义, 通过软件置位或清零, 并根据 F0=1或0来决定程序的执行方式。
第2章 51系列单片机的硬件结构
13
表2.1 P3口第二功能表
第2章 51系列单片机的硬件结构
14
4. 控制线 (1) ALE/PROG(30脚): 地址锁存有效信号输出端。 在访问 片外程序存储器期间, ALE以每机器周期两次进行信号输出, 其 下降沿用于控制锁存P0输出的低8位地址; 在不访问片外程序存 储器期间, ALE端仍以上述频率(振荡频率fosc 的1/6)出现, 可 作为对外输出的时钟脉冲或用于定时目的。 但要注意, 在访问 片外数据存储器期间, ALE脉冲会跳空一个, 此时作为时钟输出 就不妥了(详见2.3.3节CPU时序)。 对于片内含有EPROM的机型, 在编程期间, 该引脚用作编程 脉冲PROG的输入端。
精品文档-单片机原理及应用(李建忠)-第6章
第6章 51 单片机的接口与应用
11
(1) 用键盘连接的I/O线的二进制组合表示键码。例如 用4行、4列线构成的16个键的键盘,可使用一个8位I/O口
线的高、低4位口线的二进制数的组合表示16个键的编码,如
图6.4(a)所示。各键相应的键值为88H、84H、82H、81H、48H、
44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。
在单片机应用系统中,为了控制系统的工作状态以及向系 统输入数据,应用系统一般都设有按键或键盘。例如,复位用 的复位键,功能转换用的功能键以及数据输入用的数字键盘等。
第6章 51 单片机的接口与应用
3
6.1.1 键输入过程与软件结构
单片机应用系统中,按键或键盘的每一键都被赋予特定的 功能,它们通过接口电路与单片机相连接,通过软件了解按键 的状态及键信息的输入,并转去执行该键的功能处理程序。键
别为每个按键的功能程序。设I/O为P1口。
第6章 51 单片机的接口与应用
18
START:MOV A,#0FFH MOV P1,A MOV A,P1 JNB ACC.0,K0 JNB ACC.1,K1 JNB ACC.2,K2 JNB ACC.3,K3 JNB ACC.4,K4 JNB ACC.5,K5 JNB ACC.6,K6 JNB ACC.7,K7 JMP START
;DPTR 指向 8155PA 口 ;全扫描字→A ;全扫描字送往 8155PA 口 ;DPTR 指向 8155PC 口
;读入 PC 口行状态 ;变正逻辑,以高电平表示有键按下 ;屏蔽高 4 位,只保留低 4 位行线值 ;出口状态:(A) ? 0 时有键按下 ;延时 12 ms 子程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例33 要求用单片机内部的定时器/计数器定时1分钟。
设单片机振荡频率fosc=12 MHz。
分析: 定时工作方式,最长定时时间只有 65.536 ms 。 1 分钟定时
可采用两个定时器串接的方法。使T0工作于方式1定时1 ms,T1
工作于方式1对T0的溢出脉冲计数60000次,即定时1分钟。 T1 计数对外部引脚 P3.5 上的输入脉冲进行 , T0 的溢出对外 无脉冲信号。用软件方法,当 T0 定时溢出时,在 P3.5 引脚上形 成一个计数脉冲。
T0INT:CPL P1.0
MOV TH0,#0E0H MOV RETI TL0,#18H
例2:用定时器/计数器测量脉冲宽度。设 fosc=12MHz,外部待测脉冲由/INT0 (P3.2)输入。
ORG 0000H AJMP MAIN
ORG 0030H
MAIN:MOV TMOD,#09H MOV MOV RLL1:JB TL0,#00H TH0,#00H P3.2,RLL1
★
定时器/计数器应用程序
设计定时器/计数器应用程序,包括: ■ 根据定时或计数要求确定适当的定时器/计数器工作
方式、计算出初值,并设置特殊功能寄存器TMOD、THx、TLx。 ■ 根据对定时器/计数器的工作要求设置中断系统,即 设置中断允许控制寄存器IE和中断优先级控制寄存器IP。 ■ 启动定时器/计数器,即置位TCON中的TRx位。
SETB TR1
SETB TR0
…
;设置T0、T1工作方式 ;设置T1计数初值 ;设置T0计数初值 ;以便形成计数脉冲 ;开T1内部中断
;启动定时器/计数器T1
;启动定时器/计数器T0
LOOP:
JNB TF0,$ CLR TF0 JBC F0,ELSE
SETB P3.5
MOV TH0,#0FCH
MOV TL0,#18H CLR P3.5
SJMP LOOP
…
;此处可写完成监控任务的程序 ;T0定时未到等待,定时到执行以下程序 ;清T0溢出标志 ;F0在中断服务程序中置位,表示定时1分钟到, 此时转ELSE ;处执行 ;形成计数脉冲,T1计数一次
;重装T0初值
;以便再形成计数脉冲
ELSE:
;此处可写定时1分钟到后的处理程序
AJMP REPEAT ORG 001BH SETB F0 RETI ;定时器/计数器T1的中断服务程序入口地址 ;建立定时1分钟到的用户标志
…
例1:若51单片机的晶振频率为12MHz,要求利
用定时器/记数器0通过P1.0引脚输出周期
为 2ms 的方波。试确定计数初值、 TMOD 内 容及编写相应的程序。
采用定时方式,方式0。
(TCON)=00 (TH0)=E0H (TL0)=18H
ORG
000BH
LJMP T0INT ORG 0030H MOV TMOD, #00H MOV TH0,#0E0H MOV TL0,#18H SETB EA SETB ET0 SETB TR0 SJMP $
T0、T1初值计算及设置:
初值计算 T0:65536-1000=64536=FC18H T1:65536-60000=5536=15A0H
参考程序如下: LJMP 0030H ORG 0030H START: ;主程序
MOV TMOD,#51H REPEAT:MOV TH1,#15H MOV TL1,#A0H MOV TH0,#0FCH MOV TL0,#18H CLR P3.5 MOV IE,#88H
SETB TR0 RLL2:JNB P3.2,RLL2 RLL3:JB P3.2 ,RLL3
CLR TR0 MOV A,TL0
MOV B,TH0
习题:设 51 单片机片内 RAM 的 60H 单元的初值为 80H ,要求每 1s 将其内容循环右移一位, 采用定时器T1,晶振频率为6MHz。
思考题:假设有一个51的用户系统中已使用了2 个外部中断源,并置定时器1于模式2作串 行口波特率发生器用。要求再增加一个外 部中断源并由 P1.0口输出一个5KHz的方波。 试设计方案并给出相应的程序。