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

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机实训报告

单片机实训报告

单片机实训报告单片机实训报告一、实训主题本次单片机实训旨在强化理论知识,提高实际操作能力,掌握单片机开发流程。

通过实际操作,深入理解单片机内部结构、工作原理、通信技术和编程方法。

二、实训设备1、单片机开发板2、电脑一台3、USB转串口线一条4、电源适配器5、电路板及元件三、实训过程1、电路设计:根据实训要求,设计电路原理图,使用Protel等软件绘制电路板图。

2、元件准备:根据电路原理图,准备所需元件,并进行检测。

3、硬件电路搭建:按照电路板图,将元件焊接到PCB板上。

4、程序编写:使用Keil软件编写单片机程序,实现所需功能。

5、程序调试:通过USB转串口线将程序下载到单片机中,进行调试和测试。

6、功能验证:在硬件设备上验证所设计功能是否达到预期效果。

四、实训成果通过本次实训,我们成功掌握了单片机开发的基本流程,学会了使用Protel软件绘制电路板图,用Keil软件编写程序,并通过USB转串口线将程序下载到单片机中进行调试和测试。

最终,我们成功地实现了所设计的功能,并在硬件设备上进行了验证。

五、问题与思考在实训过程中,我们遇到了一些问题,如元件焊接不良、程序调试困难等。

通过分析原因和请教老师,我们找到了解决方法。

在今后的实训中,我们将更加注重细节,提高焊接技巧,加强程序调试能力,以取得更好的成果。

六、总结与展望通过本次单片机实训,我们不仅加深了对单片机内部结构和工作原理的理解,还掌握了单片机开发的基本技能。

今后,我们将继续加强学习和实践,提高自己的单片机开发水平,为今后的学习和工作打下坚实的基础。

单片机设计实训报告范例优选5篇

单片机设计实训报告范例优选5篇

单片机设计实训报告范例优选5篇实训报告是展现本身实践获得发展的关键汇报,那麼实训报告该要怎么写呢?我优选了一些有关实训报告的出色案例,一起来瞧瞧吧。

单片机设计课题设计体会心得校园内学习培训期内我荣幸的参与了院校的单片机学习工作组,在工作组里我了解了什么叫单片机设计,单片机设计有什么主要用途,运用单片机设计能够完成什么作用来便捷大家的日常生活如交通信号灯,数字时钟,也有手机上中,电动玩具这些,他们里边都是有单片机设计的存有来完成某类作用。

根据在单片机设计工作组里的学习培训我简易汇总了几个方面体会心得和感受:第一:开头难,要英勇的迈出第一步,不必总找借口说沒有学习培训过就总推诿。

一切都是有第一步能够先可简易的来,随后能够逐渐的向多方面学习培训。

能够从建新项目逐渐,随后能够找一个简易的微信小程序先把它敲进单片机设计内然他运作起來,觉得一下单片机设计的运作,让自身掌握单片机设计全部运作。

第二:针对知识要点,学过的要把握坚固,针对沒有学的和临时用不上的先无需学习培训。

例如:灯泡得照亮就沒有采用终断能够先无需看。

那样能够防止专业知识太多记不得的不便。

针对程序流程这儿的知识要点不可以只滞留在基础理论层级上,一定要融合着程序流程开展学习培训那样才可以把握的很牢固,当采用哪儿的知识要点不记得了能够看看书,针对用不上的可以不去看看。

第三:程序流程不必仅仅看他人得,一定要自身读过才算是自身的。

逐渐不明白能够参照他人的,看一下每一句意味着着是什么意思,可以完成哪些状况。

搞清楚以后自身再再次写一遍,你能发觉看他人的能懂到自身写的情况下很艰难。

如果你自身能写出去的情况下表明你真明白了。

第四:一定要学好调试程序的方式。

有时把程序流程写完了随后运作时不可以实现梦想的状况。

这时候有些人就晕了不知道应该怎么办,随后就去问他人。

当他人找到难题出在哪儿时便会如梦初醒。

实际上当碰到难题一定要自身试着着处理,不可以碰到难题就去问他人。

自身一定要把握处理问的方式和构思。

单片机实验报告

单片机实验报告

单片机实验报告第一篇:单片机实验报告单片机实验报告一、实验目的1.熟练使用Keil、Protues两款软件2.通过上机操作,增强个人动手实践能力3.加深对理论知识的理解4.培养运用汇编语言进行初步编写程序的能力二、实验内容1.将片外RAM3050-306FH中数据转移至片内70-8FH中。

要求:可以从Keil或Protues上看到RAM的数据转移结果。

2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。

要求:开发板或Prrotues演示3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。

要求:在Keil或Protues上看到数据转换结果。

4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。

要求:Protues使软件间示波器显示方波。

三、实验程序1.将片外RAM3050-306FH中数据转移至片内70-8FH中ORG 0000H AJMP MAIN 上电,转向主程序ORG 0030H 主程序入口MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1SJMP $ 等待END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮ORG 0000H SJMP MAIN 上电,转向主程序ORG 0003H 外部中断0向量入口AJMP INSER ORG 0030H 主程序入口MAIN: SETB EX0 SETB IT0SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP 允许外部中断0中断选择边沿触发方式开中断等待中断设置循环次数赋初值,设置高电平亮将初值送往P2口延时左移一位判断循环次数,是否跳转到中断返回延时程序DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值MOV TL1,#0F0HSETB ET1 开中断SETB EA CPU开中断SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断ORG 001BH T1中断向量地址CLR TF1 将TF1清零CPL P2.0 P2.0取反输出MOV TH1,#0D8H 重装初值MOV TH0,#0F0HRETI;中断返回END 4.2 查询方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待CLR TF1产生溢出,清标志位CPL P2.0 P2.0取反输出SJMP LOOP 循环END四、实验结果截图1.23.4.14.2第二篇:单片机实验报告实验四、中断交通灯实验林立强1000850116一、实验目的1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。

单片机实验报告

单片机实验报告

单片机实验报告引言:单片机是一种集成了处理器、存储器和输入输出设备的微型计算机,广泛应用于电子设备中。

本实验通过对单片机的学习和实践,探索了其原理和应用。

一、实验目的本次实验的目的是熟悉单片机的基本原理和操作方法,掌握单片机的编程语言和开发工具,实现简单的实时控制和数据采集。

二、实验装置及材料1. 单片机:我们选择了常用的51系列单片机,拥有较好的性能和兼容性。

2. 开发板:用于实验中运行和调试所写的程序。

3. 传感器:温度传感器、光照传感器等,用于实现数据采集。

4. LED灯和蜂鸣器:用于实现实时控制和输出。

5. 连接线:将单片机与传感器、开发板等连接起来。

三、实验过程和结果1. 单片机的编程语言:单片机主要使用汇编语言和C语言进行编程。

汇编语言能够直接操作硬件资源,灵活性较高;而C语言则更易于理解和编写,可提高开发效率。

我们选择了C语言进行编程。

2. 开发工具:为了编写和调试单片机程序,我们使用了KeilC51和Proteus软件进行开发。

Keil C51提供了编译器和调试器,可对程序进行编译和调试;Proteus能够模拟开发板的运行情况,方便我们验证程序的正确性。

3. LED控制实验:我们首先进行了LED控制实验,通过单片机的I/O口来控制LED的开灭。

编写程序后,在开发工具中进行仿真,确保程序和电路无误后,将程序下载到单片机上进行实际运行。

实验结果显示,当程序指定LED灯为高电平时,LED灯亮起;当程序指定为低电平时,LED灯熄灭。

4. 数据采集实验:接下来,我们进行了数据采集实验,利用温度传感器和光照传感器采集环境温度和光照强度。

将传感器与单片机连接后,编写相应程序进行数据读取。

实验结果显示,我们能够通过单片机读取到精确的温度和光照数值。

5. 实时控制实验:为了验证单片机的实时控制能力,我们使用蜂鸣器进行了实时报警实验。

通过编写程序,设置蜂鸣器的开关状态,当某个条件满足时,蜂鸣器会发出警报声。

单片机实训报告范本

单片机实训报告范本

单片机实训报告范本一、实训目的及背景本次实训的目的是通过设计和搭建一个单片机系统,理解和掌握单片机的原理和应用,培养学生的实际动手能力和解决问题的能力。

二、实训内容1. 实训环境的搭建为了进行单片机实训,我们需要搭建一个合适的实训环境。

首先,我们需要购买一台单片机开发板,它包含了单片机、外部设备接口、显示器等组件。

其次,我们需要安装开发环境,包括单片机编译器、调试器和仿真器等。

最后,我们需要准备一套实验教材,其中包含了实验指导书、实验源代码和实验报告模板等。

2. 实训实验的设计与实施根据教材的指导,我们进行了一系列的实训实验。

实验内容包括了单片机的基本原理、输入输出的控制、中断的应用、定时器的使用等。

在每个实验中,我们首先研读实验指导书,了解实验的目的和步骤。

然后,我们按照实验指导书的步骤进行实验,编写实验源代码,并通过调试器和仿真器进行调试和测试。

最后,我们整理实验结果,撰写实验报告。

3. 实训实验的总结与评估在每个实验结束后,我们进行实验总结与评估。

通过总结实验过程中遇到的问题和解决方法,我们深化了对单片机的理解和掌握。

通过评估实验结果,我们检验了自己的实际动手能力和解决问题的能力。

实验总结与评估的结果将作为实训成绩的依据。

三、实训结果与分析本次实训共进行了10个实验,涵盖了单片机的基本原理和应用。

通过实验,我们熟悉了单片机的硬件结构和软件编程,掌握了单片机的输入输出控制、中断处理和定时器应用等技术。

我们成功完成了每个实验,并获得了实验数据和实验结果。

实训结果的分析表明,我们在实验过程中遇到了一些问题,例如电路连接错误、程序逻辑错误等。

通过仔细分析问题的原因,我们找到了解决问题的方法,并进行了相应的调试和修正。

最终,我们成功解决了所有问题,并获得了正确的实验结果。

四、实训心得与收获通过本次实训,我深刻体会到了实践的重要性和乐趣。

通过动手操作和实验调试,我增强了自己的实际动手能力和解决问题的能力。

单片机实习总结

单片机实习总结单片机实习总结 3篇单片机实习总结 1这次实习我们使用控制电路的单片机是AT89S51型号的,单片机实习报告总结。

通过它实现对八盏双色灯发光二极管的控制P0和P2口控制四盏灯。

在AT89S51的9引脚接复位电路,对电路实现复位控制。

在电路中接入74S164译码器和共阴极数码管,通过AT89S51的P3口数据的输入对共阴极数码管的控制。

同时也可实现双色发光的二极管与共阴极数码管的共同作用。

在AT89S51的P3.2口接上中断控制电路,P3.5口接入蜂鸣器,使电路实现中断作用,也使电路便于检测。

尽量朝“单片”方向设计硬件系统。

系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。

系统中的相关器件要尽可能做到性能匹配。

如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品。

硬件电路设计:1)确保硬件结构和应用软件方案相结合。

硬件结构与软件方案会相互影响,软件能实现的功能尽可能由软件实现,以简化硬件结构。

必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间;2)可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板的合理布线、各元器相互隔离等;3)尽量朝“MCS-51单片”方向设计硬件系统。

系统器件越多,器件之间相互干扰也越强,所消耗功耗也增大,也不可避免地降低了系统的稳定性;4)系统中的相关器件要尽可能做到性能匹配。

如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品。

1.1 单片机型号及特性单片机型号是 AT89S51。

特性是:⑴8031 CPU与MCS-51⑵兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) ⑶全静态工作:0Hz-24KHz ⑷三级程序存储器保密锁定⑸128*8位内部RAM ⑹32条可编程I/O线⑺两个16位定时器/计数器⑻6个中断源⑼可编程串行通道⑽低功耗的闲置和掉电模式⑾片内振荡器和时钟电路。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机实验报告总结

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机课程设计实习报告

工作报告/实习报告单片机课程设计实习报告实训任务:做单一灯的左移右移,八个发光二极管l1-l8分别接在单片机的p1.0p1.2p1.3┅p1.7p1.6┅p1.0亮,重复循环3次。

然后左移2次,右移2次,闪烁2次(延时的时间0.2秒)。

一、实训目的和要求:(1)熟练掌握keil c51集成开发环境的使用方法(2)熟悉keil c51集成开发环境调试功能的使用和单片机仿真器、编程器、实验仪三合一综合开发平台的使用。

(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。

(4)了解掌握单片机芯片的烧写方法与步骤。

(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。

(6)掌握利用protel 99 se绘制电路原理图及pcb图。

(7)了解pcb板的制作腐蚀过程。

二、实训器材:pc机(一台)pcb板(一块)520电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10f电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(1)根据原理图(下图所示),用导线把单片机综合开发平台a2区的j61接口与d1区的j52接口相连。

(2)将流水灯程序编写完整并使用tkstudy ice调试运行。

(3)使用导线把a2区j61接口的p1口7个口分别与j52接口的八个led相连。

(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。

(5)观察运行结果,若能实现功能,则将正确编译过的hex 文件通过easypro51编程器写入mcu片内存储器,然后将烧写的芯片a2区的圆孔ic座进行最终实验结果的演示。

(6)制板。

首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。

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

单片机实验报告 学号:100250212 姓名: 指导教师: 实验二 一、 实验目的 1 、 进一步了解开发系统的功能和使用; 2 、 了解程序设计与调试的基本过程; 3 、 了解简单程序和分支程序程序的特点和设计。 二、 实验内容 1 、 简单程序的设计、输入、调试和运行; 2 、 分支程序的设计、输入、调试和运行; 三、 实验步骤 1、设计、调试双字节乘法程序,功能为:(R2R3)*(R6R7)→R4R5R6R7 输入设计好的程序检查无误后,汇编。向R2R3和R6R7中输入多组不同的数据,运行 程序,观察R4R5R6R7中的内容,分析运行结果是否正确。

2、求符号函数)0()0()0(1-01XXXY,设:X→30H,Y→31H 输入设计好的程序检查无误后,汇编。向30H中输入多个不同的数据,运行程序,观 察31H中的内容,分析运行结果是否正确。 3、将ASCII码转换十六进制数 设ASCII码放在累加器A中,结果放回到A中,如果A中的内容不是十六进制的数的ASCII码,用户标志位F0置1。输入设计好的程序检查无误后,汇编。向A中输入多个不同的数据,运行程序,观察A中的内容,分析运行结果是否正确。

四、实验程序及分析结果 1、双字节乘法运算程序

程序如下: ORG 0000H LJMP MAIN MAIN: MOV A, R3 ;先计算R7乘R3 MOV B, R7 MUL AB ;A中为积的低八位 MOV R1,A ;将低八位存入R1中 MOV R5,B ;将高八位存入R5中

MOV A, R2 ;计算R7乘R2 MOV B, R7 MUL AB ADD A, R5 ;R5加至A MOV R5, A ;将结果存入R5 MOV R4, B ;将高位结果存入R4 MOV A, R1 MOV R7, A ;将低八位存入R7中 JNC NEXT1 ;C为零则跳转 MOV A, R4 ;如果C为1则将R4加一 CLR C ADD A, #01 MOV R4, A NEXT1: MOV A, R3 MOV B, R6 MUL AB ADD A, R5 MOV R5, A MOV R1,B MOV A, R4 JNC NEXT2 CLR C ADD A, #1 NEXT2: ADD A, R1 MOV R4, A MOV A, R2 MOV B, R6 MUL AB ADD A, R4 MOV R4, A MOV A, B JNC NEXT3 CLR C ADD A, #1 NEXT3: MOV R1, A MOV A,R5 MOV R6, A MOV A, R4 MOV R5, A MOV A, R1 MOV R4, A HERE: SJMP HERE END

总体思想为将该16位乘法拆分为四步8位乘法运算在进行带进位的相加程序中每段分别实现一个八位乘法,然后与上次运算结果相加。 实验结果 该程序正确正确的执行出了结果,输入数据后其输出数据均正确。

2、符号函数程序: ORG 0000H START: MOV A,30H CJNE A,#00H,NZ AJMP LL NZ: JB ACC.7,MM MOV A,#01H AJMP LL MM: MOV A,#81H LL: MOV 31H,A HERE: SJMP HERE END

总体思想:将30H中的数与0比较,相等则31H输出为0;不相等判断最高位(符号位),符号位为0,说明是整数,输出为01H;符号位为1,说明为负数,输出为81H。

3、码转换程序 ORG 0000H CLR C CLR F0 SUBB A,#30H JC NASC CJNE A,#0AH,NE1 NOP NE1: JC ASC SUBB A,#07H CJNE A,#0AH,NE2 NE2: JC NASC CJNE A,#10H,NE3

NE3: JNC ASC

NASC: SETB F0 ASC: NOP HERE: SJMP HERE END 总体思想:16进制包括0~9,A~F,0~9的ASC值为30~39,A~F的ASC值为65~70,依次按程序判断给出的数是否在这两个区间之内,满足条件则输出对应的16进制数,不满足条件则用户标志位F0置1.

实验三 一、 实验目的 1 、 了解汇编语言程序设计与调试的过程; 2 、 掌握循环程序、查表程序和子程序的特点及设计。 二、 实验内容 1 、 循环程序的设计、输入、调试和运行; 2 、 查表程序的设计、输入、调试和运行; 三、 实验步骤 1 、排序程序:将N 个数从小到大排列起来。 设R0的内容为数据区的首地址,R7的内容为数据的字节数。 ORG 0000H LJMP MAIN MAIN: SS: MOV A,R7 MOV R2,A MOV 60H,R0 NN: DEC R2 MOV A,R2 MOV R3,A MOV R0,60H L1: MOV A,@R0 INC R0 CLR C SUBB A,@R0 JC MM MOV A,@R0 DEC R0 XCH A,@R0 INC R0 MOV @R0,A SETB F0 MM: DJNZ R3,L1 MOV A,R2 CJNE R2,#01H,RR SJMP JJ RR: JB F0,NN JJ: MOV R0,60H HERE: SJMP HERE

END

该程序为经典的冒泡排序算法为效率非常高的算法,其大体思想如下: 1. 比较相邻两个数,如果后一个大于前一个,则将两个数交换,否则不进行任何动作 2. 继续比较下一个数 3. 如果本趟比较没有进行交换,则排序完毕 2 、查表程序 设计一程序,将16进制数转换为对应的 ASCII 码。设16进制数放在 R6中,转换结果放在R7中。 ORG 0000H LJMP MAIN MAIN: MOV A, R6 ANL A, #0FH MOV DPTR, #TAB MOVC A, @A+DPTR MOV R7, A MOV R7, A HERE: SJMP HERE ORG 0030H TAB : DB ‘012345678’ DB ‘9ABCDEF’ END

程序基本思想:将R6输入的数作为地址偏移量,进行查表寻址,采

用DPTR指针寻址,基址为表格起始地址 四、实验结果 将数存入相应的内存单元,运行程序,排序结果正确 程序二中装换结果正确。

实验四 单片机中断实验

一、 实验目的 1 、 了解单片机的中断过程。 2 、 了解单片机中断的触发方式。 3 、 了解单片机中断的程序设计。 4 、 学习中断服务程序的调试方法。 二、 实验内容 1 、 单片机外部中断的低电平触发方式 如图3.4.1,按住开关 K,在 INT0 端产生一个低电平信号,触发外部中断,将事先送入 寄存器R1中的值由 LED 即发光二极管电路显示出来。 2 、 单片机外部中断的下降沿触发方式 如图3.4.1,按一下开关 K,在 INT0 端产生一个下降沿信号,触发外部中断,将事先送 入寄存器R1中的值由LED 即发光二极管电路显示出来。 注意:开关Kx可用查询式键盘中的任意一键代替。 三、 实验步骤 1 、 外部中断的低电平触发方式 (i )按图4-3 给出的原理图连好电路,其中 Kx 可为‘开关量输入如模块’中的任意一个开关,用双头线与INT0 引脚(位于单片机扩展资源区(D1区))连接。 参考程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP ITAP ORG 0030H MAIN: MOV TCON , #00H SETB EX0 SETB EA HERE: AJMP HERE ORG 0040H ITAP : MOV A, R1 MOV P1, A RETI END

2 、外部中断的下降沿触发方式

参考程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP ITAP ORG 0030H MAIN: MOV TCON , #01H MOV IE , #81H MOV R1, #21H HERE: AJMP HERE ORG 0100H ITAP : MOV A, P1 SWAP A MOV P1, A RETI END

程序一设为低电平触发方式,只要外部存在低电平,则执行中断服务

程序,程序二为下降沿触发模式。 四、实验结果 程序一在低电平持续期间,不停执行中断服务程序,程序二只在下降沿是执终端服务程序。

实验五 单片机定时/计数器实验

一、 实验目的 1 、 了解单片机定时/ 计数器原理、工作方式选择; 2 、 了解单片机定时与计数器的工作过程; 3 、 了解单片机定时/ 计数器的程序设计方法。 二、 实验内容 1 、 用定时、计数器控制图4-4 中的发光二极管,使其亮两秒,灭两秒,周而复始,设计该 程序。 三、 实验步骤 1 、 设T0定时间隔为 50ms(方式),当定时时间到后,将 P1.7 的输

相关文档
最新文档