




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、声引舜Z上承本科生实验报告实验课程单片机实验学院名称信息科学与技术学院专业名称物联网工程学生姓名曹林鑫学 生学号 学1413060301指导教师谢兴红实验地点6B607实验成绩二。一六年九月二六年十二月实验一冒泡排序(汇编)一.实验目的掌握单片机的汇编语言排序程序。二.实验内容将单片机内部的数据进行排序,且使用汇编语言。三.实验要求根据实验内容编写一个程序,数据排列顺序要求是从小到大。四.实验说明先在片内RAM中存储一组数据,重复地走访过要排序的数据,一次比较两块内存上的数据,如果他们的顺序错误就把他们交换过来。走访数据的工作是重复地进行直到没有再需要交换,也就是说该列数据已经排序完成。五.算
2、法分析若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值:。面由二“ 一 1, Mmin二°。所以,冒泡排序最好的时间复杂度为O (n)。若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行n-i次关键字的比较(K i < n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下, 比较和移动次数均达到最大值:Mm =吗7 =。(岛冒泡排序的最坏时间复杂度为 ,连? L综上,因此冒泡排序总的平均时间复杂度为57六.实验程序及分析ORG 0000HLJMP mainORG 0100Hmain:MOV 40H,#05
3、H/昭40H-44H中随机存放五个立即数MOV 41H,#08HLOOP3:LOOP1:MOV 42H,#09HMOV 43H,#07HMOV 44H,#06HMOV R7,#04H/您制比较循环的次数MOV R6,#04HMOV R0,#40H/Jt向需要进行比较的数据的地址MOV R1,#41H/MOV A,R6MOV R7,ACLR ACLR CMOV A,R1MOV 49H,A/交换数据前的备份SUBB A,R0/用进位标志判断两数的大小JC LOOPLJMP LOOP4LOOP:MOV A, R0/R复交换前的备份数据MOV R1,AMOV R0,49HLOOP4:INC R0INC
4、 R1DJNZ R7,LOOP1/空制比较的次数DJNZ R6,LOOP3/空制比较的轮数LJMP $END六、实验截图排序前内存中的数据Adctess 向iU3:0kS0:0:22334455观0000000000000000Q00000000000DO000000):。d7:7;dooaooooonoooooodooooaooooaooooocooooonooooooo)mE:E;aoocfi口7ooaoooooojoooj口口caooco叩oooorrjomoooa:0k95:5:aoOCODDCOOOC0000口。0003FFCDQO0000DO0000DO口口0000D:QxK;C:
5、QO00QQOCFF0000QO叩DOOJ00印CO叩叩OQ叩00皿叩0000D:0«C3:3;QOOD0000OQ000000DO00DO00OQCO口口0000ODDOOODO0000D:OkDA:A;dooa00OOODOO5S0口DO00OD00OD000000000000DODO0000);0xFLL00ODOODOOOOO00OO0000000000DO0054OO5500DO000000排序后内存的数据Mess |D:WH):0x50:0: ££ 55 44 33 22 OO 00 的 口0 00 00 00 OD 00 OD 口口 口0 OD 00
6、 00 OD OO 00 3:0x£7;7: 00 OD OD 00 00 OO OD 00 OQ 00 00 00 00 00 00 00 00 00 期 00 OD OO 00 ):0x7E:E: (IO 00 FF 07 皿 OO 00 00 00 00 00 00 00 00 00 Ofl DO 00 FF 00 CO OO 00 D:oi(gs:5: qo od on no oo oo oo oo oo oo oo ff oq oo oo oo 0口 on 口口 m oq oo od J:OxAC:C: 。口 00 口口 口口 FF CO 口口 叩 00 OD 00 00
7、00 00 口口 口口 GO OD 。0 00 00 OO 00 ):0xC3:3:皿 00 OD 00 OD QO CD 0。 QO OQ 皿 00 00 口0 口口 00 CO OD 口口 OD 0口 OO 00 );0xDl;A; OO 00 00 00 DO 叩叩叩叩叩叩 00 OU DO OQ 00 UU 00 口口 00 OU UO Q口 ):0xFl:l: DO 00 on 00 00 OO 00 00 00 00 00 00 00 00 00 oa 00 00 00 04 oa OO 00实验二外部中断一.实验目的1、掌握单片机外部中断的原理及过程。2、掌握单片机外部中断程序的
8、设计方法。3、掌握单片机外部中断时中断方式的选择方法。二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有 8个发光二极管 D1D8。每当发生外部中断时,发光二极管以向下流水灯的方式点亮。分别选择边沿触发外部中断放是和电平触发外部中断方式两种。三、编程提示1、P3 是8位准双向口,具有双重功能:第一功能和P1 一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3.0RXD串行输入口P3.1TXD串行输出口P3.2INT0外部中断0请求输入线P3.3INT1外部中断1请求输入线P3.4T0定时器/计数器T0外部计数器脉冲输入线P3.5
9、T1定时器/计数器T1外部计数器脉冲输入线P3.6WR外部数据存贮器写脉冲输出线P3.7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断0BH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EAESET1EX1ET0EX0(1)外部中断源允许中断(中断 0: EX0=1 ;中断1: EX1=1 )。(2) CPU 开中断(EA=1 )。(3)外部中断方式CPU发出中断申请。4、外部中断方式的选择控制TCON :TF1TR1TF0TR0IE1IT1IE0IT0IT0是选择文字则外部中断 0请求(IN
10、T0 )边沿触发方式或电平触发方式的控制位。前一方 式 IT0=1 ,后一方式 IT0=0。IT1是选择外部中断 1请求(INT1 )为边沿触发方式或电平触发方式的控制位。前一方式IT1=1 ,后一方式 IT1=0。当8031复位后,TCON被1# 0。5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序, 保证每次只产生单脉冲,构成边沿触发方式外部中断电路。边沿触发的最大优点在于不会丢失中断。只要中断请求负跳变的宽度大于1个机器周期,单片机就能够采样到中断请求信号, 单片机将采样到的信号琐存到中断请求标志寄存器中,硬件自动置IE0为1,
11、即使单片机暂时不响应,这个标志也不会丢失,只有在外部中断响应之后,硬件 才将IE0清除。低电平触发的外部中断与边沿触发的外部中断,其中断过程基本相似。 唯一不同在于中断请求信号的保持与撤消。在边沿触发中,单片机 TCON寄存器专门有一位作它的请求标 志,当负跳变后,单片机将中断请求标志IE1 (INT1中断为IE1, INT0中断为IE0)自动置1,由IE1请求中断,在响应中断时,又由单片机自动清除IE1 o但是对于电平触发方式,单片机中没有专门的请求标志,响应中断时也不能自动清除请求信号。在实际应用中,常常是在单片机外增加一个触发器作为中断请求标志,当中断请求发生时置触发器为0,使INT1为
12、低电平,在单片机响应这个中断后,利用软件(占用另一根I/O线,仞如P3.1)发出复位脉冲,使该触发器置1,撤消中断请求。这种电路使请求中断的低电平能够保持足够的时间, 一直到中断发生为止, 因而不会丢失中断请求。 低电平的时间又不致太长,只要进入中断服务程序,在返回之前,就撤消请求信号,因而也不会产生多余的中断动作。四、实验器材仿真器、目标系统实验板、直流电源五、实验步骤1、边沿触发式外部中断 0实验(1) P3.2设为边沿触发方式,连接外部复位开关,编程使每次中断流水灯向下移 位一次,中断程序中不延时去抖动,观察结果。(2) P3.2设为边沿触发方式,连接外部复位开关,编程使每次中断流水灯向
13、下移 位一次,中断程序中采用延时去抖动,观察结果。(3) P3.3设为边沿触发方式,连接外部RS触发器硬件去抖动的开关,编程使每次中断流水灯向下移位一次,中断程序中不延时去抖动,观察结果。(4) 平触发式外部中断实验P3.3设为电平触发方式,连接外部RS触发器硬件去抖动的开关,编程使每次中断流水灯向下移位一次,中断程序中不延时去抖动,观察结果。六、C源程序清单#include <STC12C5A60S2.h>#define uchar unsigned charuchar i=0;uchar numi尸0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;
14、 void delay(uchar k );void main() EA=1;EX0=1;IT0=1;while(1) if(EX0=0)/delay(100);IE0=0;EX0=1;void int0() interrupt 0EX0=0;P2=numii;i+;if(i>8)i=0;void delay(uchar k )uchar x,y,z;for(x=k;x>0;x-) for(y=20;y>0;y-)for(z=250;z>0;z-);)七、总结1、边沿触发和电平触发两种方式中断响应的原理与区别边沿触发:当从高至低电平或从低至高电平转变时,触发产生;电平保
15、持多久都只产生一次。所以,边沿触发适合与以负脉冲形式输入的外部中断请求。电平触发:那么在电平时间内中断一直有效;因此如果在电平没有恢复之前中断程序就已经执行完成从而退出,那么会在退出后又再次进入中断;但只要中断没有退出是不会重复触发的。所以,电平触发方式适合于外部中断以电平输入而且中断服务能清除外部中断源的 情况。2、实验现象1、(1)实验现象是,按键一次就会跳过几个灯,也就是说按键一次并不是向后移一位 而是好几位,这是因为按键没有去抖动,所以会进入多次中断导致。1、(2)按键一次,灯就向下移一位,这是通过软件去抖动之后,按键按下后延时一段 时间,再来判断中断有没有打开,所以按键一次只进入一次
16、中断。1、(3)按键一次,灯就向下移一位,虽然没有用按键去抖动,但是这个键在硬件上已 经去抖,所以按键一次也是只进入一次中断程序,所以会有这种现象。2、(1)由于是电平触发,所以在按下按键的时候,会有好多灯一起亮,比如低电平, 在低电平这段时间里, 会不断地请求中断, 所以就会进入很多次中断, 在加上请求中断的速 度快和LED灯有一定的的余晖,所以肉眼看起来就好像灯全是亮的。实验三定时/计数器实验一、实验目的学习MCS-51内部计数器的使用和编程方法。二、实验内容使用MCS-51内部定时/计数器,定时一秒钟,CPU运用定时中断方式, 实现每一秒钟输 出状态发生一次反转,即发光管每隔一秒钟亮一次
17、。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为一秒钟。定时器/计数器有关的寄存器有工作方式寄存器 TMOX口控制寄存器TCON TMOD用于设 置定日器/计数器的工作方式0-3 ,并确定用于定时还是用于计数。 TCON主要功能是为定时 器在溢出时设定标志位,并控制定时器的运行或停止等。内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。假设实验系统的晶振是 12MHz程序工彳于方式2,即8位自动重
18、装方式定时器,定时器 100uS中断一次,所以定时常数的设置可按以下方法计算:机器周期=12+12MHz=1uS(256-定时常数)X 1uS=100uS定时常数=156。然后对100uS中断次数计数10000次,就是1秒钟。内部计数器用作计数器时,是对外部负脉冲进行计数。其中, 负脉冲从P3.4、P3.5端口 输入的。每有一个负脉冲,计数器就加一。在本实验的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作 用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。本实验需要用到CPU模块(F3区)和八位逻辑电平显示模块( B5区)。五、实验程序及分析程序流程图如下:主程序
19、流程图|中晰人口|取原PL1湍口T1中断服务子程序T0中断服务子程序实验程序如下:Tick equ 10000;10000x100us=1sT100us equ 156;100us时间常数(6M)C100us equ 30h;100us、50us记数单元Tuck equ 5000;5000x100us=0.5sLEDBuf bit 20h DIR bit P3.0 org 0000h ljmp Start org 000bhljmp T0Int;T0定时器中断入口 :0138Horg 001bh;T1中断入口地址:001BHcpl P1.1;T1中断服务子程序reti地址 org 0100h0
20、100H Start:mov P3,0ffh;P3端口做输入口,初始化要置 1mov TMOD, #62h;T0为方式2,定时器,T1为方式2,计数器clr EA;关中断,置定时器的初值mov TH0, #T100usmov TL0, #T100usmov TH1, #0fdhmov TL1, #0fdhmov IE, #10001010b; EA=1, IT0 = 1, IT1 = 1setb TR0;开始定时setb TR1;开始计数clr LEDBufclr P1.0clr P1.1mov C100us, #27H ;#high(Tick)mov C100us+1, #10H ;#low
21、(Tick)0125H Loop: clr C mov C,DIR jnc Loop1 setb F0;F0=1,T=0.5sljmp Loop3012FH Loop1: clr F0;F0=0,T=1s0131H Loop3: mov c, LEDBuf mov P1.0, c ljmp Loop0138H T0Int:;T0定时器中断子程序push PSW mov a, C100us+1 jnz Goon dec C100us0140H Goon:decC100us+1mova, C100usorla, C100us+1jnzExit;记数器不为0,返回jbF0,Loop2movC100us, #27H ; #high(Tick),记数器为0,重置记数器movC100us+1, #10H ; #low(Tick)ljmpLoop40154H Loop2:,记数器为0,重置记数器mov C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玉柴职业技术学院《创业经营管理》2023-2024学年第二学期期末试卷
- 南京审计大学金审学院《登山运动》2023-2024学年第一学期期末试卷
- 宁夏幼儿师范高等专科学校《音乐分析专业理论教学》2023-2024学年第一学期期末试卷
- 2025年质量管理考试试题及答案
- 2025年客服经理考试试题及答案
- 工业机器人系统操作试题复习测试卷
- 2025年民法典试题及答案
- 2025年08c语言复试题及答案
- 2025年全国考博数学试题及答案
- 2025年垃圾治理面试试题及答案
- 2024年3月30日事业单位联考A类《职业能力倾向测验》试题
- 食堂从业人员晨午检制度
- 现代家政导论-课件 2.1家庭的认知
- 护理相关法律法规
- 婴幼儿窒息的预防与急救
- 【网红李佳琦直播带货营销策略问题及对策13000字(论文)】
- 2024中国移动公司招聘高频500题难、易错点模拟试题附带答案详解
- 江苏省宿迁市2024年中考数学试卷含答案
- 河道综合治理工程施工组织设计(投标)
- 2025年安徽省合肥市中考数学模拟考试试卷及答案解析
- 处方书写规范考核试题及答案
评论
0/150
提交评论