预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共35页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

目录数码管循环显示0~91.LED数码管 LED数码管是将8个发光二极管封装而成的,每段为一发光二极管,其字形结构如图(a)所示。选择不同字段发光,可显示出不同的字形,例如,当a、b、c、d、e、f、g字段亮时,显示出字符“8”;当a、f、g、c、d字段亮时,显示出字符“5”。图(b)所示为单个LED数码管的引脚排列图,图中com引脚是单个LED数码管的公共端。共阳极数码管——>内部8个LED的阳极连接在一起作为公共引出端; 只有在公共端接高电平时,该数码管才会亮。 共阴极数码管——>内部8个LED的阴极连接在一起作为公共引出端; 只有在公共端接低电平时,该数码管才会亮。2.数码管的字型编码3.数码管的显示方法 (1)动态显示。 ——>一位一位地轮流点亮各位数码管的显示方式。 即在某一时段,只选中一位数码管的“位选端”,并送出相应的字型编码,在下一时段按顺序选通另外一位数码管,并送出相应的字型编码。依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符。这一过程称为动态扫描显示。 (2)静态显示。 ——>指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。 各位数码管相互独立,公共端恒定接地(共阴极)或+5V(共阳极)。每个数码管的八个位段分别与一个八位I/O端口相连。I/O端口只要有字型码输出,数码管就显示给定字符,并保持不变,直到I/O口输出新的段码。(1)74LS245 74LS245是8路同相三态双向数据总线驱动芯片,具有双向三态功能,既可以输出,也可以输入数据。结构如图所示。 A、B:总线端(2).数码管显示电路设计 按照工作任务要求,数码管显示电路是由单片机最小应用系统、一片1位的共阴极LED数码管、一片74LS245驱动芯片外加限流电阻RN1(RX8——>关键词)构成,如图所示。5.程序设计voidmain(void) { while(1) { for(dispcount=0;dispcount<10;dispcount++)//显示0~9十个数字 { P2=table[dispcount];//找到段码送P2口输出,数码管显示字符 delay(); } } }3.2C语言语句结构二、逻辑运算符和逻辑表达式四、switch语句五、循环结构控制语句for语句求解步骤: (1)先求解表达式1; (2)求解表达式2,其值为真,则执行for语句中指定的内嵌语句 (循环体),然后执行第(3)步如果为假,则结束循环; (3)求解表达式3; (4)转回第2步继续执行。多个数码管动态扫描显示2.管脚分配 (1)P0口输出显示段码 P0.0~P0.6通过一片74LS245依次接段码口a~g, P0口I/O输出一定要外接上拉电阻; (2)P1口输出位码 P1.0~P1.5依次接位码口1~6, 如下图所示。二、多个数码管动态显示程序设计#include<AT89X52.h> //包含AT89X52.H头文件 unsignedcharcodeTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; unsignedcharcodeCol[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//位码 voidDelay() { unsignedchari; for(i=0;i<250;i++); } voidmain() //同时显示123456 { unsignedcharj; while(1) { for(j=1;j<7;j++) { P0=Tab[j]; P1=Col[j-1]; //开(共阴)数码管 Delay(); P1=0xff; //关数码管 Delay(); } } }三、C语言数组0~99计数器显示(静态显示)2.引脚分配 (1)P1.0管脚接一个按钮,作为手动计数的按钮 (2)P2.0~P2.6接一个共阴数码管,作为0~99计数的个位数显示 (3)P0.0~P0.6接一个共阴数码管,作为0~99计数的十位数显示二、0-99计数显示程序设计3.计数显示实现分析 (1)单片机对按键的识别的过程处理; (2)单片机对正确识别的按键进行计数,计数满时,又从0开始计数; (3)单片机对计数值要进行数码显示,计数值是16进制数,我们要把其拆开成十位和个位数字分别送出显示。 计数值对10求余,可得个位数字; 计数值对10整除,可得十位数字; (4)通过查表方式,分别显示出个位和十位数字。voidmain(void) //主函数 { Count=0; //计数变量初始为0 P0=table[Count/10]; //十位数码管显示0 P2=table[Count%10]; //个位数码管显示0 whi