完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 wo_yjk 于 2014-3-26 17:44 编辑
void disp()//DS1302 display { uchar i; display_code[0]=code2[time[0]/10];// display_code[1]=code2[time[0]%10]; display_code[2]=code2[time[1]/10]; display_code[3]=code2[time[1]%10]; display_code[4]=code2[time[2]/10]; display_code[5]=code2[time[2]%10]; for(i=0;i<4;i++) { dula1=1; P1=display_code; dula1=0; wela1=1; P1=bit_code; wela1=0; delay1ms(3); } } void display(uchar temp1,uchar temp2)// other display { uchar yi,er,san,si,wu,liu,qi; yi=temp2/1000; er=temp2%1000/100; san=temp2%1000%100/10; si=temp2%10; wu=temp1/100; liu=temp1%100/10; qi=temp1%10; dula2=1; P0=code1[yi]; dula2=0; P0=0xff; wela2=1; P0=0xfe; wela2=0; delay1ms(2); //下边有七个类似的显示方式。 } void main(void) { temp1=0; temp2=0; InitTimer0(); set_rtc(); while(1) { gettime(); disp();//这个显示函数显示1302的时间 第一组 由P1口控制两个锁存器,控制段选和位选 display(temp1,temp2) ;//显示另外的七个数码管前四个共阴极,后三个共阳极。 由P0口控制两个锁存器,控制段选和位选 } } void Timer0Interrupt() interrupt 1 { TH0 = 0x3C; TL0 = 0x0B0; a++; if(a==20) { a=0; temp1++; flag=1; if(temp1==999) temp1=0; } if(temp1<30) temp2=50; if(temp1>30) temp2=50+(temp1-30)*1.5; } 为什么只显示其中一组显示就可以,两组同时就不行?第一组是P0口,第二组是P1口。code1是共阴极数码管 code2是共阳极的。或者两个同时显示的时候让P0或者P1的两个锁存器的LE端接地,另外的就可以显示正常??为什么?
|
|
相关推荐
2个回答
|
|
来看看啊······················
|
|
|
|
不能沉啊啊啊啊
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
为什么用FatFS在SD卡创建文件,在单片机上读写正常,用读卡器插到电脑上就什么都没有
720 浏览 0 评论
932 浏览 2 评论
《DNK210使用指南 -CanMV版 V1.0》第九章 打印输出实验
442 浏览 0 评论
stm32f407+ksz8863rlli概率性ping不通
1159 浏览 1 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-常见网络服务搭建之NFS服务搭建
554 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11378 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-2 12:55 , Processed in 0.583371 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号