完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
小弟刚刚接触单片机,有很多不是很懂,希望各位路过的大神帮帮忙啊。
这个是动态扫描数码管,显示“hello”,但不知道为什么,第六个数码管总是出错,我的是P0口控制,两个74HC573锁存器控制六位共阴数码管程序如下,希望各位大哥大姐帮帮忙,我是在想不出来哪里错了。 #include #include ***it we=P2^7; ***it du=P2^6; #define uchar unsigned char #define uint unsigned int uchar code table[]={ 0x00,0x00,0x00,0x00,0x00,0x00, 0x3f,0x00,0x00,0x00,0x00,0x00, 0x38,0x3f,0x00,0x00,0x00,0x00, 0x38,0x38,0x3f,0x00,0x00,0x00, 0x79,0x38,0x38,0x3f,0x00,0x00, 0x76,0x79,0x38,0x38,0x3f, };//0x00 uint i = 0, m = 0; void refresh() { static unsigned int j = 0; switch(j) { case 0: we=1;P0=0x7e;we=0,P0=0XFF; break; case 1: we=1;P0=0x7d;we=0,P0=0XFF; break; case 2: we=1;P0=0x7b;we=0,P0=0XFF; break; case 3: we=1;P0=0x77;we=0,P0=0XFF; break; case 4: we=1;P0=0x6f;we=0,P0=0XFF; break; case 5: we=1;P0=0x5f;we=0,P0=0XFF; break; default: break; } P0 = table[j+6*i]; if(j <= 5) j++; else j = 0; } void main() { TMOD=0X01; TH0=(65536-917)/256; TL0=(65536-917)%256; EA=1; ET0=1; TR0=1; while(1); } void time() interrupt 1 { refresh(); TH0=(65536-917)/256; TL0=(65536-917)%256; m++; if(m==1000) { m=0; i++; if(i==6) { i=0; } } }
|
|
相关推荐
2个回答
|
|
|
|
|
|
呵呵,惊叹没人帮我啊,我心已...
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12024 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:27 , Processed in 0.473613 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号