完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
第一种:
void delay(uint x) { uint i,j; for(i=x;i>0;i++) for(j=110;j>0;j++); //还有,这边的j一定要等于110吗? } 第二种: void delay(u16 i) { while(i--); } 我在写下面动态数码管显示实验的时候,使用第二种函数,可以显示0-7,但是使用第一种的时候,只有第一个数码管亮,为什么? /************************************************************************************** * 动态数码管显示实验 * 实现现象:下载程序后数码管从右至左显示0-7。 ***************************************************************************************/ #include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; ***it LSA=P2^2; ***it LSB=P2^3; ***it LSC=P2^4; u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值 void delay(u16 i) { while(i--); } void DigDisplay() { u8 i; for(i=0;i<8;i++) { switch(i) //位选,选择点亮的数码管, { case(0): LSA=0;LSB=0;LSC=0; break;//显示第0位 case(1): LSA=1;LSB=0;LSC=0; break;//显示第1位 case(2): LSA=0;LSB=1;LSC=0; break;//显示第2位 case(3): LSA=1;LSB=1;LSC=0; break;//显示第3位 case(4): LSA=0;LSB=0;LSC=1; break;//显示第4位 case(5): LSA=1;LSB=0;LSC=1; break;//显示第5位 case(6): LSA=0;LSB=1;LSC=1; break;//显示第6位 case(7): LSA=1;LSB=1;LSC=1; break;//显示第7位 } P0=smgduan[i];//发送段码 delay(100); //间隔一段时间扫描 P0=0x00;//消隐 } } void main() { while(1) { DigDisplay(); //数码管显示函数 } } |
|
相关推荐
3个回答
|
|
延时函数本质都一样
|
|
|
|
第一种,你的for应该用 i-- 与 j--
|
|
|
|
第一个是错的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之I2C-温湿度传感器
646 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第四十六章 SD卡模拟U盘实验
617 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码
2052 浏览 0 评论
【瑞萨RA2L1入门学习】+ MacOS安装e2studio
962 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-本地仓库管理之分支间的操作
865 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12304 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-13 15:52 , Processed in 0.730163 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191