单片机原理与应用流水灯实验总结_第1页
单片机原理与应用流水灯实验总结_第2页
单片机原理与应用流水灯实验总结_第3页
单片机原理与应用流水灯实验总结_第4页
单片机原理与应用流水灯实验总结_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1 / 39 单片机原理与应用流水灯实验总结 单片机原理及应用 实验报告 实验一:数组排序练习 实验目的:练习使用用 wave6000的 “ 软件模拟器 ” 实验内容:编一个排序 程序 ,用 wave6000 的 “ 软件模拟器 ” 方式仿真,调试、运行。 实验接线图:由于使用软件模拟器,不需要接线图。 实验程序: #include int s9=2,4,1,3,5,9,7,8,6; 2 / 39 int i,t,j; main() for(i=0;i if(sjsi) t=si; si=sj; sj=t; 3 / 39 实验结果: 程序成功使用 “ 软件模拟器 ” 实现了数组的从大到小排序。 程序运行后数组为 9,8,7,6,5,4,3,2,1. 实验二:流水灯控制实验 实验目的: 1验证性实验, P1口作输出口,接一个 LED 发光二极管,使其闪烁。 2.设计性实验 实验内容: 模拟舞台灯光控制实验 具体要求为 连接按键 K1, P1 口连接 8 路 LED。 4 / 39 由按键控制 LED 进行流水灯、闪烁等,从而达到模拟舞台炫耀灯光控制目的 首先, 8 路 LED 从右至左流水点亮,具体循环顺序为:LED1LED2? LED8LED1 ,如此重复循环。 按一次键后, 8路 LED从左至右流水点亮,具体循环顺序为:LED8LED7?LED1LED8 ,如此重复循环; 按两次键后, 8 路 LED 交替闪烁,具体循环顺序为:LED1LED3LED5LED7LED2LED4LED6LED8L ED1,如此重复循环下去。 按三次键后,回到初始的 “ 从右至左流水点亮 ” 工作状态。 实验接线图: 实验程序 : 1 5 / 39 #include #define uint unsigned int void Delayms (uint x); main ( ) while(1) /死循环 P1=0xfe; Delayms(500); /延时秒 void Delayms (uint x) /延时函数 6 / 39 unsigned int n; for( ;x 0; x-) for(n=0;n ; 2. #include #define uchar unsigned char #define uint unsigned int sbit Key0=P0 ; /位定义 void Delayms (uint x); void ScanKey0( void); 7 / 39 uchar Fun=0; main( ) uchar i; Loop: switch(Fun) case 0: for(i=0,P1=0xfe; i Delayms(100); break; case 1: for(i=0,P1=0x7f; i Delayms(100); 8 / 39 break; case 2: for(i=0,P1=0xfe; i Delayms(100); if(i=4) P1=0xfd; break; goto Loop; P1=(P11)+0x80; P1=(P1 void Delayms (uint x) /延时函数 uint n; for( ;x 0; x-) 9 / 39 for(n=0;n ; ScanKey0(); void ScanKey0( void) if(!Key0) /前面已有延时,可省掉去抖动 Fun+; if(Fun2) Fun=0; 实验结果: 1. P1口接的 LED 灯闪烁。 10 / 39 2. 初始时流水灯从右往左,按键一次后变为从左往右,再按一次后交替闪烁,按三次后又 变回从右往左。 单片机原理及应用 实验报告 专 业 2016级计算机科学与技术 学 号 姓 名 合肥 师范学院实验报告 姓名:汪美玲 课程名称:单片机原理及应用 院:计算机科学与技术 专业 /年级: 2016级计算机科学与技术 11 / 39 实验一:流水灯实验 一、 实验目的: 通过对 P3 口地址的操作控制 8 位 LED 流水点亮,从而认识单片机的存储器。 二、 实验原理图 实验参考电路图如下: 三、 参考实验程序 /流水灯实验 #include /包含单片机寄存器的头文件 sfr x=0xb0; /P3 口在存储器中的地址是 b0H, 通过 sfr可定义 8051内核单片机 /的所有内部 8位特殊功能寄存器 ,对地址 x 的操作也就是对 P1 口的操作 /* 函数功能:延时一段时间 12 / 39 */ void delay(void) unsigned char i,j; for(i=0;i /* 函数功能:主函数 */ void main(void) while(1) x=0xfe; /第一个灯亮 delay(); /调用延时函数 x=0xfd; /第二个灯亮 delay(); /调用延时函数 x=0xfb; /第三个灯亮 delay(); /13 / 39 调用延时函数 x=0xf7; /第四个灯亮 delay(); /调用延时函数 x=0xef; /第五个灯亮 delay(); /调用延时函数 x=0xdf; /第六个灯亮 delay(); /调用延时函数 x=0xbf; /第七个灯亮 delay(); /调用延时函数 x=0x7f; /第八个灯亮 delay(); /调用延时 函数 四、 实验思考题: 修改程序使 LED灯为 18灯亮 27灯亮 36灯亮 45灯亮,再将 LED 灯亮的顺序倒过来既: 45 灯亮 36 灯亮 27灯亮 18灯亮,连续运行。 调试后的程序代码: #include 14 / 39 sfr x=0xb0; void delay(void) void main(void) int i,j; for(i=0;i x=0x7e; delay(); x=0xbd; delay(); x=0xdb; delay(); x=0xe7; delay(); x=0xdb; delay(); x=0xbd; delay(); x=0x7e; delay(); 五、 实验总结: 15 / 39 本次实验室我首次接触单片机仿真实验, 通过对 P3 口地址的操作控制 8 位 LED流水点亮,从而认识单片机的存储器。实验过程并不难,主要是理解实验原理。在完成思考题中,通过修改实验代码实现使 LED 灯为 18 灯亮 27 灯亮 36 灯亮 45 灯亮,再将 LED 灯亮的顺序倒过来既:45灯亮 36灯亮 27灯亮 18灯亮,连续运行。在修改代码过程中认识到代码编写还不够熟练,在课后应该继续练习。 北航单片机原理及其应用 实验报告 班级: 110323 姓名:赵敏杰 学号: 11031064 同组者:郑硕 16 / 39 学号: 11031105 实验一 单片机开发环境以及 I/O 使用实验 一实验目的 1熟悉 MCS-51 系列单片机开发软件的使用 2掌握单片机 I/O 口的使用 (转载于 : 海 达 范 文网 :单片机原理 与 应 用 流 水 灯 实 验 总 结 ) 3学习延时子程序的编写和使用 二实验内容 1验证性实验 实验内容: I/O 口做输出口, I/O 口接一个 LED 发光二极管,使其闪烁。 有关说明: 17 / 39 根据 LED 的单向导通性,可以用单片机的 (也可以是其他I/O 口 )作为 LED 的控制端。当 输出为低电平时, LED 灭,反之, LED 亮。 本实验系统晶振为 ,则一个机器周期为 12/=, 为方便编写延时函数,认为一个机器周期为 1us。 硬件连接: 用导线将试验箱中的 与 L1 相连。 程序: C 语言程序 #include /89S52 寄存器定义头文件 /*-延时子程序,t=n*10ms-*/ void delay(unsigned char n) 18 / 39 unsigned char i,j,k; for(i=0;i for(j=0;j for(k=0;k /*-主函数 -*/ void main() while(1) P1_0=0; / 赋值为 0, LED 灭 delay(100); /调用延时子程序, t=100*10ms P1_0=1; / 赋值为 1, LED 亮 19 / 39 delay(100); 汇编语言程序 ORG 00H AJMP START ;在首地址处放置跳转指令 ;以免主程序占用中断入口地址 ORG 30H START:CLR ; 赋值为 0, LED 灭 MOV R0,#100 ;R0 的值决定延时时间长短 t=R0*10ms 20 / 39 LCALL DELAY ;调用延时函数 SETB ; 赋值为 1, LED 亮 MOV R0,#100 3 LCALL DELAY ;调用延时函数 AJMP START ;无条件跳转至 START,继续循环执行 /*-延时子程序, t=R0*10ms-*/ DELAY: D1:MOV R1,#20 D2:MOV R2,#248 DJNZ R2,$ 21 / 39 DJNZ R1,D2 DJNZ R0,D1 RET END 实验现象: 可以看到 LED1 大致亮 1s 后灭 1s,如此循环。 实验内容: I/O 口做输入口,一个 I/O 口接一个拨动开关,另一个 I/O 口接一个 LED发光二极管,单 片机读取开关的状态并通过 LED 显示出来。 有关说明: P0 口是一组漏极开路型双向 I/O 口,也即地址 /数据总线复用口。 22 / 39 对端口写 “1” 可作为高阻抗输入端用。 硬件连接: 用导线将试验箱中的 与 LED 发光二极管 L1 相连, 与拨动开关 K1 相连。 程序: C 语言程序 #include /89S52 寄存器定义头文件 void main() while(1) P0=0xff; /对端口写 1,作为高阻抗输入端用 23 / 39 if(P0_0) /判断 是否为高电平 P1_0=0; else /如果 不是高电平,则执行后面的语句 P1_0=1; 汇编语言参考程序 ORG 00H LJMP MAIN ORG 30H MAIN:JB ,DEL ;识别按键是否闭合 24 / 39 SETB LJMP MAIN DEL:CLR LJMP MAIN END 实验现象: 可以看到 LED1 的状态和开关 1 的状态一致。 2.设计性实验 实验内容: 模拟舞台灯光控制实验 具体要求: 25 / 39 和 口连接两路拨动开关, P1 口连接 8 路 LED。不同的开光状态控制 LED 进行流水灯、闪烁等,从而达到模拟舞台炫耀灯光控制的目的。 当 和 的状态为 00 时, 8 路 LED 从右至左流水点亮,具体循环顺序为: L1L2L3L4L5L6L7L8L1,如此重复循环; 当 和的状态为 01 时, 8 路 LED 从左至右流水点亮,具体循环顺序为: L8L7L6L5L4L3L2L1L8,如此重复循环; 当 和 的状态为 10 时, 8 路 LED 交替闪烁,具体循环顺序为: L1、 L3、 L5、 L7L2、 L4、 L6、 L8 L1、 L3、 L5、 L7,如此重复循环下去; 当 和 的状态为 11 时, 8 路 LED 一起闪烁,具体循环顺序为:全灭 ?亮 ?灭,如此重复下去。 硬件连接: 用导线将实验箱中的 与开关 K1 相连, 与开关26 / 39 K2 相连, 分别与 LED 发光二极管 L1L8 相连。 程序: C 语言程序 #include /89S52 寄存器 定义头文件 void delay(unsigned char n) unsigned char i,j,k; for(i=0;i for(j=0;j for(k=0;k void main() unsigned char i; 实验报告 27 / 39 实验课程: 51单片机 C语言教程 实验内容: 8 孔流水灯 院 : 计算机学院 专 业: 通信工程 2016年 10月 29日 一、实验目的: 1、 熟练掌握 AT89S52- 型开发板的使用方法和注意事项。 2、 了解简单单片机应用系统的设计方法。 3、 掌握应用 KEIL 软件编辑、编译源汇编程序的操作方法。 4、 掌握应用 USBISP烧录软件的操作方法。 5、 帮助学生养成良好实验习惯。 28 / 39 二、实验原理: 当 STC89C51 的 P1 口有低电平输出时,相应的发光二极管就会点亮。应用这一原理 我们可以容易的点亮一个数码管,例如令 P1 口输出 0111 1111时 D1就会点亮。若再把 0111 1111 向右循环一位,利用 P1 口输出,就会点亮 D2。在发光二极管两次点亮的间 隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到 “ 流水 ” 的现象。 1.单片机各引脚接口说明如表: 引脚分类 电源线 2 个、控制线 6个、端口线 48 个总计 40 个引脚。 电源引脚: 29 / 39 VCC:接电源正极,给 芯片通电,引脚号 40。 GND:接电源负极,芯片地线,引脚号 20。 控制引脚 : 9 号引脚是单片机复位端 (RST) 三、实验内容及步骤: 实验步骤: 1. 用 Proteus 设计流水灯显示接口电路; 2. 在 Keil C51中编写液晶显示控制语言程序,编译通过后,与 Proteus联合调 试; 3. 在 Proteus 中仿真模拟。 实验电路图: 实 验代码: 30 / 39 #include /52 单片机头文件 #include /包含有左右循环移位子函数的库 #define uint unsigned int /宏 定义 #define uchar unsigned char /宏定义 sbit P1_0=P1 ; uchar tt,a; void main() /主函数 TMOD=0x01;/设置定时器 0为工作方式 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; 31 / 39 EA=1;/开总中断 ET0=1;/开定时器 0 中断 TR0=1;/启动定时器 0 a=0xfe; while(1);/等待中断产生 void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt+; 32 / 39 if(tt=2) tt=0; P1=a; a=_crol_(a,1); 四、实验总结与分析: 通过本次实验,了解了单片机 IO 口 LED 灯的电路结构,学会构建简单的 流水灯电 路。掌握 C51单片机中 IO口的进行输入输出的注意事项。 井冈山大学 33 / 39 机电工程学院 单片机 课程设计报告 课程 名称:单片机 设计题目:流水灯 姓 名:覃家应 陈东阳 专 业:生物医学工程 班 级: 10级医工本一班 学 号: 100615062 指导教师 :王佑湖 2016年 11月 10日 目录 1 引言 .2 34 / 39 设计任务 .2 设计要求 .2 2 课题综述 .2 课题的来源 . 2 面对的问题 2 3 系统分析 .2 89C52 单片机引脚图及引脚功能介绍 2 4 系统设计 .4 硬件设计 .4 硬件框图 .4 硬件详细设计 .5 软件设计 .5 35 / 39 硬件原理图 .6 元件清单 .6 硬件焊接图 .6 代码编写 .7 5 心得体会 .7 6 致谢 .8 参考文献 .8 1 引言 单片机课程设计主要是为了让我们增进对 89C52单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知36 / 39 识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。 设计任务 设计一个单片机控制的流水灯系统 设计要求 (1)至少 8个灯 ; (2)可实现不同的亮灯 (如左循环,右循环,间隔闪等 )。 2 课题综述 课题的来源 当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于37

温馨提示

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

评论

0/150

提交评论