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

2024-07-10
| 70页
| 39人阅读
| 3人下载
普通

内容正文:

任务2 指定效果指示灯设计与制作 单片机技术与应用 项目一 智能车间指示系统设计与制作 任务2 指定效果指示灯设计与制作 三诺生物传感有限公司 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 【基础任务要求】模拟合作企业智能车间指示灯控制,利用单片机控制发光二极管从两边往中间依次点亮。 任务2 指定效果指示灯设计与制作 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 任务实现四步骤 绘制硬件电路图 搭接硬件电路 硬件设计 调试硬件电路 调试控制程序 功能调试与实现 绘制程序流程图 指定效果指示灯编程方法 程序设计 01 02 03 04 重点、难点 难点 绘制系统框图 元器件选型 分配资源 方案设计 对接单片机应用系统开发流程 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 任务2 指定效果指示灯设计与制作 STC89C52 单片机 时钟电路 复位电路 电源电路 发光二极管电路 系统框图 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 硬件设计-绘电路 请问如何连接单片机与8个发光二极管? 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 硬件设计-绘电路 电路绘制规范: 用统一规定的元件符号 尽量避免导线的交叉 导线要求横平竖直 设置元器件参数 元件放在编辑区内 细致 规范 严谨 小锦囊 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 任务名: 指定效果指示灯设计与制作 元件名称 图片 型号 数量 Proteus中的名称 单片机芯片 STC89C52 1 用AT89C51代替 晶振 12MHZ 1 CRYSTAL 电容 22pF 2 CAP 电解电容 22μf/16V 1 CAP-ELEC 电阻 1KΩ 1 RES 电阻 50Ω 8 RES 发光二极管 8 LED-RED 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 如何编程实现发光二极管从两边往中间依次点亮? 程序设计 1 重点、难点 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 控制程序 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 控制程序 指定效果流水灯程序 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 程序代码编写规范: 字母大小写一致 代码必须在英文状态下输入 不要遗漏分号,括号成对出现; 变量名的命名规范; 运算符规范; 细致 严谨 规范 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 【知识链接】1.数据类型 什么是数据类型? 身高:175 体重:61 显示数据:0xfe,0xfd,0xfb …0x7f π=3.1415926 半径:r=2.5 海拔:-100 室外温度:-10.5 底下车库:-3 延时参数:20000 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 姓 名 性 别 出生日期 工作单位 职 务 住 址 身 高 体 重 血 型 张三 1 1993-05-01 学校 学生 宿舍2 1.87 135.5 B 整型 浮点型 位类型 1表示男,0表示女 字符型 字符型 字符型 可变 不变 不变 不变 可变 可变 可变 可变 可变 思考: 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 Keil C51编译器所支持的数据类型 【知识链接】1.数据类型 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include <reg51.h> #define LED P3 #define TIME 30000 void delay(unsigned int i) { while(i--); } void main() { unsigned char i; while(1) { i=0; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 (1)位类型bit 它的值是一个二进制位,只有0或1。 利用它可定义一个位类型变量,但不能定义位指针,也不能定义位数组。 例如:bit m; 【知识链接】1.数据类型 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 (2)特殊功能寄存器sfr MCS-51系列单片机内部定义了21个特殊功能寄存器,它们不连续地分布在片内RAM的高128字节中,地址为80H~FFH。 sfr也是单片机C语言扩展的一种数据类型,占用1B,值域为0~255。 利用它可以访问单片机内部的所有8位特殊功能寄存器。 用sfr定义特殊功能寄存器地址的格式为: sfr 特殊功能寄存器名=特殊功能寄存器地址; 特殊功能寄存器在reg51.h这个头文件里面都帮我们定义好了,所以平时我们就不要自己去定义寄存器的名字。 【知识链接】1.数据类型 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 (3)可寻址位sbit sbit类型也是单片机C语言的一种扩充数据类型,利用它可以访问芯片内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。 sbit定义的格式如下: sbit 位名称=位地址; 在给某个引脚取名的时候经常会用到。 例如: sbit led=P1^0; //led表示P1中的P1.0引脚 【知识链接】1.数据类型 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 void delay(unsigned char i) { unsigned char j,k; for(k=0;k<i;k++) for(j=0;j<255;j++); } #include<reg51.h> sbit led=P1^0; void delay(unsigned char i); void main( ) { while(1) { led=0; delay(10); led=1; delay(10); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 【知识链接】2. 变量 姓 名 性 别 出生日期 工作单位 职 务 住 址 身 高 体 重 血 型 可变 不变 不变 不变 可变 可变 可变 可变 可变 性 别 出生日期 血 型 不变 姓 名 工作单位 职 务 住 址 身 高 体 重 可变 常量 变量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 变量是在程序运行过程中,其值可以被改变的量。 30.8℃ 变量相当于一个存放数据的容器 【知识链接】2. 变量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include <stdio.h> int main() { int a,b,c; a=10; b=20; c=a+b; printf("%d", c); return 0; } 程序例中的a、b、c都是变量。什么是变量呢? a 10 b 20 c 30 变量——盒子,可保存数据 盒子的名字——变量名a、b、c 盒子里的内容——变量的值10、20、30 同一个盒子可先后存放不同的东西,变量的值也可在程序运行过程中发生变化,故称变量。 变量实际是内存中的一块存储区域,存储区域的名称就是变量名,所存储的内容就是变量的值。 【知识链接】2. 变量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 变量的类型 变量名 变量的值 变量 类型不同 名字不同 内容不同 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 a 合法 $sum 非法 Student_name 合法 _temperature 合法 int 非法 2names 非法 测一测 合法 非法 合法 合法 非法 非法 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 ① 有效字符:只能由大写字母、小写字母、数字和下划线组成,且以字母或下划线开头。 ② C语言的关键字不能用作标识符名。 变量命名遵循标识符命名规则 标识符名很简单, 字母数字下划线。 字母区分大小写, 非数打头非关键。 口诀 【知识链接】2. 变量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 ③ 标识符命名的软件工程要求──见名知意 所谓“见名知义”是指,通过标识符名就知道标识符所代表的含义。 方法:英文单词(或缩写) ,或汉语拼音字头。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。 变量命名遵循标识符命名规则 尽量做到 见名知意 细致 规范 严谨 小锦囊 【知识链接】2. 变量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include <reg51.h> #define LED P3 #define TIME 30000 void delay(unsigned int i) { while(i--); } void main() { unsigned char i; while(1) { i=0; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 unsigned int i,count=1000; //定义整型变量 char led=0x7f; //定义字符型变量 bit flag=0; //定义位变量 变量必须先定义、后使用。 变量定义格式:[存储类型] 数据类型 变量名[,变量名2…]; 【知识链接】2. 变量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 内部变量(局部变量):在函数内部定义的变量。 作用域仅限于函数内。 不同函数的内部变量是可以重名的。 #include <reg51.h> #define LED P1 #define TIME 30000 void delay(unsigned int i) { while(i--); } void main() { unsigned char i; while(1) { i=0; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 进行变量定义时,应注意以下几点: 1. 允许在一个数据类型标识符后,说明多个相同类型的变量,各变量名之间用逗号隔开; 2. 数据类型标识符与变量名之间至少用一个空格隔开; 3. 最后一个变量名必须以分号“;”结尾; 4. 变量定义必须放在变量使用之前,一般放在函数体的开头部分; 5. 在同一个程序中变量不允许重复定义为不同类型。 例如:unsigned int x,y,z; int a,b,x; 【知识链接】2. 变量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 变量的初始化 在定义变量的同时可以给变量赋初值,称为变量的初始化。 变量初始化格式:数据类型 变量名[=初值][,变量名2[=初值2]……]; 例如: int i=4,j,s=5; float x=0,y=0,z=0; char ch='a'; long int a=1000,b; 【知识链接】2. 变量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 姓 名 性 别 出生日期 工作单位 职 务 住 址 身 高 体 重 血 型 张三 1 1993-05-01 学校 学生 宿舍2 1.87 135.5 B 整型 浮点型 位类型 1表示男,0表示女 字符型 字符型 字符型 可变 不变 不变 不变 可变 可变 可变 可变 可变 【知识链接】3.常量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 姓 名 性 别 出生日期 工作单位 职 务 住 址 身 高 体 重 血 型 可变 不变 不变 不变 不变 可变 可变 可变 可变 性 别 出生日期 血 型 不变 姓 名 工作单位 职 务 住 址 身 高 体 重 可变 常量 变量 【知识链接】3.常量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 常量是指在程序运行过程中,其值不能被改变的量。 常量 整型常量 实型常量 字符型常量 字符串常量 【知识链接】3.常量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 数据格式 示例 十进制 88、-192 十六进制 0x58、-0xc0 长整型 88L、0x58L、o130L 整型常量举例 【知识链接】3.常量 #include <reg51.h> void delay (unsigned int c); void main() { while(1) { P1 = 0x00; delay (100); P1 = 0x01; delay (100); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 浮点常量举例 数据格式 示例 小数 0.888、345.3 指数 8.88e-1、3.453e2 数据格式 示例 英文单引号:’ ’ ‘A’、’9’ ASCII码 65、57 字符常量举例 【知识链接】3.常量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 字符串型常量是用双引号括起来的若干字符。 如”test”、”OK”、” ”等。 【知识链接】3.常量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 位类型常量 sbit LED=P1^0; LED=0; LED=1; 【知识链接】3.常量 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 运算符是完成某种特定运算的符号 【知识链接】4.运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 位运算-在二进制位的级别上进行的一系列运算。 C语言提供了六种位运算符,&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右移)和<<(左移)。 位运算的一般形式为:变量1 位运算符 变量2 位运算符也有优先级,从高到低依次是:~→<<→>>→&→^→|。 (1)位运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 1)左移运算符(<<) 左移运算符用来将参与运算的一个数的各位全部向左移(高位方向)若干位,每移动1位,最高位丢弃,最低位补0。 其表达式的一般形式为: 变量<<移动的位数 0 0 0 0 0 0 0 1 例如: w=0x01; w<<=1; 0 0 0 0 0 0 1 0 (1)位运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 2) 右移运算符(>>) 右移运算符用来将参与运算的一个数的各位全部向右移(低位方向)若干位,每移动1位,最高位补0,最低位丢弃。 其表达式的一般形式为: 变量>>移动的位数 例如: w=0x80; w>>=1; 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 (1)位运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 控制程序 指定效果流水灯程序 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 3)”按位与”运算符(&) 按位与运算法则:有0出0,全1出1 例如: 00000001 10000000 位与& 00000000 (1)位运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 4)”按位或”运算符(|) 参加运算的2个数据,按二进制的表达方式按位进行逻辑“或”的运算。 运算法则:有1出1,全0出0。 例如: 00000001 10000000 位或| 10000001 (1)位运算符 例如: 00000010 01000000 位或| 01000010 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include <reg51.h> #define LED P3 #define TIME 30000 void delay(unsigned int i) { while(i--); } void main() { unsigned char i; while(1) { i=0; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 5)”异或”运算符(^) 参加运算的2个数据,按二进制的表达方式按位进行逻辑“异或”的运算。 运算法则:相同为0,不同为1。 例如: 00000001 10000000 位异或^ 10000001 (1)位运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 6)”取反”运算符(~) 参加运算的2个数据,按二进制的表达方式按位进行逻辑“非”的运算。 例如: 10000001 位取反~ 01111110 (1)位运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include <reg51.h> #define LED P3 #define TIME 30000 void delay(unsigned int i) { while(i--); } void main() { unsigned char i; while(1) { i=0; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 (2)算术运算符 常见的算术运算符包括+、-、*、/、%和++、--。 练一练:将两位十进制整数的十位数和个位数分离。 #include<stdio.h> int main() { int a=23,b,c; b=a/10; c=a%10; printf(“a=%d”,a); printf(“十位=%d ”,b); printf(“个位=%d ”,c); return 0; } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 除法运算、取余运算有什么用处呢? 我们来看一个应用,如果我们需要把一个整数在数码管或者液晶上显示出来的话,那就需要把一个整数的每位拆分开来,一位一位进行显示,例如,要显示25这个数,我们就需要把25这个数的十位和个位拆分开来,分别是2和5,那用什么运算能实现这个结果呢? 25 2 5 25/10=2 25%10=5 3781 3 7 8 1 3781/1000=3 3781/100%10=7 3781%100/10=8 3781%10=1 (2)算术运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 有关算术运算符需要说明以下几点: 1) 除法运算符 /,C语言规定:两个整数相除,其商为整数,小数部分被舍弃。如果运算量中有一个是实型,则结果为双精度实型。 例如,5 / 2 = 2, 22.0/4=5.5。 2) 求余运算符 %,要求两个操作数均为整型,结果为两数相除所得的余数。 注:取余运算的两个操作数必须是整数。 例如:8%5=3, 25%10=5。 (2)算术运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 表达式和算术表达式 表达式是用运算符和括号,将运算对象(常量、变量和函数等)连接起来的、符合C语言语法规则的式子。 例如: ( x + y ) / 2 – 1。 算术表达式是表达式中的运算符都是算术运算符。 例如,3 + 6 * 9。 (2)算术运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 求表达式的值 1) 运算符的优先级。在表达式求值时,按运算符的优先级从高到低依次执行。 例如,先乘除后加减: a – b * c。 2)如果某个操作数两侧运算符的优先级相同,则按结合性进行:第一是左结合性(先左后右的结合方向)运算符:操作数先与左边的运算符结合。 例如, 1 - 2 + 3:先执行“1 - 2”,再“+ 3” 。 第二是右结合性(先右后左的结合方向)运算符:操作数先与右边的运算符结合。 例如, a = b = 1:先执行“b = 1”,再执行“a = (b = 1)” 。 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 练一练:自增、自减运算符的应用。 例如: int i=100,j; j=++i; j=i++; j=--i; j=i--; //j=101,i=101 //j=101,i=102 //j=101,i=101 //j=101,i=100 建议尽量避免++、--和其它运算用在一起,以防出错; 单独使用的++ i和i++,结果都是把i的值增1。 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 自增自减运算符和表达式 ① 自增(++)、自减(--)的作用 自增(++)使单个变量的值增1(++) 自减(--)使单个变量的值减1(--) ② 用法及运算规则 前置运算── + +变量、--变量 运算规则:先增减、后运算,即先使变量的值增(减)1,然后再以变化后的值参与其它运算。 (2)算术运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 后置运算──变量+ +、变量-- 运算规则:先运算、后增减,即变量先参与其它运算,然后再使变量的值增(减)1。 自增自减运算符和表达式 (2)算术运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include <reg51.h> #define LED P1 #define TIME 30000 void delay(unsigned int i) { while(i--); } void main() { unsigned char i; while(1) { i=0; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 练一练:分析下面各赋值表达式中变量a的值。 a=b=c=3; a=5+(c=7) a=(b=2)+(c=5) a=(b=6)/(c=2) (3)赋值运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 1). 赋值运算符 赋值运算符用赋值符号(=)表示,它的作用就是将一个数据赋给一个变量。 例如:“t=10;” 2). 赋值表达式 赋值表达式用于计算右边表达式的值,把右边表达式的值赋给左边的变量。 其格式如下:变量(寄存器名或位名称)=表达式 (3)赋值运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 练一练: a+=3 a-=3 a*=3 a/=3 a%=3 a*=b+2 a=a+3 a=a-3 a=a*3 a=a/3 a=a%3 a=a*(b+2) a=4,b=2 (3)赋值运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 3). 复合赋值运算 复合赋值运算符就是在赋值符”=”之前加上其他运算符。与算术有关的复合赋值运算符有:+=、-=、*=、/=、%= (注意:两个符号之间不能有空格) 复合运算的一般格式为 变量 复合赋值运算符 表达式 (3)赋值运算符 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #define <宏名> <字符串> 例如: #define PI 3.1415926 #define uint unsigned int #define uchar unsigned char #define LED P1 宏定义一般是放在程序的预编译部分,其作用域就是从宏定义命令起到源程序结束,如果中间要终止其作用域,可以使用#undef命令。 宏定义只是纯粹的替换和展开。 宏定义不是说明或语句,所以在行末不用加分号,如果加上了分号,替换时连分号也一起替换。   宏定义 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include <reg51.h> #define uchar unsigned char #define LED P1 #define TIME 30000 void delay(unsigned int i) { while(i--); } void main() { uchar i; while(1) { i=0; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); i++; LED=~((0x01<<i)|(0x80>>i)); delay(TIME); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 调试运行 1.看故障现象 2.析故障原因 3.查硬件故障 4.查软件故障 5.验功能效果 故障排查步骤 严谨 规范 精益求精 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 进阶任务:指定效果指示灯设计与制作 【任务要求】单片机控制发光二极管从两边往中间依次点亮、从中间往两边依次点亮。 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 每天学习一点点,变成更好的自己 单片机技术与应用 $$

资源预览图

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