哈工大单片机实验报告(上传)

合集下载

单片机实训报告

单片机实训报告

单片机实训报告一、实训目的本次单片机实训的目的在于通过实际操作和项目实践,深入理解单片机的工作原理和应用开发,提高自身的硬件设计能力、软件编程能力以及解决实际问题的能力。

同时,培养团队合作精神和创新思维,为今后从事相关领域的工作打下坚实的基础。

二、实训设备在本次实训中,我们使用了以下主要设备:1、单片机开发板:用于实验和项目的开发与调试。

2、计算机:安装相关的编程软件和开发工具。

3、示波器:用于观察电路中的信号波形。

4、万用表:用于测量电路中的电压、电流等参数。

三、实训内容1、单片机基础知识学习首先,我们对单片机的基本结构、工作原理、指令系统等进行了系统的学习。

了解了单片机的内部组成,包括中央处理器(CPU)、存储器、输入输出端口等。

通过学习指令系统,掌握了如何使用汇编语言或 C 语言对单片机进行编程控制。

2、硬件电路设计在硬件电路设计方面,我们学习了如何根据实际需求设计单片机的最小系统,包括电源电路、时钟电路、复位电路等。

同时,还掌握了如何扩展外部存储器、输入输出设备等。

通过实际绘制电路图和制作电路板,提高了我们的硬件设计能力和动手实践能力。

3、软件编程在软件编程方面,我们使用了汇编语言和 C 语言两种编程方式。

通过编写简单的程序,如点亮 LED 灯、控制数码管显示、实现按键输入等,逐渐熟悉了单片机的编程方法和技巧。

同时,还学习了如何使用中断、定时器、串口通信等功能,提高了程序的复杂程度和实用性。

4、项目实践在项目实践环节,我们分组完成了一个基于单片机的温度控制系统的设计与实现。

该系统通过温度传感器采集环境温度,经过单片机处理后,控制风扇的转速和加热装置的工作状态,从而实现对环境温度的自动控制。

在项目实践过程中,我们充分运用了所学的知识和技能,从系统方案设计、硬件电路搭建、软件编程调试到系统测试优化,每个环节都进行了精心的设计和认真的实施。

四、实训过程在实训开始阶段,我们首先进行了单片机基础知识的学习和实验。

单片机实训报告范文精选5篇精选

单片机实训报告范文精选5篇精选

单片机实训报告范文精选5篇实训报告是展示本身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。

单片机课程设计心得体会在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我理解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。

通过在单片机小组里的学习我简单总结了几点心得和体会:第一:万事开头难,要英勇的迈出第一步,不要总找借口说没有学习过就总推脱。

凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。

可以从建工程开始,然后可以找一个简单的小程序先把它敲进单片机内然他运转起来,感受一下单片机的运转,让本人理解单片机整个运转。

第二:关于知识点,学过的要掌握结实,关于没有学的和临时用不到的先不用学习。

比方:小灯得点亮就没有用到中断可以先不用看。

如此可以防止知识过多记不住的苦恼。

关于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进展学习如此才能掌握的特别牢靠,当用到哪里的知识点不记得了可以去看书,关于用不到的可以不去看。

第三:程序不要只是看别人得,一定要本人写过才是本人的。

开始不明白可以参考别人的,看看每一句代表着什么意思,可以实现什么现象。

明白之后本人再重新写一遍,你会觉观察别人的能明白到本人写的时候特别困难。

当你本人能写出来的时候说明你真明白了。

第四:一定要学会程序调试的方法。

有时候把程序写完了然后运转时不能实现理想的现象。

这时有人就晕了不知该如何办,然后就去征询别人。

当别人找出征询题出在哪里时就会恍然大悟。

事实受骗遇到征询题一定要本人尝试着处理,不能遇到征询题就去征询别人。

本人一定要掌握处理征询的方法和思路。

第五:在学习初期看别人的代码,学习别人的思路这个特别有用。

通过看别人的代码特别是有多年编程经历的人的程序,可以迅速提高本人的编程水平。

单片机实训报告优选范文5篇分享

单片机实训报告优选范文5篇分享

单片机实训报告优选范文5篇分享单片)是一种集成电路芯片,是具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

下面就是小编给大家带来的单片机实训报告优选范文5篇分享,希望大家喜欢!单片机实训报告范文(一)前言一周的单片机实训很快就结束咯,在这一周的时间里,我学到了很多关于单片机各方面的知识。

老师在实训课中也教会咯我们很多关于单片机软件编程与硬件设施的知识。

一周的实训中我们一共实训咯好几个项目,通过这几个项目的实训,我们掌握咯一些单片机的汇编语言和硬件调试,达到了很好的效果。

一周时间实训过后,我把之前在课堂上不懂的知识点,通过实际操作的练习,我都搞明白咯。

当然在实训过程中也遇到咯很多问题,就是有时在调试方面不能调试成功,有时程序是没有错误,但是就是调试不好,一直找原因也找不出是什么原因。

希望以后能够拥有更多的实训时间和机会学习单片机。

实训任务一一、实验目的熟悉Keil C51集成开发环境的使用方法二、实验设备及器件IBM PC机三、实验内容按照本书的第2章的2.1节到2.4节内容进行Keil C51集成开发环境的安装和使用练习。

然后按照以下内容建立文件并编译产生HEX文件。

ORG 8000HLJMP MainORG 80F0HMain:MOV R7,#0LOOP:MOV R6,#0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOP ;延时一台CPL P1.0CPL P1.1CPL P1.2CPL P1.3CPL P1.4CPL P1.5CPL P1.6CPL P1.7SJMP MainEND ;P1.0取反 ;P1.1取反 ;P1.2取反 ;P1.3取反 ;P1.4取反 ;P1.5取反 ;P1.6取反 ;P1.7取反通过该程序实现八盏灯的同时亮和同时灭的功能,更好的掌握汇编指令。

单片机实验报告总结

单片机实验报告总结

单片机实验报告总结单片机实验报告总结单片机实验心得体会单片机实验心得体会时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。

在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。

这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。

将所学知识运用到实践中,在实践中发现问题,强化理论知识。

现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。

第一次是借点亮LED灯来熟悉keil软件的使用和试验箱上器材。

第一次实验体现了一个人对新事物的接受能力和敏感度。

虽然之前做过许多种实验。

但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。

所以第一次试验相对失败。

鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。

在做实验中,第二个问题应该是准备不充分吧。

一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。

后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。

于是我便在上机之前把程序编好,拷到U盘,这样上机时只需调试,解决出现的问题。

这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。

发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。

三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。

于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。

但是编程是一件很严肃的事情,容不得半点错误。

于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。

单片机实验报告(相当不错,有具体实验结果分析哦)

单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。

二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。

2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。

六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

哈工大单片机实验报告

哈工大单片机实验报告

Harbin Institute of Technology单片机原理与应用实验报告学生姓名:学号:班级:专业:任课教师:所在单位:软件实验在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。

实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。

二、实验内容把2000~20FFh的内容清零。

三、程序框图四、实验过程实验中利用MOVX语句,将外部存储器指定内容清零。

利用数据指针DPTR完成数据传送工作。

程序采用用循环结构完成,R0移动单元的个数,可用CJNE比较语句判断循环是否结束。

五、实验结果及分析【问题回答】清零前2000H~20FFH中为内存里的随机数,清零后全变为0。

六、实验源程序;清零程序ORG 0640HMOV DPTR,#2000H ;(2000H)送DPTRMOV R0,#00HHERE: MOVX @DPTR,A ;0送(DPTR)INC DPTR ;DPTR+1INC R0CJNE R0,#0FFH,HERESJMP $END实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。

三、程序框图四、实验过程将寄存器中内容送入2000H,分别将高低四位移到低位,将高四位置零然后移入2001H 和2002H中。

利用MOVX指令、DPTR指针可实现数据的传送,利用高低四位交换指令SWAP和与指令ANL可进行对高低位的清零。

五、实验结果及分析【问题回答】将ANL A,#0FH改为ORL A,#0F0H可以实现将高位置为1。

六、实验源程序; 拆字程序START:MOV DPTR,#2000HMOVX A,@DPTRMOV R0,ASWAP AANL A,#0FHINC DPTRMOVX @DPTR,AMOV A,R0ANL A,#0FHINC DPTRMOVX @DPTR,AENDEND实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。

哈工大单片机实验报告

哈工大单片机实验报告

软件实验在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。

实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。

二、实验内容把2000~20FFh的内容清零。

三、程序框图四、实验过程(1)实验中定义R0为循环次数,利用定义了初值的数据指针DPTR不断加1指向需要被清零的外部数据存储器单元。

(2)再利用MOVX语句,将外部存储器指定内容清零。

(3)用CJNE比较语句判断循环是否结束。

五、实验结果及分析问题回答:清零前2000H~20FFH中为内存里的随机数,清零后全变为0。

六、实验源程序;清零程序ORG 0000HMOV DPTR,#2000HMOV R0,#0FFHORG 0660HMAIN: MOV A,#00HMOVX @DPTR,AINC DPTRDJNZ R0,MAINEND实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。

三、程序框图四、实验过程(1)定义数据指针DPTR为2000H,将其中内容送入累加器A中,利用高低四位交换语句SWAP可将高四位移至低四位,再用语句ANL与0FH进行与操作取出高四位送入2001H低位(2)再次让数据指针DPTR为2000H,将其中内容送入累加器A中,直接与0FH相与取出低四位送入2002H低位。

五、实验结果及分析问题回答:将ANL A,#0FH改为ORL A,#0F0H可以实现将高位置为1。

六、实验源程序;拆字程序ORG 0000HMAIN: MOV DPL, #00HMOV DPH, #20HMOVX A, @DPTRSWAP AANL A, #0FHINC DPTR-3-MOVX @DPTR, AMOV DPL,#00HMOVX A, @DPTRANL A, #0FHINC DPTRINC DPTRMOVX @DPTR, AEND实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。

单片机实验报告

单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。

2. 掌握单片机最小系统的搭建方法。

3. 学习使用单片机编程软件进行程序编写和调试。

4. 通过实际操作,加深对单片机应用的理解。

二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。

2. 软件环境:Keil uVision5、Proteus仿真软件。

三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。

(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。

② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。

2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。

(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。

② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。

3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。

(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。

② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

H a r b i n I n s t i t u t e o f T e c h n o l o g y单片机原理与应用实验报告学生姓名:学号:班级:专业:任课教师:所在单位:2013年5月软件实验在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。

实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。

二、实验内容把2000~20FFh的内容清零。

三、程序框图四、实验过程实验中利用MOVX语句,将外部存储器指定内容清零。

利用数据指针DPTR完成数据传送工作。

程序采用用循环结构完成,R0移动单元的个数,可用CJNE比较语句判断循环是否结束。

五、实验结果及分析清零前清零后【问题回答】清零前2000H~20FFH中为内存里的随机数,清零后全变为0。

六、实验源程序AJMP MAINORG 0640HMAIN: MOV R0, #00HMOV DPL, #00HMOV DPH, #20HLOOP: MOV A, #00HMOVX @DPTR, AINC DPTRINC R0CJNE R0, #0FFH, LOOPMOVX @DPTR, AEND实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。

三、程序框图四、实验过程将寄存器中内容送入2000H,分别将高低四位移到低位,将高四位置零然后移入2001H 和2002H中。

利用MOVX语句、DPTR指针可实现数据的传送,利用高低四位交换语句SWAP和与语句ANL可进行对高低位的清零。

五、实验结果及分析拆字前拆字后【问题回答】将ANL A, #0FH改为ORL A, #0F0H可以实现将高位置为1。

六、实验源程序ORG 0000HAJMP MAINORG 0660HMAIN: MOV DPL, #00HMOV DPH, #20HMOVX A, @DPTRSWAP AANL A, #0FHINC DPTRMOVX @DPTR, AMOV A, DPLDEC AMOV DPL, AMOVX A, @DPTRANL A, #0FHINC DPTRINC DPTRMOVX @DPTR, ASJMP $END实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。

二、实验内容把2000h、2001h的低位分别送入2002h高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。

三、程序框图四、实验过程本实验主要应用与语句ANL对高四位进行屏蔽,利用SWAP语句将2000H低四位交换到高四位,再用或ORL语句将2000H和2001H的高低四位组合在一起送入2002H中,从而实现两个数低四位组合。

五、实验结果及分析拼字前拼字后【问题回答】本实验运行程序后2002H内容为34H,即2000H单元中低四位“3”作为2002H 的高四位,2001H的低四位“4”作为2002H的低四位。

六、实验源程序ORG 0000HAJMP MAINORG 0680HMAIN: MOV DPL, #00HMOV DPH, #20HMOVX A, @DPTRANL A, #0FHSWAP AMOV B, AINC DPTRMOVX A, @DPTRANL A, #0FHORL A, BINC DPTRMOVX @DPTR, AEND实验四数据区传送子程序一、实验目的掌握RAM中的数据操作。

二、实验内容把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。

三、程序框图四、实验过程实验要求将一段内存中数据移动到另一段内存中,本次实验通过寄存器内容截图显示,是把0000H单元开始20H个字节的内容送到1000H开始的连续数据单元中。

先把初始地址分别放入源地址寄存器和目的地址寄存器,然后利用一组寄存器作为需转移数据区长度计数器,开始数据转移循环。

每进行一次转移地址寄存器向下加一,计数寄存器内容减一,计数寄存器内容为0退出循环移动结束。

由于计数以及地址寄存器是由两个八位寄存器组成,需要在加一减一时对其高字节和低字节进行判断。

加一时若低字节加一变为0,则高字节加一,否则低字节加一高字节不变。

减一时若低字节已是0则高字节减一,同时低字节变为0FFH,否则低字节减一高字节不变。

五、实验结果及分析寄存器内容源内存段中内容目的内存段中移动前内容目的内存段中移动后内容【问题回答】如图R4、R5定义的目的地址单元中转移之前为随机数,转移后内容与以R2、R3开始的的源地址单元中20个字节内容相同,即实现了数据的传送。

六、实验源程序ORG 0000HAJMP MAINORG 07B0HMAIN: MOV R7, #20HMOV R6, #00HMOV R2, #00HMOV R3, #00HMOV R4, #10HMOV R5, #00HLOOP: MOV DPL,R3MOV DPH, R2MOVX A, @DPTRMOV DPL, R5MOV DPH, R4MOVX @DPTR, ACJNE R3, #0FFH, LOOP1INC R2LOOP1: INC R3CJNE R5, #0FFH, LOOP2INC R4LOOP2: INC R5CJNE R7, #00H, LOOP3CJNE R6, #00H, LOOP4SJMP $LOOP3: DEC R7SJMP LOOPLOOP4: DEC R6DEC R7SJMP LOOPSJMP $END实验六查找相同数个数一、实验目的熟悉汇编语言编程。

二、实验内容在2000~200Fh中查出有几个字节是零,把个数放在2100h中。

三、程序框图四、实验过程实验中利用R0放置需查找段长度,即从2000H单元开始,每次检查完一个单元R0减一,指针下移,直到R0等于0结束循环。

R1存放等于零数据的个数,程序中利用等于零跳转指令JZ,实现找到0则R1加一计数的功能。

循环终止后,将R1内容存入2100H中即可。

五、实验结果及分析2000H到200FH中的内容2100H显示找6个0【问题回答】若需查找0FFH,只需将语句JZ LOOP1改为CJNZ R0, #0FFH, LOOP1即可,即数据等于0FFH时跳转到计数+1的程序段进行计数。

六、实验源程序ORG 0000HLJMP MAINORG 0AA0HMAIN: MOV DPL, #00HMOV DPH, #20HMOV R0, #10HMOV R1, #00HLOOP: MOVX A, @DPTRJZ LOOP1DEC R0INC DPTRSJMP LOOP2LOOP1: INC R1DEC R0INC DPTRLOOP2: CJNE R0, #00H, LOOPMOV DPL, #00HMOV DPH, #21HMOV A, R1MOVX @DPTR, ASJMP $END实验七无符号双字节快速乘法子程序一、实验目的掌握MCS-51汇编语言程序设计方法。

二、实验内容将(R2 R3)和(R6 R7)中双字节无符号整数相乘,乘积送R4 R5 R6 R7中。

三、程序框图四、实验过程本程序是利用单字节的乘法指令MUL,根据下面的公式实现双字节数的乘法。

(R2 R3)×(R6 R7)= ((R2)×28+(R3))×((R6)×28+(R7))= (R2)×(R6)×216+(R2)×(R7)+(R3)×(R6)×28+(R3)*(R7)将乘数与被乘数高低字节拆开分别相乘,然后再将每个高字节因子向前移动8位进行调整,进行加权求和。

利用ADDC语句可实现带进位的加法运算。

得到的最终结果存入R4、R5、R6、R7寄存器中。

五、实验结果及分析相乘后寄存器内容Answer:寄存器R2、R3、R6、R7分别输入01、10、11、10,运行程序,即进行0110H×1110H的运算,得到结果为00122100H存放在R4、R5、R6、R7寄存器中,故R4、R6中的内容是00H和21H。

六、实验源程序ORG 0000HLJMP MAINORG 0970HMAIN: MOV R2, #01HMOV R3, #10HMOV R6, #11HMOV R7, #10HMOV A, R3MOV B, R7MUL ABXCH A, R7MOV R5, BMOV B, R2MUL ABADD A, R5MOV R4, ACLR AADDC A, BMOV R5, AMOV A, R6MOV B, R3MUL ABADD A, R4XCH A, R6XCH A, BADDC A, R5MOV R5, AMOV F0, CMOV A, R2MUL ABADD A, R5MOV R5, ACLR AMOV ACC.0, CMOV C, F0ADDC A, BMOV R4, ASJMP $END实验八多分支程序一、实验目的掌握汇编语言的编程。

二、实验内容编写程序,根据送入的数据转移运行。

三、程序框图四、实验过程实验中利用散转指令JMP @A+DPTR实现程序的多分支跳转,这里A为变址寄存器,DPTR为基址寄存器。

跳转到不同分支的运行结果由LED进行显示,每个分支对应的数码管上显示不同的数字。

显示数字由数字七段码送至I/O口显示。

在显示程序中利用循环左移加延时子程序调用,实现数字循环显示的效果。

编程中需要注意的是,A需乘以2即左移一位再作为变址寄存器,这是程序中由于分支跳转语句为2个字节所致。

五、实验结果及分析实验中可以看到选择不同的数字进入不同分支,LED管上会出现不同数字的循环左移显示。

【问题回答】如需将循环速度减慢,只要将延时子程序初值变大,或增加循环层数,或者再增加一段循环语句即可,如可进行以下修改:DELAY: 改为DELAY:MOV R3, #0FFH MOV R2, #0FFHDL1: MOV R4, #0FFH DL1: MOV R3, #0FFHDL2: NOP DL2: MOV R4, #0FFHNOP DL3: NOPDJNZ R4,DL2 NOPDJNZ R3,DL1 DJNZ R4,DL3RET DJNZ R3,DL2END DJNZ R2,DL1RETEND若将0字循环改为4字循环只需将0字七段码0C0H改为4字七段码99H即可。

六、实验源程序ORG 0000HLJMP MAINORG 0DA0HLJMP SOX0ORG 0A10HMAIN: MOV 20H, #03H ;每次实验,这里可以改为0、1、2和3MOV A, 20H ;取预置数据MOV DPTR, #LOOP ;散转表起始地址RL A ;A 乘以2JMP @A+DPTR ;散转指令LOOP: AJMP LOOP1AJMP LOOP2AJMP LOOP3AJMP LOOP4LOOP1: MOV 21H, #0C0H ;"0"字的7段码SJMP SOX0LOOP2:MOV 21H, #0F9H ;"1"字的7段码SJMP SOX0LOOP3: MOV 21H, #0A4H ;"2"字的7段码SJMP SOX0LOOP4: MOV 21H, #0B0H ;"3"字的7段码SOX0: ;循环显示程序MOV A, 21H ;取来7段码MOV R0, #0DCH ;显示器段地址MOV R1, #0DDH ;显示器位地址MOVX @R0, A ;将7段码输出MOV A, #01H ;最"右"边的位发光SOX1:MOVX @R1, AMOV R2, #20H ;准备延时LCALL DELAY ;调用延时子程序RL A ;左移显示的位SJMP SOX1 ;无穷循环DELAY:MOV R3, #0FFHDL1: MOV R4, #0FFHDL2: NOPNOPDJNZ R4,DL2DJNZ R3,DL1RETEND实验十一二进制转换到BCD一、实验目的将给定的一个二进制数,转换成二进制编码的十进制(BCD)码。

相关文档
最新文档