流水灯控制实验报告及程序文件

上传人:痛*** 文档编号:109888549 上传时间:2022-06-17 格式:DOC 页数:5 大小:92KB
收藏 版权申诉 举报 下载
流水灯控制实验报告及程序文件_第1页
第1页 / 共5页
流水灯控制实验报告及程序文件_第2页
第2页 / 共5页
流水灯控制实验报告及程序文件_第3页
第3页 / 共5页
资源描述:

《流水灯控制实验报告及程序文件》由会员分享,可在线阅读,更多相关《流水灯控制实验报告及程序文件(5页珍藏版)》请在装配图网上搜索。

1、. . 实验三 流水灯控制实验专业 通信工程 学号 成绩 一、实验目的1. 掌握Keil C51 软件与protues软件联合仿真调试的方法;2. 掌握如何使用程序与查表等方法实现流水效果;3. 掌握按键去抖原理与处理方法。二、实验仪器与设备 1. 微机1台 2. Keil C51集成开发环境 3. Proteus仿真软件三、实验容1. 用Proteus设计一流水灯控制电路。利用P1口控制8个发光二级管L1L8。P3.3口接一按键K1。参考电路如以下图所示。其中74LS240为八反响三态缓冲器/线驱动器。2. 用中断或查询方式编写程序,每按动一次K1键,演示不同的流水效果。若用KEY表示按键的

2、次数,则其对应的流水效果如下: KEY=0: L1-L8全亮; KEY=1: L1-L8先全灭,然后自右向左单管点亮,如此循环; KEY=2: L1-L8先全灭,然后自右向左依次点亮,如此循环; KEY=3: L1-L8先全亮,然后自左向右依次熄灭,如此循环; KEY=4: L1-L8先全灭,然后整体闪烁,如此循环; KEY=5: 自行设计效果。以上移位与闪烁时间间隔均设置为0.3秒,按动5次按键后,再按键时,流水效果从头开始循环。四、实验原理1. 按键去抖原理:通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,电压信号波形如以下图所示。由于机械触点的弹性作用,一个按键开关在闭合时不会

3、马上稳定的接通,在断开时也不会一下子断开。因而在闭合与断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为510ms。按键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除按键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。常用软件方法去抖动,即检测到按键闭合后执行一个510ms延时程序;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有按键按下。当检测到按键释放后,也要给510ms的延时,待后延抖动消失后,才能转入该键的处理程序。2. 74LS24

4、0:八反相三态缓冲器/线驱动器引脚排列图:3. 中断原理:当某种部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。每次按键是一次外部中断,按下按键后,CPU利用switch case语句跳转到相应语句执行。五、实验步骤1. 用Proteus设计流水灯控制电路;2. 在Keil C51中编写流水灯控制程序,编译通过后,与Proteus联合调试;3. 按动K1键,观察是否达到演示效果;4. 试用中断和查询两种方式编写程序,比较二者区别。六、电路设计与调试1. 实验电路2程序设计与调试#include#d

5、efine uchar unsigned char#define uint unsigned intuchar i=0,j,k,m,n; uchar code table1=0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;/自右向左单个点亮二极管的代码uchar code table2=0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;/自右向左依次点亮二极管的代码uchar code table3=0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00;/自左向右依次熄灭二极管

6、的代码uchar code table4=0x00,0x03,0x06,0x0c,0x18,0x30,0x60,0xc0;/双灯循环右移void delay(uint a);void INT_1() interrupt 2 EX1=0; delay(20); EX1=1; i+; if(i=6) i=0;void main() EA=1;/打开总中断 EX1=1;/打开外部中断1 IT1=1;/设置中断触发方式为下降沿触发方式 while(1) switch(i) case 0:P1=0xff; break;case 1:P1=table1j;delay(500);j+; if(j=10) j

7、=0; break;case 2:P1=table2k;delay(500);k+; if(k=10) k=0; break;case 3:P1=table3m;delay(500);m+; if(m=10) m=0; break;case 4:P1=0x00;delay(300);P1=P1;delay(300); break; case 5:P1=table4n;delay(500);n+; if(n=10) n=0; break;default:break; void delay( uint a) uchar b; for(a; a 0; a-) /循环600*255次 机器在这里执行需

8、要一段时间 也就达到了延时效果 for(b = 255; b 0; b-);在“Options for target”的“debug”里选中“Proteus VSM Simulator”并选择输出“hex”文件进行联合调试。分别进行全速调试与单步调试,看是否出现编程所想要实现的效果。 3. 实验结果按下不同的按键次数,执行不同的流水效果,自行设计效果为双灯循环右移。七、实验总结与问题通过本次流水灯控制实验,进一步掌握了Keil C51软件与proteus联合仿真调试的方法,逐步熟练了单步调试的方法。自己用中断方法完成了本次实验,也尝试用查询方法编写程序,知道中断方法是在有中断请求时CPU再去处理,之前可一直忙于其他事情,而查询方法需一直查询标志位,CPU不能做其他事情,中断方法效率要比查询方式高而且较简单。第一次用按键控制电路,学习了按键的去抖原理与使用方法。在实验中,会出现未知效果,总体看来原因不明,只要进行单步调试就可找到问题所在。思考:如果不进行去抖处理,CPU可能会误判,按下后认为按键松开,多次执行相应程序,得不到想要的控制效果。5 / 5

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!