找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3315|回复: 0
打印 上一主题 下一主题
收起左侧

《单片机原理与应用》试验报告-针对单片机初学者

[复制链接]
跳转到指定楼层
楼主
ID:298765 发表于 2018-3-29 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是学校这学期做的单片机实验
其中都是一些很简单的子程序
包括延时,a/d模数转换实验,流水灯等等
仅供参考,都在文档中,方便复制粘

《单片机原理与应用》试验报告
系    别:  

指导教师:

班级学号:

姓    名:

试验报告一
地点:   时间:
1.题目:数据排序
2.试验目的:
(1)熟悉 MCS-51指令系统,掌握数据排序程序的设计方法
(2)掌握汇编程序的源程序的编辑、编译、连接、运行的过程。
(3)掌握各种寻址方法及简单指令的执行过程。
3.试验内容:
在单片机片内RAM30h~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 P1I/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)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表