1 / 24

项目三 LED 流水灯设计制作

任务 5. 任意花样 LED 闪烁控制. 项目三 LED 流水灯设计制作. 任务 5 任意花样 LED 闪烁控制. 任务要求: 在广告彩灯控制和舞台灯光控制等领域,需要小灯具有间隔点亮、轮流点亮、逐点点亮等花样。此时控制数据没有任何规律,本任务将利用数组解决任意花样 LED 闪烁控制问题。. 任务 5 任意花样 LED 闪烁控制. 一、数组 1 、数组是一个由若干同类型变量组成的集合。 2 、数组分类 一维数组 如 a[5] 二维数组 a[2][4] 三维数组 a[3][4][5] 注意: 数组必须先定义后使用。.

ramona-hopkins ramona-hopkins
Download Presentation

项目三 LED 流水灯设计制作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 任务5 任意花样LED闪烁控制 项目三 LED流水灯设计制作

  2. 任务5 任意花样LED闪烁控制 任务要求: 在广告彩灯控制和舞台灯光控制等领域,需要小灯具有间隔点亮、轮流点亮、逐点点亮等花样。此时控制数据没有任何规律,本任务将利用数组解决任意花样LED闪烁控制问题。

  3. 任务5 任意花样LED闪烁控制 一、数组 1、数组是一个由若干同类型变量组成的集合。 2、数组分类 一维数组 如a[5] 二维数组a[2][4] 三维数组a[3][4][5] 注意:数组必须先定义后使用。

  4. 任务5 任意花样LED闪烁控制 3、一维数组的定义 形式:类型说明符 数组名[整型表达式]; 例: int a[5]; 声明了一个整型数组。该数组名为a,包含5个元素,依 次为a[0]、a[1]、 a[2]、 a[3]、 a[4],其中每个元 素都相当于一个整型变量。 注意:数组元素的位置编号即索引是从0开始的。

  5. 任务5 任意花样LED闪烁控制 4、一维数组的赋值 (1)在定义数组时对数组的全部元素赋予初值。 例:int a[5]={1,2,3,4,5}; (2)只对数组的部分元素初始化。 例:int a[5]={1,2}; 说明:只对前面两个赋初值,因此a[0]和a[1]的值是1、 2,而后面三个元素的值全部是默认的0。 (3)在定义数组时对数组元素的全部元素都不赋初值, 则数组元素的值均被初始化为0。

  6. 任务5 任意花样LED闪烁控制 (4)可以在定义时不指明数组元素的个数,而根据赋值部分由编译器自动确定。 例: unsigned char BitTab[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB}; 定义了一个BitTab[6]这样一个数组。

  7. 任务5 任意花样LED闪烁控制 (5)可以为数组指定存储空间,如果未指定空间时,则将数组定义在内部RAM中。 可以用code关键字将数组元素定义在ROM空间中,用于程序运行过程中元素数值不改变的场合。 例: char code ledsegcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

  8. 任务5 任意花样LED闪烁控制 (6)只有在初始化时,可以为数组的各个元素同时赋值,否则在程序的其他地方一次只能为数组的某一个元素赋值。 例: i=a[2];//将数组元素a[2]的值赋给变量i。

  9. 任务5 任意花样LED闪烁控制 (7)由于数组中的每一个元素是由顺序的编号来标识的,所以可以利用循环来访问和处理数组的每一个元素。 例:为数组a的10个元素分别赋值1-10。 for(i=0;i<10;i++) a[i]=i+1;

  10. 任务5 任意花样LED闪烁控制 注意:C 语言并不对越界使用数组进行检测,例如数组的长度是6,其元素应该是从BitTab[0]~ BitTab[5],但是如果在程序中写上BitTab[6],编译器并不会认为这有语法错误,也不会给出警告,这一点应引起编程者的注意。

  11. 任务5 任意花样LED闪烁控制 • #include "reg51.h" • unsigned char code Tab[ ]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xFF,0xAA}; • void delay(unsigned int t) • { unsigned int i,j; • for(i=t;i>0;i--) • for(j=110;j>0;j--); } • void main(void) • { • unsigned char i; • while(1) • { • for(i=0;i<10;i++) • { P1=Tab[i]; • delay(500); } • } • }

  12. 任务5 任意花样LED闪烁控制 二、指针与指针变量 int a=1,b=2; char c=0xff; 一个地址唯一指向一个内存变量,这个地址称为变量的指针。 如果将变量的地址保存在内存的特定区域,用变量来存放这些地址,这样的变量就是指针变量。

  13. 任务5 任意花样LED闪烁控制 1、指针变量的定义 例1: int *ptr1; 指针变量ptr1指向一个整型变量。即ptr1可以存放整型变量的地址。 例2: char * ptr1; 指针变量ptr1指向一个字符型变量。即ptr1可以存放字符型变量的地址。

  14. 任务5 任意花样LED闪烁控制 2、指针变量的引用 *指针变量 含义:指针变量所指向的值。

  15. 任务5 任意花样LED闪烁控制 3、指针运算符与指针表达式 &运算符:取地址运算符,&m即是变量m的地址。

  16. 任务5 任意花样LED闪烁控制 练习: 执行下面程序段后,ab的值为( )。 int *var,ab; ab=100;var=&ab; ab=*var+10;

  17. 任务5 任意花样LED闪烁控制 4、指针与数组 变量存放于内存中时是有地址的,数组在内存存放时也同样具有地址。对数组来说,数组名的值就是数组在内存安放的首地址。指针变量是用于存放变量的地址,可以指向变量,也可以存放数组的首地址或数组元素的地址,也就是说,指针变量可以指向数组或数组元素,对数组而言,数组和数组元素的引用,也同样可以使用指针变量。

  18. 任务5 任意花样LED闪烁控制 (1)指针与一维数组 例:int a[10],*ptr; ptr=a; 或:ptr=&a[0];

  19. 任务5 任意花样LED闪烁控制 指针对数组的表示方法: (1)ptr+n与a+n表示数组元素a[n]的地址,即&a[n]。 (2)*(ptr+n)和*(a+n)表示数组的元素,即a[n]。 (3)指向数组的指针变量也可以用数组的下标形式表示ptr[n],即*(ptr+n)。

  20. 任务5 任意花样LED闪烁控制 #include "reg51.h" unsigned char code Tab[ ]={……}; void delay(unsigned int t) { unsigned int i,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } void main(void) { unsigned char i; while(1) { for(i=0;i<40;i++) { P1=*(Tab+i); delay(500); } } }

  21. 任务5 任意花样LED闪烁控制 #include "reg51.h" unsigned char code Tab[ ]={……}; void delay(unsigned int t) { unsigned int i,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } void main(void) { unsigned char i,*ptab; ptab=Tab; while(1) { for(i=0;i<40;i++) { P1=*(ptab+i); delay(500); } } }

  22. 任务5 任意花样LED闪烁控制 函数的首地址也可以存储在某个函数指针变量里。这样,就可以通过这个函数指针变量来调用所指向的函数了。 声明一个可以指向某个函数的函数指针变量pdelay的方法: void (*pdelay)(unsigned int t);

  23. 任务5 任意花样LED闪烁控制 #include "reg51.h" unsigned char code Tab[ ]={……}; void delay(unsigned int t) { unsigned int i,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } void main(void) { unsigned char i,*ptab; void (*pdelay)(unsigned int t); pdelay=&delay; while(1) { ptab=Tab; for(i=0;i<40;i++) { P1=*ptab; ptab++; (*pdelay)(500);} } }

  24. Thank You !

More Related

玻璃钢生产厂家透光玻璃钢雕塑材料金华玻璃钢雕塑构件党建文化玻璃钢人物雕塑制作济源玻璃钢卡通雕塑价格北京玻璃钢雕塑信赖华艺沈阳商场美陈报价商场美陈+招聘信息绥化玻璃钢卡通雕塑阿狸厦门园林玻璃钢雕塑直销昆明玻璃钢孔子雕塑鞍山玻璃钢马雕塑中山玻璃钢座椅雕塑公司陕西玻璃钢雕塑费用宜春户外玻璃钢雕塑联系方式西安定制玻璃钢雕塑镜面玻璃钢景观雕塑定制南京商业街玻璃钢雕塑龙岩玻璃钢仿铜雕塑定制浙江开业商场美陈哪里买韶关园林玻璃钢动物雕塑顺河玻璃钢雕塑定制玻璃钢雕塑精工甘肃玻璃钢雕塑厂长沙景观标识玻璃钢卡通雕塑动物玻璃钢雕塑销售电话河南欧式玻璃钢雕塑陕西欧式玻璃钢雕塑优势湖南农场迎宾玻璃钢雕塑玻璃钢雕塑哪种好 新复材玻璃钢卡通鸡雕塑报价香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化