版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告实验课程:单片机原理及应用学生姓名:学号:专业班级:指导老师:2013年12月30日
目录实验一扩展存储器读写实验 2一.实验要求 2二.实验目的 2三.实验电路及连线 2四.实验说明 3五.实验程序框图 3六.实验程序: 4八.实验结果和小结 5实验四简单I/O实验(交通灯控制) 6一.实验要求 6二.实验目的 6三.实验电路及连线 6四.实验说明 7五.实验程序框图: 7六.实验程序 8七.软件仿真 10实验六定时器实验 11二.实验目的 11三.实验电路及连线 11四.实验说明 12六.实验程序 13七.软件仿真 14八.实验结果和小结 14实验十A/D转换实验 15一.实验要求 15二.实验目的 15三.实验电路及连线 15四.实验说明 16五.实验程序框图 16六.实验程序 16七.软件仿真 17八.实验结果和小结 18
实验一扩展存储器读写实验一.实验要求
编制简单程序,对实验板上提供的外部存贮器(62256)进行读写操作。二.实验目的1.学习片外存储器扩展方法。
2.学习数据存储器不同的读写方法。三.实验电路及连线将P1.0接至L1。CS256连GND孔。四.实验说明1.单片机系统中,对片外存贮器的读写操作是最基本的操作。用户藉此来熟悉MCS51单片机编程的基本规则、基本指令的使用和使用本仿真实验系统调试程序的方法。
用户编程可以参考示例程序和流程框图。本示例程序中对片外存贮器中一固定地址单元进行读写操作,并比较读写结果是否一致。不一致则说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段(本示例程序通过熄灭一个发光二极管来表示出错)。读写数据的选用,本例采用的是55(0101,0101)与AA(1010,1010)。一般采用这两个数据的读写操作就可查出数据总线的短路、断路等,在实际调试用户电路时非常有效。
用户调试该程序时,可以灵活使用单步、断点和变量观察等方法,来观察程序执行的流程和各中间变量的值。
2.在I状态下执行MEM1程序,对实验机数据进行读写,若L1灯亮说明RAM读写正常。
3.也可进入LCA51的调试工具菜单中的对话窗口,用监控命令方式读写RAM,在I状态执行SX0000↓55,SPACE,屏幕上应显示55,再键入AA,SPACE,屏幕上也应显示AA,以上过程执行效果与编程执行效果完全相同。
注:SX是实验机对外部数据空间读写命令。
4.本例中,62256片选接地时,存储器空间为0000~7FFFH。五.实验程序框图六.实验程序:ORG0000H;程序入口地址LJMPSTART;长转移STARTORG0040HSTART:MOVSP,#60H;设置堆栈指针MOVDPTR,#0000H;设置外部RAM读写地址MOVA,#55H;测试的数据一MOVB,A;把A的值赋给寄存器BMOVX@DPTR,A;写外部RAMMOVXA,@DPTR;读外部RAMXRLA,B;比较读回的数据JNZERROR;不相等就跳转到ERRORMOVA,#0AAH;测试的数据二MOVB,A;将A的数保存到B中MOVX@DPTR,A;写外部RAMMOVXA,@DPTR;读外部RAMXRLA,B;比较读回的数据JZPASS;测试通过ERROR:SETBP1.0;测试失败,点亮LEDSJMP$;在原地跳转PASS:CPLP1.0;LED状态(亮/灭)转换MOVR1,#00H;延时子程序DELAY:MOVR2,#00HDJNZR2,$DJNZR1,DELAYLJMPSTART;循环测试END_七.实验结果和小结实验结果可以看到小灯在不停闪烁,说读写测试成功,即外部扩展的存储器和连线都没有问题,测试数据选择AA和55,即10101010和01010101,能使测试的的每一根口线都发生一次变化,准确实用。
实验四简单I/O实验(交通灯控制)一.实验要求以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。二.实验目的1.学习在单片机系统中扩展简单I/O接口的方法。2.学习数据输出程序的设计方法。3.学习模拟交通灯控制的方法。4.学习双色灯的使用。三.实验电路及连线PO0-PO3接DG1-DG4,PO4-P07接DR1-DR4。CS273接8300H。四.实验说明1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。五.实验程序框图:主程序框图六.实验程序ORG0000H;程序入口地址LJMPSTART;长转移到STARTORG0040H;START:;主程序MOVSP,#60H;设置堆栈指针LCALLSTATUS0;初始状态(都是红灯)CIRCLE:LCALLSTATUS1;南北绿灯,东西红灯LCALLSTATUS2;南北绿灯闪转黄灯,东西红灯LCALLSTATUS3;南北红灯,东西绿灯LCALLSTATUS4;南北红灯,东西绿灯闪转黄灯LJMPCIRCLE;无条件长转移到CIRCLESTATUS0:;状态一南北红灯,东西红灯MOVDPTR,#8300H;设置数据指针MOVA,#0FH;将累加器赋值FMOVX@DPTR,A;将累加器的值写入数据指针所指地址MOVR2,#10;延时1秒LCALLDELAY;长调用延时函数DELAYRET;子程序返回STATUS1:;状态二南北绿灯,东西红灯MOVDPTR,#08300H;设置数据指针MOVA,#5AH;南北绿灯,东西红灯MOVX@DPTR,A;将累加器的值写入数据指针所指地址(送到P0)MOVR2,#50;延时5秒LCALLDELAY;长调用DELAYRET;子程序返回STATUS2:;状态三南北绿灯闪转黄灯,东西红灯MOVDPTR,#8300H;设置数据指针MOVR3,#03H;绿灯闪3次FLASH:MOVA,#5FH;将累加器赋值MOVX@DPTR,A;将累加器的值写入数据指针所指地址(送到P0)MOVR2,#03H;给R2赋值03HLCALLDELAY;长调同DELAYMOVA,#5AH;给累加器A赋值5AMOVX@DPTR,A;将累加器的值写入数据指针所指地址(送到P0)MOVR2,#03H;给R2赋值03HLCALLDELAY;长调同DELAYDJNZR3,FLASH;比较是否闪烁了三次,不到则跳转到FLASHMOVA,#0AH;南北黄灯,东西红灯MOVX@DPTR,A;将累加器的值写入数据指针所指地址(送到P0)MOVR2,#10;延时1秒LCALLDELAY;长调同DELAYRET;子程序返回STATUS3:;状态四南北红灯,东西绿灯MOVDPTR,#8300H;设置数据指针MOVA,#0A5H;给累加器A赋值0A5HMOVX@DPTR,A;将累加器的值写入数据指针所指地址(送到P0)MOVR2,#50;延时5秒LCALLDELAY;长调用DELAY延时RET;子程序返回STATUS4:;南北红灯,东西绿灯闪转黄灯MOVDPTR,#8300H;设置数据指针MOVR3,#03H;绿灯闪3次FLASH1:MOVA,#0AFH;给累加器A赋值0AFHMOVX@DPTR,A;将累加器的值写入数据指针所指地址(送到P0)MOVR2,#03H;给寄存器R2赋值LCALLDELAY;长调用DELAY延时MOVA,#0A5H;给累加器A赋值0A5HMOVX@DPTR,A;将累加器的值写入数据指针所指地址(送到P0)MOVR2,#03H;给寄存器R2赋值LCALLDELAY;长调用延时函数DELAYDJNZR3,FLASH1;;比较是否闪烁了三次,不到则跳转到FLASHMOVA,#05H;南北红灯,东西黄灯MOVX@DPTR,A;将累加器的值写入数据指针所指地址(送到P0)MOVR2,#10;延时1秒LCALLDELAY;长调用延时程序 NOP;空指令RET;子程序返回DELAY:;延时子程序PUSH2PUSH1PUSH0DELAY1:MOV1,#00HDELAY2:MOV0,#0B2HDJNZ0,$DJNZ1,DELAY2;延时100mSDJNZ2,DELAY1POP0POP1POP2RETEND七、实验结果和小结程序下到实验板上后,按原理图插好线,可以观察到四个方向的灯按照交通灯的变换顺序循环变换。本次程序中主要锻炼了我们调用子程序的能力,在汇编中子程序的调用就相当于C中的函数调用,而C中调用函数需写声明,头文件,一般需要返回值的函数一次只能返回一个值,汇编中的子程序就显得比较容意写,要注意的就是末尾要加RET作为子程序返回标志。这种结构化的编程思想大大加强了程序的可读性,需要在以后的程序中多加练习。实验六定时器实验一.实验要求由8031内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟L0,L2亮,第二秒钟L1,L3亮,第三秒钟L4,L6亮,第四秒钟L5,L7亮,第五秒L0,L2,L4,L6亮,第六秒钟L1,L3,L5,L7亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L0,L2亮,然后L1,L3亮一直循环下去。二.实验目的1.学习8031内部计数器的使用和编程方法。2.进一步掌握中断处理程序的编程方法。三.实验电路及连线P1.0--P1.7接L0--L7。四.实验说明1.关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。2.内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是11.0592MHz,所以定时常数的设置可按以下方法计算:机器周期=12÷11.0592MHz=1.0857μS(65536-定时常数)*1.0857μS=50mS定时常数=4C00H3.定时器的有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0~3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。4.在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。五.实验程序框图六.实验程序ORG0000H;程序入口地址AJMPSTART;绝对跳转到STARTORG001BH;T1中断入口地址AJMPINT_T1;定时器中断1入口ORG0100HSTART:;主程序MOVSP,#60H;设置堆栈指针MOVTMOD,#10H;置定时器T1为方式1MOVTL1,#00H;延时50mS的时间常数高八位MOVTH1,#4BH;延时50mS的时间常数低八位;MOVR0,#00H;给R0赋初值MOVR1,#20;给R1赋初值SETBTR1;开定时器1SETBET1;开定时器中断1SETBEA;开总中断SJMP$;程序原地跳转INT_T1:;T1中断服务子程序PUSHACC;保护现场,累加器A入栈PUSHPSW;标志位寄存器PSW入栈PUSHDPL;数据指针低八位入栈PUSHDPH;数据指针高八位入栈CLRTR1;关定时器MOVTL1,#00H;重置;延时50mS常数MOVTH1,#4BH;同上一句SETBTR1;开定时器DJNZR1,EXIT;判断是否到一秒MOVR1,#20;到了一秒,重设延时一秒的常数MOVDPTR,#DATA1;置常数表基址MOVA,R0;置常数表偏移量MOVCA,@A+DPTR;读常数表MOVP1,A;送P1口显示INCR0;移位地址加一,指向下一个数ANL00,#07H;如果指到了最后一个数则指向第一数EXIT:POPDPH;恢复现场,数据指针出栈POPDPL;POPPSW;标志位寄存器出栈POPACC;累加器出栈RETI;定时器中断返回;LED显示常数表DATA1:DB0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFHEND八.实验结果和小结将程序下载到实验板上后,可以观察小灯按程序所写的亮灭,并且间隔时间大约为1s,这说明定时器的时间常数设置的没错。试验程序以查表的方法让P1口的输出在8个状态间循环切换,移植性很强,值得学习借鉴。在进入中断和退出中断时要注意几个特殊寄存器的保护,要遵循先入后出的原则。实验十A/D转换实验一.实验要求利用实验板上的ADC0809做A/D转换器,利用实验板上的电位器W1提供模拟量输入。编制程序,将模拟量转换成二进制数字量,用发光二极管显示。二.实验目的1.掌握A/D转换与单片机的接口方法。2.了解A/D芯片ADC0809转换性能及编程。3.通过实验了解单片机如何进行数据采集。三.实验电路及连线CS0809接8000H。19模块电位器中心抽头(即0~5v孔)接至ADC0809的IN0(通道0)。EOC连P3.2(INT0)。将单片机的P1.0~P1.7接至八位发光二极管L0--L7。四.实验说明ADC0809是八位逐次逼近法A/D转换器,每采集一次一般需100us。中断方式下,A/D转换结束后会自动产生EOC信号,经一级74LS14反相后与8031的INT0相接。本示例程序采取了中断处理来正确读取A/D转换的结果。用户也可以用延时来保证A/D转换完成。读取结果由P1口送至八位发光二极管显示。五.实验程序框图主程序框图六.实验程序A_DPORTEQU8000H;0809通道0地址ORG0000H;主程序入口LJMPSTART;长转移到主程序ORG0003H;外部中断0地址LJMPINT_0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年渔船事故应急救援预案演练方案
- 2026年医疗器械厂设备伤人应急救援预案演练方案
- 2026年国奢品牌项目营销方案
- 2026年智能泳池吸污机项目营销方案
- 2026年居家远程医疗项目营销方案
- 2026年高级经济师税收政策优化研究试卷及答案
- 初中历史中国古代农业发展知识点梳理试卷考试及答案
- 沪科版高中地理自然灾害应对方案试题及真题
- 电力管道施工方案
- 砌筑树池石施工方案
- 2026湖南衡阳日报社招聘事业单位人员16人备考题库附答案详解
- 《中国的地理区域划分》教案-2025-2026学年商务星球版(新教材)初中地理八年级下册
- 2025年天津市检察官、法官入员额考试真题(附答案)
- 建筑施工企业诚信承诺书范本
- 消防改造免责协议书
- GB 3608-2025高处作业分级
- 医疗器械进销存管理台账模板
- 2025年安徽省普通高中学业水平选择性考试地理含答案详解及试卷分析
- DB15∕T 3413-2024 住宅小区和商业用房供配电设施规范
- 2025年滨州邹平市面向社会公开招聘硕博士高层次人才笔试笔试备考试题附答案详解(精练)
- 食品行业原料来源与安全质量措施
评论
0/150
提交评论