您好,欢迎访问三七文档
学生实验报告(理工类)课程名称:单片机原理及应用专业班级:14电子信息工程(1)班学生学号:1415101005学生姓名:丁剑所属院部:电子信息工程学院指导教师:徐志国2016——2017学年第1学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:1存储器块清零实验学时:2同组学生姓名:陈超逸实验地点:B403实验日期:16.11.09实验成绩:批改教师:徐志国批改时间:一、实验目的和要求(1)掌握存储器读写方法(2)了解存储器的块操作方法二、实验仪器和设备伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件三、实验原理指定存储器中某块的起始地址和长度,要求能将其内容清零。四、实验结果与分析1、程序如下//软件实验一存储器块清零xdataunsignedcharBuffer[256]_at_0x4000;voidmain(){unsignedintindex;unsignedcharxdata*ptr;设置块长度设置块起始地址地址加1当前地址内容清零是否清除完结束是否ptr=&Buffer;//起始地址for(index=0;index=255;index++){*ptr++=0;//清0,地址加一}}2、实验结果程序未运行前状态程序运行后结果如下图所示;程序运行结果如下图所示:五、实验问题及心得思考题如何将存储器块的内容置成某固定值(例全填充为0FFH)?请学生修改程序,完成此操作答:程序如下:xdataunsignedcharBuffer[256]_at_0x4000;voidmain(){unsignedintindex;unsignedcharxdata*ptr;ptr=&Buffer;//起始地址for(index=0;index=255;index++){*ptr++=0xff;//清0,地址加一}}心得体会:只有事先把程序的各部分作用弄清楚,再在原程序上修改,才能达到预计的效果。实验项目名称:实验2内存块移动实验学时:2同组学生姓名:陈超逸实验地点:B403实验日期:16.05.04实验成绩:批改教师:徐志国批改时间:一、实验目的和要求(1)掌握存储器读写方法(2)了解存储器的块操作方法二、实验仪器和设备伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件三、实验原理设置块的源地址设置块的目标地址设置移动长度从源地址取数保存到目标地址中源地址加1目标地址加1是否移动完结束是否四、实验结果与分析实验程序如下:xdataunsignedcharBuffer1[256]_at_0x3000;xdataunsignedcharBuffer2[256]_at_0x4000;voidmain(){unsignedintindex;unsignedcharxdata*ptr1;unsignedcharxdata*ptr2;ptr1=&Buffer1;ptr2=&Buffer2;for(index=0;index=255;index++){*ptr2++=*ptr1++;}}实验结果:运行结果如下图所示:(原图上修改后的图下)五、实验问题及心得本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免?修改后结果如下图所示:心得体会:汇编语言也有它的独到之处需要不断尝试。实验项目名称:3.P1口输入输出实验学时:2同组学生姓名:陈超逸实验地点:B403实验日期:16.05.04实验成绩:批改教师:徐志国批改时间:一、实验目的和要求(1)掌握存储器读写方法(2)了解存储器的块操作方法二、实验仪器和设备伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件三、实验原理1、实验电路及连线实验1:P1口循环点灯实验2:P1口输入输出2、实验程序8051延时子程序的延时计算问题,对于程序查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为:(256×255+2)×2×12÷6≈261ms连线连接孔1连接孔21S0P1.02S1P1.13P1.2L44P1.3L5实验2:P1口输入输出连线连接孔1连接孔21P1.0L02P1.1L13P1.2L24P1.3L3实验1:P1口循环点灯Delay:MOVR6,#0HMOVR7,#0HDelayLoop:DJNZR6,DelayLoopDJNZR7,DelayLoopRET3、实验框图四、实验结果与分析1.实验程序:开始设置初始值数据输出左移一位延时设移位次数移位次数完成?否是(A)P1口循环点灯程序框图开始P1.0,P1.1置1读入P1.0口值将读入的值输出到P1.3将读入的值输出到P1.2读入P1.1口值(B)P1口输入输出程序框图实验结果如下:五、实验问题及心得若是12MHZ的晶振,延时程序如何修改?答:修改程序如下Loop:mova,#01hmovr2,#8Output:movP1,arlacallDelaydjnzr2,OutputljmpLoopDelay:MOVr5,#5movr6,#5MOVr7,#5DelayLoop:djnzr5,DelayLoopdjnzr6,DelayLoopdjnzr7,DelayLoopretend心得:通过本次实验让我深刻认识到延时在单片机程序中的重要作用,以及延时的使用方法。掌握了延时的使用方法。实验项目名称:实验4计数器实验实验学时:2同组学生姓名:陈超逸实验地点:B403实验日期:16.11.09实验成绩:批改教师:徐志国批改时间:一、实验目的和要求学习8051内部定时/计数器使用方法8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来二、实验仪器和设备伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件三、实验原理1、实验电路2、实验框图四、实验结果与分析1、程序如下连线连接孔1连接孔21P1.0L02P1.1L13P1.2L24P1.3L35单脉冲输出T0单次脉冲开始设置工作方式开始计数计数,输出计数值实验结果五、实验问题及心得思考题若定时计数器T0,按计数器模式和方式0工作,程序如何修改?答:修改后的程序如下所示:movTMOD,#00000100b;方式1,记数器movTH0,#0movTL0,#0setbTR0;开始记数Loop:movP1,TL0;将记数结果送P1口ljmpLoopend心得体会:了解了如何设置定时器计数器方式控制字的使用,以及定时计数程序的使用。实验项目名称:实验5外部中断实验实验学时:2同组学生姓名:陈超逸实验地点:B403实验日期:16.11.09实验成绩:批改教师:徐志国批改时间:一、实验目的和要求1.学习外部中断技术的基本使用方法。2.学习中断处理程序的编程方法。3.用单次脉冲申请中断,在中断处理程序中对输出信号进行反转二、实验仪器和设备伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件三、实验原理1、实验电路2、实验框图单次脉冲连线连接孔1连接孔21P1.0L02单脉冲输出INT0(51系列)2单脉冲输出EINT(96系列)开始设置初始状态设置中断控制寄存器中断允许等待中断中断入口保护现场状态位取反状态位输出恢复现场中断返回主程序框图外部中断子程序框图四、实验结果与分析实验程序如下#includereg51.hsbitLED=P1^0;bitLEDBuf;voidExtInt0()interrupt0{LEDBuf=!LEDBuf;LED=LEDBuf;}voidmain(){LEDBuf=0;LED=0;TCON=0x01;//外部中断0下降沿触发IE=0x81;//打开外部中断允许位(EX0)及总中断允许位(EA)while(1);}实验结果:模拟仿真五、实验问题及心得思考题若采用INT1中断源,电路如何连接,程序如何修改?答:连线P3.2换成P3.3#includereg51.hsbitLED=P1^0;bitLEDBuf;voidExtInt0()interrupt2{LEDBuf=!LEDBuf;LED=LEDBuf;}voidmain(){LEDBuf=1;LED=1;TCON=0x04;//外部中断0下降沿触发IE=0x84;//打开外部中断允许位(EX0)及总中断允许位(EA)while(1);}心得体会:通过本次实验我们学习了外部中断技术的基本使用方法。学习中断处理程序的编程方法。实验项目名称:实验6定时器记数实验学时:2同组学生姓名:陈超逸实验地点:B403实验日期:16.11.09实验成绩:批改教师:徐志国批改时间:一、实验目的和要求1、学习8051内部计数器的使用和编程方法。2、进一步掌握中断处理程序的编程方法。二、实验仪器和设备伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件三、实验原理1、实验电路2、实验框图Y主程序框图定时中断子程序框图连线连接孔1连接孔21P1.0L0开始置T0中断工作方式设置定时常数设置初始状态位设置秒计数值定时中断入口遇保护现场秒计数值减1重新设置秒计数值状态位取反恢复现场中断返回是否到1秒是否中断允许输出状态位等待中断四、实验结果与分析实验程序:#includereg51.h#defineTick10000//10000x100us=1s#defineT100us(256-50)//100us时间常数(6M)unsignedintC100us;//100us记数单元bitLEDBuf;sbitLED=P1^0;voidT0Int()interrupt1{C100us--;if(C100us==0){C100us=Tick;//100us记数器为0,重置记数器LEDBuf=!LEDBuf;//取反LED}}voidmain(){TMOD=0x02;//方式2,定时器TH0=T100us;TL0=T100us;IE=0x82;//EA=1,IT0=1LEDBuf=0;LED=0;C100us=Tick;TR0=1;//开始定时while(1){LED=LEDBuf;}}实验模拟五、实验问题及心得思考题若定时时间为500us,计数器初始值是多少?#includereg51.h#defineTick10000//10000x100us=1s#defineT100us(256-6)//100us时间常数(6M)unsignedintC100us;//100us记数单元bitLEDBuf;sbitLED=P1^0;voidT0Int()interrupt1{C100us--;if(C100us==0){C100us=Tick;//100us记数器为0,重置记数器LEDBuf=!LEDBuf;//取反LED}}voidmain(){TMOD=0x02;//方式2,定时器TH0=T10
本文标题:单片机实验报告
链接地址:https://www.777doc.com/doc-7339885 .html