找回密码
 注册
关于网站域名变更的通知
查看: 170|回复: 1
打印 上一主题 下一主题

单片机讲义9:二维数组 if 语句

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-6-1 09:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

- p: G5 K* \+ m6 L! H第9讲
8 j% e9 e2 m, \3 X  m7 {+ A& ?复习:& l& h3 B0 c; S; J6 O, b9 u- X* ]
1、 51 单片机 P1 口的特点
* V; z5 T- r( r  g3 Q( Y  h2、 switch() case{}多分支选择语句
* V" [$ U0 |. K7 F3、 74HC138 译码器) U2 ?8 J& A' S4 b0 Q

  D8 v: D2 i- E7 o: [, m) o
3 Q) @( }! x3 T* Z8 V新知识:
1 f+ P1 @2 X/ T- ^' ^1、二维数组定义,引用
8 T% M- Z$ j2 L$ W6 \3 F2、if 语句
9 S- B  l; I% d+ M2 h+ Z4 X3、8*8 点阵 LED 编码、扫描方式 一、51 单片机 P1 口的特点4 a  Z* O+ ]- X9 |& |% G: i

. l: c% @' m& u* W# {P1口的要点:% y$ c; C: |1 j& K# ?2 ?
4 Y# _/ J! L2 X3 Y/ g
二、多分支选择语句; R4 n8 j  t1 h+ s5 O, X
前几次课,我们学习了循环语句 for 的用法,知道了 for 语句的执行流程。今天,我们再学 习一个分支语句 switch case default。这种语句把一个表达式的值和一个整数或字符常量 表中的元素逐一比较。发生匹配时,与匹配常数关联的语句被执行。switch 语句的一般形 式如下:
$ ~# P8 }! B$ d& k, Pswitch(expession)
% h$ W+ v7 V# d& R{) \$ O% ?2 {) d3 f3 w, H- Q
case constant1:
# _! Z, m5 S. {9 a- V  l1 h/ W+ U1 C语句 1;
6 ~5 B+ h8 ]/ B4 ~+ K/ P% K# \5 i- k* ~( P
break;
4 t( Y# A( ]4 ]. i% g3 O# ?6 kcase constant2:
/ t" g, U  x8 o/ \' l1 L- C& P语句 2;5 y- L% L$ |- a/ H1 G+ j9 d3 [
break;
5 K! X- x2 F1 Ycase constant3:) ~/ Q' _/ B& x0 b! x( n; r
语句 3; break; default: 语句 4;
  h- h+ W( Z$ r7 \; H6 T+ {5 I3 J}* P7 ?1 g: N) M! \5 e8 |
注意:
) n: D, |/ v, K1、 表达式 expession 必须对整数求值,因此,可使用字符或整数值,但不能使用浮点表达 式。( H/ g1 f/ I) V8 [
2、 表达式的值顺序与 case 语句中的常量逐一比较,发生匹配时,与匹配常数关联的语句 被执行。直到遇到 break 语句或到达 switch 语句结尾时停止。# \  |' P; P( e/ Z) r
3、 default 是可选项。# [2 U! N& g: f" [- [2 r, X
& R+ t- K) s# {0 V1 R) S
三、74HC138 译码器+ d& R) ^  n6 m* x
在我们设计单片机电路的时候,单片机的 IO 数量是有限的,有时并满足不了我们的设计需 求,比如我们正使用的 STC89C52RC 单片机一共是 32 个 IO 口,但是我们为了控制更多的器 件,就要使用一些外围的数字芯片,这种数字芯片由简单的输入逻辑来控制输出逻辑,比如
9 {8 \& ?/ P  j8 L4 H3 q. Z3 |) t74hc138 这个 3-8 译码器。
/ ]! v6 q' k3 a9 Z6 y7 L - p. {- d( B# Q& w
从这个名字来分析,三八译码器,就是把三种输入状态翻译成 8 种输出状态。从图中可以看 到 74HC138 一共有 6 个输入引脚 ,但其中 4、5、6 引脚是使能引脚 ,这三个引脚如果不符 合规定的输入要求,1,2,3 引脚不管你输入的什么电平,Y0 ~ Y7 都是高电平。所以必须 按图示方式连接。大家可以看下面的真值表,输入与输出的对应关系:
) b* u# [3 j7 g+ p; c& K4 z 2 x  o: e1 b" `0 K
四、二维数组
$ U5 N# |$ C6 T  o# F1 c! d定义:6 g" q( F/ `; b- k( j
数组类型        数组名[行数][列数]={元素列表};1 u/ _. d( K5 @  _, q4 w7 S' R
如:char arrzy[3][4] = {1 [; o4 g- |# Y2 e' J. _9 y
{1,2,3,4},3 v$ M% A0 g$ {/ l) h$ I
{5,6,7,8}," ^# E7 @& x# F4 \/ f. ~
{9,10,11,12}," x9 U* a- \4 Y* t& Q: y6 `2 q
};
3 z* o' e; w# [8 X' Y引用:下标法" C6 D; b$ m3 ]

! a4 v2 G- D8 B/ y5 t7 e五、if 语句 if(表达式)
; K' T# q  ~% \' A8 t# o  Z{
7 p+ |$ o! q* |% x0 z语句 1;! J* T1 G2 P! b" J  z# g
}
; Z  M! \# G6 j2 Q& c2 Y; Pelse5 b8 t9 C) u5 \. B2 I6 E+ W
{* C! g1 x( Z; W  O. }. u1 x% x% o
语句 2;
, l: H* h" v: s3 z}
6 u  W- l+ n( f0 I  c当表达式为真时,执行语句 1,否则执行语句 2;其中 else 语句可以省略。 更复杂一点:, _9 T  h. p1 m- X; g2 q
if()) I/ {  W; K7 {# k/ L
{}
0 v% l/ n  f, K( oelse if()) ~/ `% W' f9 L( ^( F7 u
{}
$ e) ~2 p; B7 \
, v, b  a+ L& h# celse2 X# L" {0 L, l3 L& h, K" L
{}
. A9 U; y  |# D0 Z7 v- O% i$ I5 |; b( T% s
六、8*8 点阵 LED 编码、扫描方式6 A; z, S# h5 t& t
! Z" e# R$ o3 r% l5 S0 u
以下是数字 0 的编码
4 T- H1 }" c$ V/ V& T' i( m) B; \  b , i. j* e9 M% k
与 8 段数码管编码一样,按行扫描,空白处是 0,显示为 1

该用户从未签到

2#
发表于 2022-6-1 11:03 | 只看该作者
||ヽ(* ̄▽ ̄*)ノミ|Ю学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-21 03:42 , Processed in 0.078125 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表