PAGE
PAGE 17
实验六 定时/计数器实验
一、实验目的
1)掌握单片机内部定时/计数器的应用
2)掌握单片机中断的原理及应用
二、实验仪器
TDN教学实验系统一套,PC机一台
三、实验内容
用定时计数器T0或T1,在P1.0线上输出间歇250HZ信号,此信号持续1S,间断1S,再持续1S,……。将P1.0的信号经三极管驱动扬声器发出“嘟…嘟”的声音。
250HZ 250HZ 250HZ
1S 1S
四、实验步骤
1)定时/计数器初值计算
定时/计数器T0工作于方式0。由于要求输出频率为250HZ的信号,因此,该信号的周期为4ms。
4ms
T0每2ms中断一次,系统晶振频率为6MHZ,一个机器周期T=2μs,初值,转换为二进制数为1110000011000,故T0的初值TH0=EOH,TL0=18H。
2)参考程序流程图
主程序流程图: 中断服务子程序流程图:TIN
设置初值
设置初值
30H←(30H)+1
开始
开始
Y中断次数计数器30H,31H←
Y
中断次数计数器30H,31H
←00H
位标志00H←0
(31H,30H)=500?
(31H,30H)=500?
1S到?
00H←31H,30H
00H←
31H,30H←0
TMOD
TMOD←T0工作
方式 #00H
N
N
Y(00H)=1?
Y
(00H)=1
?
送初值
P1.0
P1.0←
开中断(T
开中断(T0)
N
N
启动(T0
启动(T0)
返回
返回
等待
等待
图4-1 图4-2
3、参考程序清单
ORG 0000H
LJMP TMA
ORG 000BH
LJMP TIN
ORG 0100H
TMA:MOV 30H,#00H
MOV 31H,#00H
CLR 00H
MOV TMOD,#00H
MOV THO,#OEOH
MOV TLO,#18H
SETB EA
SETB ETO
SETB TRO
TMA1:SJMP TMA1
TIN: MOV THO,#OEOH
MOV TLO,#18H
MOV A,30H
ADD A,#01H
MOV 30H,A
MOV A,31H
ADDC A,#00H
MOV 31H,A
JZ TIN1
MOV A,30H
CJNE A,#OF4H,TIN1
CPL 00H
CLR A
MOV 30H,A
MOV 31H,A
TIN1:JNB 00H,TIN2
CPL P1.0
TIN2:RETI
END
程序调试结果:扬声器中发出“嘟……嘟……”的声音,符合实验要求。
实验七 外部中断实验
一、实验目的
1)掌握单片机外部中断的初始化及程序的编制
2)当系统有二个或二个以上的中断时,程序的编制、调试
二、实验仪器
PC机一台,TDN教学实验系统一套
三、实验内容
1)当外部来一次中断时,扬声器发出连续的“嘟”声。
2)当外部来第二次中断时,扬声器停止发声。
3)声音的频率为250HZ,由定时器T0,工作于方式0,用中断方式使P1.0引脚上产生250HZ方波信号,通过三极管放大,驱动扬声器。
P1.0送出250HZ的方波信号
P1.0送出250HZ的方波信号
四、实验步骤
1)硬件设计及接线
产生电路:
8031
8031
(P3.3)
使用该电路的目的,产生单脉冲,目的在于“去抖动”。
2)P1.0与扬声器的接线
3)T0初值计算。
4ms
fosc=6MHZ
T机器周期=2us
信号fS=250HZ TS=4ms