这是学校这学期做的单片机实验
其中都是一些很简单的子程序
包括延时,a/d模数转换实验,流水灯等等
仅供参考,都在文档中,方便复制粘
《单片机原理与应用》试验报告 系 别:
指导教师:
班级学号:
姓 名:
试验报告一 地点: 时间: 1.题目:数据排序 2.试验目的: (1)熟悉 MCS-51指令系统,掌握数据排序程序的设计方法。
(2)掌握汇编程序的源程序的编辑、编译、连接、运行的过程。
(3)掌握各种寻址方法及简单指令的执行过程。
3.试验内容: 在单片机片内RAM的30h~3Fh写入16个数,编写实验程序,将这16个数按照由小到大的顺序排列。
4.试验程序:(注:以下必须手写)
ORG 0000H
LJMPMAIN
ORG0100H
MAIN: MOVR0,#30H ;数据起始地址
MOVR7,#16 ;排序数据个数
LP1: MOVA,R7
MOVR6,A
MOVA,R0
MOV R1,A
INCR1
LP2: MOVA,@R0 ;取出一个数据
CLRC
SUBBA,@R1 ;与第二个数进行比较
JCLP3 ;R0中的数小于R1中的数则跳转
MOVA,@R0 ;R0中的数大于R1中的数, 交换数据
XCHA,@R1
MOV@R0,A
LP3: INCR1
DJNZR6,LP2
INCR0
DJNZR7,LP1
SJMP$
END
运行前
运行结果
试验报告二 地点: 时间: 1.题目:P1口转弯灯
2.试验目的:
学习P1输入输出的方法,掌握延时子程序的编写。
3.实验内容:
1) P1口I/O实验
P1口是8位准双向口,每一位均可独立定义为输入输出。本实验将P1口的低4位定义为输入,高4位定义为输出,数字量从P1口的低4位输入,从P1口的高4位输出控制发光二极管的亮灭。
2) P1口流水灯实验
P1口作为输出口,控制8位发光二极管作流水灯显示。
4、实验电路:
4. 试验程序:
5.
; ;P1口输入输出实验
; P1.0~P1.3 ---- 逻辑电平开关 K0~K3
; P1.4~P1.7 ---- 发光二极管显示 L0~L3
ORG0000H
AJMP0100H
ORG0100H
MAIN: ORLP1,#0FH ;声明低4位为输入
MOV A,P1 ;读P1口状态
SWAPA ;高低位交换
MOVP1,A ;回送P1口
SJMPMAIN
END
P1口流水灯实验
; P1.0~P1.7 ---- 发光二极管显示 L0~L7
ORG0000H
AJMP0100H
ORG0100H
MAIN: MOVP1,#0FFH ;P1初始化
MOV A,#11111110B;从最低位开始
LP1: MOVP1,A
CALLDELAY ;延时
RLA ;左移位
SJMPLP1 ;循环
DELAY: MOVR6,#200
DELAY1: MOV R7,#255
DJNZR7,$
DJNZR6,DELAY1
RET
END
运行结果
试验报告三 地点: 时间: 1.题目:A/D转换 2. 实验目的:
3.实验内容
4.实验电路
5.试验程序:
;A/D模数转换实验
; 连线:
; 端口地址 300CS ---- A或非门输入1
; 控制总线 IOW ------ A或非门输入2
; 0809 SC/ALE ------- A或非门输出
; 端口地址 300CS ---- B或非门输入1
; 控制总线 IOR ------ B或非门输入2
; 0809 OE ----------- B或非门输出
; 0809 IN0 ---------- 模拟电压 0-5V
CS0809 EQU0300H
CS8279C equ 0fff1h
CS8279D equ 0fff0h
ledbuf equ70h ;显示缓冲
org0
start: callI8279 ;8279初始化
MOVLedBuf+0,#0
MOVLedBuf+1,#8
MOVLedBuf+2,#0
MOVLedBuf+3,#9
MOVDPTR,#CS0809
ADC: MOVX@DPTR,A ;0809的通道0采样
nop
nop
nop
nop
nop
MOVXA,@DPTR ;取出采样值
movb,a ;拆送显示缓冲区
swapa
anla,#0fh
anlb,#0fh
MOVLedBuf+4,a
MOVLedBuf+5,b
calldisp
SJMPADC ;循环
;8279初始化
I8279: PUSHDPL
PUSHDPH
MOVdptr,#CS8279C ;指向命令口
MOVA,#00H ;8个8位显示
MOVX@dptr,a ;方式字写入
MOVA,#32H ;设分频初值
MOVX@dptr,a ;分频字写入
MOVA,#0DFH ;定义清显字
MOVX@dptr,a ;关闭显示器
x90s: movxa,@dptr
JBACC.7,x90s ;检测8279
POPDPH
POPDPL
ret
;显示子程序
disp: PUSHDPL
PUSHDPH
movr2,#85h
movr0,#ledbuf
disp1: movdptr,#CS8279C
mova,r2
movx@dptr,a
movdptr,#ledmap ;指字形表首
mova,@r0 ;取送显数据
movca,@a+dptr ;索字形代码
movdptr,#CS8279D ;指向字形口
movx@dptr,a ;送当前字形
decr2
incr0
cjner0,#ledbuf+6,disp1
POPDPH
POPDPL
ret
;字形表
ledmap: db 0ch,9fh,4ah,0bh,99h,29h,28h,8fh
db08h,09h,88h,38h,6ch,1ah,68h,0e8h,0ffh
END
完整的Word格式文档51黑下载地址:
单片机实验.doc
(41 KB, 下载次数: 9)
|