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

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

ID:59828789

大小:331.00 KB

页数:8页

时间:2020-11-25

山东大学单片机原理与应用第一次实验报告.doc_第1页
山东大学单片机原理与应用第一次实验报告.doc_第2页
山东大学单片机原理与应用第一次实验报告.doc_第3页
山东大学单片机原理与应用第一次实验报告.doc_第4页
山东大学单片机原理与应用第一次实验报告.doc_第5页
资源描述:

《山东大学单片机原理与应用第一次实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、、单片机原理与应用实验报告单片机原理与应用第一次实验报告第一章软件仿真实验1.1实验1:汇编程序实验1①示例程序实验(1)实验内容在Keil环境下建立工程,并将以下程序加入工程,构造工程,并运行可执行程序,记录执行结果。分析程序功能。(2)添加注释后的程序ORG0000HAJMPMAINORG0030HMAIN:MOVSP,#60H;堆栈底设置在60HMOVA,#0H;A置零MOVR1,#30H;起始单元地址为30HMOVR7,#10H;R7用于计数,初值为10HLOOP1:;将30H开始的16个内存

2、单元置零MOV@R1,AINCR1DJNZR7,LOOP1NOPMOVR1,#30HMOVR7,#10H;重新赋计数初值和起始单元地址LOOP:;将0到F赋给30H开始的16个单元中;MOV@R1,AINCR1;地址自增INCA;A自增DJNZR7,LOOPSJMP$END(3)示例程序的功能将30H开始的16个内存单元清0,然后将值0到F赋给30H开始的16个单元。(4)运行结果截图②自我完成实验(1)实验内容将片内RAM30H单元中的8位二进制数转换成10进制数。希望转换后的结果保存于31H和32

3、H,31H低4位存放个位,高4位存放十位,32H低4位存放百位,高4位为0。程序流程图:(2)程序及其注释org0000hajmpmainorg0030hmain:mov30h,#68h;待转化的数存于30H单元mova,30h;取数movb,#64h;100赋给Bdivab;待转化的数除以100clr32h;清32H单元mov32h,a;商为十进制百位,存于32Hmova,bmovb,#0ahdivab;余数赋给A,余数除以10swapa;商为个位,自交换后存于A高四位adda,bmov31h,a;

4、A,B相加可以将十进制数个位十位存于31H单元sjmp$end(3)实验过程1、新建工程:二进制十进制转化.uV2;2、设置工程:二进制十进制转化.uV2属性,将其晶振频率设置为12MHz,选择输出可执行文件,仿真方式为“UseSimulator”;3、建立源程序,编写程序,程序编写思路:将待转化数存于30H单元,取出待转化的数给A,将待转化的数除以100,商位于A,余数在B。32H单元清零,前一步所得的商为十进制百位,将其存于32H单元,取余数除以10,A中的商为待转化十进制数的十位。A自交换,十位

5、的值存于A高四位,将其和B中的值相加,和存于31H单元,即实现了十进制数个位十位存于31H单元。4、将源程序保存为:二进制十进制转化.asm,并且添加到工程中;5、编译源程序,如果输入有误进行修改,直至编译通过,生成可执行程序:二进制十进制转化.hex;6、运行程序,并用存储器观察窗口,观察内部RAM30H,31H,32H单元的值。(4)程序运行结果截图1.2实验2:汇编程序实验2①示例程序实验(1)实验内容在Keil环境下建立工程,并将以下程序加入工程,构造工程,并运行可执行程序,记录执行结果。分析

6、程序功能。(2)程序及其注释ORG0000HAJMPMAINORG0030HMAIN:MOV30H,#45H;待操作数存于30H单元MOVA,30H;30H单元中的数送AANLA,#0FH;高四位清零,保留低四位MOV31H,A;结果存于31H单元MOVA,30H;重新取待操作数至AANLA,#0F0H;低四位清零,保留高四位SWAPA;自交换实现待操作数的高四位表示的二进制数存于AMOVB,#10MULAB;待操作数的高四位表示的二进制数乘以10ADDA,31H;待操作数的高四位表示的二进制数乘以1

7、0后和低四位表示的二进制数相加MOV31H,A;存结果于31H单元SJMP$END(3)示例程序的功能:实现求得一个八位二进制数高四位表示的二进制数乘以10和低四位表示的二进制数的和。如为两位压缩BCD码,则实现求得相应十进制数值,并以二进制形式存于内存单元中。(4)运行结果截图②自我完成实验(1)实验内容将片内RAM30H开始的32个单元中分布着随机的有符号8位二进制数,请按从小到大的顺序进行排序,排序后的数据仍然保存到30H开始的32个单元中(低地址存放小数据)。编程思路:首先,在程序存储器中构建

8、一个表格,该表格具有32个随机产生的8位二进制数,如:TABLE:DB1,3,9,2,17,4,11,6DB5,20,100,64,21,14,79,35DB92,7,91,23,65,16,13,18DB18,73,65,101,27,19,62,69然后利用查表指令“MOVCA,@A+DPTR”将它们读取到30H-4FH单元中,然后再利用“冒泡法排序法”将它们排序即可。“冒泡法排序法”的基本原理是:遍历所有32个数据找出其中的最大者,并记下最大数据所

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。