搜索
您的当前位置:首页正文

单片机实验报告

来源:小奈知识网
单片机实验报告

一、实验目的

1.熟练使用Keil、Protues两款软件

2.通过上机操作,增强个人动手实践能力

3.加深对理论知识的理解

4.培养运用汇编语言进行初步编写程序的能力

二、实验内容

1.将片外RAM3050-306FH中数据转移至片内70-8FH中。

要求:可以从Keil或Protues上看到RAM的数据转移结果。

2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。

要求:开发板或Prrotues演示

3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。

要求:在Keil或Protues上看到数据转换结果。

4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。

要求:Protues使软件间示波器显示方波。

三、实验程序

1. \\\\将片外RAM3050-306FH中数据转移至片内70-8FH中

ORG 0000H

AJMP MAIN \\\\上电,转向主程序

ORG 0030H \\\\主程序入口

MAIN: MOV DPTR,#3050H \\\\数据指针指向地址3050H

MOV A,#04H \\\\将立即数04H送A寄存器

MOV R0,#20H

NEXT: MOVX @DPTR,A

INC DPTR \\\\数据指针DPTR自加一

DJNZ R0,NEXT \\\\判断是否跳转到NEXT或继续向下执行

MOV DPTR,#3050H

MOV R0,#70H

MOV R2,#20H

NEXT1:

MOVX A,@DPTR

MOV @R0,A

INC DPTR

INC R0

DJNZ R2,NEXT1

SJMP $ \\\\等待

END

2. \\\\设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮

ORG 0000H

SJMP MAIN \\\\上电,转向主程序

ORG 0003H \\\\外部中断0向量入口

AJMP INSER

ORG 0030H \\\\主程序入口

MAIN: SETB EX0 \\\\允许外部中断0中断

SETB IT0 \\\\选择边沿触发方式

SETB EA \\\\CPU开中断

HERE: SJMP HERE \\\\等待中断

ORG 0200H

INSER: MOV R2,#08H \\\\设置循环次数

MOV A,#01H \\\\赋初值,设置高电平亮

NEXT: MOV P2,A \\\\将初值送往P2口

LCALL DELAY \\\\ 延时

RL A \\\\左移一位

DJNZ R2,NEXT \\\\判断循环次数,是否跳转到NEXT或继续向下执行

RETI \\\\中断返回

DELAY: MOV R3,#0FFH \\\\延时程序

DEL2: MOV R4,#0FFH

DEL1: NOP

DJNZ R4,DEL1

DJNZ R3,DEL2

RET

END

3.\\\\将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术

ORG 0000H

LJMP MAIN

ORG 0030H\\\\主程序起始地址

MAIN:

MOV 80H,#05H \\\\将立即数50H转送内存单元80H

MOV A,80H \\\\将内存单元80H中的内容送寄存器A

MOV DPTR,#TAB

MOVC A,@A+DPTR \\\\A寄存器内容加指针偏移量后送A寄存器

MOV 80H,A

RET

TAB: DB 30H,31H,32H,33H,34H

DB 35H,36H,37H,38H,39H

4.1\\\\中断方式产生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H \\\\主程序入口

MAIN: MOV TMOD,#10H \\\\设置定时器工作模式为模式1

MOV TH1,#0D8H \\\\装入T1计数初值

MOV TL1,#0F0H

SETB ET1 \\\\开中断

SETB EA \\\\CPU开中断

SETB TR1 \\\\启动定时器T1

HERE: SJMP HERE \\\\等待中断

ORG 001BH \\\\T1中断向量地址

CLR TF1 \\\\将TF1清零

CPL P2.0 \\\\P2.0取反输出

MOV TH1,#0D8H \\\\重装初值

MOV TH0,#0F0H

RETI;中断返回

END

4.2 \\\\查询方式产生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H \\\\主程序入口

MAIN: MOV TMOD,#10H \\\\设置定时器的工作模式为模式1

SETB TR1 \\\\启动定时器T1

LOOP: MOV TH1,#0D8H \\\\装入T1计数初值

MOV TH0,#0F0H

JNB TF1,$ \\\\T1没有溢出则等待

CLR TF1 \\\\产生溢出,清标志位

CPL P2.0 \\\\P2.0取反输出

SJMP LOOP \\\\循环

END

四、实验结果截图

1.

2

3.

4.1

4.2

因篇幅问题不能全部显示,请点此查看更多更全内容

Top