历史上的今天
返回首页

历史上的今天

今天是:2025年01月16日(星期四)

正在发生

2020年01月16日 | AVR单片机对数码管的控制设计

2020-01-16 来源:elecfans

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

#include

#include

#include

#include

#include

#define code PROGMEM

#define uchar unsigned char

#define uint unsigned int

code const ucharLED_7[16] = {0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//common of +

code const uchar position[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

AVR单片机对数码管的控制设计

uchar TIme[4]; //时间计数

volaTIle uchar disp_buff[8]; //显示缓冲区

volaTIle uchar TIme_count = 0;

volatile uchar point_on = 0;

volatile uchar posit = 0;

volatile uchar time_10ms_ok = 0;

void time_to_dispbuff(void);

void time1_init(void);

void time0_init(void);

void display(void);

int main(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();

}

}

}

void time0_init(void)

{

TCCR0 = 0x05;

TCNT0 = 0xea;

TIFR |= 0x02;

TIMSK |= 0x02;

}

void time1_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;

}

}

void display(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;

}

void time_to_dispbuff(void)

{

uchar i,j=0;

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

{

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

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

}

}


推荐阅读

史海拾趣

得力(deli)公司的发展小趣事

得力公司最初以文具制造起家,但在电子科技快速发展的时代,公司意识到必须转型升级以适应市场需求。于是,得力决定进军专业门槛高、技术壁垒深的打印机产业。经过数年的科研攻坚,得力成功研发出首台激光工程机,并在随后几年内,发展成为国内唯一一家同时掌握激光、喷墨打印核心技术研发、生产能力的企业。这一跨越不仅展现了得力公司在科技创新方面的决心和毅力,也为其在电子行业树立了新的里程碑。

Analog Modules Inc公司的发展小趣事

得力公司最初以文具制造起家,但在电子科技快速发展的时代,公司意识到必须转型升级以适应市场需求。于是,得力决定进军专业门槛高、技术壁垒深的打印机产业。经过数年的科研攻坚,得力成功研发出首台激光工程机,并在随后几年内,发展成为国内唯一一家同时掌握激光、喷墨打印核心技术研发、生产能力的企业。这一跨越不仅展现了得力公司在科技创新方面的决心和毅力,也为其在电子行业树立了新的里程碑。

Digital View公司的发展小趣事

随着数字化技术的不断进步和应用领域的不断扩大,Digital View公司也加快了数字化转型和升级的步伐。公司加大了对云计算、大数据、人工智能等前沿技术的研发和应用力度,推出了一系列智能化、数字化的产品和服务。这些产品和服务不仅提高了客户的运营效率和管理水平,还为公司带来了新的增长点。

Eagle-Picher公司的发展小趣事

Eagle-Picher公司的历史可以追溯到1843年,最初是由Edgar和他的兄弟Stephen J. Conkling在俄亥俄州辛辛那提成立的,专注于生产商业涂料颜料。随着时间的推移,公司经历了多次转型和变革。1847年,Stephen离开公司后,Edgar引入了新的合伙人威廉·伍德,并更名为康克林木业公司。随后,公司在不同的业务领域内扩展,直到1922年,Eagle-Picher正式进入电池市场,开始了其电子行业的历程。

First Switchtech公司的发展小趣事

在电子行业的初期,First Switchtech公司(或类似公司)凭借其在开关技术领域的突破性创新,迅速在市场中崭露头角。公司研发出了一种新型低功耗、高可靠性的电子开关,这一创新不仅解决了当时市场上开关设备能耗高、故障率大的问题,还极大地提升了产品的整体性能。随着这一技术的广泛应用,First Switchtech公司逐渐在电子开关领域建立了领先地位,并带动了整个行业的技术进步。

BNS Solutions公司的发展小趣事

在快速发展的过程中,BNS Solutions公司始终注重品质管理和品牌建设。公司建立了一套完善的质量管理体系,从原材料采购到产品生产、销售等各个环节都严格把控质量。同时,公司还注重品牌形象的塑造和维护,通过广告宣传、公关活动等方式不断提升品牌知名度和美誉度。这些举措使得BNS Solutions公司的产品在市场上具有更高的竞争力,赢得了消费者的信赖和喜爱。

问答坊 | AI 解惑

LIN协议下载

LIN2.0是现在用得最广泛的 全英文…

查看全部问答>

【藏书阁】电子器件及放大器

目录: 上册 第一篇 电真空器件 第一章 接收放大管 第二章 大功率电子管 第三章 阴极射线管 第四章 离子管 第二篇 半导体器件 第一章 半导体的导电机构 第二章 晶体二极管 第三章 晶体三极管 第四章 其他类型晶体管 下册: 目录: ...…

查看全部问答>

LED隔离驱动次边恒流芯片(我调试过的)

1052是1051的升级版 与AP4313基本兼容; 我调的4*1W,恒流效果都挺好; 只是芯片的ic电压受限于18V,所以LED的串联数受限(公用输出电压), 因此需要多绕个绕组给IC供电,才能与LED供电电压分开,才能加大LED数目。…

查看全部问答>

wince 6.0要怎么实现开机启动指定的程序.

     硬件平台是TE6410开发板,嵌入的系统是wince 6.0,现在我做了一个程序,保存在SD卡里面,希望在开启开发板电源后进入系统能自动运行我的程序.查了大量的资料都无法实现(如下),主要原因是在wince系统中写入的任何东西,重启后都 ...…

查看全部问答>

8563时钟不走?

8563时钟不走,设置数据均正确,不知什么原因?能读出。 其中int脚接地…

查看全部问答>

如何将JPG文件显示出来??

                                 我现在显示用的都是BMP的文件,但是BMP的文件实在太大了320X240有200多KB,我希望将图形的文件压缩到2-4KB,不知道 ...…

查看全部问答>

中断、变量的问题

我在main.c里定义了一个变量A,然后在fun.c里用extern声明了这个变量,fun.c的一个函数fun24()在一个while循环下使用了变量A,在中断函数中,触发中断,则A加1,然后如果我在int main()里直接调用fun24()的话,液晶显示的A的数值在实时变化, ...…

查看全部问答>

Hercules DIY 八:器件采购

这次我没有的器件都从淘宝买的。 两个MQ-5   7元 升压模块   MC33063AP1  DIP  3元 TIP122  1元 其它的件我有的自己有,以前攒的 …

查看全部问答>

eZ430设置ADC有效位数 代码怎么写?

菜鸟一枚,想用内部ADC测电压,去三位有效数字显示,不知道改ADC的哪一块儿代码?求解,感激不尽!…

查看全部问答>