欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《红绿灯编程实现》PPT课件.ppt

    • 资源ID:5566700       资源大小:214.50KB        全文页数:26页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《红绿灯编程实现》PPT课件.ppt

    ,红绿灯编程实现,图示,状态图,伪码,While(1)A红=B红=C绿=0;A绿=B绿=C红=1;delay 100s;A绿=B红=C红=0;A红=B绿=C绿=1;delay 100s;A红=B绿=C红=0;A绿=B红=C绿=1;delay 100s;,硬件支持的分析,我们有4个Led,用于表示6个灯?Led0 亮表示 A路口绿灯亮 灭表示A路口红灯亮Led1 亮表示B路口绿灯亮 灭表示B路口红灯亮Led2 亮表示C路口绿灯亮 灭表示C路口红灯亮,Include头文件,#include#include#include#include,预处理,所谓预处理是指在进行编译的第一遍扫描之前所作的工作。宏定义#define 允许用一个标识符来表示一个字符串,称为宏。文件包含#include 注意实际情况中的重定义情况。,子函数,int light_red(int fd,char lukou)int light_green(int fd,char lukou),函数,库函数和自定义函数 printf、scanf、getchar函数的特性 返回值,参数,变量的有效区域 函数,变量的申明,子函数输入参数判断,if(fd 0)return-1;if(lukou!=A),语句结构,分支语句 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;,文件操作,文件操作 open open(/dev/leds,0);ioctl ioctl(fd,0,1);close close(fd);,ioctl,int ioctl(int handle,int cmd,int*argdx,int argcx);ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就 是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。其中fd就是用户程式打开设备时使用open函数返回的文件标示符,cmd就是用户程式对设 备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,有或没有是和 cmd的意义相关的。ioctl函数是文件结构中的一个属性分量,就是说如果你的驱动程式提供了对ioctl的支 持,用户就能在用户程式中使用ioctl函数控制设备的I/O通道。,open,int open(const char*pathname,int flags);int open(const char*pathname,int flags,mode_t mode);返回值若所有欲核查的权限都通过了检查则返回0 值,表示成功,只要有一个权限被禁止则返回-1。参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的旗标:O_RDONLY 以只读方式打开文件 O_WRONLY 以只写方式打开文件 O_RDWR 以可读写方式打开文件。上述三种旗标是互斥的,也就是不可同时使用,但可与下列的旗标利用OR(|)运算符组合。,O_CREAT 若欲打开的文件不存在则自动建立该文件。O_EXCL 如果O_CREAT 也被设置,此指令会去检查文件是否存在。文件若不存在则建立该文件,否则将导致打开文件错误。O_NOCTTY 如果欲打开的文件为终端机设备,不将该终端机当成进程控制终端机。O_TRUNC 若文件存在并且以可写的方式打开时,此旗标会令文件长度清为0,而原来存于该文件的 资料也会消失。O_APPEND 当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面。O_NONBLOCK 以不可阻断的方式打开文件,也就是无论有无数据读取或等待,都会立即返回进程之中。O_NDELAY 同O_NONBLOCK。O_SYNC 以同步的方式打开文件。O_NOFOLLOW 如果参数pathname 所指的文件为一符号连接,会令打开文件失败。O_DIRECTORY 如果参数pathname 所指的文件并非为一目录,会令打开文件失败。,参数mode 组合,此为Linux2.2以后特有的旗标,以避免一些系统安全问题。参数mode 则有下列数种组合,只有在建立新文件时才会生效,此外真正建文件时的权限会受到umask值所影响,因此该文件权限应该为(mode-umaks)。S_IRWXU 00700 权限,代表该文件所有者具有可读、可写及可执行的权限。S_IRUSR 或S_IREAD,00400权限,代表该文件所有者具有可读取的权限。S_IWUSR 或S_IWRITE,00200 权限,代表该文件所有者具有可写入的权限。S_IXUSR 或S_IEXEC,00100 权限,代表该文件所有者具有可执行的权限。S_IRWXG 00070权限,代表该文件用户组具有可读、可写及可执行的权限。S_IRGRP 00040 权限,代表该文件用户组具有可读的权限。S_IWGRP 00020权限,代表该文件用户组具有可写入的权限。S_IXGRP 00010 权限,代表该文件用户组具有可执行的权限。S_IRWXO 00007权限,代表其他用户具有可读、可写及可执行的权限。S_IROTH 00004 权限,代表其他用户具有可读的权限 S_IWOTH 00002权限,代表其他用户具有可写入的权限。S_IXOTH 00001 权限,代表其他用户具有可执行的权限。,系统延时接口,unsigned int sleep(unsigned int seconds);秒级int usleep(useconds_t usec);微秒级,主函数功能实现,int main(int argc,char*argv)int fd;fd=open(/dev/leds,0);if(fd 0)printf(Open device errorn);return-1;,While语句,while(1)light_red(fd,A);light_red(fd,B);light_green(fd,C);sleep(10);,While语句,light_red(fd,C);light_red(fd,B);light_green(fd,A);sleep(10);light_red(fd,A);light_red(fd,C);light_green(fd,B);sleep(10);,Close关闭文件结束,close(fd);return 0;,#include#include#include#include int light_red(int fd,char cross);int light_green(int fd,char cross);int get_numcar();unsigned int sleep(unsigned int seconds);/the space of time is second(s)int usleep(useconds_t usec);/the space of time is microsecnd(us)int main(int argc,char*argv)int fd;fd=open(/dev/leds,0);if(fd 0)printf(Open device errorn);return-1;while(1)light_green(fd,A);/A represent straight light_red(fd,a);/a repersent bend light_green(fd,B);/B represent straight light_green(fd,b);/b represent bend sleep(get_numcar();,light_red(fd,A);light_red(fd,a);light_red(fd,B);light_red(fd,b);sleep(get_numcar();light_red(fd,A);light_green(fd,a);light_red(fd,B);light_green(fd,b);sleep(get_numcar();light_red(fd,A);light_red(fd,a);light_red(fd,B);light_red(fd,b);sleep(get_numcar();close(fd);return-1;,int light_red(int fd,char cross)if(fd 0)return-1;if(cross!=A),int light_green(int fd,char cross)if(fd 0)return-1;if(cross!=A),int get_numcar()int i,j;srand(int)time(0);j=1+(int)(10.0*rand()/(RAND_MAX+1.0);return 30+j;,

    注意事项

    本文(《红绿灯编程实现》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开