单片机应用技术项目教程(C语言版).ppt
项目三数码管显示
教学目的
掌握数字、字符转换成显示段码的软件译码方法;
掌握静态显示的原理;
掌握动态显示的原理;
掌握数码管程序设计的方法。
P130
工作模块6 数码管循环显示 0~9
利用AT89S51 单片机的P1 端口的P1.0-P1.7 连接到一个共阴数码管的a-h 的笔段上,数码管的公共端接地。在数码管上循环显示 0-9 数字。
工作模块6
数码管显示程序(C程序)
#include
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char dispcount;
void delay (void)
{
unsigned char i,j,k;
for(i=40;i>0;i--)
for(j=40;j>0;j--)
for(k=248;k>0;k--);
}
void main(void)
{
while(1)
{
for(dispcount=0;dispcount<10;dispcount++)
{
P1=table[dispcount];
delay ();
}
}
}
思 考
如何在数码管上循环显示 9 - 0数字?
认识数码管(P132)
数码管结构图
数码管电路图
共阴数码管
共阳数码管
74LS245
74LS245是8路同相三态双向数据总线驱动芯片,具有双向三态功能,既可以输出,也可以输入数据。
/G为低电平有效;
DIR=“1”,信号由 A 向 B 传输。
引出端符号:
A 总线端
B 总线端
/G 三态允许端(低电平
有效)
DIR 方向控制端
关系运算符和关系表达式(P77)
所谓“关系运算”实际上是两个值作一个比较,判断其比较的结果是否符合给定的条件。
关系运算的结果只有2种可能,即“真”和“假”。
例如:
3>2的结果为真,而3<2 的结果为假。
关系运算符
C语言一共提供了6种关系运算符:
小于: “<”;
小于等于:“<=”;
大于: “>”;
大于等于:“>=”;
等于: “==”;
不等于: “!=”。
关系表达式
用关系运算符将两个表达式连接起来的式子,称为关系表达式。
例如:a>b,a+b>b+c,(a=3)>=(b=5)
在 C 语言中,没有专门的逻辑型变量,如果运算的结果是“真”,用数值“1”表示,而运算的结果是“假”则用数值“0”表示。
例如:x1=3>2的结果是x1等于1
原因是3>2的结果是“真”,即其结果为1,该结果被“=”号赋给了x1。
又如:x2=3<=2的结果是 x2=0,请自行分析。
逻辑运算符
C语言提供了三种逻辑运算符:
“&&”(逻辑与);
“||”(逻辑或);
“!”(逻辑非)。
逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来的式子,称为逻辑表达式。
C语言编译系统在给出逻辑运算的结果时:
用“1”表示真,而用“0”表示假。
在判断一个量是否是“真”时,以0代表“假”,而以非0代表“真”,这一点务必要注意。
若a=10,则!a的值为0,因为10被作为真处理;
如果a=-2,结果与上完全相同,初学时常会误以为负值为假,所以这里特别提醒注意;
若a=10,b=20,则a&&b的值为1,a||b的结果也为1。
if语句(P54)
用if语句构成分支结构。
分支结构又称选择结构,它体现了程序的判断能力。
这种结构根据程序的判断结果,来确定某些操作是做还是不做,或者从多个操作中选择一个操作来执行。
单分支if语句
单分支if语句的基本形式为:
if(表达式)语句
如果表达式的结果为真,则执行语句,否则不执行。
单分支if语句
双分支if语句
双分支if语句语句的基本形式为:
if(表达式)语句1 else 语句2
如果表达式的结果为真,则执行语句1,否则执行语句2
双分支if语句
多分支if语句
多分支if语句的基本形式为:
if(表达式 1) 语句1
else if(表达式 2) 语句2
else if(表达式 3) 语句3
…
else if(表达式 m) 语句m
else 语句n
if语句的嵌套
当if语句中的语句体又包含一个或多个if语句,称为if语句的嵌套。其