八段数码管由八段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
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编译结果
关键字:AVR单片机 数码管
引用地址:
AVR单片机-数码管1
推荐阅读最新更新时间:2024-03-16 14:24
AVR单片机的RTOS-AVRX应用
摘 要 :详细介绍AVR系列单片机的专用实时嵌入式操作系统AVRX的特点,并以ATmega16单片机为平台,结合AVR单片机应用实例分析AVRX的内核代码及移植方法,并对系统的相关性能进行测试。采用AVRX可以大大简化程序设计,满足实时要求,降低编程难度,提高系统可靠性。本文为在AVR单片机上进行嵌入式系统开发提供了参考。 关键词 : RTOS AVRX AVR单片机移植 系统测试 引 言 随着技术的发展,嵌入式系统的设计及应用对人们的生活产生了很大的影响,并将逐渐改变人们未来的生活方式。在特定的操作系统上开发应用程序,可以使开发人员忽略掉很多底层硬件细节,使得应用程序调试更方便、易于维护、开发周期缩短并且降低开发成本,因
[单片机]
51实验6:最后一个数码管显示0-9的任意一个数(不要求会变
#include reg52.h typedef unsigned int u16; typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; void delay(u16 i) { while(i--); } u8 code smgduan ={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79, 0x71}; void DigDisplay() { //位置 switch(0)
[单片机]
DS1302数码管显示 时间日期可调C语言程序设计
#include at89x52.h #include DS1302.h //定义共阳极字型码0123456789- unsigned char code dispcode ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; unsigned char time ={0,0,0,0,0,0,0,0};//用来储存时间 unsigned char date ={0,0,0,0,0,0,0,0};//用来储存日期 SYSTEMTIME time1; //在ds1302.h文件中已经定义了一个名字为SYSTEMTIME的结构体,在这里我们定义一个变量名
[单片机]
STC89C52单片机 数码管动态显示
数码管动态显示 静态与动态显示 动态显示 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。 数组的定义与引用 数组是一组有序数据的集合,数组中每一个数据都是同一数据类型。数组中的元素可以用数组名和下标来唯一确定。 数组的一般格式定义如下: 数据类型 数组名 = {元素表}; 例如: unsigned char tabel = ; P0 = tabel ; // P0此时的值为0x3F 数码管动态显示数字 123 #inc
[单片机]
红外解码数码管显示+串口接收
#include reg52.h #include intrins.h //*********************************************************** // TC9012 红外遥控接收数码管显示+串口接收-----成功! * //*********************************************************** #define uchar unsigned char //定义一下方便使用 #define uint unsigned int //unsigned char code dgw = {0xfe,0xfd,0xfb,0xf7};//数码
[单片机]
数码管显示时钟可设置断电记忆
数码管显示时钟,用矩阵键盘来设置时间,断电时的时间会存储在EEPROM中,来电时恢复断电时刻的时间 单片机源程序如下: /*实验效果每加一秒钟显示会跳动,并在8位数码管上以时间的形式显示*/ /*使用矩阵键盘的S1、S2、S3按键分别对秒、分、时进行设置加1操作。*/ /*设备断电时EEPROM记忆断电时刻的时间,重新上电时设备显示断电时刻的时间开始走时*/ /********注意事项:往EEPROM 24c2写入数据时与下一次写数据时适当延时2ms左右*****/ /****************不然写入数据的速度跟不上程序执行时间以至于数据写不进24c02中**/ #include reg51.h #include i
[单片机]
AVR单片机在生活中具体的应用
本文就单片机在生活中具体的应用,娓娓道来单片机的发展历程跟特性,并对单片机的前景进行了展望。 随着城市公交事业的不断发展,无人售票公共汽车已经越来越多地出现在各大城市的公交系统中,在这种情况下,传统的依靠售票员共报站的方式不再适用,取而代之的是高自动化、高集成度、高智能化得语音报站系统。 公交车语音报站系统的使用,为乘客提供了更加人性化的服务,它不但能够播报当前的到站站名,还能预报下一站的站名,有的报音系统还增加了许多附加功能,如转乘提示、安全提示等等,使乘客能够方便、安全地到达目的地。语音报站系统采用标准普通话报站,语音清晰流畅,并将相关信息通过屏显示出来,满足了不同类型乘客的需要。 模拟人声进行报站和预报站
[单片机]
基于51单片机的智能恒温箱设计
一.系统概述 系统使用的模块有AT89C51单片机+8位共阳极数码管+DS18B20温度检测模块+按键+小灯。 本设计采用51单片机为核心控制,使用数码管进行温度以及阈值的显示,通过按键可以对温度上限和温度的下限进行设置,当检测到温度超过温度上限和温度下限后会通过小灯进行报警。 二.仿真概述 1.使用8位共阳数码管显示实时温度。 2.通过按键可以调节温度阈值,阈值分为上限和下限,通过按键可以对阈值进行加减调节。 3.当温度低于温度下限阈值后黄灯就会亮。 4.当液位高于温度上限阈值后绿灯就会亮。 三.程序设计 使用Keil 51进行程序设计,打开Proteus时程序是默认烧录的状态,如果没有烧录点击AT89C
[单片机]