【单片机原理】实验报告 ,外部中断原理及外部中断的使用,计数/定时器的使用,串口发送数据和接受(上海理工大学)

目录

实验 4—-中断原理及外部中断的使用

1、掌握 C51 单片机中断的工作原理;

2、掌握外部中断的使用;

3、基本实验:

4、提升实验:

步骤:

实验结果及分析:单片机产生中断信号后,p1.0 到 p1.7 相应的管脚接地,L0 到 L7对应的 LED 灯亮。

实验 5—-定时/计数器的使用

实验目的:

实验原理:

1、计数实验:

步骤:

2、定时实验:

定时器:

实验6

第 7 章—-串口数据发送和接收(大实验,4 课时)

实验目的:

实验原理:

实验内容:

步骤:


实验 4—-中断原理及外部中断的使用

实验目的:

1、掌握 C51 单片机中断的工作原理;
2、掌握外部中断的使用;

实验原理:

实验设备:计算机、Keil uVision4 软件、实验板

实验内容:(参考第 5 章:例 5-3)

如图所示,采用外部中断 0,中断申请从 INT0 输入,并采用了去抖动

电路。当 P1.0~P1.3 的任何一位输出 0 时,相应的发光二极管就会发光。

当开关 K 来回拔动一次时,将产生一个下降沿信号,通过 INT0 发出中

断请求。中断服务程序的矢量地址为 0003H。

对应实验板原理图:用杜邦线在 J4 插座上第 8 管脚与地触碰,模拟产

生 INT1 中断中断信号,在产生外部中断时,读取按键,并在 LED 上显

示出来,完成例题要求的功能。中断服务程序的矢量地址为 0013H。

3、基本实验:

1、设计完整的主程序及中断服务程序,实现指定功能

2、关闭除 INTT1 以外的所有中断,中断 INT1 的优先级设置为

高优先级

3、用汇编语言设计程序,编译成功后下载到实验板,观察并记

录实验现像

4、提升实验:

对中断次数进行计数,并将计数结果在 6 位数码管上显示出来

步骤:

1. 新建工程,命名为 zhongduan,选择 at89c52,

2.添加 exam5-1 源文件,进入编辑界面

3 在 option output 里点击 creat HEX file ,点击运行,生成待烧录的 HEX
文件

4 将生成的 HEX 文件烧录到单片机上,打开 STC—ISP,打开
zhongduan.HEX 文件,下载到单片机上。5.观察现象:产生中断信号后,将 p1.0 到 p1.7 相对应的管脚接地,
L0 到 L7 对应的 LED 灯亮。

程序代码:

»Û¾»µç×Ó51ʵÑé°åÀý³Ì************************
*  ƽ̨£ºSTC89C52
*  Ãû³Æ£ºÖжϷþÎñ³ÌÐòÀý³Ì5-1
*  ¾§Õñ:11.0592MHZ	 
******************************************************************/
		ORG    0000H
RESET:	LJMP   MAIN   ;Éϵ磬תÏòÖ÷³ÌÐò

;		ORG    0003H   ;ÍⲿÖжÏ0Èë¿ÚµØÖ·
;		LJMP   INT0_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;		ORG    000BH   ;¶¨Ê±Æ÷ÖжÏ0Èë¿ÚµØÖ·
;		JMP    T0_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;		ORG    0013H   			;ÍⲿÖжÏ1Èë¿ÚµØÖ·
;		JMP    INT1_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;		ORG    001BH   		;¶¨Ê±Æ÷ÖжÏ1Èë¿ÚµØÖ·
;		JMP    T1_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;		ORG    0023H   ;´®¿ÚÖжÏÈë¿ÚµØÖ·
;		JMP    SERIAL_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;**************************************
;main
;**************************************
      	ORG    	0030H 	;Ö÷³ÌÐò

MAIN: 	MOV 	SP,#60H 		;ÉèÖöÑÕ»Ö¸Õë

		MOV   	TMOD,#06H  		;ÉèÖÃT0Ϊģʽ2,¼ÆÊý·½Ê½
      	MOV    	TH0,#0H   		;Éè³õʼֵ00
		MOV		TL0,#0H
;		CLR		ET0				;
;		CLR		EA				;
		SETB    TR0				;Æô¶¯¶¨Ê±

LOOP:	MOV     A,TL0           ;¶ÁÈ¡¼ÆÊýÆ÷µÄÖµ
		CPL     A 
		MOV	    P1,A
		SJMP    LOOP            ;µÈ´ýÖжÏ
;**************************************
	  	END

实验结果及分析:
单片机产生中断信号后,p1.0 到 p1.7 相应的管脚接地,L0 到 L7
对应的 LED 灯亮。

实验 5—-定时/计数器的使用

实验目的:

1、掌握 C51 单片机定时器/计数器的工作原理;
2、掌握定时器/计数器不同的工作模式和不同工作方式;掌握计数器/定时器的
初始化;
3、利用定时器产生不同占空比的方波,控制 LED0 的亮度
4、利用定时/计数器 0 对外部脉冲 P3.4 上的脉冲进行计数,并计数用 LED 灯
显示出来。

实验原理:

定时/计数器的结构定时/计数器的实质是加 1 计数器(16 位),由
高 8 位和低 8 位两个寄存器组成。TMOD 是定时/计数器的工作方式寄存器,确
定工作方式和功能;TCON 是控制寄存器,控制 T0、T1 的启动和停止及设置溢
出标志。

实验设备:计算机、Keil uVision4 软件、实验板

实验内容:

1、计数实验:

利用定时/计数器 0 工作在方式 2,从 0 开始,对外部按

键 K1 的按键次数进行计数,并计数结果送到 L0-L7 显示出来,L0

对应低位,L7 对应高位

按 1 次按键

L7 L6 L5 L4 L3 L2 L1 L0

按 2 次按键

L7 L6 L5 L4 L3 L2 L1 L0

按 3 次按键

L7 L6 L5 L4 L3 L2 L1 L0

按 4 次按键

L7 L6 L5 L4 L3 L2 L1 L0

按 255 次按键 L7 L6 L5 L4 L3 L2 L1 L0

步骤:

计数器 1.建立工程,命名为 5,选择 AT89C52

2 添加源文件代码到 source group 1,选择 char6,exam5-1 到编辑界面。3.生成可执行的 HEX 文件,在 options 中选择 create HEX file,在编辑界面选择 build,在子文件夹中找到生成的 HEX 文件。

4 烧录 5.HEX 程序到单片机上,打开 STC-ISP 软件,选择单片机接在电脑上的 COM 接口,打开程序文件,选择 5.HEX 文件,点击下载。

5,观察现象,按一次键 L0 亮,按两次键 L1 亮,按三次键 L1,L0亮,从 L0 到 L7,代表 8 位二进制数从低位到高位,亮表示 1,灭表示零,表示的二进制数为当前按键次数,功能是按键次数计数。

1.计数器
ORG    0000H
RESET: LJMP   MAIN
;
ORG    0003H   ;
;
LJMP   INT0_SERVICE   ;
;
ORG    000BH   ;
;
JMP    T0_SERVICE   ;
;
ORG    0013H
;
JMP    INT1_SERVICE   ;
;
ORG    001BH
;
;
JMP    T1_SERVICE   ;
;
ORG    0023H   ;´
;
JMP    SERIAL_SERVICE   ;
;main
ORG
0030H
MAIN:
MOV
SP,#60H
;
MOV
TMOD,#06H
;
MOV
TH0,#0H
;
MOV
TL0,#0H
;
CLR
ET0
;
;
CLR
EA
;
SETB    TR0
;
LOOP:
MOV     A,TL0           ;
CPL     A
MOV
P1,A
SJMP    LOOP            ;
END

2、定时实验:

参考书上例 6-5,晶体频率微 11.0592MHz,试编写利用

T0 产生 1s 的定时程序,在 P1.7 端口产生一个周期为 2 秒的方波,

控制 L7 亮 1 秒、暗 1 秒,交替明暗变化。

3、分别编写 1、2 两个实验程序,编译产生 HEX 文件,下载到实验板,

并观察及记录实验现象,并分析实验结果与设计是否相符;

4、若不正确,修改程序,重新修改,重复步骤 3;

定时器:

1.打开编译软件,新建工程,命名为 DINGSHI,进行
程序的编写。

2. 将编 写 好 的 程 序 生 成 为 可 执 行 HEX 文件

3.打开烧录软件,选择文件,烧录程序。

4,观察到单片机 L7 的 LED 灯发生明暗间隔 1 秒的闪烁。

2.定时器
ORG 0000H
LJMP MAIN
ORG 000BH
AJMP SERVE
ORG 0030H
MAIN: MOV SP,#60H
MOV B,#0AH
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0
SETB ET0
SETB EA
SJMP $
ORG 000BH
SERVE:MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ B,LOOP
CPL P1.7
MOV B,#0AH
LOOP:RETI
END

实验6

第 7 章—-串口数据发送和接收(大实验,4 课时)

实验目的:

1、掌握 C51 单片机串口通讯的基本原理;

2、掌握波特率发生器的工作原理;

3、掌握串口通讯相关寄存器的初始化,包括波特率、数据位数、奇偶校验等;

4、掌握采用中断方式发送、接收数据的程序设计方法

5、理解串口通讯协议;

实验原理:

实验设备:计算机、Keil uVision4 软件、实验板

实验内容:

通过下载器的 USB 转串口,实现实验板与计算机的串口通讯。实验

板上,振荡频率为 11.0592MHz,波特率设置为 9600 b/s。实验内容:

1、基本实验:打开计算机的串口调试工具,用于接收和发送数据,

完成计算机与单片机的串口通讯。单片机检测按键 K1 的按键次数,

并将按键次数通过串口发送到计算机。计算机上接收到单片机发送

的按键次数后,将接收到的数据加 1,反馈给单片机,单片机将接收

到的计算机发送的数据在 LED 灯 L0-L7 上显示出来。并观察数 LED

显示与计算机显示的数据是否相同。

2、进阶实验:字符串发送与接收。通过计算机发送自己学号的后 6

位到单片机.单片机接收到数据后,判断接收到的学号是否是自己学

号的后 6 位,是反馈字符“1”,不是反馈字符“0”。

步骤:

1. 用 keil c51 建设工程,点击上方的 project,creat new
project,命名为串口。

在选择设备界面选择 AT89C52。

2. 添加图形编码文件,点击右侧 project 的 source group1,进入添加菜单,选择。(我们是有源码文件,没有的小伙伴可以新建工程,复制下面的代码)在一个像魔术棒的菜单里,修改 option,在 output 菜单中勾选
CREAT HEX FILE,生成可以烧录的可执行文件。

勾选 OK,返回编辑菜单,点击左上角的 build 键,有一个箭头
的。

就可以在子文件夹里看到生成的文件了

3. 烧录程序到单片机上,打开 STC-ISP 软件,选择合适的 COM 接口,点击“打开程序文件”,勾选“串口。HEX“

点击 DOWNLOAD 下载,给单片机上电,显示下载
成功。

4 观察现象,打开串口助手,选择晶体频率 9600,点
击单片机的 K2 键,可以看到每按一次,接受缓冲区
收到一个从 01 递加的数,每次传来的数与按键次数
相等。

发送字符 7,看到接受的单片机上 LED 灯 L0,L1,L2 亮。对应二
进制数 7.

/**********************»Û¾»µç×Ó51ʵÑé°åÀý³Ì************************
*  ƽ̨£ºSTC89C52
*  Ãû³Æ£ºÖжϷþÎñ³ÌÐòÀý³Ì5-1
*  ¾§Õñ:11.0592MHZ	 
******************************************************************/
		ORG    0000H
RESET:	LJMP   MAIN   ;Éϵ磬תÏòÖ÷³ÌÐò

;		ORG    0003H   ;ÍⲿÖжÏ0Èë¿ÚµØÖ·
;		LJMP   INT0_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;		ORG    000BH   ;¶¨Ê±Æ÷ÖжÏ0Èë¿ÚµØÖ·
;		JMP    T0_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;		ORG    0013H   			;ÍⲿÖжÏ1Èë¿ÚµØÖ·
;		JMP    INT1_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;		ORG    001BH   		;¶¨Ê±Æ÷ÖжÏ1Èë¿ÚµØÖ·
;		JMP    T1_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

		ORG    0023H   ;´®¿ÚÖжÏÈë¿ÚµØÖ·
		JMP    SERIAL_SERVICE   ;תÏòÖжϷþÎñ³ÌÐò

;**************************************
;main
;**************************************
      	ORG    	0030H 	;Ö÷³ÌÐò

MAIN: 	MOV 	SP,#40H 	 ;ÉèÖöÑÕ»Ö¸Õë
		MOV    	TMOD,#20H    ;¶¨Ê±Æ÷1ÉèΪģʽ2
      	MOV    	TL1,#0FDH    ;¶¨Ê±Æ÷³õÖµ  f=11059200,baut=9600b/s
      	MOV    	TH1,#0FDH    ;8λÖØ×°Öµ
      	SETB   	TR1          ;Æô¶¯¶¨Ê±Æ÷1
      	MOV    	SCON ,#50H   ;ÉèÖÃΪ·½Ê½1£¬ 
			          		 ;REN=1
		MOV    	R0,#00H      ;¼ÆÊýÇåÁã
      	SETB   	ES           ;
      	SETB   	EA			 ;

LOOP:	JB     	P3.5,LOOP    ;²éѯ°´¼üK2ÊÇ·ñ°´ÏÂ
	
		ACALL  	DELAY		 ;ÑÓʱ10msÏû¶¶

		JB     	P3.5,LOOP	 ;Åжϰ´¼üK2ÊÇ·ñÒ»Ö±°´ÏÂ

		JNB    	P3.5,$		 ;µÈ´ý°´¼ü·Å¿ª 
		INC    	R0           ;¼ÆÊý+1
		ACALL  	SOUT
		AJMP	LOOP
;**************************************
;ÖжϷþÎñ³ÌÐò
;**************************************
		ORG    	0100H  
SERIAL_SERVICE:
     	JNB    	RI ,SEND   ;TI=1,Ϊ·¢ËÍÖжÏ
		CLR		RI
      	ACALL  	SIN        ;RI=1,Ϊ½ÓÊÕÖжÏ
      	SJMP   	NEXT 	  ;תÖÁͳһµÄ³ö¿Ú
SEND: 
     	CLR		TI	      ;µ÷Ó÷¢ËÍ×Ó³ÌÐò
NEXT: 
	    RETI                     ;ÖжϷµ»Ø
;**************************************
;·¢ËÍ×Óº¯Êý
;**************************************
SOUT: 	MOV		A ,R0       ;È¡°´¼ü´ÎÊýA
        MOV  	SBUF , A    ;·¢ËÍASCIIÂë
        RET              	;·µ»Ø
;**************************************
;½ÓÊÕ×Óº¯Êý
;**************************************
SIN:   	MOV 	A ,SBUF   ;¶Á³ö½ÓÊÕ»º³åÇøÄÚÈÝ
		CPL		A
		MOV	    P1,A	  ;µãÁÁLED
       	RET               ;·µ»Ø
;**************************************
;ÑÓʱ×Óº¯Êý10ms×óÓÒ
;**************************************
DELAY:	MOV     R2,#020
D1:		MOV		R3,#0FFH
D2:		DJNZ	R3,D2
		DJNZ	R2,D1
		RET
;**************************************
	  	END

资料仅供学习使用

如有错误欢迎留言交流

上理考研周导师的其他专栏:

光电融合集成电路技术     电路原理

C语言       复变函数与积分变换

单片机原理

模式识别原理

数字电子技术

自动控制原理     ​​​​​​ 传感器技术

模拟电子技术

数据结构

 概率论与数理统计

高等数学

传感器检测技术

智能控制

嵌入式系统

图像处理与机器视觉

热工与工程流体力学

数字信号处理

线性代数

工程测试技术

上理考研周导师了解更多

作者:中国周文龙

物联沃分享整理
物联沃-IOTWORD物联网 » 【单片机原理】实验报告 ,外部中断原理及外部中断的使用,计数/定时器的使用,串口发送数据和接受(上海理工大学)

发表回复