完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
/****以下是一个用数码管显示的简易电子时钟,只有分秒****/
#include #include #define uchar unsigned char #define uint unsigned int uchar smg_data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; uchar sec,min; uint flag=0; /************中断初始化***************/ void init(void) //两毫秒延时 { TCCR0|=(1< tiMSK|= (1< } /*************数码管显示函数***************/ void display(uchar sum1,uchar sum2) { static uchar i; static uchar temp[4]; temp[0] = smg_data[sum1/10];//数码管的进制 temp[1] = smg_data[sum1%10]; temp[2] = smg_data[sum2/10]; temp[3] = smg_data[sum2%10]; PORTC=0Xff; //消影 PORTD&=~0X04< PORTC=temp[i]; if(++i>=4){i=0;} } /******************主函数********************/ void main(void) { DDRC=0XFF; DDRD=0XFF; PORTC=0Xff; PORTD=0Xff; DDRB|=BIT(0); PORTB|=BIT(0);//初始化 init(); while(1) { if(++flag==500) //2ms重复500次,1秒 { flag=0; if(++sec>=60) { sec=0; if(++min>=60){min=0;} } } display(min,sec); } } /***********中断函数**************/ #pragma interrupt_handler timer0_isr:10 void timer0_isr(void) { TCNT0=0Xf0; flag++; }
|
|
相关推荐
4个回答
|
|
|
|
|
|
如果电路上没有接其他什么的话,试试把PORTD&=~0X04<
|
|
|
|
那请问我要怎么改,好像是可以亮了 ,但感觉还是差点东西 |
|
|
|
本帖最后由 人中狼 于 2017-7-25 22:47 编辑
应该能亮2位数码管吧,开发板上位选接的是4,5,6,7引脚,但是你的位选PORTD&=~0X04<
最佳答案
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1693 浏览 0 评论
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
977 浏览 0 评论
3056 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2692 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1817 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
6458 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-9 20:54 , Processed in 0.602117 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号