- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
交通红绿灯的控制 顺序结构程序应用 应知应会 1、应完成的任务 2、要掌握的知识 3、能力培养 知识回顾 知识回顾 通过上一周的学习,学习了数据的输入与输出,在C语言中重要的输入输出函数有: 任务的提出 任务的提出 当我们走在城市的十字路口时,都会遇到红绿灯,按照一定的时间间隔变换着红绿灯,指挥着交通。现在交通红绿灯的控制都是用计算机(单片机)自动控制,今天我们就在实验室模拟“交通红绿灯的控制”,通过学习进一步掌握顺序程序设计。 工作过程分析 工作过程分析 路口交通红绿灯 工作过程分析 工作过程分析 工作过程分析 任务完整的工作过程 控制南北红灯亮,东西绿灯亮 等待30秒 控制南北红灯灯,东西黄灯亮 等待2秒 控制南北绿灯亮,东西红灯亮 等待30秒 控制南北黄灯亮,东西红灯亮 等待2秒 程序流程的确定 程序流程的确定 顺序结构程序设计 顺序结构程序主要解决按照固定顺序执行的任务。在顺序结构中,依次按语句先后顺序逐一执行,从程序开头,到程序结尾。 顺序结构程序设计较为简单,它一般由三个部分组成。 (1)提供数据部分 (2)计算处理部分 (3)输出结果部分 知识补充——C语言屏幕输出函数 在conio.h库函数中提供了用于在屏幕窗口输出的函数。 cprintf()函数 功能及使用方法同printf函数,向屏幕输出数据,但可以利用屏幕函数控制输出数据的颜色和位置。 gotoxy(x,y)函数 使光标移动到屏幕坐标为(x,y)的位置 ; 屏幕左上角为坐标(0,0)。 知识补充——C语言屏幕输出函数 textcolor(颜色值)函数 在文本模式中设置后续输出的字符颜色 ,颜色值的取值范围0—15。 知识补充——C语言屏幕输出函数 延时的实现 在Turbo C的dos.h库函数中,提供了有关延时的函数: delay(毫秒); sleep(秒); 在屏幕上模拟显示红绿灯控制程序结构 在了解了上面的知识后,我们可以写出在屏幕上模拟显示红绿灯控制的程序结构: 用并行接口控制红绿灯 在实际中,红绿灯的控制都是用单片机和并行接口来控制十字路口的红绿灯的。 在微机原理实验台上有8255并行接口芯片和红、黄、蓝发光二极管,把发光二极管接在8255的输出端PA的各位上,当对应的二进制位为1时,对应位输出端为高电平,使灯亮,反之灯灭。 我们可以利用计算机总线向8255输出数据,控制发光二极管,模拟红绿灯控制。 微机原理实验台 8255芯片结构图 红绿灯控制接口电路示意图 端口输出值 红绿灯各种情况下的端口输出值 TC硬件端口输出函数 在dos.h库函数中,提供了对硬件端口的输出函数。 outportb(端口地址,值) 功能:向指定端口地址输出一个字节值。 例如向并行接口输出控制字的指令为 outportb(0x21B,128); 向端口地址0x219输出20,使南北绿灯亮 outportb(0x218,20); 程序代码 请同学们对刚才在屏幕模拟显示红绿灯程序基础上,设计通过向8255并行端口输出控制红绿灯的程序。 总结 在本堂课中,我们主要学习了 1、问题分析方法 2、顺序结构程序在实际中的应用 3、屏幕输出控制 4、硬件端口的输出 新问题的提出 在前面设计的程序与实际工作还有些差距,主要差距如下: 1、我们设计的程序各方向灯亮的时间是固定的,能否通过输入来设置亮的时间? 2、程序中南北路口(或东西路口)两侧的灯是一致的,为了灵活控制交通,根据各方向交通流量可以独立控制每侧的灯。 请同学们在课后进一步完善程序,更加符合实际工作需要。 谢谢! * 交通红绿灯控制程序 屏幕输入输出 1、问题的分析能力 2、顺序结构程序设计 scanf(格式控制,地址列表); printf(格式控制,输出项表); getchar(); getch(); putchar(字符型或整型变量); 绿 绿 黄 红 黄 黄 绿 绿 黄 红 红 红 ● ● ● ● ● ● ● ● ● ● ● ● 南北绿灯亮 路口交通红绿灯 绿 绿 黄 红 黄 黄 绿 绿 黄 红 红 红 ● ● ● ● ● ● ● ● ● ● ● ● 南北绿灯亮 南北黄灯亮 绿 绿 黄 红 黄 黄 绿 绿 黄 红 红 红 ● ● ● ● ● ● ● ● ● ● ● ● 南北绿灯亮 南北黄灯亮 东西绿灯亮 路口交通红绿灯 绿 绿 黄 红 黄 黄 绿 绿 黄 红 红 红 ● ● ● ● ● ● ● ● ● ● ● ● 南北绿灯亮 南北黄灯亮 东西绿灯亮 东西黄灯亮 路口交通红绿灯 开始 初始化 南北绿灯亮 东西红灯亮
文档评论(0)