AT89S51单片机的定时器计数器
定时器计数器讲解
TR1位(或TR0位)=1,启动定时器工作的必要条件。 TR1位(或TR0位)=0,停止定时器工作。 该位可由软件置“1”或清“0”。
10
6.2 定时器/计数器的4种工作方式 4种工作方式分别介绍如下。
6.2.1 方式0 当M1、M0为00时,定时器/计数器被设置为工作方式0,
这时定时器/计数器的等效逻辑结构框图如图6-4所示(以定 时器/计数器T1为例,TMOD.5、TMOD.4 = 00)。
(1)GATE=0时,A点(见图6-4)电位恒为1,B点电位仅 取决于TRx状态。TRx = 1,B点为高电平,控制端控制电子 开关闭合,允许T1(或T0)对脉冲计数。TRx = 0,B点为低 电平,电子开关断开,禁止T1(或T0)计数。
(2)GATE=1时,B点电位由INTX*(x = 0,1)的输入电 平和TRx的状态两个条件来定。当TRx=1,且INTX*=1时,B 点才为1,控制端控制电子开关闭合,允许T1(或T0)计数。 故这种情况下计数器是否计数是由TRx和INTX*两个条件来共 同控制。
图6-1 AT89S51单片机的定时器/计数器结构框图
4
只不过计数信号的来源不同。 计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚上
的外部脉冲进行计数(见图6-1) 定时器模式是对单片机的系统时钟信号经片内12分频后的
内部脉冲信号(机器周期)计数。由于时钟频率是定值,所 以可根据对内部脉冲信号的计数值可计算出定时时间。
本例由于采用定时器T0中断,因此需将IE寄存器中的EA、 ET0位置1。 (4)启动和停止定时器T0
第2章 AT89S51单片机系统结构和
技术凝聚实力 专业创新出版
2.2.1 8051结构
如图所示为8031、8051、8751的内部总体结构,该结构按功能可划分为8个组成部 分,它们是通过片内单一总线连接起来的。 微处理器(CPU); 数据存储器(RAM); 程序存储器(ROM/EPROM); 特殊功能寄存器(SFR); I/O口; 串行口; 定时器/计数器及中断系统。
当AT89S51工作于节电模式时,CPU进入睡眠模式,但是 所有的端口仍然保持工作状态。节电模式能够通过软件 进入,在这个模式下,所有的内存数据和特殊功能寄存 器的值均保持不变。节电模式能够被任何使能的中断和 硬件复位所结束。 当节电模式是由于硬件复位结束时,程序将从其进入节 电模式的指令继续执行,为了避免在外部引脚有不可预 测的输出,最好不要将写外部端口操作和读取外部内存 放在节电模式指令后的下一步操作。
技术凝聚实力 专业创新出版
2.2.4 特殊寄存器组(SFR)
AT89S51单片机中的特殊功能寄存器(SFR)是非常重要 的内存单元,对于单片机的工程技术人员来说,理解了 SFR也就基本掌握了AT89S51单片机。 AT89S51单片机的SFR包括内部的I/O口锁存器、累加器、 定时器、串行口、中断等各种控制寄存器和状态寄存器, 共26个SFR,它们离散地分布在80H~0FFH的SFR地址空间 内,其余空缺内存位置为保留空间,为将来单片机内核 升级使用,特殊功能寄存器名及对应的地址
SP是一个8为的SFR,它用来指示出堆栈顶部在内部RAM 块中的位置。系统复位后SP的值为07H,若不对SP设置 初值,则堆栈在08H开始的区域,为了不占用工作寄存 器R0~R7的地址,一般在编程时应设置SP的初值。 数据进入堆栈前,SP加1(成为压栈);数据从堆栈中 取出(成为出栈)后,SP减1。
第5章AT89S52定时器计数器
图5-2 TMOD格式
8位分为两组,高4位控制T1,低4位控制T0。 TMOD各位的功能。 (1)GATE———门控位。
0:仅由运行控制位TRx(x = 0,1)来控制定时器/计数器运 行。
1:用外中断引脚( INT0*或 INT1*)上的电平与运行控制 位TRx共同来控制定时器/计数器运行。
9
5
5.1 定时器/计数器的结构 定时器/计数器T1、T0结构如图5-1所示,T0由特殊功能
寄存器TH0、TL0构成,T1由特殊功能寄存器TH1、TL1构成。
图5-1 定时器/计数器T0、T1结构框图
6
具有定时器和计数器2种工作模式,4种工作方式(方式0、 方式1、方式2和方式3)。属于增1计数器。
定时器/计数器T0分为两个独立的8位计数器TL0和TH0, TL0使用T0的状态控制位C/T*、GATE、TR0、TF0 ,而TH0
23
被固定为一个8位定时器(不能作为外部计数模式),并使用 定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断 请求源TF1。 2.T0工作在方式3时T1的各种工作方式
P1.0输出;T2OE=0,禁止定时时钟从P1.0输出。 DCEN(D0):计数方式选择。DCEN=1,T2的计数方式
由P1.1引脚状态决定。P1.1=1,T2减计数,P1.1=0,T2加 计数;DCEN=0,计数方式与P1.1无关,同T1和T0一样,采 用增1计数。
31
2. 特殊功能寄存器T2CON T2的功能选择由特殊功能控制寄存器T2CON来设定,
(2)M1、M0——工作方式选择位 M1、M0共有4种编码,对应于4种工作方式的选择,如
表6-1所示。
10
(3)C/T*—计数器模式和定时器模式选择位 0:为定时器工作模式,对单片机的晶体振荡器12分频后的
AT89S51单片机看门狗定时器的使用
}
}
以上程序中系统在做一个无限循环的动作,通过看门狗定时器可以防止程序在执行过程中跑飞。因为只要程序一跑出while()循环,看门狗定时器溢出以后得不到复位,所以自动复位系统,让程序从mian()开始重新运行。
但是在C语言应用看门狗定时器也特别小心,一定要在看门狗定时器启动后的0.016s内喂一次狗。
RL A ;7 2us
JMP LOOP ;8 2us
DELAY: MOV R7,#200 ;9 1us
AT89S51 看门狗定时器由一个14位定时器及WDTRST(地址为6AH)寄存器构成。开启看门狗定时器后,14位定时器会自动计数,每16384(214)个机器周期溢出一次,并产生一个高电平复位信号,使系统复位。对于12MHZ的时钟脉冲每16384us(约0.016s)产生一个复位信号。
如果启动看门狗定时器,当系统超过0.016s没有动作(程序跑飞),看门狗定时器自动复位,让系统归复于正常运作状16s内必须喂狗一次,即对看门狗定时器进行复位,看门狗的启动和复位的方法是一样的。
END ;14 2us
在程序的每个行标号后面是12MHZ时钟脉冲下的指令执行时间,为了让系统正常工作且不死机将看门狗定时器启动指令放在1和2之间,将看门狗定时器复位指令放在11和12之间。
现在一起通过执行时间来计算看门狗定时器复位指令放在那里比较合适。
{ ……;
WDTRST=0x1e;
WDTRST=0xe1;
While(1)
{ WDTRST=0x1e;
WDTRST=0xe1;
……;
……; 这部分执行时间必须少于0.016s
MOV 0A6H,#0E1H ;3 1us
单片机原理与应用模拟考试题(附参考答案)
单片机原理与应用模拟考试题(附参考答案)一、单选题(共60题,每题1分,共60分)1、下列指令能使P1口的最低位置1的是( )。
A、ANL P1,#80HB、SETB 90HC、ORL P1,#0FFHD、ORL P1,#80H正确答案:B2、在中断服务程序中,至少应有一条( )。
A、加法指法B、传送指令C、中断返回指令D、转移指令正确答案:C3、MCS-51单片机的中断源全部编程为同级时,优先级最高的是( )。
A、/INT1B、TIC、串行接口D、/INT0正确答案:D4、MCS-51单片机CPU开中断的指令是( )。
A、SETB EAB、SETB ESC、CLR EAD、SETB EX0正确答案:A5、在MCS-51单片机指令中,下列指令中( )是无条件转移指令。
A、LCALL addr16B、DJNZ direct,relC、SJMP relD、ACALL addr11正确答案:C6、用8051单片机的定时器/计数器T1作定时方式,用方式2,则初始化编程为( )。
A、TMOD=0x06B、TMOD=0x20C、TMOD=0x10D、TMOD=0x60正确答案:B7、若单片机的振荡频率为6MHz,设定时器/计数器工作在方式1需要定时1ms,则定时器/计数器初值应为( )。
A、500B、1000C、216-500D、216-1000正确答案:C8、Intel 8051单片机的CPU是( )。
A、16位B、4位C、8位D、准16位正确答案:C9、指令JB 0E0H,LP 中的0E0H是指( )。
A、累加器AB、累加器A的最高位C、累加器A的最低位D、一个单元的地址正确答案:C10、访问外部存储器或其它接口芯片时,作数据线和低8位地址线的是( )。
A、P1口B、P0口和 P2口C、P0口D、P2口正确答案:C11、单片机上电复位后,PC的内容和SP的内容为( )。
A、0000H,00HB、0000H,07HC、0003H,07HD、0800H,08H正确答案:B12、若要定时100ms(系统时钟频率为6MHz),则使用定时器/计数器的( )更合适。
51单片机复习题(含答案)
一、填空题1、A T89S51单片机为8 位单片机,共有40 个引脚。
2、MCS-51系列单片机的典型芯片分别为8031 、8051 、8751 。
3、A T89S51访问片外存储器时,利用ALE 信号锁存来自P0口发出的低8位地址信号。
4、A T89S51的P3口为双功能口。
5、A T89S51内部提供 2 个可编程的16 位定时/计数器,定时器有4 种工作方式。
6、A T89S51有 2 级中断, 5 个中断源。
7、A T89S51的P2 口为高8位地址总线口。
8、设计一个以A T89C51单片机为核心的系统,如果不外扩程序存储器,使其内部4KB 闪烁程序存储器有效,则其EA* 引脚应该接+5V9、单片机系统中使用的键盘分为独立式键盘和行列式键盘,其中行列式键盘的按键识别方法有扫描法和线反转法。
10、A T89S51内部数据存储器的地址范围是00H~7FH ,位地址空间的字节地址范围是20H~2FH ,对应的位地址范围是00H~7FH ,外部数据存储器的最大可扩展容量是64K 。
11、如果(A)=34H,(R7)=0ABH,执行XCH A, R7;结果(A)= 0ABH ,(R7)= 34H 。
12、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行256 次。
13、欲使P1口的低4位输出0,高4位不变,应执行一条ANL P1, #0F0H 命令。
14、若CPU使用的是寄存器第1组,R0~R7的地址范围是08H-0FH。
15、单片机进行串行通信时,晶振频率最好选择11.0592MHz16、当MCS-51执行MOVX A,@R1指令时,伴随着RD* 控制信号有效。
17、若A中的内容为67H,那么,P标志位为 1 。
18、A T89S51唯一的一条16位数据传送指令为MOV DPTR,data16 。
19、LJMP的跳转范围是64K,AJMP的跳转范围是2K B,SJMP的跳转范围是±128 B (或256B)。
单片机原理及应用_黄河科技学院中国大学mooc课后章节答案期末考试题库2023年
单片机原理及应用_黄河科技学院中国大学mooc课后章节答案期末考试题库2023年1.AT89S51单片机的串行口,数据输出端为()。
参考答案:TXD2.AT89S51单片机定时器/计数器T1的中断向量号为()。
参考答案:33.Keil C51的unsigned int数据类型是()。
参考答案:无符号整型变量4.访问片外RAM数据,在C51中该数据的存储类型为()。
参考答案:xdata5.数字温度传感器DS18B20是()总线的器件参考答案:单6.AT89S51单片机有4 组位并行I/O口。
参考答案:87.AT89S51单片机片片外最多可扩展 KB的程序存储器。
参考答案:648.AT89S51有个可编程定时器/计数器参考答案:29.某RAM芯片有12条地址线,可寻址 KB个存储单元参考答案:410.波特率是指串行口每发送或接收的数据参考答案:秒钟11.AT89S51单片机采用并行总线方式外扩器件时,地址总线的高8位由()口提供参考答案:P212.C51中断函数的关键字是()参考答案:interrupt13.AT89S51单片机有( )组工作寄存器参考答案:414.ADC0809是( )位的数模转换器参考答案:815.如果单片机的晶振是6MHz,则其机器周期为()参考答案:2μS16.单片机的I/O端口做通用I/O时,若要读某个引脚,需要先对该端口位写()。
参考答案:117.C51提供了()存储类型类访问ROM。
参考答案:code18.如果需要用到AT89S51单片机的特殊功能寄存器以及一些存储定义,需要加载头文件()。
参考答案:reg51.h19.下面哪一种不属于C51扩展的数据类型参考答案:double20.单片机复位时,系统默认的当前工作寄存器为第()组。
参考答案:21.程序在运行时,当前PC的值是()。
参考答案:当前正在执行的指令的下一条指令的地址22.C51 中以字节形式对xdata区进行寻址,用()宏定义。
(完整版)单片机试题及其答案
一填空题1. A T89S51单片机芯片共有 40 个引脚,MCS-51系列单片机为 8 位单片机。
2. AT89S51单片机有 2 级优先级中断。
3. AT89S51内部数据存储器的地址范围是 00H-7FH ,位地址空间的字节地址范围是20H-2FH ,对应的位地址范围是 00H-7FH ,外部数据存储器的最大可扩展容量是64k字节。
4. 单片机也可称为微控制器或嵌入式控制器。
5.当MCS-51执行MOVC A,@A+PC指令时,伴随着 PSEN 控制信号有效。
6. 当单片机复位时PSW= 00 H,当前的工作寄存器区是0区,R4所对应的存储单元地址为 04 H。
7. MCS-51系列单片机指令系统的寻址方式有寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址加变址、位寻址。
(相对寻址也可)8. 51系列单片机的典型芯片分别为AT89S51 、 8031 、 AT89C51 。
9. A T89S51的 p3 口为双功能口。
10. 由A T89S51组成的单片机系统在工作时EA引脚应该接地。
二选择题1.如果(A)=45H,(R1)=20H,(20H)=12H,执行XCHD A, @ R1;结果(A)=(A)A.42HB.20HC.12HD.15H2. AT89S51复位后,PC与SP的值为分别为(B)A.0000H、00HB.0000H、07HC.FFFFH、00HD.0000H、FFH3. 堆栈数据的进出原则是(B)A.先进先出 B.先进后出 C.后进后出 D.进入不出4. 已知:R0=28H (28H)=46H,顺序执行下面三条指令后MOV A,#32H; MOV A,45H ; MOV A,@R0执行结果A的内容为( A )A.46HB.28HC.45HD.32H5. AT89S51单片机中,唯一一个用户不能直接使用的寄存器是(C).A. PSWB.DPTR C . PC D. B三判断题1.AT89S51单片机可执行指令:MOV 35H,@R3。
AT89S51单片机的定时器
TR1 = 1; //定时器开始计数
while(1); }
27
程序(定时器1中断服务程序) void timer1_int(void) interrupt 3
{
TH0 = (65536-10000)/256;
TL0 = (65536-10000)%256;
P1_1 = ~P1_1;
//重新装入计数初值
生以输入脉冲表示,因此计数功能的实质就是对外 来脉冲的计数。 AT89S51芯片的信号引脚T0(P3.4)和T1(P3.5)分 别是两个计数器的计数输入端。外部输入的脉冲在 负跳变时有效,供计数器进行加 1 计数。
8
计数器工作原理 计数器输入的计数脉冲源
系统的时钟占当期输出脉冲经12分频后产生,通过T0 或T1引脚对外部脉冲信号计数。
T1计数器
T1引脚
T0计数器
T0引脚
机器周 期脉冲
TH1
TL1
TH0
TL0
内部总线
GATE TF1 TR1 TF0 TR0 C/T C/T M1 M0 M1 M0
TCON
GATE
TMOD
外部中断相关位
控制单元 T1方式
T0方式
7
计数器工作原理
计数功能
所谓计数是指对外部事件进行计数。外部事件的发
9
计数器工作原理
计数方式下,单片机在每个机器周期的 S5P2对计 数脉冲输入引脚进行采样。如果前一个机器周期
为高电平,后一个机器周期为低电平,即为一个
有效的计数脉冲,在下一个机器周期的 S3P1进行
计数。由于采样计数脉冲是在2个机器周期完成的,
所以计数脉冲的周期不能小于2个机器周期。
10
第2章 AT89S51单片机硬件结构
P3 P2
10
2. 2 AT89S51单片机的引脚与功能
11
2. 2 AT89S51单片机的引脚与功能
总结:外ROM占用单片机的三个控制脚
外RAM借用P3.6/WR P3.7/RD 做写读信号输出脚 逻辑符号
vcc vss P1 P3 晶振
P0 P2
DBUS/ABUS分时复用 ABUS高8位 (16地址线、8数据线)
25
2.4 AT89S51存储器的结构
三.区别四空间地址的三种方法 1.用/EA区别内外ROM /EA=0时(接地),CPU从外ROM取指执行(内ROM)不用 /EA=1时(接+5V),CPU从内ROM取指执行,但当地址>4KB 时,转而从外ROM取指执行(前4K浪费掉) 2.三种不同指令,使CPU分别指向(访问)四个不同的地址空 间之一 ①CPU—内RAM 使用MOV指令:使用8位地址码; 该指令不产生外部读写信号 ②CPU—外RAM 使用MOVX指令;一般使用16位地址码 该指令产生读/写信号之一 P3.6/WR—写外RAM P3.7/RD—读外RAM
控制器
振荡器
XTAL1 OSC C1 C2 XTAL2
P3口驱动器
P1口驱动器
P3口 锁存器
P1口 锁存器
I/O口
P3.0~P3.7 P1.0~P1.7
13
2. 3 AT89S51的CPU
中央处理器(CPU)
CPU由运算器和控制器组成,它是单片机的核心,完成 运算和控制操作。 一. 运算器 运算器:运算器的核心是ALU 另外三个:ACC.B.PSW 功能: 1.ALU可完成 + - * / —四则 与、或、非、异或—逻辑 其他:加1、减1、比较、移位
AT89S51单片机的定时器和计数器
各位的功能说明: TF1(TCON.7, 8FH位)----T1溢出标志位。 TF0(TCON.5, 8DH位)----T0溢出标志位。 TR1(TCON.6, 8EH位)----T1运行控制位。 0:关闭T1;1:启动T1运行。 TR0(TCON.4, 8CH位)----T0运行控制位。 0:关闭T0;1:启动T0运行。
4、方式3(M1M0=11):
• • • • T0分成2个8位定时器:TL0定时/计数器和TH0定时器; TL0占用T0控制位:C/T,TR0,GATE; TH0占用T1控制位:TR1、TF1; T1不能使用方式3工作,常作串口的波特率发生器使用。
振荡器 fosc
T0处于方式3时, T1可定为方式0、方式1和方式2,用来作 为串行口的波特率发生器,或不需要中断的场合。
二、 定时器工作方式:
由方式选择位M1、M0设定。
1、方式0(M1M0=00):
13位定时/计数器。THx8位和TLx低5位组成加1计数器。 计数外部脉冲个数:1~8192(213) 定时时间(若T=1s):1s~8.19ms
fosc
T=12/fosc
2、方式1(M1M0=01):
16位定时/计数器。 THx8位和TLx8位组成16位加1计数器。
T=12/fosc 计数外部脉冲个数:1~65536(216) 定时时间(若T=1s):1s~(65536×T=65.54ms)
振荡器
fosc ÷12
(定时) C/T=0 C/T=1 (记数)启 控 动 制
Tx引脚 TRx GATE INTx 1 ≥1
D15 D8D7 D0 加1 THx TLx (8位) 溢出 脉冲 (8位)
;开Tx中断
;启动Tx定时器
单片机试题9 参考答案
试题9 参考答案一、填空1.AT89S51单片机的CPU由(运算器)和(控制器)组成。
2.AT89S51单片机中,程序计数器PC、DPTR和定时器/计数器都是16位的功能部件,其中,对(PC)不能进行直接的访问,对(定时器/计数器)的访问只能对其高8位和低8位分别进行读写,对(DPTR )则可以进行16位的读写。
3.设(A)=0A3 H,(R3)=2CH,(Cy)=1,执行指令ADDC A,R3后,(Cy)=(0),(Ac)=(1),(P)=(1)。
4.74LS138是具有3个输入的译码器芯片,其输出常作片选信号,可选中(8)片芯片中的任一芯片,并且只有1路输出为(低)电平,其它输出均为(高)电平。
5.AT89S51单片机有(5)个中断源,( 6 )个中断标志,( 2 )中断优先级。
6.定时器/计数器T0工作在方式3下时,会占用T1的两个控制位:即(计数运行控制位或TR1 )和(中断标志位或计数溢出标志位或TF1 )。
7.AT89S51单片机串行口的4种工作方式中,(方式1 )和(方式3 )的波特率是可调的,与定时器/计数器T1的溢出率有关,另外两种方式的波特率是固定的。
8.DAC0832的单缓冲方式,适用于只有(1)路模拟输出,或者(多)路但不要求同步输出的场合。
9.AT89S51单片机的堆栈采用先进(后)出的原则,指针SP始终指示(栈顶)的地址。
10.AT89S51单片机通过ADC0809进行模数转换时,需要通过指令(MOVX @DPTR,A或MOVX @Ri,A)启动转换,转换结束后需通过指令(MOVX A,@DPTR或MOVX A,@Ri )将转换结果保存在A中。
11.已知8段共阴极LED显示字符“H”的段码为76H,则8段共阳极LED显示该字符的段码为(89H)。
12.常用的单片机编程语言有汇编和C51,其中( C51 )编程效率高,(汇编语言)执行效率高。
13.若单片机的时钟频率为f osc,则定时器/计数器T1工作在方式2时,最小的波特率为(f osc/98304),最大的波特率为(f osc/12或f osc/192 )。
单片微机原理及应用徐春辉第9章习题答案综述
练习与思考题9 参考答案1. A T89S51单片机中与定时器/计数器相关的特殊功能寄存器有哪几个?它们的功能各是什么?答:A T89S51单片机中与定时器/计数器相关的特殊功能寄存器有TMOD 、TCON 、IE 、IP 、TH0、TL0、TH1、TL1等8个。
TMOD 用于设定定时器/计数器的工作模式与工作方式;TCON 用于提供定时器/计数器启动或停止的软开关,另外还提供定时器/计数器的溢出标志位;IE 、IP 提供对定时器/计数器的溢出中断进行管理的控制位;TH0、TL0、TH1、TL1用于对定时器/计数器的初始值进行设定并实现对输入的计数信号进行计数的功能。
2. A T89S51单片机内设有几个可编程的定时器/计数器?它们可以有哪几种工作模式?哪几种工作方式?如何选择和设定?各有什么特点?答:A T89S51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1它们可以有定时和计数两种工作模式,由TMOD 中的C/T 位设定。
C/T =0为定时器模式,C/T =1为计数器模式。
每种工作模式下又有如下表所示的四种工作方式。
定时器/计数器四种工作方式由TMOD 中的M1 M0两位确定,如下表所3. 如果采用晶振的频率为3MHz ,定时器/计数器工作在方式0、1、2下,其最大的定时时间为多少?答:因为机器周期)(410312126s f T OSC cy μ=⨯==, 所以定时器/计数器工作方式0下,其最大定时时间为2)(192.81042261313ms T T C MAX =⨯⨯=⨯=-;同样可以求得方式1下的最大定时时间为262.144ms ;方式2下的最大定时时间为1024ms 。
4. A T89S51单片机内的定时器/计数器T0、T1工作在方式3时,有何不同?答:方式3对定时器T0和定时器T1是不相同的。
若T1设置为方式3,则停止工作。
方式3只适用于T0。
当T0设置为方式3时,将使TL0和TH0成为两个相互独立的8位计数器, TL0利用了T0本身的一些控制方式,它的操作与方式0和方式1类似。
基于51单片机的电子琴设计
基于51单片机的电子琴设计随着科技的不断发展,单片机技术已经成为了现代电子设备中的重要组成部分。
51单片机作为一种广泛应用的单片机系列,具有高性能、低功耗、高集成度等特点,被广泛应用于各种嵌入式系统开发中。
本文将介绍一种基于51单片机的电子琴设计。
一、系统硬件设计1、单片机选择本设计选用AT89C51单片机作为主控制器,AT89C51是一种低功耗、高性能的8位单片机,具有4K字节的可编程存储器和128字节的RAM,同时具有丰富的外设接口,如UART、SPI、I2C等。
2、电子琴设计电子琴采用8×8 LED点阵作为输出设备,通过单片机控制点阵的亮灭状态来展示音乐波形。
具体实现方式是将音频信号通过一个运放放大器放大,然后将其输入到LED点阵中,通过控制点阵的亮灭状态来展示音乐的波形。
3、存储模块设计为了实现电子琴曲目的存储和播放,本设计选用了一块AT24C02 EEPROM芯片作为存储设备。
AT24C02是一种串行E2PROM存储器,容量为256字节,可以通过I2C总线与单片机进行通信。
将曲目信息存储在AT24C02中,可以实现曲目的存储和播放功能。
4、按键模块设计本设计采用4×4矩阵键盘作为输入设备,通过扫描按键状态来实现音符的选择和节奏控制。
矩阵键盘的行线连接到单片机的P1口,列线连接到P2口,通过检测行列组合的变化来确定按下的键位。
二、系统软件设计1、音符解码本设计采用MIDI音符编码方式来存储和播放曲目信息。
在解码过程中,根据音符的频率和持续时间计算出对应的音高和节奏信息,然后将其用于驱动电子琴的输出设备展示音乐的波形。
2、演奏控制为了实现节奏控制,本设计采用了一种基于时间间隔的演奏方式。
在演奏过程中,单片机根据设定的节奏间隔时间来触发音符输出,从而实现对节奏的控制。
同时,为了实现曲目的停止和播放功能,我们需要在软件中加入相应的控制逻辑。
3、存储和播放在软件设计中,我们需要实现将曲目信息存储到AT24C02中以及从AT24C02中读取曲目信息的功能。
第2章AT89S51单片机硬件结构
冯·诺依曼型
存储器
控A制LU部)件
中央处理器 CPU
输入/输出 部件
算逻部件 (ALU)
单片机体系结构
程序存储器
数据存储器
控制部件 中央处理器
CPU
23
输入/输出 部件
哈佛型
23
AT89S51单片机存储器的结构
89S51存储器
程序存储器ROM 数据存储器RAM
片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器
每个口可以用作输入,也可以用作输出,还兼有其它复合功能。
两个可编程16位定时/计数器:
每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根 据计数或定时的结果 实现计算机控制。
一个看门狗定时器
5
一个全双工UART的串行I/O口:
可实现单片机与单片机或其它微机之间串行通信。 UART:Universal Asynchronous Receiver/Transmitter, 通用异步接收/发送装置
EA=0 0000H
7FH
内部 RAM 128B
00H
0000H
程序存储器地址空间
数据存储器地址空间
பைடு நூலகம்26
程序存储器(ROM)
ROM用于存放程序及表格常数 ,读取 ROM的指令为 “MOVC”。
89C51片内有4KB的ROM,外部可用16位地址线扩展到 最大64KB的ROM空间。
片内ROM和外部扩展ROM是统一编址的。
由用户定义使用的标志位。用户可根据需要用软件方法置 位或复位。
16
16
PSW(程序状态字)
RS1和RS0(PSW.4 和 PSW.3 )—— 工作寄存器组选择位
单片机at89s51的概述
单片机AT89S51的概述AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场介,可灵活应用于各种控制领域。
主要性能参数:·与MCS-51 产品指令系统完全兼容·4k字节在线系统编程(ISP) Flash闪速存储器·1000次擦写周期·4.0---5.5V的工作电压范围·全静态工作模式:0Hz---33MHz·三级程序加密锁·128×8字节内部RAM·32个可编程I/O口线·2个16位定时/计数器·6个中断源·全双工串行UART通道·低功耗空闲和掉电模式·中断可从空闲模式唤醒系统·看门狗(WDT)及双数据指针·掉电标识和快速编程特性·灵活的在线系统编程(ISP一字节或页写模式)功能特性概述:AT89S51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
引脚功能说明:·Vcc:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
单片机原理与应用专项作业-判断题
单片机原理与应用专项作业-判断题1. TI是串行口控制寄存器SCON的发送中断标志位。
[单选题] *A.是(正确答案)B.否2. 数码管动态显示方式接口编程容易,但是占用的口线较多。
[单选题] *A.是B.否(正确答案)3. AT89S51单片机支持在线编程。
[单选题] *A.是(正确答案)B.否4. AT89S51单片机片内有256B的数据储存器。
[单选题] *A.是B.否(正确答案)5. AT89系列单片机的中断优先级控制寄存器是IE。
[单选题] *A.是B.否(正确答案)6. 定时器T0有4种工作方式。
[单选题] *A.是(正确答案)B.否7. 单片机时序中的最小单位是机器周期。
[单选题] *A.是(正确答案)B.否8. 8位二进制数构成一个字节,一个字节所能表达的数的范围是0-255。
[单选题] *A.是(正确答案)B.否9. 8051中的工作寄存器就是内部RAM中的一部份。
[单选题] *A.是(正确答案)B.否10. 8051中特殊功能寄存器(SFR)就是内部RAM中的一部份。
[单选题] *A.是B.否(正确答案)11. SP称之为堆栈指针,堆栈是单片机内部的一个特殊区域,与RAM无关。
[单选题] *A.是B.否(正确答案)12. 89C51单片机片外数据存储器与扩展I/O口统一编址。
[单选题] *A.是(正确答案)B.否13. 单片机上电复位后,PC指针向0000H单元。
[单选题] *A.是(正确答案)B.否14. 定时器T1有4种工作方式。
[单选题] *B.否(正确答案)15. AT89S51单片机的定时器控制寄存器是TMOD。
[单选题] *A.是B.否(正确答案)16. 定时器T0工作在方式2时,中断程序需要编写重装初值程序。
[单选题] *A.是B.否(正确答案)17. 单片机是单片微型计算机的简称。
[单选题] *A.是(正确答案)B.否18. 8031片内有4KB的程序储存器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
这里仅介绍高4位功能。
(1)TF1、TF0—计数溢出标志位
当计数器计数溢出时,该位置“1”。使用查询方式时,此 位可供CPU查询,但应注意查询后,用软件及时将该位清 “0”。使用中断方式时,作为中断请求标志位,进入中断服务 程序后由硬件自动清“0”。
(2)TR1、TR0—计数运行控制位
26
void T1_int(void) interrupt 3 {
for(;;) {
P1=0xff; Delay(500) ; P1=0; Delay(500); } }
//T1中断函数
//无限循环
//8位LED全灭 //延时500ms //8位LED全亮 //延时500ms
27
7.4.3 控制P1.0产生周期为2ms的方波 【例7-3】假设系统时钟为12MHz,设计电路并编写程序实
16
如选用6MHz晶体,允许输入脉冲频率最高为250kHz。如选 用12MHz频率晶体,则可输入最高频率500kHz外部脉冲。对 外输入信号占空比没有限制,但为确保某一给定电平在变化前 能被采样1次,则该电平至少保持1个机器周期。故对外部输入 信号要求见图7-12,图中Tcy为机器周期。
图7-12 对外部计数输入信号的要求
TH1=f1(i);
//定时器T1的高8位重新赋初值.
TL1=f2(i);
//定时器T1的低8位重新赋初值.
37
j++; TR1=1;
//启动定时器T1
}
7.4.5 LED数码管秒表的制作
【例7-5】用2位数码管显示计时时间,最小计时单位为“百
18
图7-13 方式1定时中断控制LED闪亮
19
(1)设置TMOD寄存器 (2)计算定时器T0的计数初值 (3)设置IE寄存器 (4)启动和停止定时器T0
20
#include<reg51.h>
char i=100;
void main ()
{
TMOD=0x01;
TH0=0xee;
TL0=0x00;
断.
ET1=1;
//允许定时器T1中断 .
TMOD=0x10; TH1=f1(i);
//TMOD=0001 000B,使用T1的方式1定时 //给定时器T1高8位赋初值.
TL1=f2(i);
//给定时器T1低8位赋初值.
TR1=1;
//启动定时器T1
入信号产生负跳变时,计数值增1。每个机器周期S5P2期间, 都对外部输入引脚T0或T1进行采样。如在第1个机器周期中采 得值为1,而在下一个机器周期中采得的值为0,则在紧跟着的 再下一个机器周期S3P1期间,计数器加1。由于确认一次负跳 变要花2个机器周期,即24个振荡周期,因此外部输入的计数 脉冲的最高频率为系统振荡器频率1/24。
P1=0x00;
EA=1;
ET0=1;
TR0=1;
while(1);
{
;
}
}
//定时器T0为方式1 //设置定时器初值
//P1口8个LED点亮 //开总中断 //开定时器T0中断 //启动定时器T0 //循环等待
21
void timer0() interrupt 1 {
TH0=0xee; TL0=0x00; i--; if(i<=0) {
表7-1 M1、M0工作方式选择
5
(3)C/T* —计数器模式和定时器模式选择位 C/T*=0,定时器模式,对系统时钟12分频的脉冲进行计数。 C/T*=1,计数器模式,计数器对外部输入引脚T0(P3.4)或 T1(P3.5)的外部脉冲(负跳变)计数。 7.1.2 定时器/计数器控制寄存器TCON TCON控制T0、T1的启动和停止,同时包含T0、T1状态。
7.4 定时器/计数器的编程和应用 4种工作方式中,方式0与方式1基本相同,只是计数位数
不同。方式0为13位,方式1为16位。由于方式0是为兼容MCS48而设,计数初值计算复杂,所以在实际应用中,一般不用 方式0,常采用方式1。 7.4.1 P1口控制8只LED每0.5s闪亮一次
【例7-1】在AT89S51的P1口上接有8只LED,原理电路见图 7-13。采用T0方式1的定时中断方式,使P1口外接的8只LED每 0.5s闪亮一次。
for(j=0;j<125;j++)
{;}
//空函数
}
void main( ) {
TMOD=0x50; TH1=0xff; TL1=0xfc; EA=1; ET1=1; TR1=1; while(1) ; }
//主函数 //设置定时器T1为方式1计数 //向TH1写入初值的高8位 //向TL1写入初值的低8位 //总中断允许 //定时器T1中断允许 //启动定时器T1 //无穷循环,等待计数中断
当TMOD的低2位为11时,T0被选为方式3,各引脚与T0 的逻辑关系见图7-8。
T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的 状态控制位C/T* 、GATE、TR0 ,而TH0被固定为一个8位 定时器(不能作为外部计数模式),并使用定时器T1的状态 控制位TR1,同时占用定时器T1的中断请求源TF1。
现从P1.0引脚上输出一个周期为2ms的方波,见图7-15。 要在P1.0上产生周期为2ms的方波,定时器应产生1ms的
定时中断,定时时间到则在中断服务程序中对P1.0求反。使 用定时器T0,方式1定时中断,GATE不起作用。
28
图7-15 定时器控制P1.0输出一个周期2ms方波
图7-16 定时器控制P1.0输出周期2ms的方波的原理电路
32
图7-17 虚拟数字示波器显示的2ms的方波波形
33
7.4.4 利用T1控制发出1kHz的音频信号
【例7-4】利用T1的中断控制P1.7引脚输出频率为1kHz方波音频信号 ,驱动蜂鸣器发声。系统时钟为12MHz。方波音频信号周期1ms,因此 T1的定时中断时间为0.5 ms,进入中断服务程序后,对P1.7求反。电路 见图7-18。
//置T0高8位初值 //置T0低8位初值
do
{}while(!TF0); //判TF0是否为1,为1则T0溢出,往下
//执行,否则原地循环
P1_0=!P1_0;
// P1.0状态求反
TF0=0;
//TF0标志清零
}
}
31
仿真时,右键单击虚拟数字示波器,出现下拉菜单,点 击“Digital oscilloscope”选项,就会在数字示波器上显 示P1.0引脚输出周期为2ms方波,如图7-17所示。
方式1和方式0差别仅仅在于计数器的位数不同
8
7.2.3 方式2 方式0和方式1最大特点是计数溢出后,计数器为全0。因此在
循环定时或循环计数应用时就存在用指令反复装入计数初值的问 题,这会影响定时精度,方式2就是为解决此问题而设置的。
当M1、M0=10时,工作方式2,等效逻辑结构见图7-6(以T1 为例,x=1)。
23
图7-14 由外部计数输入信号控制LED的闪烁
#include <reg51.h>
void Delay(unsigned int i)
//定义延时函数Delay( ),i是形式参数,不能赋初值
{
unsigned int j;
for(;i>0;i--)
//变量i由实际参数传入一个值 //因此i不能赋初值
工作方式2为自动恢复初值(初值自动装入)的8位定时器/计 数器,TLx(x=0,1)作为常数缓冲器,当TLx计数溢出时,在溢 出标志TFx置“1”的同时,还自动将THx中的初值送至TLx,使 TLx从初值开始重新计数。定时器/计数器方式2工作过程见图7-7 。
9
图7-6 方式2逻辑结构框图
10
图7-7 方式2工作过程
30
#include <reg51.h>
//头文件reg51.h
sbit P1_0=P1^0;
//定义特殊功能寄存器P1的位变量P1_0
void main(void)
//主程序
{
TMOD=0x01;
//设置T0为方式1
TR0=1;
//接通T0
while(1)
//无限循环
{
TH0=0xfc; TL0=0x18;
//包含头文件
sbit sound=P1^7;
//将sound位定义为P1.7脚
#define f1(a) (65536-a)/256 //定义装入定时器高8位时间常数
#define f2(a) (65536-a)%256
//定义装入定时器低8位时间常数
unsigned int i = 500;
unsigned int j = 0;
先计算T1初值,系统时钟为12MHz,则方波周期为1µs。1kHz音频信 号周期为1ms,要定时计数的脉冲数为a。则T1初值:
TH1=(65 536 −a) /256; TL1=(65 536 −a) %256
34
图7-18 控制蜂鸣器发出1kHz的音频信号
35
参考程序如下:
#include<reg51.h>
while(1)
{
//循环等待
i=460;
while(j<2000);
j=0;
i=360;
while(j <2000);
j=0;
}
}
void T1(void) interrupt 3 using 0 //定时器T1中断函数
{
TR1= 0;
//关闭定时器T1
sound=~sound;
//P1.7输出求反
第7章 AT89S51单片机的 定时器/计数器