学习情境3变化点亮LED彩灯

上传人:M****1 文档编号:479070868 上传时间:2023-05-14 格式:DOCX 页数:12 大小:106.49KB
返回 下载 相关 举报
学习情境3变化点亮LED彩灯_第1页
第1页 / 共12页
学习情境3变化点亮LED彩灯_第2页
第2页 / 共12页
学习情境3变化点亮LED彩灯_第3页
第3页 / 共12页
学习情境3变化点亮LED彩灯_第4页
第4页 / 共12页
学习情境3变化点亮LED彩灯_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《学习情境3变化点亮LED彩灯》由会员分享,可在线阅读,更多相关《学习情境3变化点亮LED彩灯(12页珍藏版)》请在金锄头文库上搜索。

1、学习情境3变化点亮LED彩灯1. C51程序的if语句形式及选择结构程序设计方法;2. C51程序中的关系运算符及表达式;3. C51程序中的逻辑运算符及表达式;4. C51程序中的switch语句;5. C51程序中的位逻辑运算符及表达式;6. C51程序中的数字表示形式。技能点:1 .能熟练运用Keil51软件调试源程序;2 .能熟练运用proteus仿真软件;3 .能应用if语句的嵌套形式设计多分支程序;4 .能应用switch设计多分支程序;5 .能熟练应用C51中的关系运算符、逻辑运算符、位逻辑运算符及表达式 完成控制程序的编写;6 .能设计开关量的输入电路。学习情境目标本学习情境是

2、以8只发光二极管显示为例, 用单片机控制发光二极管,实现8只发光二极管有规律的变化点亮。从而学习C51的分支结构程序设计、关系运算符和逻辑运算符及表达式。学习情境分析为了让单片机控制发光二极管,将8只发光二极管接在单片机 P1 口上,根据P2 口外接的组合开的状态有规律的控制P1 口的任意管脚上为低电平,则接在它上面的发光二极管就被点亮;反之,如果 P1 口的任意管脚上为高电平,则接在它上面的发光二极管就不会被点 亮。连接电路图如图 3-1所示。RP1i3005678923419189D1一,XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P

3、0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD3913837-36135-34-33二 2116 |DSW1 | 122152r-i1p-51 r-61 日D229301223142413 12512D3261127-102891D410DIPSW_8D53245

4、D66157168_T7D8AT89C51U1图3-1 连接电路图任务一 简单变化点亮8路彩灯任务目标本任务是用P2 口外接8位组合开关,根据 P2 口的开关组合状态,单片机的P1 口控制外接的8个发光二极管固定显示。掌握利用ifelse语句实现分支结构程序设计的方法。任务程序分析在这里,要编写C51程序,首先读取P2 口的开关组合状态,利用ifelse控制语句实现将一个不同的8位无符号数通过 P1 口输出并能通过8个发光二极管观察结果。从输出的具 体数据来看,D1灯亮需要的数据是 P1.0的位为0, D2灯亮需要的数据是 P1.1的位为0, 依此类推。源程序#include reg51.h

5、/包含头文件#define uint unsigned int /宏定义#define uchar unsigned char /宏定义void main(void)uchar i;/定义i为无符号字符型变量while(1)无限循环i=P2;/将P2 口外接开关状态读进来送给i变量任务实施if(i=0xff) P1=i;/elseif(i=0xfe)判 i 变量的值如果为 0xff, 则 P1 输出 00, 二极管全亮P1=0xfe;/else if(i=0xf0) P1=0xf0; /else if(i=0x0f) P1=0x0f;/else if(i=0x55) P1=0x55;/else

6、 if(i=0xaa) P1=0xaa;/else P1=0xff;/1.利用proteus 仿真软件绘制电路原理图判 i 变量的值如果为 0xfe, 则 P1 输出 0xfe, 只有 D1 二极管亮判 i 变量的值如果为 0xf0, 则 P1 输出 0xf0,D1、 D2 、 D3 、 D4 二极管亮判 i 变量的值如果为 0x0f,则 P1 输出 0x0f,D5二极管亮、 D6、 D7、 D8判i0x55,变量的值如果为则 P1 输 出0x55,D2 、 D4 、 D6 、 D8二极管亮如果为0xaa,D1极管亮否则,全不亮判 i 变量的值0xaa, 则 P1 输出、 D3、 D5、 D5

7、 二全不亮按照情景一proteus 仿真软件绘制电路过程绘制原理图 3.1 ,绘制原理图时的添加器件有: AT89S51 , LED-BLUE , RESPARK-8 , DIPSW_8 等,注意电源器件的放置于连线。2 . C51 程序的编译按照情景一Keil C51 编译软件的操作步骤对源程序进行编译和调试。3 .执行程序观察效果将编译成功后的 .HEX 文件加载到 CPU ,根据程序设置DIPSW_8 组合开关的状态,执行程序观察效果。相关知识1. C51 程序的选择结构程序设计在结构化的程序设计中, 程序由三种基本结构组成。 它们分别是顺序结构, 选择结构和循环结构。 已经证明, 由三

8、种基本结构组成的算法结构可以解决任何复杂的问题。 由三种基 本结构组成的程序可以称为结构化程序。其中:顺序结构流程图如图 3.2 所示。由图我们不难看出,程序执行时先执行语句 1 再执行语 句 2,两者是顺序执行的关系,我们前面介绍的源程序中,赋值语句都可以实现该结构。选择结构流程图如图 3.3 所示。当判断表达式P 为真时,执行语句 1 部分,否则执行语句 2 部分。尤其要注意的是语句 1 和语句 2 在程序的执行中只有一个被执行。循环结构将在情景4 中介绍。图3.3选择结构流程图图3.2顺序结构流程图2. C51程序中的if语句的三种形式C语言提供了三种形式的if语句。(1) if (表达

9、式)语句例如:if(ab) t=a; a=b; b=t; (2) if (表达式)语句1 ;else语句2;例如:if (i=0xaa ) P1=0xaa;else P1=0xff;(3) if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;else if( 表达式m)语句melse语句n;源程序中采用了这种形式。这种形式实际上是一种嵌套的if形式,用于多分支结构程序设计。3 .关系运算符和关系表达式关系运算是一种简单的逻辑运算,关系运算符中的“关系”二字指的是一个值与另一个值之间的关系。(1)关系运算符及优先级关系运算符就是关系比较符,C语言共有6种关系运

10、算符,见表 3-1。表3-1关系运算符关系运算符作 用结合性小于左结合性大于 =大于等于等于左结合性!=不等于汪思:1)关系运算符共分两级,其中V, , =的优先级相同,且高于=和!= (二者优先级相同)。2)关系运算符的优先级低于算术运算符,高于赋值运算符。例:a+ bc a b! = c a= b= ca 8 c(a b)! = c a= b b= c)(a 8) v = b) = = c关系表达式是由关系运算符和括号将两个表达式连结起来的一个有值的式子,其中关系运算符两边的表达式可以是算术表达式、变量、常数、数组元素、函数,表达式的值只能同 时是算术量或同时是字符,关系表达式的值是一个逻

11、辑量,只能是:TRUE.和.FALSE.二者之一,习惯用“ 1”和“ 0”来表示。例如,程序中“ i=0xf ”就是一个关系表达式, 看i的值是否是0xf, i的值如果是0xff,则关系表达式的值为 1,反之为0。4 .逻辑运算符和逻辑表达式逻辑运算就是将关系表达式用逻辑运算符连接起来,并对其求值的一个运算过程。(1)逻辑运算符及优先级C51语言提供三种逻辑运算符,分别是:& (逻辑与),| (逻辑或)和!(逻辑非)。逻辑与”和 逻辑或”是双目运算符,要求有两个运算量,如 (AB) & (XY)。逻辑非”是 单目运算符,只要求有一个运算量。如 !(AB)。逻辑运算符及其他运算符之间的优先级关系

12、见表3-2所示。表3-2逻辑运算符优先级运算符优先级!(逻辑非)(高)算术运算符关系运算符& 和 |赋值运算符(低)逻辑与”相当于生活中说的 并且”,就是两个条件都成立的情况下逻辑与”的运算结果才为 真”。例如: 明天又下雨并且又刮风”这是一个预言,到底预言的对不对呢?如果明 天只下了雨或者只刮了风或者干脆就是大晴天,那么这个预言就错, 或者说是假的。只有明天确实是又下雨并且又刮风,这个预言才是对的,或者是真的。逻辑或”相当于生活中的 或者”,当两个条件中有任一个条件满足,逻辑或”的运算结果就为 真。例如:明天不是刮风就是下雨”,这也是一个预言了。如果明天下了雨或者明 天刮了风或者明天又下雨又

13、刮风,那么这个预言是对的。只有明天又不刮风又不下雨,这个预言才是错的。逻辑非”相当于生活中的 不”,当一个条件为真时,逻辑非”的运算结果为 假”。表3-3为逻辑运算真值表:它表示当条件 A是否成立与条件 B是否成立形成不同的组 合时,各种逻辑运算所得到的值。A、B的值为。表示条件不成立,为1表示条件成立。表3-3逻辑运算真值表AB!A!BA&BA|B001100011001100101(2)逻辑表达式用逻辑运算符连接若干个表达式组成的式子叫逻辑表达式。逻辑表达式的值为一个逻辑值1或0。逻辑运算符不仅可以连接关系表达式,还可以连接常量、变量、算术表达式、赋 值表达式甚至逻辑表达式本身。如果一个表达式太复杂,可以通过括号来保证运算次序。例如:ab | c= =d等价于:(ab) | (c= =d)又如: x10&x+y!=20 等价于:(x10)&(x+y)!=20)注意:C51程序中规定任意一个非零整数的逻辑值为1 ,而常数0的逻辑值为0。例如:5&0的逻辑值为05|0的逻辑值为1!20的逻辑值为0想一想为什么?5 .AT89S51的P2 外接组合开关电路介绍电路图中DIPSW-8为一个组合开关,里面包含8路独立单个开关,单个开关电路工作原理图如图3.4所示。VCC中R1单片机图3.4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号