您的位置 首页 IOT

AVR单片机-数码管1

八段数码管由八段LED构成,Oslash;各LED阴极或阳极并在一起,称为位选线:共阴、共阳。其余8个引脚各自引出,称为段选线,各段可以分

八段数码管由八段LED构成 ,Ø各LED阴极或阳极并在一同,称为“位选线”:共阴、共阳 。

其他8个引脚各自引出,称为“段选线”,各段能够别离操控 。

运用LED数码管时,要注意区别这两种不同的接法。为了显现数字或字符,有必要对数字或字符进行编码。七段数码管加上一个小数点,合计8段。因此为LED显现器供给的编码正好是一个字节。

共阳极数码管译码表:

0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0   1 2   3 4 5

0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,
6 7 8 9 A B

0x39 , 0x5e , 0x79 , 0x71 , 0x00
C D E F 无显现

共阴极的译码表只需对共阳极的译码表取反就能够得到。

本程序的试验原理图:

源程序:

/*
* 数码管.c
*
* Created: 2011-6-24 17:24:05
* Author: ZYIN
*/
#include <avr/io.h>
unsigned char led0[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

void delay(void)//延时函数
{
long int j;
j=200000;
while(j–);
}
int main(void)
{
DDRF=0xff;//设置PF口为输出
PORTF=0b00000110;//设置74hc573锁存器
DDRC=0xff;
DDRA=0xff;
PORTA=0xff;
while(1)
{
int i;
for(i=0;i<16;i++)
{
PORTC=~(led0[i]+0x80);//循环显现,加0x80意思是把小数点点亮
delay();//延时一下

}
}
}

效果图:AVR studio 5编译成果

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/255569.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部