单片机实验报告.docx

上传人:b****8 文档编号:23791728 上传时间:2023-05-20 格式:DOCX 页数:24 大小:20.10KB
下载 相关 举报
单片机实验报告.docx_第1页
第1页 / 共24页
单片机实验报告.docx_第2页
第2页 / 共24页
单片机实验报告.docx_第3页
第3页 / 共24页
单片机实验报告.docx_第4页
第4页 / 共24页
单片机实验报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

单片机实验报告.docx

《单片机实验报告.docx》由会员分享,可在线阅读,更多相关《单片机实验报告.docx(24页珍藏版)》请在冰豆网上搜索。

单片机实验报告.docx

单片机实验报告

实验五外部中断实验

1.实验目的

掌握外部中断的使用方法

2.实验内容

INT0端接单次脉冲发生器。

接一次脉冲产生一次中断,使P1.0反转,P1.0接LED灯,一查看信号反转。

3.实验要求

根据实验内容编写一个程序,并在试验仪上调试和验证

4.实验说明

1)外部中断的初始化设置共有三项内容:

中断总允许EA=1,外部中断允许EXI=1,中断方式设置。

2)中断服务的关键:

A.保护进入中断的状态

B.必须在中断服务中设定是否允许中断重入,即设置EX0位。

C.用POP指令恢复中断时的现场

3)中断控制原理:

中断控制是提供给用户使用的中断控制手段。

4)中断响应的过程:

首先中断采样然后中断查询最后中断响应。

5.实验预习要求

学习教材的相关内容,根据实验要求画出程序流程图,写出试验程序。

程序:

LEDBITP1.0

org0

ljmpStart

org3

ljmpInterrupt0

org0100H

Start:

clrLED

movTCON,#01h;外部中断0下降沿触发

movIE,#81h;打开外部中断允许位(EX0)及总中断允许位(EA)

OK:

ljmpOK

Interrupt0:

pushPSW;保护现场

cplLED;取反LED

popPSW;恢复现场

reti

 

end

6.实验步骤

1)用导线连接80C51MCU的INT0端到单次脉冲模块的任一输出端;用导线连接80C51MCU模块的P10端到八位逻辑电平显示模块的L0。

2)用USB数据线连接计算机与试验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。

3)启动PC机,打开keil仿真软件,建立本实验的项目文件,输入源程序,用仿真器调式程序。

4)观察发光二极管显示跑马灯效果,拨动K0可改变跑马灯的方向。

5)把keil仿真软件生成的可执行文件(hex文件)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA为高电平)。

 

实验七74LS164串转并实验

1.实验目的

掌握使用74LS164扩展输出的方法

2.实验内容

使用74LS164串行输出数据到LED上显示

3.实验要求

根据实验内容编写一个程序,并在实验仪上调试和验证

4.实验说明

用单片机端口输出数据说时,用一个端口输出一个数据位,另一个端口输出移位脉冲。

5.实验预习要求

学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。

程序:

A_BBITP1.0

CLKBITP1.1

CLR1BITP1.2

 

ORG0

LJMPSTART

ORG0100H

START:

SETBCLR1

MOVR2,#8

mova,#01H

Output1:

callOutput;输出左移

rla

callDelay

djnzR2,Output1

movA,#0FH;输出0FH

callOutput

callDelay

callDelay

callDelay

MOVR2,#8

mova,#80H

Output2:

callOutput;输出右移

rra

callDelay

djnzR2,Output2

movA,#0F0H;输出F0H

callOutput

callDelay

callDelay

callDelay

SjmpSTART

 

Output:

PUSHACC

movR3,#8

Next:

RRCA

MOVA_B,C

clrCLK

setbCLK

djnzr3,Next

POPACC

RET

Delay:

MOVR7,#3

DD1:

MOVR6,#0FFH

DD2:

MOVR5,#0FFH

DJNZR5,$

DJNZR6,DD2

DJNZR7,DD1

RET

END

6.实验步骤

1)用导线分别连接80C52MCU模块的P10、P11、P12到74LS164模块的A/B、CLK、CLR端;用8位数据线连接八位逻辑电平显示模块的JD1D4到74LS164模块的JD1C5。

2)用USB数据线连接计算机与试验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。

3)启动PC机,打开keil仿真软件,建立本实验的项目文件,输入源程序,用仿真器调式程序。

4)观察发光二极管显示跑马灯效果,拨动K0可改变跑马灯的方向。

5)把keil仿真软件生成的可执行文件(hex文件)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA为高电平)。

实验十串行静态数码管显示实验

1.实验目的

1.掌握静态数码管显示的电路原理和驱动程序的编写。

2.掌握数字、字符块转换成显示段码的软件译码方法。

2.实验内容

使用五只74LS164组成五位静态数码管显示电路,在数码管上显示“80C51”的字符。

3.实验要求

根据实验内容编写一个程序,并在实验仪上调试和验证。

4.实验说明

静态数码管显示电路由五只74LS164、五只共阴极LED灯数码管组成。

输入只有两个信号,他们是串行数据线DIN和移位信号CLK。

五只74LS164首尾相连,每只74LS164的并行输出作为LED灯数码管的段码。

5.实验预习要求

学习教材相关内容,根据实验要求画出程序流程图,写出实验程序。

程序:

DBUFEQU30H

TEMPEQU40H

DINBITP1.0

CLKBITP1.1

ORG0000H

LJMPSTART

ORG0100H

START:

MOVDBUF,#8

MOVDBUF+1,#0

MOVDBUF+2,#0CH

MOVDBUF+3,#5

MOVDBUF+4,#1

;显示“80C51”

DISP:

MOVR0,#DBUF

MOVR1,#TEMP

MOVR2,#5

DP10:

MOVDPTR,#SEGTAB

MOVA,@R0

MOVCA,@A+DPTR

MOV@R1,A

INCR0

INCR1

DJNZR2,DP10

MOVR0,#TEMP

MOVR1,#5

DP12:

MOVR2,#8

MOVA,@R0

DP13:

RLCA

MOVDIN,C

CLRCLK

SETBCLK

DJNZR2,DP13

INCR0

DJNZR1,DP12

OK:

SJMPOK

SEGTAB:

DB3FH,06H,5BH,4FH,66H,6DH

DB7DH,07H,7FH,6FH,77H,7CH

DB39H,5EH,7BH,71H,00H,40H

END

6.实验步骤

1)用导线分别连接80C51MCU模块的P10、P11到静态数码管显示模块的DIN、CLK端。

2)用USB数据线连接计算机与试验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。

3)启动PC机,打开keil仿真软件,建立本实验的项目文件,输入源程序,用仿真器调式程序。

4)观察发光二极管显示跑马灯效果,拨动K0可改变跑马灯的方向。

5)把keil仿真软件生成的可执行文件(hex文件)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA为高电平)。

 

实验十一动态扫描数码显示实验

1.实验目的

1.掌握数字、字符转换成显示段码的软件译码方法。

2.动态显示的原理和相关程序的编写。

2.实验内容

使用六位动态数码管显示电路,在数码管上显示数字字符。

3.实验要求

根据实验内容编写一个程序,并在实验仪上调试和验证。

4.实验说明

试验箱提供了六位动态数码管显示电路,由6个共阴极LED数码管及驱动芯片构成。

动态显示,也称扫描显示,各位数码管相同笔画的段码连在一起,用一片74LS245驱动,每位数码管的共阴极由74LS06驱动。

5.实验预习要求

学习教材的相关内容,根据实验要求画出程序流程图,写出实验内容。

程序:

DBUFEQU30H

TEMPEQU40H

ORG0000H

LJMPdisp

ORG0100H

disp:

MOV30h,#8;低位

MOV31h,#6

MOV32h,#1

MOV33h,#8

MOV34h,#6

MOV35h,#1;高位

MOVR0,#DBUF

MOVR1,#TEMP

MOVR2,#6

MOVDPTR,#SEGTAB

DP00:

MOVA,@R0

MOVCA,@A+DPTR

MOV@R1,A

INCR1

INCR0

DJNZR2,DP00

DISP0:

MOVR0,#TEMP

MOVR1,#6

MOVR2,#1

DP01:

MOVA,@R0

MOVP0,A;输出段码

MOVA,R2

MOVP1,A;输出位码

ACALLDELAY

MOVA,R2

RLA

MOVR2,A

INCR0

DJNZR1,DP01

SJMPDISP

SEGTAB:

DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5

DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B

DB58H,5EH,7BH,71H,00H,40H;C,D,E,F,,-

DELAY:

MOVR4,#03H

AA1:

MOVR5,#0FFH

AA:

NOP

NOP

DJNZR5,AA

DJNZR4,AA1

RET

END

6.实验步骤

1)用8位数据线分别连接80C51MCU模块的JD0、JD1到动态数码管显示模块的JD1A3、JD2A3.

2)用USB数据线连接计算机与试验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。

3)启动PC机,打开keil仿真软件,建立本实验的项目文件,输入源程序,用仿真器调式程序。

4)观察发光二极管显示跑马灯效果,拨动K0可改变跑马灯的方向。

5)把keil仿真软件生成的可执行文件(hex文件)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA为高电平)。

 

实验十六LED点阵汉字显示实验

1.实验目的

1.了解16*16矩阵LED显示的基本原理和功能。

2.掌握16*16矩阵LED和单片机软件设计方法。

2.实验内容

根据系统提供的电路,掌握16*16矩阵LED的工作原理,编程实现显示一个“箭头”从左向右滚动的效果。

3.实验要求

根据实验内容编写一个程序,并在实验仪上调试和验证。

4.实验说明

以显示汉字“大”为例,来说明扫描原理:

在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。

如果8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。

一般我们把它拆分为上部和下部,上部由8*16点阵组成。

在本例中单片机首先显示的是左上角的第一列的上半部分。

方向为P00到P07,显示汉字“大”时,P05点亮,由上往下排列,为P0.0灭,P0.1灭,P0.2灭,P0.3灭,P0.4灭,P0.4灭,P0.5亮,P0.6灭,P0,7灭。

即二进制00000100,转换成16进制为04H。

上半部第一列完成后,继续扫描下一半部分的第一列,为了接线方便,我们仍设计成由上往下扫描,从P27向P20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制00H。

然后单片机转向上半部第二列,仍为P05点亮,为00000100,16进制04H。

这一列完成后继续进行下半部分的扫描,P21点亮,为二进制00000010,即16进制02H。

依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“大”。

5.实验预习要求

学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。

程序:

LIN_ABITP1.0

LIN_BBITP1.1

LIN_CBITP1.2

LIN_DBITP1.3

DINBITP1.5

CLKBITP1.6

R_CLKBITP1.7

ORG0000H

LJMPmain

ORG0100H

main:

;主函数

USING0

C0026:

CLRA

MOVR2,A

C0028:

CLRA

MOVR5,A

C0031:

LCALLL0070

SETBR_CLK

NOP

CLRR_CLK

MOVA,R4

MOVDPTR,#tab1+01H

MOVCA,@A+DPTR

MOVDPTR,#tab1

LCALLL0067

SETBR_CLK

NOP

INCR5

CJNER5,#010H,C0031

C0030:

INCR2

CJNER2,#064H,C0028

C0029:

CLRA

MOVR2,A

C0034:

CLRA

MOVR5,A

C0037:

LCALLL0070

SETBR_CLK

NOP

CLRR_CLK

MOVA,R4

MOVDPTR,#tab2+01H

MOVCA,@A+DPTR

MOVDPTR,#tab2

LCALLL0067

SETBR_CLK

NOP

INCR5

CJNER5,#010H,C0037

C0036:

INCR2

CJNER2,#064H,C0034

C0035:

CLRA

MOVR2,A

C0040:

CLRA

MOVR5,A

C0043:

LCALLL0070

SETBR_CLK

NOP

CLRR_CLK

MOVA,R4

MOVDPTR,#tab3+01H

MOVCA,@A+DPTR

MOVR1,A

MOVA,R4

MOVDPTR,#tab3

LCALLL0068

SETBR_CLK

NOP

INCR5

CJNER5,#010H,C0043

C0042:

INCR2

CJNER2,#064H,C0040

C0041:

CLRA

MOVR2,A

C0046:

MOVA,R2

CLRC

SUBBA,#064H

JNCC0026

CLRA

MOVR5,A

C0049:

LCALLL0070

SETBR_CLK

NOP

CLRR_CLK

MOVA,R4

MOVDPTR,#tab4+01H

MOVCA,@A+DPTR

MOVR1,A

MOVA,R4

MOVDPTR,#tab4

LCALLL0068

SETBR_CLK

NOP

INCR5

CJNER5,#010H,C0049

C0048:

INCR2

SJMPC0046

 

tab1:

;自

DB0FEH,0FFH,0FEH,07FH,0FDH,0FFH,0E0H,007H,0EFH,0F7H,0EFH,0F7H,0E0H,007H,0EFH,0F7H

DB0EFH,0F7H,0EFH,0F7H,0E0H,007H,0EFH,0F7H,0EFH,0F7H,0EFH,0F7H,0E0H,007H,0EFH,0F7H

tab2:

;强

DB0FFH,0FFH,086H,007H,0F6H,0F7H,0F6H,0F7H,086H,007H,0BFH,0BFH,0BCH,003H,0BDH,0BBH

DB085H,0BBH,0F5H,0BBH,0F4H,003H,0F7H,0BFH,0F7H,0B7H,0F7H,0BBH,0D7H,081H,0ECH,03BH

tab3:

;不

DB0FFH,0FBH,080H,001H,0FEH,07FH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FCH,09FH,0FAH,0CFH

DB0F6H,0E7H,0EEH,0F3H,0DEH,0F7H,0BEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FFH,0FFH

tab4:

;息

DB0FEH,0FFH,0FDH,0FFH,0E0H,00FH,0EFH,0EFH,0E0H,00FH,0EFH,0EFH,0E0H,00FH,0EFH,0EFH

DB0E0H,00FH,0FFH,0FFH,0F6H,0FFH,0D7H,07BH,0D7H,06DH,097H,0EDH,0F8H,00FH,0FFH,0FFH

 

;

;//======================发送数据=============================//

L0070:

CLRR_CLK

MOVA,R5

ADDA,ACC

MOVR4,A

MOVR7,#0FFH

LCALL_DataOut

MOVR7,#0FFH

_DataOut:

CLRA

MOVR6,A

C0001:

CLRCLK

MOVA,R7

JNBACC.0,C0004

SETBDIN

SJMPC0005

C0004:

CLRDIN

C0005:

NOP

NOP

SETBCLK

NOP

NOP

MOVA,R7;dat>>=1;

CLRC

RRCA

MOVR7,A

INCR6

CJNER6,#08H,C0001

C0006:

RET

 

;

;//==================设置行线====================//

L0067:

USING0

MOVR1,A

MOVA,R4

L0068:

MOVCA,@A+DPTR

MOVR3,A

MOVR7,AR1

LCALL_DataOut

MOVR7,AR3

LCALL_DataOut

MOVR7,AR5

_SetLin:

MOVA,R7

CJNEA,#010H,C0053

C0053:

JC$+5H

LJMPC0025

MOVDPTR,#C0054

MOVR0,A

ADDA,R0

ADDA,R0

JMP@A+DPTR

C0054:

LJMPC0008

LJMPC0009

LJMPC0010

LJMPC0011

LJMPC0012

LJMPC0013

LJMPC0014

LJMPC0015

LJMPC0016

LJMPC0017

LJMPC0018

LJMPC0019

LJMPC0020

LJMPC0021

LJMPC0022

LJMPC0023

C0008:

CLRLIN_A

SJMPC0055

C0009:

SETBLIN_A

C0055:

CLRLIN_B

SJMPC0057

C0010:

CLRLIN_A

SETBLIN_B

C0056:

SJMPC0057

C0011:

SETBLIN_A

SETBLIN_B

C0057:

CLRLIN_C

CLRLIN_D

RET

C0012:

CLRLIN_A

SJMPC0058

C0013:

SETBLIN_A

C0058:

CLRLIN_B

SJMPC0060

C0014:

CLRLIN_A

SETBLIN_B

C0059:

SJMPC0060

C0015:

SETBLIN_A

SETBLIN_B

C0060:

SETBLIN_C

CLRLIN_D

RET

C0016:

CLRLIN_A

SJMPC0061

C0017:

SETBLIN_A

C0061:

CLRLIN_B

SJMPC0063

C0018:

CLRLIN_A

SETBLIN_B

C0062:

SJMPC0063

C0019:

SETBLIN_A

SETBLIN_B

C0063:

CLRLIN_C

SETBLIN_D

RET

C0020:

CLRLIN_A

SJMPC0064

C0021:

SETBLIN_A

C0064:

CLRLIN_B

SJMPC0066

C0022:

CLRLIN_A

SETBLIN_B

C0065:

SJMPC0066

C0023:

SETBLIN_A

SETBLIN_B

C0066:

SETBLIN_C

SETBLIN_D

C0025:

RET

 

END

 

6.实验步骤

1)用导线分别连接80C51MCU模块的P10、P11、P12、P13、P14、P15、P16、P17到LED点阵显示模块的A、B、C、D、DIN、CLK、OUT。

2)SB数据线连接计算机与试验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。

3)PC机,打开keil仿真软件,建立本实验的项目文件,输入源程序,用仿真器调式程序。

4)发光二极管显示跑马灯效果,拨动K0可改变跑马灯的方向。

5)eil仿真软件生成的可执行文件(hex文件)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1