山东大学单片机原理与应用第一次实验报告

时间:2024.3.31

单片机原理与应用

实验报告

单片机原理与应用第一次实验报告

第一章软件仿真实验

1.1实验1:汇编程序实验1

① 示例程序实验

(1)实验内容

在Keil环境下建立工程,并将以下程序加入工程,构造工程,并运行可执行程序,记录执行结果。分析程序功能。

(2)添加注释后的程序

ORG 0000H    

   AJMP MAIN

   ORG 0030H  

MAIN:

   MOV SP,#60H   ;堆栈底设置在60H 

   MOV A,#0H     ;A置零

   MOV R1,#30H   ;起始单元地址为30H  

   MOV R7,#10H   ;R7用于计数,初值为10H 

LOOP1:           ;将30H开始的16个内存单元置零   

   MOV @R1,A   

   INC R1      

   DJNZ R7,LOOP1

   NOP

   MOV R1,#30H

   MOV R7,#10H    ;重新赋计数初值和起始单元地址    

LOOP:             ;将0到F赋给30H开始的16个单元中;

   MOV @R1,A  

   INC R1         ;地址自增 

   INC A          ;A自增

   DJNZ R7,LOOP

   SJMP $

END

(3)示例程序的功能

将30H开始的16个内存单元清0,然后将值0到F赋给30H开始的16个单元。

(4)运行结果截图

② 自我完成实验

(1)实验内容

将片内RAM 30H单元中的8位二进制数转换成10进制数。希望转换后的结果保存于31H和32H,31H低4位存放个位,高4位存放十位,32H低4位存放百位,高4位为0。

程序流程图:

(2)程序及其注释

org 0000h

ajmp main

org 0030h

main:

mov 30h,#68h  ;待转化的数存于30H单元

mov a,30h     ;取数

mov b,#64h    ;100赋给B

div ab        ;待转化的数除以100

clr 32h       ;清32H单元

mov 32h,a     ;商为十进制百位,存于32H

mov a,b      

mov b,#0ah   

div ab        ;余数赋给A,余数除以10

swap a        ;商为个位,自交换后存于A高四位

add a,b

mov 31h,a     ;A,B相加可以将十进制数个位十位存于31H单元

sjmp $  

end

(3)实验过程

1、新建工程:二进制十进制转化.uV2;

2、设置工程:二进制十进制转化.uV2属性,将其晶振频率设置为12MHz,选择输出可执行文件,仿真方式为“Use Simulator”;

3、建立源程序,编写程序,程序编写思路:将待转化数存于30H单元,取出待转化的数给A,将待转化的数除以100,商位于A,余数在B。32H单元清零,前一步所得的商为十进制百位,将其存于32H单元,取余数除以10,A中的商为待转化十进制数的十位。A自交换,十位的值存于A高四位,将其和B中的值相加,和存于31H单元,即实现了十进制数个位十位存于31H单元。

4、将源程序保存为:二进制十进制转化.asm,并且添加到工程中;

5、编译源程序,如果输入有误进行修改,直至编译通过,生成可执行程序:二进制十进制转化.hex;

6、运行程序,并用存储器观察窗口,观察内部RAM 30H,31H,32H单元的值。

(4)程序运行结果截图

1.2实验2:汇编程序实验2

① 示例程序实验

(1)实验内容

在Keil环境下建立工程,并将以下程序加入工程,构造工程,并运行可执行程序,记录执行结果。分析程序功能。

(2)程序及其注释

ORG 0000H    

   AJMP MAIN

   ORG 0030H  

MAIN:

   MOV 30H, #45H  ;待操作数存于30H单元

   MOV A, 30H     ;30H单元中的数送A

   ANL A,#0FH     ;高四位清零,保留低四位

   MOV 31H,A      ;结果存于31H单元

   MOV A,30H      ;重新取待操作数至A

   ANL A, #0F0H   ;低四位清零,保留高四位

   SWAP A         ;自交换实现待操作数的高四位表示的二进制数存于A

   MOV B, #10      

   MUL AB         ;待操作数的高四位表示的二进制数乘以10

   ADD A,31H  ;待操作数的高四位表示的二进制数乘以10后和低四位表示的二进制数相加

   MOV 31H,A  ;存结果于31H单元

   SJMP $

   END

(3)示例程序的功能:

实现求得一个八位二进制数高四位表示的二进制数乘以10和低四位表示的二进制数的和。如为两位压缩BCD码,则实现求得相应十进制数值,并以二进制形式存于内存单元中。

(4)运行结果截图

② 自我完成实验

(1)实验内容

将片内RAM 30H开始的32个单元中分布着随机的有符号8位二进制数,请按从小到大的顺序进行排序,排序后的数据仍然保存到30H开始的32个单元中(低地址存放小数据)。

编程思路:

首先,在程序存储器中构建一个表格,该表格具有32个随机产生的8位二进制数,如:

TABLE: DB 1,3,9,2,17,4,11,6

       DB 5,20,100,64,21,14,79,35

       DB 92,7,91,23,65,16,13,18

       DB 18,73,65,101,27,19,62,69

然后利用查表指令“MOVC A,@A+DPTR”将它们读取到30H-4FH单元中,

然后再利用“冒泡法排序法”将它们排序即可。

“冒泡法排序法”的基本原理是:

遍历所有32个数据找出其中的最大者,并记下最大数据所在的存储位置,然后将这个最大的数据放置在最后一个单元,同时,将最后一个单元原来的数据保存到这个最大值原来所处的位置,完成第一轮的排序。

然后,再遍历除了最后一个单元以外的前面31个单元的数据并找出其中最大者,并记下其所在位置,遍历完这一遍后将找到的最大数据保存在倒数第二个单元(对于所有数据来说它是次最大数据,所以保存在倒数第二个单元),并将倒数第二个单元原来的数据保存在刚刚找到的那个最大值原来所在的位置处,完成第二轮的排序。依次类推,用同样的方法把所有的数据排好序即可。

(2)程序及其注释

ORG 0000H    

AJMP MAIN

ORG 0030H  

MAIN:

    MOV R0,#20H     ;R0用于计数,20H=32

    MOV R1,#30H     ;R1为数据指针

    MOV DPTR,#TABLE ;DPTR指向表首

    MOV R2,#00H     ;偏移量赋值

    MOV A,R2

STO:MOVC A,@A+DPTR  ;取出表中数据,存入30H开始的内存单元

    MOV @R1,A       ;取出数据存入R1中存储地址指向的内存单元

    INC R1          ;指向下一个单元

    INC R2          ;偏移量增一

    MOV A,R2

    DJNZ R0,STO     ;判断表中数据是否全部取出并存入内存

   

    MOV R3,#1FH     ;内循环计数(31)

    MOV R4,#1FH     ;外循环计数(31)

    MOV R1,#30H

LOOP1:  CLR C       ;C清0

    MOV A,@R1

    INC R1

    MOV R5,A

    SUBB A,@R1      ;取出两个数相减置C来比较大小

    MOV A,R5

    JC LOOP2        ;第一个数小于第二个数,跳转LOOP3

    XCH A,@R1       ;否则交换两单元中数的位置,小的在前大的在后

    DEC R1

    MOV @R1,A

    INC R1          ;指向下一单元

LOOP2:DJNZ R3,LOOP1 ;判断在一轮中是否比较完了所有的数

    DEC R4

    MOV A,R4

    MOV R3,A        ;内外循环计数值分别自减

    MOV R1,#30H

    ADD A,#1

    MOV R4,A

    DJNZ R4,LOOP1   ;判断外循环是否进行完毕,即排列完所有的数,否则跳回继续比较

ORG  3000H          ;另外开辟空间,建立待排序数的表格

TABLE: DB 1,3,9,2,17,4,11,6

       DB 5,20,100,64,21,14,79,35

       DB 92,7,91,23,65,16,13,18

       DB 18,73,65,101,27,19,62,69

HERE:  SJMP HERE

       END

(3)实验过程

1、新建工程:冒泡法排序.uV2;

2、设置工程:冒泡法排序.uV2属性,将其晶振频率设置为12MHz,选择输出可执行文件,仿真方式为“Use Simulator”;

3、建立源程序,编写程序,按照冒泡法排序的思路编写程序,大体思路可见源程序注释。

4、将源程序保存为:冒泡法排序.asm,并且添加到工程中;

5、编译源程序,如果输入有误进行修改,直至编译通过,生成可执行程序:冒泡法排序.hex;

6、运行程序,并用存储器观察窗口,观察内部RAM 30H-4FH单元排序前后的数值。

(4)程序运行结果截图


第二篇:山东大学上机实验报告内容


6.1.11.在开始菜单的运行中输入secpol.msc,启动本地安全设置程序.2.把管理员账户名称改成‘哈哈哈’.再新建一个受限的账户,用户名为‘Administrator’.3.看书上的内容,思考提出的问题.6.1.21.新建一个IP安全策略.2.按书上要求编辑IP安全策略属性.3.添加一个阻止135端口的规则.4.在筛选器操作中添加阻止操作.5.应用后回到IP安全策略.6.添加其他IP安全规则,重复以上步骤,建立一个UDP445的阻止策略.7.指派445的阻止策略,发现策略只能指派一个.8.思考书上问题.6.1.31.打开TCP/IP协议属性2.设置TCP/IP筛选,选择只允许TCP端口80.3.确定,系统提示要重启计算机才能完成设置.按了取消,没有重启.4.思考书上问题,百度后知道QQ用的是UDP协议端口,所以我认为通过TCP/IP筛选无法禁止QQ上网聊天.6.1.41.打开防火墙属性,查看基本配置.

更多相关推荐:
单片机原理及应用实验报告

单片机原理及应用实验报告一选题意义2二单片机AT89C52结构介绍2三实验内容3四实验步骤3五在uvision环境下软件程序设计4六Proteus仿真6七实验器件9八焊接电路实物图10九实验心得101一选题意义...

MCS51单片机原理及应用 实验报告

单片机原理与应用实验报告学校合肥工业大学姓名吕增威学号20xx2606班级计算机科学与技术0803班1目录前言3第一章MC51单片机原理及应用软件实验实验1系统认识实验6实验6数据排序实验验证性11第二章MC5...

单片机原理实验报告

桂林航天工业学院电子工程系20xx20xx学年第专业班级学号姓名同组者指导教师任务一单片机控制单灯亮灭一实验目的1初步学会使用KeilVision开发环境和简单程序的编辑编译与运行方法2学习Proteus软件绘...

单片机原理及应用实验报告

实验课程单片机原理及应用实验项目单片机控制LED灯亮灭专业班级学号姓名实验日期实验一单片机控制LED灯实验一实验目的1进一步掌握Keil的使用熟悉单片机C语言编程2学习IO口的使用方法二实验原理发光二级管是半导...

单片机原理及应用实验报告

单片机原理及应用实验报告老师学生专业电气工程及其自动化学院核自学院学号实验一蜂鸣器实验一实验目的利用单片机的P1口作IO口使用户学会蜂鸣器的使用二实验设备及器件IBMPC机一台DP51PROC单片机综合仿真实验...

单片机原理实验报告

单片机原理及应用实验报告专业20xx级计算机科学与技术嵌入式应用技术学号姓名合肥师范学院实验报告姓名汪美玲课程名称单片机原理及应用院系计算机科学与技术专业年级20xx级计算机科学与技术嵌入式应用技术实验一流水灯...

单片机原理及应用——数据排序实验报告

单片机原理及应用——数据排序实验报告,内容附图。

单片机原理应用大工软院实验报告3

大连理工大学软件学院单片机原理与应用实验报告姓名学号班级姓名学号班级组号实验箱编号实验时间20xx年5月21日实验室嵌入式实验室EmbestEdukitIII平台指导教师候刚成绩实验三硬件实验1IO口实验一实验...

文华学院_单片机原理与应用实验报告

华中科技大学文华学院单片机原理与应用实验报告姓名学号学部系专业年级20xx年11月20日目录实验1LED灯实验01实验2数码管实验07实验3按键应用实验12实验3定时器中断实验17实验1LED灯实验一实验目的1...

北京信息科技大学单片机原理与应用实验4实验报告

实验报告课程名称单片机原理与应用实验项目串行通信指导教师学院信息与通信工程专业电子信息工程班级学号学生姓名实验日期成绩一实验目的1掌握串行口编程控制方法2掌握串口调试和仿真器的烧写方法3综合应用定时器串行接口及...

北京信息科技大学单片机原理与应用实验1实验报告

实验报告课程名称单片机原理与应用实验项目KeilC51开发环境的使用指导教师学院信息与通信工程专业电子信息工程班级学号学生姓名实验日期成绩一实验目的1掌握用uVision2和仿真器进行单片机C51编程开发的方法...

单片机原理与应用实验总结报告(以步机电机控制为例)

单片机原理与应用实验总结报告以步机电机控制为例1实验目的了解步进电机控制的基本原理掌握步进电机转动编程方法2实验仪器微型计算机试验箱等3实验内容电路方案芯片介绍程序ORG0A30HMONIT2CJNEA16HK...

单片机原理及应用实验报告(18篇)