历史上的今天
今天是:2025年03月10日(星期一)
2020年03月10日 | 基于ATmega8的数字钟源程序
2020-03-10 来源:eefocus
简介:本文给大家提供一个基于Atmega8的数字钟源程序。
/*
************************************************************
程序介绍:基于Atmega8的数字钟,实现六位显示“00:00:00”
************************************************************
*/
#i nclude #i nclude #define uchar unsigned char #define uint unsigned int #define seg_code PORTD //数据口 #define seg_com PORTC //位选通 /*************************************************************************/ uchar seven_seg[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; uchar scan[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,}; /*************************************************************************/ typedef struct { uchar hour; uchar minute; uchar second; } time; uint timer0_num=0; uchar com=0; time now; /* ************************************************************ 函数功能:端口初始化 输入参数:无 输出参数:无 返 回 值:无 ************************************************************ */ void PORT_Init(void) { DDRB=0XFF; DDRC=0XFF; DDRD=0XFF; PORTB=0XFF; PORTC=0XFF; PORTD=0XFF; } /* ************************************************************ 函数功能:定时器0初始化 输入参数:无 输出参数:无 返 回 值:无 ************************************************************ */ void TIMER0_Init(void) { TCCR0=0X02; //定时器0时钟源8分频,大约延时2ms(8*256/1000000) TCNT0=0X00; //定时器赋初值 TIMSK=_BV(TOIE0); //开定时器0 } /* ************************************************************ 函数功能:主函数 输入参数:无 输出参数:无 返 回 值:无 ************************************************************ */ void main (void) { TIMER0_Init(); PORT_Init(); sei(); while (1); } /* ************************************************************ 函数功能:定时器0溢出中断函数,时间的显示变化都在这里面 输入参数:无 输出参数:无 返 回 值:无 ************************************************************ */ ISR(TIMER0_OVF_vect) { timer0_num++; if (timer0_num==500) //定时到1s时,执行相应的显示时间操作 { timer0_num=0; now.second++; if(now.second==60) { now.minute++; now.second=0; if(now.minute==60) { now.hour++; now.minute=0; if(now.hour==24) now.hour=0; } } } switch(com) { case 0 : seg_code=~seven_seg[now.second%10];break; case 1 : seg_code=~seven_seg[now.second/10];break; case 2 : seg_code=~seven_seg[now.minute%10];break; case 3 : seg_code=~seven_seg[now.minute/10];break; case 4 : seg_code=~seven_seg[now.hour%10];break; case 5 : seg_code=~seven_seg[now.hour/10];break; default: break; } seg_com=scan[com]; com++; if(com==6) com=0; }
史海拾趣
|
【瑞萨 CPK-RA2L1 开发板】测评 - 2:RT-Thread 本帖最后由 MianQi 于 2022-11-19 17:19 编辑 回到 RT-Thread,安装 BSP 时下载遇到问题: 解决的办法是,下载压缩文件,单独安装: 新建项目时有提醒,路径中不能有空格: … 查看全部问答> |
|
看到EEWORLD和e络盟办的活动,买了几个物料。一共两颗IC,两个DDR4的连接器,今天刚收到快递,晒出来分享下 开箱 第一颗IC是FTDI的FT601Q-B-T,QFN-76封装 FT60x是FTDI第一代SuperSpeed USB3.0系列芯片,提供高达5Gbps的带宽 ...… 查看全部问答> |
|
【行空板 Python编程学习主控板评测二】Mind+图形化编程——数字时钟 【行空板 Python编程学习主控板评测二】Mind+图形化编程——数字时钟 一、Mind+简介 Mind+是一款拥有自主知识产权的国产青少年编程软件,集成各种主流主控板及上百种开源硬件,支持人工智能(AI)与物联网(IoT)功能, ...… 查看全部问答> |
|
这次要拆的是AutoLiv(奥托拉夫,一家非常有名的汽车安全系统解决方案提供商)为奥迪生产的二代夜视系统的电脑模块,配合他家的夜视(热成像)摄像头使用。它可以侦测出车前的行人,通过仪表盘上的显 ...… 查看全部问答> |
|
RT1052 ~2~工具生成代码 图1:MCU Xpreesso config tool 图2选芯片型号 图3找外设引脚 买的是野火的RT1052 EVK PRO 找个表格直接就可以 图6;配置引脚 找到这两个脚配 ...… 查看全部问答> |
|
【行空板 Python编程学习主控板】 四、所见所得的Mind+图形化WS2812灯带实现 一、硬件及连接 双十一之前在老五家上了一次车,屯了几十根ws2812小灯带,刚好拿来用行空板测评 行空板提供了很多接口,点亮灯珠的的管家用P24来实现 由于灯带的接口大多是2.54,而行空板的接口是2.0,因此借用P23接口的正极(中间 ...… 查看全部问答> |
|
村田制作所器件仿真软件推荐 https://ds.murata.co.jp/simsurfing/index.html?lcid=zh-cn 随便器件进入 ,点击仿真进入: https://ds.murata.co.jp/nfstp/? ...… 查看全部问答> |




