03.项目三 数码管显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(表达式) if(表达式1) 语句11 else 语句12 else if(表达式2) 语句21 else 语句22
应当注意if与else的配对关系,C语言规定:else 总是与它上面的最近的if配对
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
swich语句
Switch的一般形式如下:
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
循环结构控制语句
在一个实用的程序中,循环结构是必不可少的。 循环是 反复执行某一部分程序行的操作。通过下面C语言程序, 来看如何利用这些循环语句编写循环程序。
void Delay() void main() { { unsigned char i, j; while(1) for (i=0;i<255;i++) {;} {……} } } 这段程序中有两处用到了循环语句,首先是主程序使用了: while(1) {……} 这样的循环语句写法,在{}中的所有程序将会不断地循环执行, 直到断电为止;其次是延时程序,使用了for循环语句的形式。
switch(表达式) { case 常量表达式1:语句1 case 常量表达式2:语句2 „„ case 常量表达式n:语句n default:语句n+1 }
当表达式的值与某一个case后面的常量表达式相等时,就执行此 case后面的语句; 若所有的case中的常量表达式的值都没有与表达式值匹配的,就 执行default后面的语句; 每一个case的常量表达式的值必须不相同; 各个case和default的出现次序不影响执行结果。
单分支if语句
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
双分支if语句
双分支if语句语句的基本形式为:
if(表达式)语句1 else 语句2 如果表达式的结果为真,则执行语句1,否则执行语句2
双分支if语句
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
swich语句特别说明
执行完一个case后面的语句后,并不会自动跳出switch, 转而去执行其后面的语句; 通常在每一段case的结束加入“break;”语句,使程序退出 switch结构,即终止switch语句的执行。 如: switch (x) { case 1: y=1; case 2: y=2; case 3: y=0; } 假如x的值是1,y=?
多分支if语句
多分支if语句的基本形式为:
if(表达式 1) 语句1 else if(表达式 2) 语句2 else if(表达式 3) 语句3 … else if(表达式 m) 语句m else 语句n
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
if语句的嵌套
当if语句中的语句体又包含一个或多个if语句, 称为if语句的嵌套。其一般形式如下:
• 利用AT89S51 单片机的P1 端口的P1.0-P1.7 连接到一 个共阴数码管的a-h 的笔段上,数码管的公共端接地。 在数码管上循环显示 0-9 数字。
VCC GND
C1
30pF
X1
C2
30pF 19
C3
10uF
U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
若a=10,则!a的值为0,因为10被作为真处理; 如果a=-2,结果与上完全相同,初学时常会误以为负值为假, 所以这里特别提醒注意; 若a=10,b=20,则a&&b的值为1,a||b的结果也为1。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
if语句(P54)
用if语句构成分支结构。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来的 式子,称为逻辑表达式。 C语言编译系统在给出逻辑运算的结果时:
用“1”表示真,而用“0”表示假。 在判断一个量是否是“真”时,以0代表“假”,而以 非0代表“真”,这一点务必要注意。
引出端符号:
A B /G 总线端 总线端 三态允许端(低电平 有效) DIR 方向控制端
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
关系运算符和关系表达式(P77)
所谓“关系运算”实际上是两个值作一个比较, 判断其比较的结果是否符合给定的条件。
关系运算的结果只有2种可能,即“真”和“假”。
其特点是:先判断表达式,后执 行语句。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
do-while语句
直到型循环,即先执行循环体,然后 判断给定的条件,只要条件成立就继 续循环,直到判断出给定的条件不成 立时退出循环。其一般形式如下:
do
循环体语句 while(表达式)
do-while语句特点是先执行循环体, 然后判断循环条件是否成立。 对同一个问题,既可以用while语句 处理,也可以用do-while语句处理, 但是这两个语句是有区别的。
例如:
3>2的结果为真,而3<2 的结果为假。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
关系运算符
C语言一共提供了6种关系运算符:
小于: “<”; 小于等于:“<=”; 大于: “>”; 大于等于:“>=”; 等于: “==”; 不等于: “!=”。
项目三 数码管显示
数码管电路图
共阴数码管
片选
共阳数码管
片选
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
74LS245
74LS245是8路同相三态 双向数据总线驱动芯片, 具有双向三态功能,既可 以输出,也可以输入数据。
/G为低电平有效; DIR=“1”,信号由 A 向 B 传输。
分支结构又称选择结构,它体现了程序的 判断能力。
这种结构根据程序的判断结果,来确定某 些操作是做还是不做,或者从多个操作中 选择一个操作来执行。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
单分支if语句
单分支if语句的基本形式为:
if(表达式)语句 如果表达式的结果为真,则执行语句,否则不执行。
项目三 数码管显示
计算机பைடு நூலகம்学系
单片机应用技术项目教程(C语言版)
for语句
C语言中的for语句使用最为灵活,不仅可以 用于循环次数已经确定的情况,而且可以用 于循环次数不确定而只给出循环结束条件的 情况。for语句的一般形式为:
for(表达式1;表达式2;表达式3) 循环体语句
执行步骤如下:
break;
注意:break语句不能用于循环语句和switch语句之外的任 何其他语句中;break语句是结束整个循环过程,不再判 断执行循环的条件是否成立。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
continue语句
continue语句作用为结束本次循环,即跳过循环体中下面 尚未执行的语句,接着进行下一次是否执行循环的判定。 对于for循环,跳过循环体其余语句,转向循环变量增值 表达式的计算;对于while和do-while循环,跳过循环体其 余语句,但转向循环继续条件的判定。 一般形式:
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
while语句
当型循环,即当给定的条件成立 时,执行循环体部分,执行完毕 回来再次判断条件,如果条件成 立继续循环,否则退出循环。其 一般形式如下:
while(表达式) 循环体语句 当表达式为非0值(真)时,执行 while语句中的内嵌语句。
(1)先求解表达式1; (2)求解表达式2,其值为真,则执行for语句中指 定的内嵌语句(循环体),然后执行第(3)步, 如果为假,则结束循环; (3)求解表达式3; (4)转回第2步继续执行。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
break语句
break语句强行结束循环,转向执行循环语句的下一条语 句。 在一个循环程序中, 可以通过循环语句中的表达式来控 制循环程序是否结束。除此之外,还可以通过break语句 从循环体内跳出循环体,即提前结束循环,接着执行循环 下面的语句。 一般形式:
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
数码管显示程序(C程序)
1. #include <AT89X51.H> 2. unsigned char code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x 6f}; 3. unsigned char dispcount; 4. void delay (void) 5. { 6. unsigned char i,j,k; 7. for(i=40;i>0;i--) 8. for(j=40;j>0;j--) 9. for(k=248;k>0;k--); 10. } 1. void main(void) 2. { 3. while(1) 4. { 5. for(dispcount=0;dispcount< 10;dispcount++) 6. { 7. P1=table[dispcount]; 8. delay (); 9. } 10. } 11. }
例如:x1=3>2的结果是x1等于1 原因是3>2的结果是“真”,即其结果为1,该结果被 “=”号赋给了x1。 又如:x2=3<=2的结果是 x2=0,请自行分析。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
逻辑运算符
C语言提供了三种逻辑运算符:
“&&”(逻辑与); “||”(逻辑或); “!”(逻辑非)。
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
教学目的
掌握数字、字符转换成显示段码的软件译码方法; 掌握静态显示的原理; 掌握动态显示的原理; 掌握数码管程序设计的方法。 P130
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
工作模块6 数码管循环显示 0~9
计算机科学系
单片机应用技术项目教程(C语言版)
关系表达式
用关系运算符将两个表达式连接起来的式子,称 为关系表达式。
例如:a>b,a+b>b+c,(a=3)>=(b=5)
在 C 语言中,没有专门的逻辑型变量,如果运算 的结果是“真”,用数值“1”表示,而运算的结 果是“假”则用数值“0”表示。
R9
10k
工作模块6
CRYSTAL
18
XTAL2
9
RST
29 30 31
PSEN ALE EA
U2
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 18 17 16 15 14 13 12 11 B0 B1 B2 B3 B4 B5 B6 B7 A0 A1 A2 A3 A4 A5 A6 A7 CE AB/BA 74LS245 2 3 4 5 6 7 8 9 19 1 1 2 3 4 5 6 7 8 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
思 考
如何在数码管上循环显示 9 - 0数字?
项目三 数码管显示
计算机科学系
单片机应用技术项目教程(C语言版)
认识数码管(P132)
• 数码管结构图
A
F
G
B
E
C
D
项目三 数码管显示
DP
计算机科学系
单片机应用技术项目教程(C语言版)
相关文档
最新文档