数码管显示控制

上传人:cl****1 文档编号:571251140 上传时间:2024-08-09 格式:PPT 页数:35 大小:1,001KB
返回 下载 相关 举报
数码管显示控制_第1页
第1页 / 共35页
数码管显示控制_第2页
第2页 / 共35页
数码管显示控制_第3页
第3页 / 共35页
数码管显示控制_第4页
第4页 / 共35页
数码管显示控制_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《数码管显示控制》由会员分享,可在线阅读,更多相关《数码管显示控制(35页珍藏版)》请在金锄头文库上搜索。

1、数码管显示控制Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望数码管循环显示数码管循环显示数码管循环显示数码管循环显示0 09 9目目录录 利用AT89S52单片机的P1口的P2.0P2.6七个引脚 ,使其依次连接到一个共阴极LED数码管的ah七个位段控制引脚上,数码管的公共端接地,编写程序使数码管上循环显示 09 十个数字。工作任务工作任务预备知识:预备知识: 单片机系统中人机交流的显示部分人机交流的显示部分主要有以下三种构成方式: 1、LED发光二极管显示(已学); 2、LED数

2、码管显示(本章学习); 3、LCD液晶显示;1 1LEDLED数码管数码管数码管数码管 LEDLED数码管数码管数码管数码管是将是将是将是将8 8个发光二极管封装个发光二极管封装个发光二极管封装个发光二极管封装而成的而成的而成的而成的,每段为一发光二极管,每段为一发光二极管,每段为一发光二极管,每段为一发光二极管,其字形结构如图其字形结构如图其字形结构如图其字形结构如图(a)(a)所示。选择不同字段发光,可显示出不同的字形所示。选择不同字段发光,可显示出不同的字形所示。选择不同字段发光,可显示出不同的字形所示。选择不同字段发光,可显示出不同的字形,例例例例如,当如,当如,当如,当a a、b b

3、、c c、d d、e e、f f、g g字段亮时,显示出字符字段亮时,显示出字符字段亮时,显示出字符字段亮时,显示出字符“ “8 8” ”;当当当当a a、f f、g g、c c、d d字字字字段亮时,显示出段亮时,显示出段亮时,显示出段亮时,显示出字符字符字符字符“ “5 5” ”。图图图图(b)(b)所示所示所示所示为单个为单个为单个为单个LEDLED数码管数码管数码管数码管的引脚排的引脚排的引脚排的引脚排列图,列图,列图,列图,图图图图中中中中comcom引脚是单个引脚是单个引脚是单个引脚是单个LEDLED数码管数码管数码管数码管的公共端。的公共端。的公共端。的公共端。(a)字型结构图返

4、返回回本本节节共共共共阳极数码管阳极数码管阳极数码管阳极数码管 内部内部内部内部8 8个个个个LEDLED的的的的阳极阳极阳极阳极连接在一起作为公共引出端;连接在一起作为公共引出端;连接在一起作为公共引出端;连接在一起作为公共引出端; 只有在只有在只有在只有在公共端公共端公共端公共端接高电平时,接高电平时,接高电平时,接高电平时,该数码管才会亮。该数码管才会亮。该数码管才会亮。该数码管才会亮。共共共共阴阴阴阴极数码管极数码管极数码管极数码管 内部内部内部内部8 8个个个个LEDLED的的的的阴极阴极阴极阴极连接在一起作为公共引出端;连接在一起作为公共引出端;连接在一起作为公共引出端;连接在一起

5、作为公共引出端; 只有在只有在只有在只有在公共端公共端公共端公共端接低电平时接低电平时接低电平时接低电平时,该数码管才会亮该数码管才会亮该数码管才会亮该数码管才会亮。LEDLED数码管引脚及内部结构数码管引脚及内部结构数码管引脚及内部结构数码管引脚及内部结构 返返回回本本节节2. 2. 数码管的字型编码数码管的字型编码数码管的字型编码数码管的字型编码 D7 D6 D5 D4 D3 D2 D1 D0dpgfedcba数码管编码规则数码管编码规则数码管编码规则数码管编码规则显示字符显示字符显示字符显示字符共阴极字型码共阴极字型码共阴极字型码共阴极字型码共阳极字型码共阳极字型码共阳极字型码共阳极字型

6、码显示字符显示字符显示字符显示字符共阴极字型码共阴极字型码共阴极字型码共阴极字型码共阳极字型码共阳极字型码共阳极字型码共阳极字型码03FHC0H87FH80H106HF9H96FH90H25BHA4HA77H88H34FHB0HB7CH83H466H99HC39HC6H56DH92HD5EHA1H67DH82HE79H86H707HF8HF71H8EHLEDLED数码管字型编码表数码管字型编码表数码管字型编码表数码管字型编码表 返返回回本本节节3. 3. 数码管的显示方法数码管的显示方法数码管的显示方法数码管的显示方法(1 1)动态显示。)动态显示。一位一位地一位一位地轮流点亮轮流点亮轮流点亮

7、轮流点亮各位数码管的显示方式。各位数码管的显示方式。 即在某一时段,只选中一位数码管的即在某一时段,只选中一位数码管的“ “位选端位选端” ”,并送出相应的,并送出相应的字型编码,在下一时段按顺序选通另外一位数码管,并送出相应的字字型编码,在下一时段按顺序选通另外一位数码管,并送出相应的字型编码。依此规律循环下去,即可使各位数码管分别间断地显示出相型编码。依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符。这一过程称为动态扫描显示。应的字符。这一过程称为动态扫描显示。(2 2)静态显示。)静态显示。指数码管显示某一字符时,相应的发光二极管指数码管显示某一字符时,相应的发光二极管恒定导

8、通恒定导通恒定导通恒定导通或或恒定截止恒定截止恒定截止恒定截止。 各位数码管相互独立,公共端恒定接地(共阴极)或各位数码管相互独立,公共端恒定接地(共阴极)或+5V+5V(共阳(共阳极)。每个数码管的八个位段分别与一个八位极)。每个数码管的八个位段分别与一个八位I/OI/O端口相连。端口相连。I/OI/O端口端口只要有字型码输出,数码管就显示给定字符,并保持不变,直到只要有字型码输出,数码管就显示给定字符,并保持不变,直到I/OI/O口输出新的段码。口输出新的段码。返返回回本本节节(1 1) 74LS24574LS245 74LS245是8路同相三态双向数据总线驱动芯片,具有双向三态功能,既可

9、以输出,也可以输入数据。结构如图所示。A、B : 总线端 : ( )三态允许端(低电平有效) DIR : ( ) 方向控制端(DIR=“1”,信号由 A 向 B 传输;反之,信号由B传向A) 4 4。电路设计。电路设计。电路设计。电路设计返返回回本本节节(2 2). . 数码管显示电路设计数码管显示电路设计数码管显示电路设计数码管显示电路设计 按照工作任务要求,数码管显示电路是由单片机最小应用系统、一片1位的共阴极LED数码管、一片74LS245驱动芯片外加限流电阻限流电阻限流电阻限流电阻RN1(RX8关键词关键词)构成,如图所示。返返回回本本节节5.5.程序设计程序设计程序设计程序设计1.1

10、.数码管显示功能实现分析数码管显示功能实现分析 由于显示的数字由于显示的数字 0 09 9 的字型码没有规律可循,只能采用的字型码没有规律可循,只能采用查表查表查表查表的方的方式来完成我们所需的要求了。这样我们按着数字式来完成我们所需的要求了。这样我们按着数字0 09 9 的顺序,把每个的顺序,把每个数字的字型码按顺序排好!数字的字型码按顺序排好!建立表格(建立表格(建立表格(建立表格(用用数组数组数组数组来实现)来实现)如下所示:如下所示:unsigned char code table=unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x

11、6d,0x7d,0x07,0x7f,0x6f;0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;2. 2. 数码管显示程序如下:数码管显示程序如下:数码管显示程序如下:数码管显示程序如下:#include /#include /包含包含AT89X52.HAT89X52.H头文件头文件unsigned char code unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x

12、7d,0x07,0x7f,0x6f; unsigned char dispcount; unsigned char dispcount; void delay (void) void delay (void) unsigned char i,j,k;unsigned char i,j,k;for(i=40;i0;i-)for(i=40;i0;i-)for(j=40;j0;j-)for(j=40;j0;j-)for(k=248;k0;k-);for(k=248;k0;k-); 返返回回本本节节void main(void) void main(void) while(1) while(1) fo

13、r(dispcount=0;dispcount10;dispcount+) / for(dispcount=0;dispcount两个值作一个比较,判断其比较的结果是否符合两个值作一个比较,判断其比较的结果是否符合给定的条件。关系运算的结果只有给定的条件。关系运算的结果只有2 2种可能,即种可能,即“ “真真” ”和和“ “假假” ”。 二、逻辑运算符和逻辑表达式二、逻辑运算符和逻辑表达式二、逻辑运算符和逻辑表达式二、逻辑运算符和逻辑表达式 关系运算符关系运算符 描述的是单个条件。描述的是单个条件。 1. 1. 逻辑运算符逻辑运算符逻辑运算符逻辑运算符(1 1)“ “&”&”(逻辑与)是二元运

14、算符,当且仅当两个运算量的(逻辑与)是二元运算符,当且仅当两个运算量的值都为值都为值都为值都为“ “真真真真” ”时,运算时,运算结果是结果是结果是结果是“ “真真真真” ”,否则为假;否则为假;(2 2)“ “|”|”(逻辑或)是二元运算符,当且仅当两个运算量的(逻辑或)是二元运算符,当且仅当两个运算量的值都为值都为值都为值都为“ “假假假假” ”时时,运算,运算结果是结果是结果是结果是“ “假假假假” ”,否则为真;否则为真;(3 3)“ “!” ”(逻辑非)是一元运算符,当运算量的值为(逻辑非)是一元运算符,当运算量的值为“ “真真” ”时,运算结果是时,运算结果是“ “假假” ”,当运

15、算量的值为,当运算量的值为“ “假假” ”时,运算结果是时,运算结果是“ “真真” ”。2. 2. 逻辑表达式逻辑表达式逻辑表达式逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来的式子,称为逻辑表用逻辑运算符将关系表达式或逻辑量连接起来的式子,称为逻辑表达式。达式。 一般逻辑表达式用于描述多个条件的组合。一般逻辑表达式用于描述多个条件的组合。 注意:注意:注意:注意:对于参与运算的量,只要是非零,就被当作是只要是非零,就被当作是只要是非零,就被当作是只要是非零,就被当作是“ “真真真真” ”。 四、四、四、四、switch switch 语句语句语句语句 在多分支程序中,当分支较多时,使用

16、在多分支程序中,当分支较多时,使用 if if 嵌套程序冗长而且可读性嵌套程序冗长而且可读性降低。此时可使用降低。此时可使用 C C 语言提供的语言提供的 switch switch 语句。语句。 switchswitch(表达式)(表达式) case case 常量表达式常量表达式1 1:语句:语句1 1 case case 常量表达式常量表达式2 2:语句:语句2 2 case case 常量表达式常量表达式n n:语句:语句n n default default: 语句语句n+1n+1 注意事项:注意事项:注意事项:注意事项:(1 1)各个)各个casecase的常量表达式的值必须不同;

17、的常量表达式的值必须不同;(2 2)注意)注意breakbreak语句的使用;语句的使用;(3 3)defaultdefault子句可以省略不写子句可以省略不写( (除非有必要除非有必要) )。五、循环结构控制语句五、循环结构控制语句五、循环结构控制语句五、循环结构控制语句 1.while1.while语句语句其特点是:先判断表达式,后执行语句。其特点是:先判断表达式,后执行语句。2. do-while2. do-while语句语句do-whiledo-while语句特点是先执行循环体,然后判断循环条件是否成立。语句特点是先执行循环体,然后判断循环条件是否成立。 其一般形式如下:其一般形式如下

18、:dodo 循环体语句循环体语句while(while(表达式表达式); );注意注意注意注意“ “ ;” ”不可少。不可少。不可少。不可少。whilewhile和和和和do-while do-while 区别区别区别区别:前者若条件不成立,则不执行循环:前者若条件不成立,则不执行循环 体;而后者即使条件不成立,也要体;而后者即使条件不成立,也要 执行循环体语句执行循环体语句1 1次。次。3. for3. for语句语句语句语句forfor(表达式(表达式1 1;表达式;表达式2 2;表达式;表达式3 3)语句)语句两无限循环两无限循环两无限循环两无限循环:for(;) for(;) ;whi

19、le(1)while(1); for for 语句求解步骤:语句求解步骤:(1 1)先求解表达式)先求解表达式1 1;(2 2)求解表达式)求解表达式2 2,其值为真,则执行,其值为真,则执行forfor语句中指定的内嵌语句语句中指定的内嵌语句(循环体),然后执行第(循环体),然后执行第(3 3)步如果为假,则结束循环;)步如果为假,则结束循环;(3 3)求解表达式)求解表达式3 3;(4 4)转回第)转回第2 2步继续执行。步继续执行。breakbreak语句语句语句语句: :breakbreak语句语句结束整个循环过程,不再判断循环条件是否成立。结束整个循环过程,不再判断循环条件是否成立。

20、breakbreak语句语句只能用于循环语句和只能用于循环语句和switchswitch语句中。语句中。 continuecontinue语句:语句:语句:语句:continuecontinue语句语句只结束本次循环,而不是终止整个循环的执行。只结束本次循环,而不是终止整个循环的执行。continuecontinue语句语句只能用于循环语句中;只能用于循环语句中; 多个数码管动态扫描显示多个数码管动态扫描显示目目录录 显示器由显示器由 6 6 个共阴极个共阴极 LED LED 数码管构成,使用数码管构成,使用 AT89S52 AT89S52 单片机,单片机,P0 P0 口输出显示段码,经由一片

21、口输出显示段码,经由一片 74LS245 74LS245 驱动输出给驱动输出给 LED LED 数码管,数码管,P1 P1 口输出位码(片选)给口输出位码(片选)给 LED LED 数码管。通过动态扫描程序使数码管。通过动态扫描程序使 6 6 个数码个数码管显示管显示 “ “123456”123456”。工作任务:工作任务:工作任务:工作任务:一、多个数码管动态显示电路设计一、多个数码管动态显示电路设计一、多个数码管动态显示电路设计一、多个数码管动态显示电路设计 1.1.电路构成电路构成电路构成电路构成(1 1)单片机最小应用系统)单片机最小应用系统(2 2)一片)一片74LS24574LS2

22、45驱动芯片构成驱动芯片构成(3 3)限流排阻()限流排阻(RX8RX8) (4 4)6 6位数码管位数码管2.2.管脚分配管脚分配管脚分配管脚分配(1 1)P0P0口输出显示段码口输出显示段码P0.0P0.0P0.6P0.6通过一片通过一片74LS24574LS245依次接段码口依次接段码口a ag g,P0P0口口I/OI/O输出一定要外接上拉电阻;输出一定要外接上拉电阻;(2 2)P1P1口输出位码口输出位码P1.0P1.0P1.5P1.5依次接位码口依次接位码口1 16 6, 如下图所示。如下图所示。电路图改进措施二、多个数码管动态显示程序设计二、多个数码管动态显示程序设计二、多个数码

23、管动态显示程序设计二、多个数码管动态显示程序设计 1 1多个数码管动态显示功能实现分析多个数码管动态显示功能实现分析多个数码管动态显示功能实现分析多个数码管动态显示功能实现分析动态扫描动态扫描动态扫描动态扫描 逐个控制各个数码管的逐个控制各个数码管的COMCOM端使各个数码管端使各个数码管轮流点轮流点轮流点轮流点亮亮亮亮。在轮流点亮数码管的扫描过程中,每位数码管的点亮时间极为。在轮流点亮数码管的扫描过程中,每位数码管的点亮时间极为短暂(约短暂(约1ms1ms)。但由于人的)。但由于人的视觉暂留视觉暂留视觉暂留视觉暂留现象及发光现象及发光二极管的余辉二极管的余辉二极管的余辉二极管的余辉,给人的印

24、象就是一组稳定的显示数据。给人的印象就是一组稳定的显示数据。(1 1)优点)优点)优点)优点可以节省可以节省I/OI/O端口资源;端口资源;硬件电路也较简单。硬件电路也较简单。(2 2)缺点)缺点)缺点)缺点显示稳定度不如静态显示方式;显示稳定度不如静态显示方式;占用了更多的占用了更多的CPUCPU时间。时间。2. 2. 动态扫描优缺点动态扫描优缺点动态扫描优缺点动态扫描优缺点 3. 3. 动态扫描程序如下示动态扫描程序如下示动态扫描程序如下示动态扫描程序如下示#include #include / /包含包含包含包含AT89X52.HAT89X52.H头文件头文件头文件头文件unsigned

25、 char code Tab=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;unsigned char code Tab=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;unsigned char code Col=0xfe,0xfd,0xfb,0xf7,0xef,0xdf; /unsigned char code Col=0xfe,0xfd,0xfb,0xf7,0xef,0xdf; /位码位码位码位码void Delay()void Delay() unsigned char i; un

26、signed char i; for(i=0;i250;i+); for(i=0;i250;i+); void main() void main() / /同时显示同时显示同时显示同时显示123456123456 unsigned char j; unsigned char j; while(1) while(1) for(j=1;j7;j+) for(j=1;j 指数码管显示某一字符时,相应的发光二极管指数码管显示某一字符时,相应的发光二极管恒定导通恒定导通恒定导通恒定导通或或恒定截止恒定截止恒定截止恒定截止。2. 2. 静态显示的优缺点静态显示的优缺点静态显示的优缺点静态显示的优缺点(1

27、1)优点)优点)优点)优点较小的电流就可以获得较高的亮度;较小的电流就可以获得较高的亮度;占用占用CPUCPU时间较少;时间较少;编程简单;编程简单;显示便于检测和控制。显示便于检测和控制。(2 2)缺点)缺点)缺点)缺点占用较多的占用较多的I/OI/O口线;口线;硬件电路复杂,成本高;硬件电路复杂,成本高;只适合显示位数较少的场合。只适合显示位数较少的场合。 3. 计数显示实现分析计数显示实现分析 (1)单片机对按键的识别的过程处理;(2)单片机对正确识别的按键进行计数,计数满时,又从0开始计数;(3)单片机对计数值要进行数码显示,计数值是16进制数,我们要把其拆开成十位和个位数字分别送出显

28、示。计数值对10求余,可得个位数字;计数值对10整除,可得十位数字;(4)通过查表方式,分别显示出个位和十位数字。4. 04. 09999计数显示计数显示计数显示计数显示c c语言程序语言程序语言程序语言程序 #include #include / /包含包含AT89X52.HAT89X52.H头文件头文件unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66, unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f; 0x6d,0x7d,0x07,0x7

29、f,0x6f; unsigned char Count; unsigned char Count; / /定义变量放置计数数值定义变量放置计数数值void delay10ms(void) void delay10ms(void) / /定义定义10ms10ms延时函数延时函数 void main(void) void main(void) / /主函数主函数 Count=0; Count=0; / /计数变量初始为计数变量初始为0 0 P0=tableCount/10; P0=tableCount/10; / /十位数码管显示十位数码管显示0 0 P2=tableCount%10; P2=ta

30、bleCount%10; / /个位数码管显示个位数码管显示0 0 while(1) while(1) / /按键扫描,计数显示处理按键扫描,计数显示处理 if(P1_0=0) if(P1_0=0) / /键按下?键按下? delay10ms(); delay10ms(); / /延时去抖动延时去抖动 if(P1_0=0) if(P1_0=0) / /确定键按下确定键按下 Count+; Count+; / /计数加计数加1 1 if(Count=100) if(Count=100) / /计数到计数到100100? Count=0; Count=0; / /到到100100回回0 0 P0=

31、tableCount/10; P0=tableCount/10; / /显示十位数显示十位数 P2=tableCount%10; P2=tableCount%10; / /显示个位数显示个位数 while(P1_0=0); while(P1_0=0); / /等键释放等键释放 C C 语言程序是由一个个函数构成的,函数是语言程序是由一个个函数构成的,函数是C C程序的基本模程序的基本模块,是构成结构化程序的基本单元。块,是构成结构化程序的基本单元。一个一个C C语言程序,是由一个语言程序,是由一个main()main()函数(又称主函数)和若函数(又称主函数)和若干个其它函数结合而成的,有且仅

32、有一个干个其它函数结合而成的,有且仅有一个main()main()函数。函数。C C语言程序总语言程序总是从是从main()main()函数开始执行。函数开始执行。三、三、三、三、C C语言函数语言函数语言函数语言函数 1.1.函数的分类函数的分类函数的分类函数的分类(1 1)从用户的角度)从用户的角度一类是标准函数一类是标准函数( (系统提供的库函数,用户可直接使用系统提供的库函数,用户可直接使用) );一类是用户自定义函数一类是用户自定义函数( (用户根据根据问题需要自己定义,以解决用用户根据根据问题需要自己定义,以解决用户的专门问题户的专门问题) )。(2 2)从函数定义的形式上划分)从

33、函数定义的形式上划分无参数函数;无参数函数;有参数函;有参数函;空函数。空函数。 函数定义的一般形式:函数定义的一般形式:函数类型说明符函数类型说明符 函数名函数名( (形式参数表形式参数表) ) 函数体函数体 a a) 无参数函数无参数函数无参数函数的定义形式为:无参数函数的定义形式为:函数类型说明符函数类型说明符函数类型说明符函数类型说明符 函数名函数名函数名函数名( )( )函数体语句函数体语句函数体语句函数体语句如本例中的如本例中的void main()void main()就是一个无参数函数。就是一个无参数函数。b b)有参数函数)有参数函数有参数函数的定义形式为:有参数函数的定义形

34、式为:函数类型说明符函数类型说明符函数类型说明符函数类型说明符 函数名函数名函数名函数名( (形式参数表形式参数表形式参数表形式参数表) )函数体语句函数体语句函数体语句函数体语句2 2函数的调用函数的调用函数的调用函数的调用函数调用的一般形式如下:函数调用的一般形式如下:函数名函数名 ( (实参列表实参列表); );(1 1)说明:)说明:)说明:)说明:1 1)在实参表中,实参的个数与顺序必须和形参的个数与顺序相同,)在实参表中,实参的个数与顺序必须和形参的个数与顺序相同, 实参的数据类型必须和对应的形参数据类型相同。实参的数据类型必须和对应的形参数据类型相同。 2 2)无参数调用时,调用

35、的函数名后括号不能省略。)无参数调用时,调用的函数名后括号不能省略。3 3)函数间可以互相调用,但不能调用)函数间可以互相调用,但不能调用main()main()函数。函数。(2 2)函数三种调用方式)函数三种调用方式)函数三种调用方式)函数三种调用方式1 1)函数语句。)函数语句。 形式:函数名形式:函数名(); (); egeg:delay10msdelay10ms();();2 2)函数表达式。)函数表达式。eg: result=3*max(a,b)eg: result=3*max(a,b);3 3)函数参数。被调函数作为一个函数的实参。)函数参数。被调函数作为一个函数的实参。egeg:

36、m=maxm=max(maxmax(a,ba,b),c,c););(3 3)一个函数调用另一个函数必须要具备的条件)一个函数调用另一个函数必须要具备的条件)一个函数调用另一个函数必须要具备的条件)一个函数调用另一个函数必须要具备的条件1 1)如果使用)如果使用库函数库函数库函数库函数,一般还需在文件开头用,一般还需在文件开头用#include#include命令将调用库函命令将调用库函数所需的有关信息包含到本文件中来。数所需的有关信息包含到本文件中来。2 2)如果)如果自定义函数自定义函数自定义函数自定义函数,且该函数与调用它的函数(主调函数)在同一个,且该函数与调用它的函数(主调函数)在同一

37、个文件中,一般应在主调函数中对被调用函数作声明,除非被调函数的文件中,一般应在主调函数中对被调用函数作声明,除非被调函数的定义在主调函数之前。如果不是在本文件中定义的函数,那么在程序定义在主调函数之前。如果不是在本文件中定义的函数,那么在程序开始要用开始要用externextern修饰符进行函数原型说明。修饰符进行函数原型说明。3 3函数的返回值函数的返回值函数的返回值函数的返回值在在C C语言中,一般使用语言中,一般使用 return return 语句由被调函数向主调函数返回语句由被调函数向主调函数返回值,该语句有下列用途:值,该语句有下列用途:(1 1)它能立即从所在的函数中退出,返回到

38、调用它的程序中去;)它能立即从所在的函数中退出,返回到调用它的程序中去;(2 2)返回一个值给调用它的函数。)返回一个值给调用它的函数。 返回语句一般有如下的形式:返回语句一般有如下的形式:return;return;return return 表达式表达式; ;return(return(表达式表达式); );函数返回值类型:函数返回值类型:函数返回值类型:函数返回值类型: 自定义函数的返回值类型;自定义函数的返回值类型; 如无定义,系统默认为一如无定义,系统默认为一 int int 型的值。型的值。 七段字形译码器七段字形译码器74LS47应用应用目目录录 74LS4774LS47是是4

39、4位二进制编码位二进制编码十进制数(十进制数(BCDBCD码)从码)从A A、B B、C C和和D D引脚输入,译码成七段字形码,引脚输入,译码成七段字形码,从从QAQA、QBQB、QCQC、QDQD、QEQE、QFQF和和QGQG引脚输出。引脚输出。 74LS4774LS47是输出低是输出低电平有效的七段字形译码器。电平有效的七段字形译码器。 输入端由高到低依次为输入端由高到低依次为DCBADCBA。 常用的常用的BCD BCD 码译码器有码译码器有TTL TTL 之之74467446、74477447、74487448、7449 7449 与与CMOS CMOS 之之4511 4511 等

40、等。其中等等。其中74467446、7447 7447 必须使用共阳极七段显示器,必须使用共阳极七段显示器,74487448、74497449、45114511等则使用共阴极七段显示器。等则使用共阴极七段显示器。 1 1)LTLT:试灯输入,是为了检查数码管各段是否能正常发光而:试灯输入,是为了检查数码管各段是否能正常发光而设置的。当设置的。当LT=0LT=0时,无论输入时,无论输入A A,B B,C C,D D为何种状态,译码器输出为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示均为低电平,若驱动的数码管正常,是显示8 8。 2 2)BIBI:灭灯输入,是为控制多位数码显示的灭灯

41、所设置的。:灭灯输入,是为控制多位数码显示的灭灯所设置的。BI=0BI=0时。不论时。不论LTLT和输入和输入A A,B B,C C,D D为何种状态,译码器输出均为高为何种状态,译码器输出均为高电平,使共阳极电平,使共阳极7 7段数码管熄灭。段数码管熄灭。 3 3)RBIRBI:灭零输入,它是为使不希望显示的:灭零输入,它是为使不希望显示的0 0熄灭而设定的。熄灭而设定的。当对每一位当对每一位A=B=C=D=0A=B=C=D=0时,本应显示时,本应显示0 0,但是在,但是在RBI=0RBI=0作用下,使译作用下,使译码器输出全码器输出全1 1。其结果和加入灭灯信号的结果一样,将。其结果和加入

42、灭灯信号的结果一样,将0 0熄灭。熄灭。 4 4)RBORBO:灭零输出,它和灭灯输入:灭零输出,它和灭灯输入BIBI共用一端,两者配合使共用一端,两者配合使用,可以实现多位数码显示的灭零控制。用,可以实现多位数码显示的灭零控制。#include #include #define uchar unsigned char#define uchar unsigned char/delay :1ms/delay :1ms/crystal:12MHz/crystal:12MHzvoid delay_1ms(uchar m) void delay_1ms(uchar m) uchar a,b,c; uc

43、har a,b,c; for(a=m;a!=0;a-)for(a=m;a!=0;a-) for(b=2;b!=0;b-) for(b=2;b!=0;b-) for(c=247;c!=0;c-); for(c=247;c!=0;c-); void main()void main() uchar i=0; uchar i=0; P2=(i/10)4)|(i%10); P2=(i/10)99) while(i99) i=0; i=0; while(P1_0=0); while(P1_0=0); P2=(i/10)4)|(i%10); P2=(i/10)4)|(i%10); 程序代码如下:程序代码如下:程序代码如下:程序代码如下:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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