人人范文网 范文大全

单片机实验报告[推荐]

发布时间:2020-03-02 01:23:06 来源:范文大全 收藏本文 下载本文 手机版

单片机实验报告

流水灯实验一

一:实验目的

1、掌握51单片机如何控制信号输出。

2、掌握Keil C集成开发环境的使用。

3、掌握51开发平台的使用。

二、实验内容

在开发板上实现8个发光LED“流水”的现象,并通过编写程序控制流水现象

三:实验程序

ORG 000H START: MOV A,#07FH

CLR

C

MOV R2,#08H

LOOP: RRC

A

;循环右移

MOV P1,A

;输出至P1口

LCALL DELAY

;调用延迟子程序(延迟100毫秒)

LCALL DELAY

;调用延迟子程序(延迟100毫秒)

DJNZ R2,LOOP

;循环转移

MOV R2,#07H

;设右移7次

LOOP1:RLC A

;带进位的循环左移指令

MOV P1,A

;输出至P1口

LCALL DELAY ;长调用指令

LCALL DELAY

DJNZ R2,LOOP1

JMP START

;跳回到START,再一次循环。

DELAY:MOV R4,#200

;延迟子程序(100毫秒)250*2*100=500*200us D1:

MOV R5,#248 ;=50*2ms=100ms

DJNZ R5,$ ;2us

DJNZ R4,D1 ;2us

RET END

功能:使两个相邻的灯同时亮,并向右循环移动,延时200ms。

流水灯实验二

一:实验目的

1、掌握51单片机如何控制信号输出。

2、掌握Keil C集成开发环境的使用。

3、掌握51开发平台的使用。

二、实验内容

查表法实现在开发板上实现8个发光LED“流水”的现象,并通过编写程序控制流水现象

三:实验程序

BEEP

BIT P2.0

BUFF_LED_LP

EQU 21H

;亮灯循环寄存器

org 000h

;org,指定一个地址,后面的程序或数据从这个地址值开始分配

JMP START

ORG 100H start:

mov

P1,#0ffh

;初始化MCU端口

MOV

A,#00H

;初始化寄存器

MOV

PSW,#00H

MOV

IE,#00H

MOV

SP,#30H

MOV

BUFF_LED_LP,#00H LOOP: MOV

DPTR,#TAB_A_LAMP

;设置亮灯花型列表地址(32种)

MOV

A,BUFF_LED_LP

;查询方式读取花型

MOVC A,@A+DPTR

CPL

A

;取反

MOV

P1,A

;LED小灯控制口

LCALL DEL1S

;长调用指令

INC

BUFF_LED_LP

;+1

MOV

A,BUFF_LED_LP

CJNE A,#32,LOOP

;比较条件转移指令

MOV

BUFF_LED_LP,#00H

JMP

LOOP TAB_A_LAMP:

DB 11111110B,11111100B,11111000B,11110000B,11100000B,11000000B,10000000B,00000000B

DB

10000000B,11000000B,11100000B,11110000B,11111000B,11111100B,11111110B,11111111B

DB

00011000B,00111100B,01111110B,11111111B,00000000B,10101010B,01010101B,11001100B

DB

00111100B,10000001B,11000011B,11100111B,11111111B,11100111B,11000011B,10000001B,00000000B

deL1S:

MOV

R5,#03H

;延时子程序(约0.5秒) DEL1S0: mov

R6,#0ffh DEL1S1: mov

R7,#0ffh

djnz

R7,$

djnz

R6,del1S1

DJNZ

R5,DEL1S0

;CPL

BEEP

ret

END

功能:通过查表法实现LED灯的点亮功能,低电平有效。首先是L8亮,继续是L

7、L8亮,继续是L

6、L

7、L8亮等等,从右往左,依次点亮;接着按照相反的顺序依次熄灭;全灭后,然后是L

4、L5灭,接着L

3、L

4、L

5、L6 灭,然后又全灭,接着全亮,再然后L

1、L

3、L

5、L7灭,L

2、L

4、L

6、L8亮,然后的亮灭与之相反,下面则是L

3、L

4、L

7、L8亮,其余灭;最后是L

3、L

4、L

5、L6灭,接着L1灭,然后L

3、L

4、L

5、L6亮,L

4、L5亮,接着全灭,然后又是L

4、L5亮,接着L

3、L

4、L

5、L6亮,L

1、L8灭,最后全灭。按此顺序循环执行。

按键实验三

一:实验目的

1.学习非编码键盘的工作原理和键盘的扫描方式。 2.学习键盘的去抖方法和键盘应用程序的设计。

二:实验内容

用按键控制发光管的亮或灭

三:实验程序 KEY BIT

P3.3

SW1 BIT

P2.7 ;P2.2

by htq

ORG 000H

START: mov sp,#40h

mov p2,#0ffh

mov p3,#0ffh

MOV P1,#0ffh;

clr key

WAIT: ;JB

KEY,$

;等候按键! by htq

JB

SW1,$

lcall delay

cpl

P1.0

JNB

SW1,$ ;wait key is released

lcall delay ;by htq

cpl

p1.1

JNB

SW1,$

lcall delay cpl

p1.2

JNB

SW1,$

lcall delay

JMP

wait

DELAY:

MOV R3,#200 D1:

MOV R4,#200

DJNZ R4,$

DJNZ R3,D1

RET END

功能:通过按键sw1实现L

1、L

2、L3的亮灭,按一下sw1,L

1、L

2、L3依次亮。

计时实验四

一:实验目的

用单片机89C51的定时/计数器实现倒计时。采用两位数码管静态显示倒计时秒值。 二:实验内容

实现0~39的倒计时。

三:实验程序

MIAO

EQU

21H

GEWEI

EQU

22H

SHIWEI

EQU

23H

SCANLED

BIT

01H

ORG 000H

;ORG伪指令使用于程序定位

JMP

START

ORG

0BH

JMP

TIMER0

;定时0中断入口地址 START:MOV SP,#40H

;设定堆栈指针

MOV TMOD,#01H

;设定定时器1为工作方式1

MOV TH0,#HIGH(65536-5000)

MOV TL0,#LOW(65536-5000)

SETB TR0

MOV IE,#10000010B

MOV R7,#200

MOV MIAO,#39

AJMP $ TIMER0:PUSH

ACC

;定时器1中断服务子程序

PUSH

PSW

MOV

TH0,#HIGH(65536-5000)

MOV

TL0,#LOW(65536-5000)

DJNZ

R7,TIM0_LP

;not 1s

MOV

R7,#200

DJNZ

MIAO,TIM0_LP

MOV

MIAO,#39

; TIM0_LP: MOV

A,MIAO

LCALL BIN_BCD

MOV

SHIWEI,A

MOV

GEWEI,B

CPL

SCANLED

JB

SCANLED,SCAN_L1

JMP

SCAN_L2

SCAN_L1: MOV

P2,#10111111B

;显示十位

MOV

A,SHIWEI

JMP

END_SCAN SCAN_L2: MOV

P2,#11011111B

;显示个位

MOV

A,GEWEI END_SCAN: MOV

DPTR,#TABLE

MOVC A,@A+DPTR

MOV

P0,A

POP

PSW

POP

ACC

RETI BIN_BCD: MOV B,#10

DIV

AB

RET TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END 动能:实现0~39的倒计时,同时改变在数码管上显示的计数位置,居中显示计数结果。

单片机实验报告

单片机实验报告

单片机实验报告

单片机实验报告

单片机实验报告

单片机实验报告

单片机实验报告

单片机实验报告

单片机实验报告

单片机实验报告

单片机实验报告[推荐]
《单片机实验报告[推荐].doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档