《51单片机流水灯实验-实验报告(共5页).doc》由会员分享,可在线阅读,更多相关《51单片机流水灯实验-实验报告(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上“流水灯”实验报告一、 实验目的1. 了解单片机I/O口的工作原理。2. 掌握51单片机的汇编指令。3. 熟悉汇编程序开发,调试以及仿真环境。二、 实验内容通过汇编指令对单片机I/O进行编程(本实验使用P0口),以控制八个发光二极管以一定顺序亮灭。(即流水灯效果)三、 实验原理通过更改P0口8位的高低电平,分别控制8个发光二极管的亮灭。具体的亮灭情况如下表:P0口输出值十六进制发光二极管亮灭情况P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.70xFE亮灭灭灭灭灭灭灭0xFD灭亮灭灭灭灭灭灭0xFB灭灭亮灭灭灭灭灭0xF7灭灭灭亮灭灭灭灭0xEF灭灭灭灭
2、亮灭灭灭0xDF灭灭灭灭灭亮灭灭0xBF灭灭灭灭灭灭亮灭0x7F灭灭灭灭灭灭灭亮要实现“流水灯”效果,也就是需要将P0口的输出值发生以下变化:FEFDFBF7EFDFBF7FBFDFEFF7FBFDFE. 可以使用一个循环,不断对数据进行移位运算实现。这里的移位指令采用RL和RR,即不带进位的位移运算指令。如果使用带进位的位移运算指令(RLC和RRC),则需要定期把CY置0,否则会出现同时亮起两个发光二极管的情况。四、 实验过程1. 在仿真系统中绘制好单片机的电路图2. 编写汇编程序,程序如下:ORG0000HDelay:MOVR0, #0FFHSJMPStartDelay1:MOVR1, #
3、0FFHStart: MOVA, #0FEHDelay2:NOPMOVP0, ADJNZR1, Delay2CLRP2.7DJNZR0, Delay1CLRP3.7RETMove:MOVR2, #7HENDMOVR3, #7HRMove:RLAMOVP0, ACALLDelayDJNZR2, RMoveLMove:RRAMOVP0, ACALLDelayDJNZR3, LMoveSJMPMove五、 实验结果为了便于实验结果的描述,下面分别把P0.0, P0.1, P0.7对应的发光二极管编号为1, 2, , 8号二极管。在仿真系统中,先从1号二极管下面是在仿真系统中的实验结果:1. 只有1号
4、二极管点亮2. 只有2号二极管点亮3. 只有3号二极管点亮4. 只有4号二极管点亮5. 只有5号二极管点亮6. 只有6号二极管点亮7. 只有7号二极管点亮8. 只有8号二极管点亮实验的结果:二极管的发光状态从12345678712;如此往复循环。六、 实验总结与分析1. 经过这次实验,不难总结出开发单片机程序的方法。第一步:根据需求连接好单片机;第二步:在仿真系统中,使用汇编指令写好单片机的程序;第三步:在仿真系统中对程序进行测试;第四步:把程序下载到单片机中,并观察程序运行结果;如果程序运行不正确,则根据现象分析程序错误之处。改正以后重新下载观察运行结果。2. 对单片机的悬空针脚进行相应处理:悬空针脚接上高电平。专心-专注-专业