完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
display()
{ disp_buf[0]=count/10; //取出计数值的十位 disp_buf[1]=count%10; //取出计数值的个位 P0=seg_data[disp_buf[1]]; //显示个位 P2=0x7f; //开个位显示(开第8只数码管) Delay_ms(5); //延时5ms P0=seg_data[disp_buf[0]]; //显示十位 P2=0xbf; //开十位显示(开第7只数码管) Delay_ms(5); //延时5ms P2=0xff; //关闭显示 } 这个程序中 P0=seg_data[disp_buf[1]]; //显示个位 P2=0x7f 和 P0=seg_data[disp_buf[0]]; //显示十位 P2=0xbf 是什么意思,我想的是已经让P0现实了个位十位数为什么还要P2=0x7f; //开个位显示(开第8只数码管) 和P2=0xbf; //开十位显示(开第7只数码管) (我是初学者我想明白这个我希望知道的人告诉哈,我真的很很想弄明白(急急急!)) |
|
相关推荐
8个回答
|
|
P2端口的第7位和第6位分别控制着个位和十位两只数码管的显示。只有当相应位为0数码管才显示,如果为1的话,则数码管没有显示(关闭)
|
|
|
|
你的数码管应该是动态扫描显示的,P0输出段和小数点显示数据,P2输出位选择数据,输出为0时,对应的位显示,为1时对应的位不显示;P2的bit7对应各位、bit6对应十位......;
将 P2=0x7f; P2=0xbf; 写成 P2=01111111b; P2=10111111b; 这样就比较容易看明白了。 |
|
|
|
这很好理解,P0是实现了个位和十位的显示,但你总得把个位和十位对应到相应的数码管上去吧,P2就是这个效果,选择哪个数码管显示个位,哪个数码管显示十位。
|
|
|
|
应该是先把数据分别给到P0口然后通过驱动芯片分别开个位和十位的显示,因为数码管每次只能显示一位通循环显示才能看到整个个位十位。你可以看看他的显示原理
|
|
|
|
这个是动态扫描的程序,你送出去一个数据,你选个位就显示在个位,你选十位就显示在十位
|
|
|
|
谢谢您!我也明白你的意思了,但是为什么能把P0端口的数据送到P2端口控制的数码管上去显示呢,想问的是P0端口的数据怎么传到P2端口的,然后通过P2控制的显示器显示出来呢?(我是刚学的单片机,谢谢您帮我回答,谢谢!) |
|
|
|
这个必须联系电路图,你一看电路图就明白了,建议你了解一下什么是数码管的位选和段选。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
122 浏览 0 评论
565 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
772 浏览 0 评论
948 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12041 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 21:42 , Processed in 0.798232 second(s), Total 102, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号