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

合集下载

单片机实训报告

单片机实训报告

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

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

二、实训设备在本次实训中,我们使用了以下主要设备: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按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。

哈工大单片机原理试验指导

哈工大单片机原理试验指导

《单片机原理》 实验指导书张毅刚 何谨 李华哈尔滨工业大学2007年4月目 录序-------------------------------------------------------------------------------------------------------------1实验1 单片机实验开发系统操作实验-------------------------------------2实验2 单片机数据区传送程序设计------------------------------------------4实验3 数据排序实验---------------------------------------------------------------------6实验4 查找相同数个数-----------------------------------------------------------------8实验5 P1口转弯灯实验---------------------------------------------------------------10实验6 工业顺序控制--------------------------------------------------------------------13实验7 8255控制交通灯---------------------------------------------------------------16实验8 A/D转换实验-----------------------------------------------------------------------19实验9 D/A转换实验-----------------------------------------------------------------------22实验10 电子时钟(定时器、中断综合实验)--------------------26附录1 DAIS-80958B单片机实验开发系统简介--------------------37附录2 实验开发系统的字形/字位/键值表---------------------------39序一、实验素养和一般知识1.实验前准备工作(1) 明确实验目的、熟悉实验内容、掌握实验步骤、了解所用单片机实验开发系统及仪器设备的性能。

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

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

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

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

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

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

可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。

第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。

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

这样可以避免知识过多记不住的麻烦。

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

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

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

明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。

当你自己能写出来的时候说明你真懂了。

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

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

这时有人就晕了不知该怎么办,然后就去问别人。

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

其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。

自己一定要掌握解决问的方法和思路。

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

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

也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。

哈工大威海 单片机实验报告

哈工大威海   单片机实验报告

单片机实验报告学号:100250212姓名:指导教师:实验二一、 实验目的1 、 进一步了解开发系统的功能和使用;2 、 了解程序设计与调试的基本过程;3 、 了解简单程序和分支程序程序的特点和设计。

二、 实验内容1 、 简单程序的设计、输入、调试和运行;2 、 分支程序的设计、输入、调试和运行;三、 实验步骤1、设计、调试双字节乘法程序,功能为:(R2R3)*(R6R7)→R4R5R6R7 输入设计好的程序检查无误后,汇编。

向R2R3和R6R7中输入多组不同的数据,运行程序,观察R4R5R6R7中的内容,分析运行结果是否正确。

2、求符号函数⎪⎩⎪⎨⎧<=>=)0()0()0(1-01X X X Y ,设:X →30H ,Y →31H 输入设计好的程序检查无误后,汇编。

向30H 中输入多个不同的数据,运行程序,观察31H 中的内容,分析运行结果是否正确。

3、将ASCII 码转换十六进制数设ASCII码放在累加器A中,结果放回到A中,如果A中的内容不是十六进制的数的ASCII码,用户标志位F0置1。

输入设计好的程序检查无误后,汇编。

向A中输入多个不同的数据,运行程序,观察A中的内容,分析运行结果是否正确。

四、实验程序及分析结果1、双字节乘法运算程序程序如下:ORG 0000HLJMP MAINMAIN: MOV A, R3 ;先计算R7乘R3MOV B, R7MUL AB ;A中为积的低八位MOV R1,A ;将低八位存入R1中MOV R5,B ;将高八位存入R5中MOV A, R2 ;计算R7乘R2MOV B, R7MUL ABADD A, R5 ;R5加至AMOV R5, A ;将结果存入R5MOV R4, B ;将高位结果存入R4MOV A, R1MOV R7, A ;将低八位存入R7中JNC NEXT1 ;C为零则跳转MOV A, R4 ;如果C为1则将R4加一CLR CADD A, #01MOV R4, ANEXT1: MOV A, R3MOV B, R6MUL ABADD A, R5MOV R5, AMOV R1,BMOV A, R4JNC NEXT2CLR CADD A, #1NEXT2: ADD A, R1MOV R4, AMOV A, R2MOV B, R6MUL ABADD A, R4MOV R4, AMOV A, BJNC NEXT3CLR CADD A, #1NEXT3: MOV R1, AMOV A,R5MOV R6, AMOV A, R4MOV R5, AMOV A, R1MOV R4, AHERE: SJMP HEREEND总体思想为将该16位乘法拆分为四步8位乘法运算在进行带进位的相加程序中每段分别实现一个八位乘法,然后与上次运算结果相加。

哈工大单片机生产实习概要

哈工大单片机生产实习概要

生产实习报告姓名:张圣悦同组员:赫亮,金林,陈龙班级:自动化三班学号:130210307指导教师:谢玮,邵春涛2016年7月1目录1. 机器人控制器的焊接和调试 (3)1.1 控制器的原理图分析 (3)1.2 印制板图分析 (17)1.3 控制器主板的焊接 (20)1.4 控制器成品测试 (21)1.4 控制器外围器件综合测试 (101)2. 自选项目式实训 (129)3. 智能机器人的学习和操作 (144)3.1 AGV小车的学习和操作 (144)3.2 复杂智能机器人的学习和操作 (145)4. K215电源柔性开关自动化生产线的参观 (146)5. 谈谈您对工业4.0的认识 (146)6.生产实习的收获与体会(500字以内) (147)21.机器人控制器的焊接和调试控制器以STC89C52RC型号单片机为核心,并外接模块以实现特定的功能。

STC89C52RC是一个低功耗,高性能CMOS 8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用STC公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。

STC89C52RC具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

外部资源共包括:4个扩展I/O口、蜂鸣器、继电器、ch340串口芯片、红外接收器、外部rom、超声波测距模块、独立按键、矩阵键盘、led灯、2个全双工串行通信口、液晶显示模块、八位共阳数码管、isp下载口、18b20接口等。

单片机原理与应用实验报告——温度测量显示及设定

单片机原理与应用实验报告——温度测量显示及设定

《单片机原理与应用》课程实验报告院系:班级:学生:学号:指导教师:设计时间:哈尔滨工业大学1 实验的目的、内容和设备1.1 实验的目的单片机综合实验的目的是训练单片机应用系统的编程及调试能力,通过对一个单片机应用系统进行系统的编程和调试,掌握单片机应用系统开发环境和仿真调试工具及仪器仪表的实用,掌握单片机应用程序代码的编写和编译,掌握利用单片机硬件仿真调试工具进行单片机程序的跟踪调试和排错方法,掌握示波器和万用表等杆塔工具在单片机系统调试中应用。

1.2 实验内容实验的内容是利用APP001开发板实现一个温度测量显示和控制的单片机应用系统,利用APP001开发板上的温度传感器测量温度,通过键盘输入一个稳定设定值,当测量温度高于设定温度时发出声音报警,开启散热风扇开关,并在LCD上显示实时温度值,设定温度值和散热风扇的开关状态,其中日期和时间利用单片机的定时器来产生,并能通过键盘来设定。

通过该实验学习和掌握以下的内容:1)MPLAB开发环境的使用,程序编写和排错及软件仿真2)利用MPLAB和ICD2对程序进行在线仿真和调试3)使用万用表和示波器等仪器对硬件系统进行测量和调试4)PIC18F452单片机的I/O和PWM驱动及编程方法5)PIC18F452单片机LCD和键盘接口及编程方法6)PIC18F452单片机的USART编程及与PC机的通讯方法7)利用Timer1外接32.768kHz的晶振产生RTC1.3 实验设备1)运行MPLAB的PC机2)示波器、万用表3)直流电源4)ICD2仿真器5)APP001多功能实验板2 总体设计2.1 硬件总体设计系统组成方案图1系统框图2.2 软件总体设计图2主程序框图图3 中断程序框图3 硬件设计1)散热风扇开发输出控制:实验中我们利用一个LED来模拟风扇状态,当散热风扇开关打开时,LED被点亮发光,当散热风扇关闭时,LED不发光。

开发板上的指示灯D11由RB2,低电平亮,高电平灭。

哈工程单片机实验

哈工程单片机实验
11
复位”按键按下,程序将TR0置为0,同时将存储时间的变 量清零,从而中断停止,并实现复位。
本题目采用专用数码管显示控制芯片MAX7219。 MAX7219是美国MAXIM公司生产的串行输入/输出共 阴极显示驱动器,该芯片最多可驱动8位7段数字LED显 示器或个LED和条形图显示器。其引脚图及引脚功能参 见有关参考资料。
2. 实验原理
产生指定波形可以通过DAC来实现,不同波形产生实质上 是对输出的二进制数字量进行相应改变来实现的。本题目中, 方波信号是利用定时器中断产生的,每次中断时,将输出的 信号按位反即可;三角波信号是将输出的二进制数字信号依 次加1,达到0xff时依次减1,并实时将数字信号经D/A转换 得到;锯齿波信号是将输出的二进制数字信号依次
8
K3—设置分钟。 K4—确认完成设置。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显
示“00:00:00”,然后开始计时。 2. 实验原理 题目难点在于键盘的指令输入,由于每个按键都具有相应的一
种或多种功能,程序中需要大量使用do{}while或while{} 循环结构,以检测是否有按键按下。按键检测函数的详解 如下(略)
本波形发生器的设计电路原理图,如下页图所示:
41
42
题目10 电容、电阻参数单片机测试系统的设计倒计数的时间。一旦按下键 则开始倒计数,当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行,按下 操作键K1~K4动作如下。
K1—可调整倒计数的时间1~60分钟。 K2—设置倒计数的时间为5分钟,显示“0500”。 K3—设置倒计数的时间为10分钟,显示“1000”。 K4—设置倒计数的时间为20分钟,显示“2000”。 复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1 键,

单片机实训教程实验报告

单片机实训教程实验报告

一、实验目的1. 熟悉单片机的基本结构和工作原理。

2. 掌握单片机的编程方法,包括C语言和汇编语言。

3. 学习单片机的接口技术和应用系统设计。

4. 培养动手能力和解决实际问题的能力。

二、实验环境1. 单片机开发系统:STC89C52单片机开发板2. 编译器:Keil uVision3. 调试器:Proteus4. 实验指导书:《单片机实训教程》三、实验内容1. 单片机基本原理实验(1)实验目的:了解单片机的结构、工作原理和引脚功能。

(2)实验步骤:1)搭建实验电路,连接单片机开发板与Proteus仿真软件;2)编写程序,设置单片机的工作模式;3)通过Proteus仿真软件观察单片机的运行状态。

(3)实验结果:通过仿真软件,观察到单片机能够按照程序的要求进行运行,实现了实验目的。

2. 单片机C语言编程实验(1)实验目的:掌握单片机的C语言编程方法。

(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写C语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。

(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。

3. 单片机汇编语言编程实验(1)实验目的:掌握单片机的汇编语言编程方法。

(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写汇编语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。

(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。

4. 单片机接口技术实验(1)实验目的:了解单片机的接口技术,掌握常用接口的编程方法。

(2)实验步骤:1)搭建实验电路,连接单片机开发板与外部设备;2)编写程序,实现单片机与外部设备的通信;3)通过Proteus仿真软件观察通信过程。

(3)实验结果:通过仿真软件,观察到单片机与外部设备能够成功通信,实现了实验目的。

单片机实验报告(完整版)

单片机实验报告(完整版)

单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。

二、实验仪器设备1.PC机,1台2.WAVE软件开发系统三、实验内容及步骤:1、将下面的汇编程序输入到W A VE集成开发软件中ORG 0000HSJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08HMOV R1,#70HMOV DPTR,#2000HLOOP:MOVX A,@R1MOVX A,@DPTRINC R1INC ADJNZ R7,LOOPSJMP $END2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。

3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

四、源程序源程序:ORG 0000H ;定义起始地址SJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08H ;给内部RAM的70H单元赋初值MOV R1,#70H ;使R1指向内部70H单元MOV DPTR,#2000H ;定义外部存储器开始单元LOOP:MOVX A,@R1 ;将R1所指向的70H的内容赋给AMOVX @DPTR,A;将A的内容赋给外部存储器单元INC R1 ;内部RAM地址加1INC DPTR ;外部存储器地址加1DJNZ R7,LOOP ;循环,直到RAM中70H~7FH;单元的内容全部相应赋给;外部2000H~2007H单元SJMP $END3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

五、仿真效果图实验二I/O端口操作一、实验目的:1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。

哈工大电子信息工程学院单片机软件实验报告2016-张迎新版

哈工大电子信息工程学院单片机软件实验报告2016-张迎新版
MOV R0,#0BBH
MOV @R0,#01H
MOV R7,#00H
MOV R1,#0B0H
MOV R2,#10H
LP2:CJNE @R1,#00H,L3
INC R7
L3:INC R1
DJNZ R2,LP2
Loop:
jmp Loop
;===============================================
;===============================================
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
$NOMOD51
$INCLUDE (80C52.MCU)
;===============================================
; DEFINITIONS
;===============================================
;===============================================
END
姓名:
学号:
班级:
同组人:
指导老师:
报告日期:
软件设计实验3:查找相同数个数实验
实验目的:
熟悉汇编语言编程,掌握判断与跳转语句的使用。
实验内容:
使用AT89C52单片机对单片机内部RAM进行查找相同数,输出其个数的实验,实验内容如下:
1.初始化后,B0H-BFH地址的内容为#00H,将B9H的内容赋值为#01H,将BBH的内容赋值为#01H;

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

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

微处理器原理与应用实验报告姓名:李声勇同组人:袁钟达,张秋实学号:1080510123班级:0805101指导教师:张云院系:电子与信息工程学院1 实验一简单I/O口扩展实验(一)交通灯控制实验1.1实验要求扩展实验箱上的74LS273作为输出口,控制八个发光二极管燃灭,模拟交通灯管理。

1.2实验目的1.学习在单片机系统中扩展简单I/O接口的方法2.学习数据输出程序的设计方法3.学习模拟交通灯控制的实现方法1.3实验原理要完成本实验,首先必须了解交通路灯的燃灭规律。

本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。

不妨将L1、L3、L5作为东西方向的指示灯,将L2、L4、L6作为南北方向的指示灯。

而交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

各发光二极管共阳极,阴极接有与非门,因此使其点亮应使相应输入端为高电平。

1.4 实验内容(包括实验电路和程序流程图)1.5 实验结果成功模拟交通灯管制系统,红绿灯方向指示正常,黄灯闪烁正常1.6 实验结果讨论分析实验中发现交通灯在黄灯和红绿灯切换的时候有抖动和延时,初步估计是单片机定时系统不稳定以及程序的延时冗余没有添加所导致。

1.7 实验程序代码变量说明:R1、R2、R3用来做延时控制变量。

EW段表示东西导通南北截止;SNBY是SN STAND BY的缩写,表示南北准备;SN段表示南北导通东西截止。

延时控制由若干延时控制单元组合而成(参考了一下老师的程序)。

片选地址和显示单元调用了老师的部分程序。

PORT EQU 0CFA0H ;片选地址CS0CSEG AT 0000HLJMP BEGINCSEG AT 4100HBEGIN: MOV A,#03H ;1、2亮,其余灭ACALL SHOW ;调用273显示单元ACALL T03 ;延时3秒EW: MOV A,#12H ;东西导通;南北截止ACALL SHOWACALL T10 ;延时10秒MOV A,#02H ;东西截止;南北截止ACALL SHOWSNBY: MOV A,#04H ;东西黄灯闪烁;南北截止ACALL SHOWACALL T02 ;东西黄灯5次闪烁程序MOV A,#00HACALL SHOWACALL T02MOV A,#04HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#04HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#04HACALL SHOWACALL T02MOV A,#00H ACALL SHOWACALL T02MOV A,#04HACALL SHOWACALL T02MOV A,#00H ;东西黄灯闪烁程序结束ACALL SHOWACALL T02 ;延时0.2秒MOV A,#02H ;东西路口黄灯灭;南北路口红灯亮ACALL SHOWACALL T02 ;延时0.2秒MOV A,#03H ;东西南北都截止ACALL SHOWACALL T02 ;延时0.2秒MOV A,#21H ;东西截止;南北导通ACALL SHOWACALL T10 ;延时10秒MOV A,#01H ;东西截止;南北截止ACALL SHOWSN: MOV A,#08H ;东西截止,南北准备ACALL SHOW ;南北黄灯闪烁程序ACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00H ;南北黄灯闪烁截止 ACALL SHOWACALL T02 ;延时0.2秒MOV A,#01H ;东西截止;南北截止 ACALL SHOWACALL T02 ;延时0.2秒MOV A,#03H ;东西南北都截止ACALL SHOWACALL T02 ;延时0.2秒JMP EW ;转EW循环T10: MOV R1,#100 ;延时10秒JMP TU1T03: MOV R1,#30 ;延时3秒JMP TU1T02: MOV R1,#02 ;延时0.2秒TU1: MOV R2,#200TU2: MOV R3,#126TU3: DJNZ R3,TU3DJNZ R2,TU2DJNZ R1,TU1RETSHOW: MOV DPTR,#PORT ;273显示单元MOVX @DPTR,ARETEND2 实验二简单I/O口扩展实验(二)2.1实验要求利用74LS244作为输入口,读取开状态,并将此状态通过发光二极管显示出来。

单片机实验报告(学期全部实验)

单片机实验报告(学期全部实验)

单片机程序设计实验报告姓名:学号:专业班级:第二节课:实验一:1357,2468位置的灯交替闪烁一实验要求1357,2468位置的灯交替闪烁。

二硬件连接图与结果三原理简述程序直接控制LED各位置的灯亮灭,时间间隔简单的用了一个延时的语句。

四程序#include<reg51.h>main (){int i;P0=0XAA; //1357四个灯亮for (i=0;i<=25000;i++); //延时程序P0=0X55; //2468四个灯亮for (i=0;i<=25000;i++); //延时程序}五所遇问题与解决方式程序比较简单,没有遇到问题。

实验二:流水灯一实验要求流水灯,一个接一个的灯亮,亮到最后一个后,全部的灯亮,然后重头开始。

二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。

时间间隔简单的用了一个延时的语句。

因为移位时是直接补0,发送低电平不亮,所以直接移位达到要求。

四程序//流水灯#include<reg51.h>main (){int i,j;while(1){P0=0X01; //第1个灯亮for (i=0;i<=30000;i++); //延时程序for(j=0;j<=7;j++) //移位循环程序{P0=P0<<1; //移位for (i=0;i<=30000;i++); //延时程序}P0=0xff; //全亮for (i=0;i<=30000;i++); //延时程序}}五所遇问题与解决方式程序比较简单,没有遇到问题。

实验三:跑马灯一实验要求一个接一个的灯亮,前面亮过的等依旧亮,直到最后一个灯,最后重新开始,循环。

二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。

  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)码。

相关文档
最新文档