任务2-1-2指定效果的流水灯_第1页
任务2-1-2指定效果的流水灯_第2页
任务2-1-2指定效果的流水灯_第3页
任务2-1-2指定效果的流水灯_第4页
任务2-1-2指定效果的流水灯_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机应用技术18物联网核心课程项目化实施课程1、采用顺序结构的流水灯:**依次输出状态码2、方法1:采用移位+循环的流水灯(P51):**循环四要素:配置状态码初值;反码输出,每次状态码移一位任务2-1指定效果的流水灯2.1.1循环闪烁的流水灯(循环嵌套)2.1.2从两边到中间的流水灯(位运算)2.1.3贪吃蛇流水灯(位运算+循环嵌套)2.1.4C51位运算符(P88)项目2C51与I/O口应用进阶2.1.1循环闪烁的流水灯具体要求:

让D1闪烁3遍,再到D2闪烁3遍,再到D3闪烁3遍,一直到D8闪烁3遍,如此循环往复下去。LED8LED7LED6LED5LED4LED3LED2LED12.1.1循环闪烁的流水灯一、任务硬件接口设计LED8LED7LED6LED5LED4LED3LED2LED1LED亮灭闪烁循环3次移位修改P1值循环8次无限循环二、任务软件设计(功能分析+编程实现)ledCode~(00000001)P1ledCode,1个LED亮延时P1口输出11111111,LED全灭延时for语句循环3次ledCode左移for语句循环8次while(1)无限循环LED8LED7LED6LED5LED4LED3LED2LED1采用移位运算实现流水灯控制系统C语言程序LED循环闪烁控制系统的C语言程序LED循环闪烁控制系统的C语言程序注意修改P1端口✎小组实践下面来小组协作动手实践一下吧基础任务:请尝试使用<<运算符和循环嵌套的结构编码实现8个灯从低位到高位的循环闪烁,即:D1闪烁3遍,再到D2闪烁3遍,再到D3闪烁3遍,一直到D8闪烁3遍,如此循环往复下去。

拓展1:实现从高位到低位循环闪烁,每个LED闪烁2遍,具体要求是:让D8闪烁2遍,再到D7闪烁2遍,再到D6闪烁2遍,一直到D1闪烁2遍,如此循环往复下去。复习:完成C51_7之前的所有微课视频,复习ppt\教材,完成思维导图,提交附件;1C51循环四要素及语句for/while2C51循环嵌套3C51~<<>>等位运算符4C51#definetypedef等应用小结与作业任务2-1指定效果的流水灯2.1.1循环闪烁的流水灯(循环嵌套)2.1.2从两边到中间的流水灯(位运算)2.1.3贪吃蛇流水灯(位运算+循环嵌套)2.1.4C51位运算符(P88)项目2C51与I/O口应用进阶核心:C51位运算符运算符运算范例结果&按位与0&000&101&111&00|按位或0|000|111|111|01~取反~01~10^按位异或0^000^111^101^01<<

左移00000010<<20000100010010011<<201001100>>

右移01100010>>20001100011100010>>211111000左移运算:<<运算法则:操作数左移若干位后,高位丢弃,低位补0。右移运算:>>运算法则:操作数右移若干位后,低位丢弃,高位补0。位运算符(移位)小组探究特效流水灯小组探究,讲解分享(组间互评)流水灯任务集普通流水灯:顺序结构;循环(移位)方法1-31、普通流水灯不同解法1)数组实现来回流水灯;2)库函数实现来回流水灯;3)数组+指针实现来回流水灯;2、指定效果流水灯4)两边到中间流水灯;5)中间到两边流水灯;6)贪吃蛇流水灯;3、创意流水灯7)自创任意流水灯下面来小组协作动手实践一下吧2.1.2从两边到中间的流水灯一、任务硬件接口设计二、任务软件设计(功能分析+编程实现)从两边到中间亮的流水灯P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.00x7e0xbd0xdb0xe7P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.001111110LED8LED7LED6LED5LED4LED3LED2LED1101111011101101111100111直接送数法1、分析解法1:状态码1、编程解法1:状态码P1能否按位操作找规律?LED8LED7LED6LED5LED4LED3LED2LED1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.001111110LED8LED7LED6LED5LED4LED3LED2LED1101111011101101111100111找二进制位的规律2、分析解法2:移位运算向右移位向左移位能否直接这样对0移位?P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0LED8LED7LED6LED5LED4LED3LED2LED100000001000000100000010000001000P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0LED8LED7LED6LED5LED4LED3LED2LED110000000010000000010000000010000右移P1=0x80>>i;左移P1=0x01

<<i;高四位和低四位并集?左右两部分值进行逻辑或,即保留了右边4个灯的状态,也保留了左边4个灯的状态。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0LED8LED7LED6LED5LED4LED3LED2LED1100000010100001

0001001000

0011000P1=(0x01<<i)

|(0x80>>i);i=0,1,2,3按位取反,得到想要的显示效果。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0LED8LED7LED6LED5LED4LED3LED2LED1P1=~((0x01<<i)

|(0x80>>i));i=0,1,2,301111110101111011101101111100111从两边到中间亮的流水灯控制系统C语言程序注意修改P1端口2.1.3贪吃蛇流水灯一、任务硬件接口设计第1次蛇的初值:snake=0xfe;食物初值:P1=0x7f;分析:第1次蛇移动的效果取反:snake=0x01;二、任务软件设计(功能分析+编程实现)第1次循环条件:i从0增到8初值:snake=0x01;i=0循环体:P1=(~(snake<<i))&0x7f第1次注意修改P1端口第2次初值:snake=0x03;第2次蛇移动的效果第2次注意修改P1端口规律:左移一位,再加1,循环7次。7次初值:0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f0x01<<1+10x030x03<<1+10x070x07<<1+10x0f0x0f<<1+10x1f0x1f<<1+10x3f0x3f<<1+10x7f找规律LED贪吃蛇C语言程序注意修改P1端口小组探究特效流水灯小组探究,讲解分享流水灯任务集普通流水灯:顺序结构;循环(移位)方法1-31、普通流水灯不同解法1)数组实现来回流水灯;2)库函数实现来回流水灯;3)数组+指针实现来回流水灯;2、指定效果流水灯4)两边到中间流水灯;5)中间到两边流水灯;6)贪吃蛇流水灯;3、创意流水灯7)自创任意流水灯下面来小组协作动手实践一下吧基本流水灯:顺序结构依次输出状态码基本流水灯:循环+移位方法1反码输出,每次状态码移一位基本流水灯:循环+移位之方法1-方法3典型代码段基本流水灯:数组;库函数

典型代码段任意流水灯:两边到中间;任意流水灯:贪吃蛇2.1.4C51位运算符编程核心:循环+数组+函数+C51位运算符运算符运算范例结果&按位与0&000&101&111&00|按位或0|000|111|111|01~取反~01~10^按位异或0^000^111^101^01<<

左移00000010<<20000100010010011<<201001100>>

右移01100010>>20001100011100010>>211111000例如:m=0xa2;n=0x5f;如何位运算,使得k=0xfa呢?

把m中的高4位和n中的低4位取出来,得到一个新的数k=

0xfa,怎么做呢?✎练一练按位与&:用0与对二进制指定位清0按位或|:用1或将二进制指定位置1按位异或^:用1异或将二进制指定位取反按位取反~:将一个二进制数的所有位都取反位运算符led=led&0xf0led=led|0x38led=led^0x55led=~ledled&=0xf0led|=0x38le

温馨提示

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

评论

0/150

提交评论