1.4 流水指示灯设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)

2024-07-10
| 38页
| 38人阅读
| 4人下载
普通

内容正文:

任务4 流水指示灯设计与制作 单片机技术与应用 项目一 智能车间指示系统设计与制作 任务4 流水指示灯设计与制作 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 【基础任务要求】利用数组实现8个LED发光二极管从右至左依次点亮、8个LED全亮、8个LED全灭的效果。 任务4 流水指示灯设计与制作 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 任务实现四步骤 绘制控制电路图 搭接硬件电路 硬件设计 调试控制电路 调试控制程序 软硬件调试 仿真运行 在单片机开发板上运行 仿真运行 绘制流程图 用数组和循环语句编程实现流水灯控制 软件设计 01 02 03 04 重点、难点 难点 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 STC89C52 单片机 时钟电路 复位电路 电源电路 发光二极管电路 系统框图 任务4 流水指示灯设计与制作 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 任务名:流水指示灯设计与制作 元件名称 图片 型号 数量 Proteus中的名称 单片机芯片 AT89C51 1 AT89C51 晶振 12MHZ 1 CRYSTAL 电容 22pF 2 CAP 电解电容 22μf/16V 1 CAP-ELEC 电阻 1KΩ 1 RES 电阻 50Ω 8 RES 发光二极管 8 LED-RED 元器件选型 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 硬件电路图 任务4 流水指示灯设计与制作 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 硬件设计-绘电路 细致 规范 严谨 小锦囊 电路绘制规范: 用统一规定的元件符号 尽量避免导线的交叉 导线要求横平竖直 设置元器件参数 元件放在编辑区内 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 软件设计 如何用数组编程实现8个发光二极管从右至左点依次点亮 、全亮、全灭效果? 1 重点、难点 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 控制程序设计 1 0 P3.0 0 0 0 0 0 0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0xff 0x00 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 一、数组定义 数组:是数目固定、数据类型相同的若干个变量的有序集合。 unsigned char led[10]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; 数据类型 数组名 数组长度 数组元素 知识链接 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 数组必须先定义、后使用。 数据类型 数组名[常量表达式][,数组名2[常量表达式2]……]; (1)”数据类型”是指数组元素的数据类型。 (2) 数组名,必须遵循标识符命名规则;存放的是一个地址常量,它代表整个数组的首地址。 (3)“常量表达式” 可以是常数和符号常量、不能包含变量,其值指数组元素个数(又称数组长度) 。 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 例如: unsigned char led[8]; int scores[16]; #define student 16 unsigned int k; unsigned char led[k]; int scores[student]; Χ √ 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include<reg51.h> unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; void delay(unsigned int k ); //函数声明 void main( ) { unsigned char i; while(1) { for(i=0;i<10;i++) { P3=led[i]; delay(1000); } } } void delay(unsigned int k ) //函数定义 { unsigned int i, j; for(i=0;i<100;i++) for(j=0;j<k;j++); } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 二、数组初始化 给数组中的元素赋值,叫做数组初始化。 数组初始化 数组定义时初始化 赋值语句初始化 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; 定义数组 初始化 unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; led[0] led[1] led[2] led[3] led[4] led[5] led[6] led[7] led[8] led[9] 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 数据类型 数组名[常量表达式]={初值表}; unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; unsigned char led[10]; led[0]=0x01; led[1]=0x02; led[2]=0x04; led[3]=0x08; led[4]=0x10; led[5]=0x20; led[6]=0x40; led[7]=0x80; led[8]=0xff; led[9]=0x00; 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 允许只给部分元素赋初值。 例如:int score[5]={75,80,85,90}; int score[5]; score[0]=75; score[1]=80; score[2]=85; score[3]=90; score[4]=0; 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 三、一维数组元素的引用 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0xff 0x00 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000 11111111 00000000 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; 每一个数组元素都用 数组名和唯一的下标来表示。 数组名[下标] 数组元素下标从0开始到(元素个数-1) 使用循环程序处理数组 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0xff 0x00 led[0] led[1] led[2] led[3] led[4] led[5] led[6] led[7] led[8] led[9] 存储器 led led+1 led+2 led+3 led+4 led+5 led+6 led+7 led+8 led+9 细致 三、一维数组元素的引用 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; 定义数组 数组初始化 unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; led[0] led[1] led[2] led[3] led[4] led[5] led[6] led[7] led[8] led[9] 使用循环程序处理数组 三、一维数组元素的引用 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 四、循环结构 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 1、for语句 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 1、for语句 for(循环变量赋初值;循环条件;循环变量增值) 表达式可以部分或全部缺省,但其间的分号不能省略 { 循环体; } 仅有1条语句, 可省略大括号 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include<reg51.h> unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; void delay(unsigned int k ); //函数声明 void main( ) { unsigned char i; while(1) { for(i=0;i<10;i++) { P3=led[i]; delay(1000); } } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 void delay(unsigned int k ) //延时函数 { unsigned int i, j; for(i=0;i<100;i++) for(j=0;j<k;j++); } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 for语句中的三个表达式都是可选项,可以省略,但必须保留“;” 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include<reg51.h> unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; void delay(unsigned int k ); //函数声明 void main( ) { unsigned char i; while(1) { i=0; for(;i<10;i++) { P3=led[i]; delay(1000); } } } void delay(unsigned int k ) //延时函数 { unsigned int i, j; for(i=0;i<100;i++) for(j=0;j<k;j++); } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include<reg51.h> unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; void delay(unsigned int k ); //函数声明 void main( ) { unsigned char i; while(1) { i=0; for(;i<10;) { P3=led[i]; delay(1000); i++; } } } void delay(unsigned int k ) //延时函数 { unsigned int i, j; for(i=0;i<100;i++) for(j=0;j<k;j++); } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 2.while语句 while(循环条件) { 循环体; } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 while语句-先判断后执行 特点:当表达式的值一开始就为假时,循环体一次也不会执行。 有言在先 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include<reg51.h> unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; void delay(unsigned int k ); //函数声明 void main( ) { unsigned char i; while(1) { i=0; while(i<10) { P3=led[i]; delay(1000); i++; } } } void delay(unsigned int k ) //延时函数 { unsigned int i, j; for(i=0;i<100;i++) for(j=0;j<k;j++); } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 3.do-while语句 do { 循环体; }while(循环条件); 分号不能缺 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 先斩后奏 do-while语句-先执行后判断 特点:循环体至少会被执行一遍。 3.do-while语句 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include<reg51.h> unsigned char led[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00}; void delay(unsigned int k ); //函数声明 void main( ) { unsigned char i; while(1) { i=0; do { P3=led[i]; delay(1000); i++; } while(i<10); } } void delay(unsigned int k ) //延时函数 { unsigned int i, j; for(i=0;i<100;i++) for(j=0;j<k;j++); } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 进阶任务-多种效果流水指示灯控制 设计要求:利用单片机实现8个LED发光二极管构成的流水灯的亮点左移动、亮点右移动、暗点左移动、暗点右移动。 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 每天学习一点点,变成更好的自己 单片机技术与应用 数组实现彩灯控制系统设计 Lavf58.42.100 $$

资源预览图

1.4 流水指示灯设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
1
1.4 流水指示灯设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
2
1.4 流水指示灯设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
3
1.4 流水指示灯设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
4
1.4 流水指示灯设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
5
1.4 流水指示灯设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。