红绿灯编程实现.ppt

红绿灯编程实现.ppt

ID:49263361

大小:437.50 KB

页数:26页

时间:2020-02-02

红绿灯编程实现.ppt_第1页
红绿灯编程实现.ppt_第2页
红绿灯编程实现.ppt_第3页
红绿灯编程实现.ppt_第4页
红绿灯编程实现.ppt_第5页
资源描述:

《红绿灯编程实现.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、红绿灯编程实现图示状态图伪码While(1){A红=B红=C绿=0;A绿=B绿=C红=1;delay100s;A绿=B红=C红=0;A红=B绿=C绿=1;delay100s;A红=B绿=C红=0;A绿=B红=C绿=1;delay100s;}硬件支持的分析我们有4个Led,用于表示6个灯?Led0亮表示A路口绿灯亮灭表示A路口红灯亮Led1亮表示B路口绿灯亮灭表示B路口红灯亮Led2亮表示C路口绿灯亮灭表示C路口红灯亮Include头文件#include#include

2、#include#include预处理所谓预处理是指在进行编译的第一遍扫描之前所作的工作。宏定义#define允许用一个标识符来表示一个字符串,称为宏。文件包含#include注意实际情况中的重定义情况。子函数intlight_red(intfd,charlukou)intlight_green(intfd,charlukou)函数库函数和自定义函数printf、scanf、getchar函数的特性返回值,参数,变量的有效区域函数,变量的申明子函数输入参数判断

3、if(fd<0){return-1;}if((lukou!='A')&&(lukou!='B')&&(lukou!='C')){return-1;}语句结构分支语句if语句,switch语句循环语句while语句,for语句转移语句break语句,return语句Switch分支语句switch(lukou){case'A':ioctl(fd,0,0);break;case'B':ioctl(fd,0,1);break;case'C':ioctl(fd,0,2);break;default:break;}

4、文件操作文件操作openopen("/dev/leds",0);ioctlioctl(fd,0,1);closeclose(fd);ioctlintioctl(inthandle,intcmd,[int*argdx,intargcx]);ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。其中fd就是用户程式打开设备时使用open函数返回的文件标示符,cmd就是用户程式对设备的控制命令,至于后面的省略号,

5、那是一些补充参数,一般最多一个,有或没有是和cmd的意义相关的。ioctl函数是文件结构中的一个属性分量,就是说如果你的驱动程式提供了对ioctl的支持,用户就能在用户程式中使用ioctl函数控制设备的I/O通道。openintopen(constchar*pathname,intflags);intopen(constchar*pathname,intflags,mode_tmode);返回值若所有欲核查的权限都通过了检查则返回0值,表示成功,只要有一个权限被禁止则返回-1。参数pathname指向欲打

6、开的文件路径字符串。下列是参数flags所能使用的旗标:O_RDONLY以只读方式打开文件O_WRONLY以只写方式打开文件O_RDWR以可读写方式打开文件。上述三种旗标是互斥的,也就是不可同时使用,但可与下列的旗标利用OR(

7、)运算符组合。O_CREAT若欲打开的文件不存在则自动建立该文件。O_EXCL如果O_CREAT也被设置,此指令会去检查文件是否存在。文件若不存在则建立该文件,否则将导致打开文件错误。O_NOCTTY如果欲打开的文件为终端机设备,不将该终端机当成进程控制终端机。O_TRUNC若文件

8、存在并且以可写的方式打开时,此旗标会令文件长度清为0,而原来存于该文件的资料也会消失。O_APPEND当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面。O_NONBLOCK以不可阻断的方式打开文件,也就是无论有无数据读取或等待,都会立即返回进程之中。O_NDELAY同O_NONBLOCK。O_SYNC以同步的方式打开文件。O_NOFOLLOW如果参数pathname所指的文件为一符号连接,会令打开文件失败。O_DIRECTORY如果参数pathname所指的文件并非为一目录,

9、会令打开文件失败。参数mode组合此为Linux2.2以后特有的旗标,以避免一些系统安全问题。参数mode则有下列数种组合,只有在建立新文件时才会生效,此外真正建文件时的权限会受到umask值所影响,因此该文件权限应该为(mode-umaks)。S_IRWXU00700权限,代表该文件所有者具有可读、可写及可执行的权限。S_IRUSR或S_IREAD,00400权限,代表该文件所有者具有可读取的权限。S_IWUSR或S_IWR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。