avr单片机的数码管显示时钟设计

发布者:JoyfulHearted最新更新时间:2020-01-15 来源: elecfans关键字:avr单片机  数码管  显示时钟 手机看文章 扫描二维码
随时随地手机看文章

//数码管数据P0口,数码管控制P2口

#include

#include

#includePACe.h》

#include

#include

avr单片机的数码管显示时钟设计
 

#definecodePROGMEM

#defineucharunsignedchar

#defineuintunsignedint

codeconstucharLED_7[16]={0x28,0x7E,0xA2,0x62,0x74,0x61,0x21,0x7A,0x20,0x60,0xff};//commonof+

codeconstucharposition[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

ucharTIme[4];//时间计数

volaTIleuchardisp_buff[8];//显示缓冲区

volaTIleucharTIme_count=0;

volatileucharpoint_on=0;

volatileucharposit=0;

volatileuchartime_10ms_ok=0;

voidtime_to_dispbuff(void);

voidtime1_init(void);

voidtime0_init(void);

voiddisplay(void);

intmain(void)

{

PORTA=0xff;

DDRA=0xff;

PORTC=0xff;

DDRC=0xff;

time[0]=00;//1/10sec

time[1]=30;//sec

time[2]=59;//minute

time[3]=23;//hour

time_to_dispbuff();

time1_init();

sei();

while(1)

{

if(time_10ms_ok)

{

time_10ms_ok=0;

if(++time[0]》=100)

{

time[0]=0;

point_on=~point_on;

if(++time[1]》=60)

{

time[1]=0;

if(++time[2]》=60)

{

time[2]=0;

if(++time[3]》=24)

{

time[3]=0;

}

}

}

}

time_to_dispbuff();

}

}

}

voidtime0_init(void)

{

TCCR0=0x05;

TCNT0=0xea;

TIFR|=0x02;

TIMSK|=0x02;

}

voidtime1_init(void)

{

TCCR1A=0x00;

TCCR1B=0x01;

TCNT1=0xa99a;

//TCNT1H=0xa9;

//TCNT1L=0x9a;

TIFR|=0x80;

TIMSK|=0x80;

}

SIGNAL(SIG_OVERFLOW1)

{

TCNT1=0xa99a;

display();

if(++time_count》=5)

{

time_10ms_ok=1;

time_count=0;

}

}

voiddisplay(void)

{

PORTC=0xff;

PORTA=pgm_read_byte(&led_7[disp_buff[posit]]);

if(point_on&&((posit==2)||(posit==4)||(posit==6)))PORTA&=0x7f;

PORTC=pgm_read_byte(&position[posit]);

if(++posit》=8)posit=0;

}

voidtime_to_dispbuff(void)

{

uchari,j=0;

for(i=0;i《=3;i++)

{

disp_buff[j++]=time[i]%10;

disp_buff[j++]=time[i]/10;

}

}

关键字:avr单片机  数码管  显示时钟 引用地址:avr单片机的数码管显示时钟设计

上一篇:如何利用AVR单片机实现AT24C256的数据高速稳定的读取
下一篇:AVR单片机对数码管的控制设计

推荐阅读最新更新时间:2024-11-08 11:59

基于AVR单片机的VRAM型彩色液晶显示模块设计
1 引言 随着电子技术的飞速发展,越来越多的领域应用到以单片机为控制核心、用液晶作为显示终端的数字化设备。彩色液晶显示器作为当代高新技术的结晶产品,不但具有超薄平面、显示信息丰富、色彩逼真的特点,而且还具有体积小、耗电省、寿命长、无辐射、抗震、防爆等其他类型显示器无可比拟的优点,因而是工控仪表、机电设备等行业更新换代的理想显示器件。因此基于单片机系统的彩色液晶显示模块的使用也越来越广泛。本文介绍一种基于AVR单片机和硬件汉字库的彩色液晶显示模块,该模块实现了在彩色液晶显示器上显示不同颜色的中文、英文、数字及简单的画图功能。 2 液晶显示器显示原理 本模块采用的液晶显示器是河南友利华高科技有限公司生产的YD2502彩色液晶VR
[单片机]
基于<font color='red'>AVR单片机</font>的VRAM型彩色液晶<font color='red'>显示</font>模块设计
基于AVR单片机的核磁共振仪床体检测系统
  1 引言   近年来随着医学技术的快速发展,核磁共振仪已经在大中型医院中被广泛的应用。目前,在核磁共振仪的生产过程中,床体部分要与磁体一起搬入电磁屏蔽室组装后才能进行检测,这对人员和物资都是很大的浪费。针对这种状况,本文设计出了一套核磁共振仪床体部分的运动控制与检测系统,它能够对床体部分独立进行检测,而不必将全部系统在屏蔽室安装后检测,从而降低了核磁共振仪床体部分的生产和检测成本,缩短了生产周期。   本设计以通用医疗集团的Ovation5型核磁共振仪的床体为对象,对驱动床体做横向运动的直流步进电机和驱动床体做纵向运动的直流伺服电机的精确控制问题进行较为深入的分析和研究。系统主要采用了ATMEL公司的Atmega128
[单片机]
基于<font color='red'>AVR单片机</font>的核磁共振仪床体检测系统
AVR单片机的通用USB接口模块设计
引言   USB接口以其数据传输快、连接简单、易于扩展、支持热插拔等特点已成为外设与PC通信的主要方式之一。随着嵌入式系统的发展,嵌入式微处理器需增加通用的USB接口,以便实现与PC等USB主机系统的通信。针对这样的需求,这里采用PHILIPS公司的USB接口器件PDIUSBD12和Atmel公司的AVR系列单片机ATmega8设计一种通用的USB接口模块。该模块可方便为各种嵌入式微处理器增加USB接口,从而实现与USB主机系统的高速通信。 2 系统硬件设计   该系统模块的控制核心是AVR高速单片机ATmega8。AVR单片机是新一代基于哈佛结构的高速RISC微控制器,具有速度快、价格低、可靠性高,I/O口线驱动能力
[嵌入式]
数控电源AVR单片机C程序
编译环境为CodeWizardAVR #include mega8.h #include delay.h #include stdio.h #include stdlib.h #define Voltage_UP PINB.0 #define Voltage_Down PINB.2 #define UD PORTB.3 #define CS PORTB.5 #define INC PORTB.4 #define Voltage_LED PORTB.6 #define Current_LED PORTB.7 #define Current_Detect 0 #define Out_Detect 1 #define
[单片机]
led灯闪光程序 avr单片机
#include avr/io.h stat IC void io_init(void) { PORTA = 0xff; DDRA = 0xff; } void mDelay(uint16_t DelayTim) { uint16_t i; for(;DelayTim 0;DelayTim--) { for(i=0;i 40000;i++) {;} for(i=0;i 3900;i++) {;} } } int main(void) { uint8_t i=0; io_init(); while(1) { if(++i =8) i=0; PORTA=~(0x01 i); //改为0x80 i可改变流水灯方向 mDelay(5
[单片机]
AVR单片机高精度延时程序汇编语言 可以直接使用
波特率为7.3728MHZ 延时1ms,精度误差为10us ;******************************** delay_1ms: ldi r27,41 delay_11: ldi r28,35 delay_22: nop nop dec r28 brne delay_22 dec r27 brne delay_11 ret ;***************************
[单片机]
ATMEGA128单片机定时器+数码管显示
#define SS 0 #define SCK 1 #define MOSI 2 #define MISO 3 #define SS_H() PORTB|=(1 SS) #define SS_L() PORTB&=~(1 SS) //注意,不要漏掉了() #define led0_en() {DDRB|=1 4;PORTB|=(1 4);} //开第一个数码管的位选 #define led0_dis() {DDRB|=1 4;PORTB&=~(1 4);} //关第一个数码管的位选 #define led1_en() {DDRB|=1 5;PORTB|=(1 5);} #define led1_dis() {DDRB|=1 5;
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved