实验报告_流水灯与蜂鸣器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆理工大学
实验报告
课程汇编语言程序设计
题目流水灯与蜂鸣器实验
院系名称计算机科学与工程学院
班级 115030703 学生姓名郭鑫学号 11503070310 任课教师但远宏
时间 2016-11-15
1 电路原理分析
1.1 LED及其驱动电路工作原理
Led灯两端为高电势灯不亮,两端出现电势差则灯亮,因为led的一端接的VCC,.所以I/O口为高电势不亮,为低电势就亮,所以通过控制P0端的电势,就能控制led。
1.2 蜂鸣器及其驱动电路工作原理
蜂鸣器里由三极管,I/O口驱动三极管,如果I/O口为高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,如果I/O口为低电平,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。
2 程序设计与实现
2.1用位操作依次点亮1、3、5、7,再点亮2、4、6、8
用一个值来表示8个灯的状态,每次循环都将这个状态赋给P0口,改变灯的状态
起始状态为1111 1111,都不亮,
使用位左移两个,变为1111 1100,再加2,变为1111 1110
循环3次
变为1010 1010,此时已经完成依次亮1 3 5 7
用一个计数器记录循环次数,接下来循环只执行位左移两个,不用加2
最终变为0000 0000
程序完成
2.2 用总线操作依次点亮1、3、5、7,再点亮2、4、6、8
直接改变P0口的值,使其控制的灯亮,
比如先是0xff -> 0xfe
这样就使灯1亮
依次改变P0的值就能完成
2.3 间隔100ms先奇数灯亮再偶数亮,循环三次,每循环一次,蜂鸣
器响一声;8个全部闪烁3次;关闭发光管,程序停止
先将奇数亮的值0x55赋给P0,等100ms,再将偶数亮的值0xaa赋给P0,等100ms,将P2^4也就是蜂鸣器的I/O口赋0,再赋1,形成依次蜂鸣。
循环三次,用计数器记录循环次数。
当计数器为三时,结束循环,将P0赋0x00,再赋0xff,完成一次闪烁,计数器减一,当计数器为0,进入死循环,程序停止。