您的当前位置:首页正文

单片机实验

2021-06-16 来源:好走旅游网
实验一 数据传送(RAM–>XRAM)

一、实验目的熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。

熟悉MCS51汇编指令,能自己编写简单的程序,掌握数据传输的方法。

二、实验内容1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。 2、编写程序,实现内外部数据段的传送、校验。 三、程序框图

开始取内部RAM和对应的外 堆栈指针初始化计数器、地址初始化N内部RAM数据传送外部RAM一次比较是否相等Y地址指针+1N部RAM地址指针+1N 计数器-1=0?Y传送正确 计数器-1=0?Y计数器、地址指针复位传送错误结束

四、实验步骤在内部RAM 30H ~3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM的1000H ~100FH中的内容。熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。 五、程序清单

;将内部RAM Address1 开始的16个字节送到外部RAM从Address2开始的单元里,再作比较。 Address1 DATA Address2 XDATA ORG STAR: STAR1:

LJMP ORG MOV MOV MOV MOV MOV MOVX INC INC DJNZ MOV MOV MOV

30H 1000H 0000H STAR 0100H SP,#60H

R0,#Address1

数据传送程序框图DPTR,#Address2 R7,#10H A,@R0 @DPTR,A R0 DPTR

R7,STAR1

;传送

R0,#Address1 DPTR,#Address2 R7,#10H

STAR2: STAR3:

MOV MOVX CJNE INC INC DJNZ SJMP SJMP END

B,@R0 A,@DPTR A,B,STAR3 R0 DPTR R7,STAR2 $ $

;比较

;传送正确 ;传送错误

如果读者使用星研集成环境软件,请考虑以下问题:

1、运行程序前,打开变量窗、二个存贮器窗(一个选择片内数据;一个选择片外数据,起始地址选择1000H),每个存贮器窗有四个标签,有何好处?;

2、使用单步进入命令,运行到第十四行后,运行过程中变量窗有何变化?将鼠标停留在A、SP、@R0、@DPTR上一秒后,出现什么?,它与变量窗使用场合的区别?

3、将光标移到第十四行上,使用运行到光标处命令,观察运行结果,体会它与单步进入命令的不同处。

4、在二十行上,设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?

5、使用全速运行命令,稍后,点击工具条上停止运行命令按钮,当前执行箭头停在哪一行?运行结果是否正确?它与全速断点运行命令有何区别? 6、观察寄存器,有哪几种方法?1)在工作区窗的通用寄存器标签视中;2)变量窗 3)鼠标停留在寄存器上4)观察窗 5)寄存器窗 7、查看CPU内部数据RAM、CPU片外数据RAM:1)存贮器窗 2)变量窗 3)鼠标停留在CPU内部数据RAM、CPU片外数据RAM的地址、@R0、@DPTR上

六、思考题 编写一个程序,将外部数据RAM中的数据传送到内部数据RAM中。

实验八 冒泡排序

一、实验目的

熟悉使用MCS51指令,掌握汇编语言的设计和调试方法,了解如何使用高效方法对数据排序。 二、实验内容编写并调试一个排序程序,要求使用冒泡法将一组数据从小到大重新排列。 三、程序框图

开始@R0>@R1?初始化堆栈Y@R0与@R1互换1→bSortINCINCNR0R1N将待排序数组转移到内部30H开始的RAM中数据数-1→R7,数据交换标志bSort=0R7=R7-1 R7=0?YPOPR7 PUSH 07H被比较数地址R0=30H比较数地址R1=R0+1NDEC R7bSort=0?Y结束冒泡排序程序框图

四、实验步骤

使用断点方式调试程序,检查内部RAM 30H~3FH中数据是否按从小到大的顺序排列。 五、程序清单 bSort BIT F0 ORG 0000H

STAR: STAR1: STAR2: STAR3: STAR5:

Exit: TAB_1:

LJMP ORG MOV MOV MOV MOV CLR MOVC MOV INC INC DJNZ MOV PUSH MOV CLR MOV INC MOV MOV MOV CJNE JNC XCH MOV SETB INC INC DJNZ POP JNB DEC SJMP

STAR 0100H SP,#60H R0,#30H R7,#16 DPTR,#TAB_1 A

A,@A+DPTR @R0,A R0 DPTR

R7,STAR1 R7,#16-1 07H

R0,#30H bSort R1,00H R1 A,@R0 B,A A,@R1 A,B,$+3 STAR5 A,@R0 @R1,A bSort R0 R1 R7,STAR3 07H bSort,Exit R7 STAR2

;堆栈

;存放待排序数据的首地址 ;数据个数

;将数据移入内部RAM中

;存放比较次数

;存放启始地址

SJMP $

DB 0H,5H,6H,3H,8H,92H,04H,57H,46H,01H,0FFH,0A0H,45H,99H,55H,66H END 六、思考题

你还知道哪些排序方法?另外编写一个排序子程序。(数据结构方面的教材上有十几种排序方法)。 实验一 跑马灯实验 一、实验目的与要求 熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。 熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。 二、实验设备 STAR系列实验仪一套、PC机一台 三、实验内容 1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。 2、照接线图编写程序:使用P1口控制G6区的8个指示灯,循环点亮,瞬间只有一个灯亮。3、观察实验结果,验证程序是否正确。 四、实验原理图 U421234567891051051051051051051051051011121314151617DS42DS41DS40DS398765DS38DS37DS36DS354321VCC181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST(RXD)P3.0(TXD)P3.1(INT0)P3.2(INT1)P3.3(T0)P3.4(T1)P3.5(WR)P3.6(RD)P3.7XTAL2XTAL1GND89C52VccP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VppALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)4039383736353433323130292827262524232221五、实验步骤 1、连线说明: A3区:JP51 —— G6区:JP65 2、编写程序或运行参考程序。 3、实验结果:通过G6区的LED指示灯(8个指示灯轮流点亮),观察实验的输出结果是否正确。 六、演示程序 START: ORG LJMP ORG MOV MOV CLR 0000H START 0100H SP,#60H A,#0FFH C R118R117R116R115R114R113R112R111 START1:

Delay: Delay1: Delay2:

RLC MOV ACALL SJMP MOV MOV MOV DJNZ DJNZ DJNZ RET

A P1,A Delay START1 R5,#2 R6,#0 R7,#0 R7,$

R6,Delay2 R5,Delay1

;延时

END

如果读者使用星研集成环境软件,请考虑以下问题?

1、运行程序前,打开变量窗;

2、使用单步进入命令,运行到第六行后,运行过程中变量窗有何变化?将鼠标停留在

A、SP上一秒后,出现什么?,它与变量窗使用场合的区别?

3、第九行是调用延时子程序,如何进入延时子程序(使用单步进入命令)?如何将延时子程序一下子运行完毕(使用单步命令;也可以将光标移到下一行,使用运行到光标处命令;)?单步进入命令与单步命令有何区别?

4、运行几次后,在第十行设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?

5、Delay是一个延时子程序,改变延时常数,使用全速运行命令,显示发生了什么变化? 6、观察寄存器,有哪几种方法?

1)在工作区窗的通用寄存器标签视中;2)变量窗3)鼠标停留在寄存器上 4)观察窗5)寄存器窗

实验四 74HC138译码器实验

一、实验目的与要求

1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了解74HC138是如何译码的。

2、认真预习本节实验内容,尝试自行编写程序,填写实验报告 二、实验设备

STAR系列实验仪一套、PC机一台 三、实验内容

1、编写程序:使用单片机的P1.0、P1.1、P1.2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。

2、运行程序,验证译码的正确性。 四、实验原理图

12DS20R68P1.0AAP1.1BP1.2C(C1)VCCG1(C1)GNDG2A(C1)GNDG2B8GNDSN74LS138N123645470VCCJP2812R111R11212345678VCCU21ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y7VCC1651051015141312111097DS35DS36DS37DS38DS39DS40DS41DS42510R113510R114510R115510R116510R117510R118 五、实验步骤 B1、连线说明: C3区:A、B、C C3区:G1、G2A、G2B C3区:JP35 —— A3区:P1.0、P1.1、P1.2 —— C1区:VCC、GND、GND —— G6区:JP65(LED指示灯) 2、 调试程序,查看运行结果是否正确。 六、演示程序 ;138译码器实验(跑马灯),P1.0--A, P1.1---B, P1.2--C, /G2B--GND, /G2A--GND C START: START1: D DLTIME: DLTIME1: DLTIME2:

ORG LJMP ORG MOV CLR MOV ACALL INC CLR SJMP MOV MOV MOV DJNZ DJNZ DJNZ RET END

10000H START 0100H SP,#60H A P1,A DLTIME A ACC.3 START1 R5,#20 R6,#100 R7,#100 R7,$

R6,DLTIME2 R5,DLTIME1

;初值,第一次0位LED亮 ;A的值在0..7之间

2七、实验扩展及思考

在单片机系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理?

实验一 8255控制交通灯实验 一、实验目的与要求 1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。 2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。 3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。 二、实验设备 STAR系列实验仪一套、PC机一台 三、实验内容 1、编写程序:使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。 2、连接线路验证8255的功能,熟悉它的使用方法。 四、实验原理图 VCCR111R11212345678510510PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7825543214039383718192021222324251415161713121110DS35DS36DS37DS38DS39DS40DS41DS42U36D0D1D2D3D4D5D6D7RDA0A0A1A1CS1(0F000H)CSRSTWR343332313029282753698356D0D1D2D3D4D5D6D7RDWRA0A1RESETCS510R113510R114510R115510R116510R117510R118PC0PC1PC2PC3PC4PC5PC6PC7 五、实验步骤 1、连线说明: B4区:CS、A0、A1 B4区:JP56(PA口) 六、演示程序 COM_ADD PA_ADD .MODEL EQU EQU TINY 0F003H 0F000H —— —— A3区:CS1、A0、A1 G6区:JP65 2、观察实验结果,是否能看到模拟的交通灯控制过程。 PB_ADD PC_ADD LED_Data START: START1: START2: EQU EQU .STACK .DATA DB DB DB DB DB DB .CODE MOV MOV NOP MOV MOV OUT MOV MOV OUT LEA MOV XLAT OUT CALL MOV MOV AL,1 XLAT OUT CALL MOV XLAT OUT CALL LOOP MOV XLAT OUT CALL MOV XLAT OUT CALL 0F001H 0F002H 100 01111101B 11111101B 10111101B 11010111B 11011111B 11011011B AX,@DATA DS,AX DX,COM_ADD AL,80H DX,AL DX,PA_ADD AL,0FFH DX,AL BX,LED_Data AL,0 DX,AL DL5S CX,6 DX,AL DL500ms AL,0 DX,AL DL500ms START2 AL,2 DX,AL DL3S AL,3 DX,AL DL5S ;东西绿灯,南北红灯 ;东西绿灯闪烁,南北红灯 ;东西黄灯亮,南北红灯 ;东西红灯,南北绿灯 ;东西红灯,南北绿灯闪烁 ;东西红灯,南北黄灯亮 ;PA、PB、PC为基本输出模式 ;灯全熄灭 ;东西绿灯,南北红灯 ;东西绿灯闪烁,南北红灯 ;东西黄灯亮,南北红灯 ;东西红灯,南北绿灯 START3: DL500ms DL500ms1: DL500ms DL3S DL3S1: DL5S DL5S1: MOV MOV XLAT OUT CALL MOV XLAT OUT CALL LOOP MOV XLAT OUT CALL JMP PROC PUSH MOV LOOP POP RET ENDP PROC PUSH MOV CALL LOOP POP RET ENDP PROC PUSH MOV CALL LOOP POP RET ENDP END CX,6 AL,4 DX,AL DL500ms AL,3 DX,AL DL500ms START3 AL,5 DX,AL DL3S START1 NEAR CX CX,60000 DL500ms1 CX NEAR CX CX,6 DL500ms DL3S1 CX NEAR CX CX,10 DL500ms DL5S1 CX START ;东西红灯,南北绿灯闪烁 ;东西红灯,南北黄灯亮 七、实验扩展及思考 1、如何对8255的PC口进行位操作?

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