版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科生实验报告实验课程单片机实验学院名称信息科学与技术学院专业名称物联网工程学生姓名曹林鑫学生学号201413060301指导教师谢兴红实验地点6B607实验成绩二O六年九月二O一六年十二月实验一冒泡排序(汇编)一实验目的掌握单片机的汇编语言排序程序。二实验内容将单片机内部的数据进行排序,且使用汇编语言。三实验要求根据实验内容编写一个程序,数据排列顺序要求是从小到大。四实验说明先在片内RAM中存储一组数据,重复地走访过要排序的数据,一次比较两块内存上的数据,如果他们的顺序错误就把他们交换过来。走访数据的工作是重复地进行直到没有再需要交换,也就是说该列数据已经排序完成。五算法分析若文件的初始状态
2、是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值:,。所以,冒泡排序最好的时间复杂度为0(n)。若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行n-i次关键字的比较(lWiWn-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:=呵J=0(=邑导=0(旳2冒泡排序的最坏时间复杂度为丁'o综上,因此冒泡排序总的平均时间复杂度为丁'o六实验程序及分析0RG0000HLJMPmain0RG0100Hmain:MOV40H,#05H/在40H-44H中随机存放五个立即数M0V41H,#08HMOV4
3、2H,#09HMOV43H,#07HMOV44H,#06HMOVR7,#04H/控制比较循环的次数MOVR6,#04HLOOP3:MOVR0,#40H/指向需要进行比较的数据的地址MOVR1,#41H/MOVA,R6MOVR7,ACLRALOOP1:CLRCMOVA,R1MOV49H,A/交换数据前的备份SUBBA,RO/用进位标志判断两数的大小JCLOOPLJMPLOOP4LOOP:MOVA,R0/恢复交换前的备份数据MOVR1,AMOVR0,49HLOOP4:INCR0INCR1DJNZR7,LOOP1/控制比较的次数DJNZR6,LOOP3/控制比较的轮数LJMP$-17-END六、实验
4、截图排序前内存中的数据排序后内存的数据实验二外部中断一实验目的1、掌握单片机外部中断的原理及过程。2、掌握单片机外部中断程序的设计方法。3、掌握单片机外部中断时中断方式的选择方法。二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管D1D8。每当发生外部中断时,发光二极管以向下流水灯的方式点亮。分别选择边沿触发外部中断放是和电平触发外部中断方式两种。FZ2/W丼MUI*S*Qftwa皿AM陀皿码三、编程提示1、P3口是8位准双向口,具有双重功能:第一功能和P1口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3.0R
5、XD串行输入口P3.1TXD串行输出口P3.2INT0外部中断0请求输入线P3.3INT1外部中断1请求输入线P3.4T0定时器/计数器T0外部计数器脉冲输入线P3.5T1定时器/计数器T1外部计数器脉冲输入线P3.6WR外部数据存贮器写脉冲输出线P3.7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断0BH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:(1)外部中断源允许中断(中断0:EX0=l;中断1:EX1=1)。(2)CPU开中断(EA=1)o(3)外部中断方式CPU发出中断申请。4、外
6、部中断方式的选择控制TCON:TF1TR1TFOTR0IE1IT1IE0IT0IT0是选择文字则外部中断0请求(INT0)边沿触发方式或电平触发方式的控制位。前一方式IT0=1,后一方式IT0=0oIT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。前一方式IT1=1,后一方式IT1=0o当8031复位后,TCON被清0o5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。边沿触发的最大优点在于不会丢失中断。只要中断请求负跳变的宽度大于1个机器周期,单片机就能够
7、采样到中断请求信号,单片机将采样到的信号琐存到中断请求标志寄存器中,硬件自动置IE0为1,即使单片机暂时不响应,这个标志也不会丢失,只有在外部中断响应之后,硬件才将IE0清除。低电平触发的外部中断与边沿触发的外部中断,其中断过程基本相似。唯一不同在于中断请求信号的保持与撤消。在边沿触发中,单片机TCON寄存器专门有一位作它的请求标志,当负跳变后,单片机将中断请求标志IE1(INT1中断为IE1,INTO中断为IE0)自动置1,由IE1请求中断,在响应中断时,又由单片机自动清除IE1。但是对于电平触发方式,单片机中没有专门的请求标志,响应中断时也不能自动清除请求信号。在实际应用中,常常是在单片机
8、外增加一个触发器作为中断请求标志,当中断请求发生时置触发器为0,使INT1为低电平,在单片机响应这个中断后,利用软件(占用另一根I/O线,例如P3.1)发出复位脉冲,使该触发器置1,撤消中断请求。这种电路使请求中断的低电平能够保持足够的时间,一直到中断发生为止,因而不会丢失中断请求。低电平的时间又不致太长,只要进入中断服务程序,在返回之前,就撤消请求信号,因而也不会产生多余的中断动作。四、实验器材仿真器、目标系统实验板、直流电源五、实验步骤1、边沿触发式外部中断0实验(1)P3.2设为边沿触发方式,连接外部复位开关,编程使每次中断流水灯向下移位一次,中断程序中不延时去抖动,观察结果。(2)P3
9、.2设为边沿触发方式,连接外部复位开关,编程使每次中断流水灯向下移位一次,中断程序中采用延时去抖动,观察结果。(3)P3.3设为边沿触发方式,连接外部RS触发器硬件去抖动的开关,编程使每次中断流水灯向下移位一次,中断程序中不延时去抖动,观察结果。2、电平触发式外部中断实验P3.3设为电平触发方式,连接外部RS触发器硬件去抖动的开关,编程使每次中断流水灯向下移位一次,中断程序中不延时去抖动,观察结果。六、C源程序清单#include<STC12C5A60S2.h>#defineucharunsignedcharuchari=0;ucharnumi=0x01,0x02,0x04,0x0
10、8,0x10,0x20,0x40,0x80;voiddelay(uchark);voidmain()EA=1;EX0=1;IT0=1;while(1)if(EX0=0)/delay(100);IE0=0;EX0=1;voidint0()interrupt0EX0=0;P2=numii;i+;if(i>8)i=0;voiddelay(uchark)ucharx,y,z;for(x=k;x>0;x-)for(y=20;y>0;y-)for(z=250;z>0;z-);七、总结1、边沿触发和电平触发两种方式中断响应的原理与区别边沿触发:当从高至低电平或从低至高电平转变时,触发
11、产生;电平保持多久都只产生一次。所以,边沿触发适合与以负脉冲形式输入的外部中断请求。电平触发:那么在电平时间内中断一直有效;因此如果在电平没有恢复之前中断程序就已经执行完成从而退出,那么会在退出后又再次进入中断;但只要中断没有退出是不会重复触发的。所以,电平触发方式适合于外部中断以电平输入而且中断服务能清除外部中断源的情况。2、实验现象1、(1)实验现象是,按键一次就会跳过几个灯,也就是说按键一次并不是向后移一位而是好几位,这是因为按键没有去抖动,所以会进入多次中断导致。1、(2)按键一次,灯就向下移一位,这是通过软件去抖动之后,按键按下后延时一段时间,再来判断中断有没有打开,所以按键一次只进
12、入一次中断。1、(3)按键一次,灯就向下移一位,虽然没有用按键去抖动,但是这个键在硬件上已经去抖,所以按键一次也是只进入一次中断程序,所以会有这种现象。2、(1)由于是电平触发,所以在按下按键的时候,会有好多灯一起亮,比如低电平,在低电平这段时间里,会不断地请求中断,所以就会进入很多次中断,在加上请求中断的速度快和LED灯有一定的的余晖,所以肉眼看起来就好像灯全是亮的。实验三定时/计数器实验、实验目的学习MCS-51内部计数器的使用和编程方法。二、实验内容使用MCS-51内部定时/计数器,定时一秒钟,CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。三、实验要
13、求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为一秒钟。定时器/计数器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。假设实验系统的晶振是12MHZ,程序工作于方式2,即8位自动重装方式定时器,定时器l
14、OOuS中断一次,所以定时常数的设置可按以下方法计算:机器周期=12三12MHz=1uS(256-定时常数)X1uS=100uS定时常数=156。然后对100uS中断次数计数10000次,就是1秒钟。内部计数器用作计数器时,是对外部负脉冲进行计数。其中,负脉冲从P3.4、P3.5端口输入的。每有一个负脉冲,计数器就加一。在本实验的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。本实验需要用到CPU模块(F3区)和八位逻辑电平显示模块(B5区)。五、实验程序及分析程序流程图如下:主程序流程图T1中断服务子程序TO中断服
15、务子程序实验程序如下:Tickequ1OOOO;1OOOOx1OOus=1sT1OOusequ156;lOOus时间常数(6M)C1OOusequ3Oh;lOOus、50us记数单元Tuckequ5OOO;5OOOxlOOus=O.5sLEDBufbit2OhDIRbitP3.OorgOOOOhljmpStartorgOOObhljmpTOInt;TO定时器中断入口:0138HorgOO1bh;T1中断入口地址:OO1BHcplP1.1;T1中断服务子程序reti地址org0100h0100HStart:movP3,0ffhmovTMOD,#62hclrEAmovTH0,#T100usmovT
16、L0,#T100usmovTH1,#0fdhmovTL1,#0fdhmovIE,#10001010bsetbTR0setbTR1clrLEDBufclrP1.0clrP1.1movC100us,#27HmovC100us+1,#10H0125HLoop:clrCmovC,DIRjncLoop1setbF0ljmpLoop3012FHLoop1:clrF00131HLoop3:movc,LEDBufmovP1.0,cljmpLoop0138HT0Int:pushPSWmova,C100us+1jnzGoondecC100us0140HGoon:decC100us+1mova,C100usorla
17、,C100us+1jnzExitjbF0,Loop2movC100us,#27HmovC100us+1,#10HljmpLoop40154HLoop2:;P3端口做输入口,初始化要置1;T0为方式2,定时器,T1为方式2,计数器;关中断,置定时器的初值;EA=1,IT0=1,IT1=1;开始定时;开始计数;#high(Tick);#low(Tick);F0=1,T=0.5s;F0=0,T=1s;T0定时器中断子程序;记数器不为0,返回#high(Tick),记数器为0,重置记数器#low(Tick)movmovC100us,#13HC100us+1,#88H#high(Tuck),记数器为0,
18、重置记数器;#low(Tuck)015AHLoop4:cpl015CHExit:LEDBuf;取反LEDPSWpopretiEnd六、实验步骤及实验现象1)系统各跳线器处在初始设置状态,用导线连接CPU模块P10到八位逻辑电平显示模块的L0;用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口)。2)启动PC机,打开THGMW-51软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)运行程序观察发光二极管隔一秒点亮一次,点亮时间为一秒。4)拨动K0,观察发光二极管隔0.5秒点亮一次,点亮时间为0.5秒。实验现象:K0开关拨上,LED灯L0闪亮的时间为0.5s,K0开关拨下,LED灯L0闪亮的时间为1s。K1开关拨上、拨下3次,贝9LED灯L1改变状态。(若前一个状态为灭,则变为亮;若前一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026-2030豆腐干行业风险投资态势及投融资策略指引报告
- 智能交通合作协议确认函(7篇范文)
- 客户家居建材质量问题投诉解决信函(7篇范文)
- 2021年上海市浦东新区高考一模语文试卷
- 初中科学·九年级《碱性世界探秘:从宏观性质到微观本质》课时教案(浙教版)
- 2026河北秦皇岛市卢龙县人力资源和社会保障局实施青年就业见习计划笔试题库含完整答案详解【典优】
- 初中生物八年级上册《线形动物和环节动物》探究式教学设计
- 初中历史七年级上册《战国时期的社会变革》智慧课堂教案
- 小学一年级数学上册《位置(二):上、下、前、后》单元整体教学设计
- 小学二年级数学下册《评选吉祥物》核心素养教学设计
- 2026年恩施市面向市外教师选调65人模拟试卷【A卷】附答案详解
- 2026湖北恩施州利川市选调市外教师30人考前冲刺密卷及参考答案详解【模拟题】
- 《气体中毒急诊救治》课件
- 水利工程土石方施工方案设计
- GB/Z 44071-2024液压传动连接软管总成操作规程
- 烧烤视频拍摄脚本
- 廉洁应征承诺书
- 剪刀车安全施工方案
- OpenVPN下载、安装、配置及使用详解
- 格鲁夫给经理人的第一课-学习分享
- DB4401-T 166-2022《1:500+1:1000+1:2000地形图图式》地方标准
评论
0/150
提交评论