总的单片机实验报告17(全部哟).doc_第1页
总的单片机实验报告17(全部哟).doc_第2页
总的单片机实验报告17(全部哟).doc_第3页
总的单片机实验报告17(全部哟).doc_第4页
总的单片机实验报告17(全部哟).doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆交通大学学生实验报告实验课程名称 单片机原理与应用 实 验 名 称 拆字、拼字实验 实 验 类 型 设计性 开课实验室 语音楼 学 院 信息科学与工程学院 学 生 姓 名 学号 开 课 时 间 2012 至2013 学年第 1学期实验评佑等级很好好一般差实验操作能力实验结果实验分析实验思考总结实验成绩教师签名一、 实验目的掌握汇编语言的设计与调试方法,掌握拆字拼字的程序编写方法;二、 实验内容把7000H的内容拆开,高位送7001H低位,低位送7002H低位,7001H,7002H高位清零,把7000H、7001H的低位相拼后,送入7002H三、 实验步骤(1)打开Keil程序,执行菜单命令“Project “New Project”创建“拆字、拼字实验”项目,并选择单片机型号为AT89C51;(2)执行菜单命令“New”创建文件,输入源程序,保存为“拆字、拼字实验.A51”。在Project”栏的File项目管理窗口中右击文件组,选择“Add File to GroupSource Grop1”将源程序“拆字、拼字实验.A51”添加到项目中。(3)执行菜单命令“Project”-“Option For TargetTarget 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(4)执行菜单命令“Project”-“Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“拆字、拼字实验.HEX”文件。(5)执行菜单命令“Debug”-“Start /Stop Debug Seesion”,按F11键,单步运行程序。四、 实验调试及结果程序:MOV DPTR,#7000HMOV A,#68HMOVX DPTR,AMOVX A,DPTRANL A,#0F0HSWAP AINC DPTRMOVX DPTR,AMOV DPTR,#7000HMOVX A,DPTRANL A,#0FHMOV DPTR,#7002HMOVX DPTR,A 结果: 调试方法:单步运行到BP1,观察7000H单元中的内容和A单元中的内容是否为68,单步运行到BP2,观察7001H单元中的内容是否为6,单步运行到BP3,观察7002H单元中的内容是否为8,若是,程序对,若不是,反复修改程序直到正确为止。五、 实验分析 试验程序框图如下: 开 始开 始 7000H送A、屏蔽高位68送7000H交换高位,送B7000H送A (7001H)送A屏蔽、高位高低位交换屏蔽高位后送7001HA或B后送7002H屏蔽高位后送7002H结 束结 束 六、 实验思考与总结在这次试验中,我是第一次接触Keil C51软件,其安装步骤很简单,但对其运行环境和基本操作都很陌生,打开软件,不知从何下手。通过询问同学和在老师的指点下,经过一段时间的熟悉,开始能够自己动手操作了,于是次开始进入到实验中。本实验比较简单,参照实验指导书上的代码,通过keil 软件输入,按照其步骤一步一步进行,最终得出结果,经分析,所得结果与该实验的理论结果一样,所以该实验能够完成其功能,该实验成功。通过本次实验,我学会了Keil C51的使用方法,掌握了汇编语言的基本编程法,好掌握了调试程序的一些方法,对一些不是很复杂的程序能够自己去调试了。重庆交通大学学生实验报告实验课程名称 单片机原理与应用 实 验 名 称 数据排序实验 实 验 类 型 设计性 开课实验室 语音楼 学 院 信息科学与工程学院 学 生 姓 名 学号 开 课 时 间 2012 至 2013 学年第 1 学期实验评佑等级很好好一般差实验操作能力实验结果实验分析实验思考总结实验成绩教师签名一、 实验目的熟悉8051指令系统,掌握程序设计方法、仿真软件的使用方法。二、 实验内容编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中n个单字节无符号二进制整数从小到大的次序排列的数据存放在原来的单元。三、 实验步骤(1)打开Keil程序,执行菜单命令“Project “New Project”创建“数据排序”项目,并选择单片机型号为AT89C51;(2)执行菜单命令“New”创建文件,输入源程序,保存为“拆字、拼字实验.A51”。在Project”栏的File项目管理窗口中右击文件组,选择“Add File to GroupSource Grop1”将源程序“数据排序.A51”添加到项目中。(3)执行菜单命令“Project”-“Option For TargetTarget 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(4)执行菜单命令“Project”-“Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“数据排序.HEX”文件。(5)执行菜单命令“Debug”-“Start /Stop Debug Seesion”,按F11键,单步运行程序。在“Mermory”窗口的“Address”栏中键入“D:30H”,可看出50H-59H单元的内容由小到大的按顺序排序。四、 实验调试及结果数据排序程序:LJMP MAINMAIN: MOV 50H,#20HMOV 51H,#16HMOV 52H,#10HMOV 53H,#2AHMOV 54H,#29HMOV 55H,#06HMOV 56H,#1AHMOV 57H,#0EHMOV 58H,#0ACHMOV 59H,#03HMOV 60H,#01HMOV R0,#50HMOV R3,#9HLP0: CLR 7FHMOV A,R3MOV R2,AMOV R0,#50HLP1:MOV 20H,R0MOV A,R0INC R0MOV 21H,R0CLR CSUBB A,21HJC LP2MOV R0,20HDEC R0MOV R0,21HINC R0 SETB 7FHLP2:DJNZ R2,LP1JNB 7FH,LP3DJNZ R3,LP0LP3:SJMP $END 实验结果: 开 始 实验调试方法:(1)打开仿真软件中的内部RAM窗口,在50H-59H单元中输入10个任意排列原始数据。(2)单步运行程序,两数比较后第一个大于第二个数则所在RAM位置交换,否则不变。(3)单步运行程序,检查50-59H内容是否已经按从小到大次序排列。(4)连续运行,再打开仿真软件中的RAM存储窗口,查看50H内容是否由10个数据按从小到大次序排列。(5)程序运行结果如果不正确,则应分段检查程序,用单步方式调试程序,修改软件初始值,让排序数据变大,并用程序存储器数据序列测试程序的正确性。数据块首地址送R0五、 实验分析设置数据长度R3中 实验框图如下图: 交换标志位清零外循环次数作为本次循环次数I(n)送20H,i(n-1)送21HI(n)=i(n-1)? N N YI(n)与i(n-1)位子交换交换标志位置1内循环次数-1=0N交换标志是否为0 YY外循环次数-1=0 NN结 束实验结果分析:经分析,所得结果与该实验的理论结果一样,所以该实验能够完成其功能,该实验成功。六、 实验思考与总结有了第一次试验的熟悉过程,在做该实验时比较顺利,参照实验指导书上的代码,通过keil 软件输入,按照其步骤一步一步进行,最终得出结果,经分析,所得结果与该实验的理论结果一样,所以该实验能够完成其功能,该实验成功。通过本次实验,我学会了Keil C51的使用方法,进一步掌握了汇编语言的基本编程法,能自己设计程序对数据进行排序,掌握了调试程序的一些方法,对一些不是很复杂的程序能够自己去调试了。重庆交通大学学生实验报告实验课程名称 单片机原理与应用 实 验 名 称 P口彩灯控制实验 实 验 类 型 设计性 开课实验室 语音楼 学 院 信息科学与工程学院 学 生 姓 名 学号 开 课 时 间 2012 至 2013 学年第 1 学期实验评佑等级很好好一般差实验操作能力实验结果实验分析实验思考总结实验成绩教师签名七、 实验目的通过实验了解单片机最小系统;掌握P0口作为输入输出方式使用时,CPU对P0口的操作方法。八、 实验内容控制要求为:(1)正常情况下,8个发光二极管顺序点亮;(2)按下K1时,第1个和第8个发光二极管闪烁,闪烁间隔为1s;(3)按下K2时,8个发光二级管闪烁,闪烁间隔为0.5s。(4)发光二极管由单片机P0口控制。参照参考程序结构,但必须添加修改程序的内容,并调试、正确运行。九、 实验步骤(1)用Protuse按单片机最小系统设计流水灯程序电路图;(2)打开Keil程序,执行菜单命令“Project “New Project”创建“P口彩灯”项目,并选择单片机型号为AT89C51;(3)执行菜单命令“New”创建文件,输入源程序,保存为“P口彩灯.A51”。在Project”栏的File项目管理窗口中右击文件组,选择“Add File to GroupSource Grop1”将源程序“p口彩灯.A51”添加到项目中。(4)执行菜单命令“Project”-“Option For TargetTarget 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(5)执行菜单命令“Project”-“Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“P口彩灯.HEX”文件。(6)将“P口彩灯.HEX”文件下载到Protues软件平台中的虚拟芯片上运行。十、 实验调试及结果(1) 实验电路图:(2) 实验程序:#includereg51.h#define uint unsigned int #define uchar unsigned charsbit DIPswitch1=P10;sbit DIPswitch2=P11;sbit LED1=P00;sbit LED2=P01;sbit LED3=P02;sbit LED4=P03;sbit LED5=P04;sbit LED6=P05;sbit LED7=P06;sbit LED8=P07;void delay(void)uint i;for(i=0;i“Option For TargetTarget 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(5)执行菜单命令“Project”-“Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“数码管显示.HEX”文件。(6)将“数码管显示.HEX”文件下载到Protues软件平台中的虚拟芯片上运行。四、 实验调试及结果十三、 电路图: (2)实验程序:#include#define uchar unsigned char/宏定义#define uint unsigned intsbit K1=P32;sbit K2=P33; void delay(uint z)/延时约1msuint m,n; for(m=110;m0;m-)for(n=z;n0;n-);uchar table=0x01,0x02,0x03,0x04;uchar table1=0x05,0x06,0x07,0x08;uchar table2=0x01,0x02,0x04,0x08;uchar table3=0x08,0x04,0x02,0x01;void main()uchar i;EX0=1;IT0=1;EX1=1;IT1=1;EA=1;while(1)for(i=0;i4;i+)P0=tablei;P2=table2i;delay(500);void int0() interrupt 0uchar j;for(j=0;j4;j+)P0=tablej;P2=table3j;delay(500);void int1() interrupt 2uchar k;for(k=0;k4;k+)P0=tablek;P2=table2k;delay(50);delay(1000);for(k=0;k“Option For TargetTarget 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(5)执行菜单命令“Project”-“Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“键盘、数码管显示综合实验.HEX”文件。(6)将“键盘、数码管显示综合实验.HEX”文件下载到Protues软件平台中的虚拟芯片上运行。四、 实验调试及结果程序:ORG 0000HSTART:LJMP MAINORG 0030HMAIN: MOV SP,#60HMOV 7AH,#00 MOV 7BH,#01MOV 7CH,#02MOV 7DH,#03MOV 7EH,#04MOV 7FH,#05 MOV DPTR,#7F00HMOV A,#03H MOVX DPTR,ALOOP:LCALL DISPLCALL KEYMOV A,R4CJNE A,#88H,DSPSJMP LOOPDSP:MOV 7AH,A MOV 7BH,#010HMOV 7CH,#010HMOV 7DH,#010HMOV 7EH,#010HMOV 7FH,#010HSJMP LOOP;按键子程序KEY:MOV R4,#00HMOV R2,#01HKEY1: MOV DPTR,#7F02HMOV A,R2MOVX DPTR,AINC DPTRMOVX A,DPTRJB ACC.0,KEY2MOV A,#00HAJMP KEY5KEY2:JB ACC.1,KEY3MOV A,#01HAJMP KEY5KEY3:JB ACC.2,KEY4MOV A,#02HAJMP KEY5KEY4:JB ACC.3,NEXTMOV A,#03HKEY5: ADD A,R4MOV R4,ARETNEXT: MOV A,R4ADD A,#04MOV R4,AMOV A,R2JB ACC.3,NEXT1RL AMOV R2,AAJMP KEY1NEXT1: MOV R4,#88HRET;数码管显示程序DISP: MOV R0,#7AHMOV R3,#01HDISPB1: MOV DPTR,#7F02HMOV A,#0HMOVX DPTR,AMOV DPTR,#7F01HMOV A,R0ADD A,#014HMOVC A,A+PCMOVX DPTR,A MOV A,R3MOV DPTR,#7F02HMOVX DPTR,AACALL DELAYINC R0MOV A,R3JB ACC.6,DISPB2RL A MOV R3,AAJMP DISPB1DISPB2: MOV R3,#01HRETSEGPT2: Db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H db 7FH,6FH,77H,7CH,39H,5EH,79H,71Hdb 00H,02H,08H,00H,59H,0FH,76H;延时子程序DELAY: MOV R4,#0FFHDELAY1: DJNZ R4,DELAY1RETEND 实验结果: 调用子程序12ms五、 实验分析有键闭合 实验程序框图如图:开 始 N有键闭合判断闭合键键号入栈闭合键释放Y调用子程序延时6ms N NY输入键号送A返 回 实验分析:由实验结果可知,当按键按下0-9中对应数字的按键时,在8位LED显示管上就会显示出相应的数字。如图示结果第一张图片。当按下A-F字母对应的按键时,8位LED显示管上同样会显示出相应的字母,如图实验结果第二张图片所示。则程序可实现其功能。该实验成功。六、 实验思考与总结此次实验相对于前几个实验电路图比较复杂,在连接电路图时用上了总线的连接。由于该实验的程序是用汇编语言编写的,其程序代码比较多,结构比较复杂,对于其理解上存在一些问题。但是通过本次试验,我还是有所收获。本次试验让我掌握了运用8155芯片进行端口扩展的使用方法,提高了编程的意识,在编程的技术上还存在很多不足之处,在以后的学习中还需要更进一步的学习和练习。重庆交通大学学生实验报告实验课程名称 单片机原理与应用 实 验 名 称 A/D转换实验 实 验 类 型 设计性 开课实验室 语音楼 学 院 信息科学与工程学院 学 生 姓 名 学号 开 课 时 间 2012 至 2013 学年第 1 学期实验评佑等级很好好一般差实验操作能力实验结果实验分析实验思考总结实验成绩教师签名一、 实验目的了解ADC0809/ADC0808的工作原理,掌握其接口原理,熟悉CPU中断方式和查询方式读取A/D转换结果的方法。二、 实验内容(1) 用中断方式编写并调试出一个程序(2) 用查询方式编写并调试出一个程序(3) 用调用显示子程序方法,将转换结果在显示块上显示出来(4) 将采样结果以8位LED显示进行编码,以得到将0-5V区间分为256级显示效果(5) 用C51重新编写程序实现上述要求C程序三、 实验步骤 (1)用Protuse按单片机最小系统设计流水灯程序电路图;(2)打开Keil程序,执行菜单命令“Project “New Project”创建“A/D转换实验”项目,并选择单片机型号为AT89C51;(3)执行菜单命令“New”创建文件,输入源程序,保存为“A/D转换实验.A51”。在Project”栏的File项目管理窗口中右击文件组,选择“Add File to GroupSource Grop1”将源程序“A/D转换实验.A51”添加到项目中。(4)执行菜单命令“Project”-“Option For TargetTarget 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(5)执行菜单命令“Project”-“Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“A/D转换实验.HEX”文件。(6)将“A/D转换实验.HEX”文件下载到Protues软件平台中的虚拟芯片上运行。四、 实验调试及结果电路图:C语言程序:#include #define uchar unsigned char #define uint unsigned int/ADC0809引脚定义sbit OE=P30;sbit EOC=P33;sbit ST=P31;sbit CLK=P32;/延时void Delayms(uint ms)uchar i;while(ms-)for(i=0;i“Option For TargetTarget 1”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。(5)执行菜单命令“Project”-“Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“D/A转换实验.HEX”文件。(6)将“D/A转换实验.HEX”文件下载到Protues软件平台中的虚拟芯片上运行。四、 实验调试及结果程序:(1) 波形发生器:#include#define uchar unsigned char#define uint unsigned int#define DAdata P1 /DA数据端口sbit cs=P37;sbit wr=P36;void delay(uint xms)uint x,y;for(x=110;x-;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论