单片机实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仲恺农业工程学院实验报告纸
信科院(院、系)计算机科学与技专业计机班组课
实验三外部中断实验
一、实验目的
掌握 8051单片机外部中断的使用方法。
二、实验内容
实验电路如下图所示。通过用手动逐个向 8051 单片机的 0 INT 输入单脉冲,申请中断。每中断一
次,依次使 8051 单片机向 P1口输出 55H、AAH、55H……。
三、参考程序流程图
四、实验程序
ORG 0000H
AJMP MAIN ;跳转到主程序
ORG 0003H ;外部中断 0(INT0)的入口地址
MOV P1, A ;将A 中的数据送到P1 口显示
CPL A ;对A 中的数据取反
RETI ;中断返回
ORG 0020H ;主程序地址
MAIN: SETB EA ;CPU 开中断
SETB IT0 ;设置中断触发方式为边沿触发
SETB EX0 ;外部中断0 开中断
MOV A, #55H ;A 中预置数据55H
SJMP $ ;等待中断信号
实验结果:
实验一开始时,由初始值55H,转换为二进制数了0101 0101,意味着一开始只有L1.0、L1.2、L1.4、L1.6四盏灯亮,当你按一下单脉冲按钮时,刚不亮的四盏灯L1.1、L1.3、L1.5、L1.7亮,L1.0、L1.2、L1.4、L1.6四盏灯灭了,这是由于刚按下的单脉冲触发了中断信号,由程序可以看出中断使得P1口的数据取反。
用C语言的程序
#include
void int0_srv() interrupt 0{
p1=~p1;
}
void main(){
p1=0x55;
EA=1;
IT0=1;
EX0=1;
while(1);
}
实验四定时器实验
一、实验目的
1.掌握8051 单片机内部定时器的使用方法, 学习电子音响--喇叭的应用电路及编程。
二、实验内容及实验原理
⒈音阶由不同频率的方波产生,音阶与频率的关系如表3-8-1 所示。
⒉方波的频率由定时器控制定时器控制产生,定时器计数溢出后产生中断,将P1.2 取反
即可。每个音阶对应的定时器初值,可按下法计算。
晶振为6MHz 时,由于音阶1 的频率是262Hz,设定时器的初值为X,则
1 / (262*2) = ((65536-X)*12) / (6*106)
可得X=64582D=0FC46H
3、实验内容:连续发出1、2、3、
4、
5、
6、
7、i、i、7、6、5、4、3、2、1 的音乐。
三、参考程序流程图
五、参考程序DSQ-1.ASM 中断方式
ORG 0000H
LJMP MAIN
ORG 1BH
JMP T1INT ;定时器1 中断入口地址
ORG 0100H
MAIN: MOV SP,#60H
ANL TMOD,#0FH ;定时器1 置为方式1
ORL TMOD,#10H
ORL IE,#88H ;允许定时器1 中断
MAIN1: MOV DPTR,#TONE ;置TONE 表首地址MOV A,#00H ;TONE 表偏移量
LOOP: MOVC A,@A+DPTR ;读TONE 表中的TH1 值JZ MAIN1 ;为0 则转MAIN1,进入下一周期MOV TH1,A ;TONE 表中的高字节送TH1 和R5 MOV R5,A
INC DPTR ;从TONE 表中读出TL1 的值
MOV A,#00H
MOVC A,@A+DPTR
MOV R6,A
SETB TR1 ;启动定时器1
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR ;从TONE 表中取出音的时间
MOV R2,A
LOOP1: MOV R3,#80H ;延时
LOOP2: MOV R4,#0FFH
DJNZ R4,$
DJNZ R3,LOOP2
DJNZ R2,LOOP1
INC DPTR ;TONE 表地址加1,指向下一个音调
MOV A,#00H
JMP LOOP
T1INT: CPL P1.2 ;取反得到一定频率的方波,使喇叭
;发出一定音高的音调
CLR TR1 ;停止定时器1 计数
MOV TH1,R5 ;重置定时器1 时间常数
MOV TL1,R6
SETB TR1 ;恢复定时器1 计数
RETI
TONE: DB 0FCH,46H,04H,0FCH,0AEH,04H ;音调表
DB 0FDH,0BH,04H,0FDH,34H,04H
DB 0FDH,83H,04H,0FDH,0C8H,04H
DB 0FEH,06H,04H,0FEH,22H,04H
DB 0FEH,22H,04H,0FEH,06H,04H
DB 0FDH,0C8H,04H,0FDH,83H,04H
DB 0FDH,34H,04H,0FDH,0BH,04H
DB 0FCH,0AEH,04H,0FCH,46H,0CH
DB 00H,00H,00H
END
实验结果
连续发出1、2、3、4、5、6、7、i、i、7、6、5、4、3、2、1 的音乐。
思考题:
(1)试说明51系列单片机定时器的使用方法。
答:定时/计数器有两种T0和T1,当C/T=0是当作定时器使用,接下来要选取工作方式,定时器T0有四种工作方式,但T2只有T0的前3种工作方式,然后要分别为由高8位和低8位的两个特殊功能寄存器THX和TLX赋初值,然后要开总中断即EA=1,再开中断允许位(是ET0=1还是ET1=1)最后要启动定时器