完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想用51单片机读4位7段数码管电位,然后反向还原成数据传给pc,P0.0~P0.7直接接数码管abcdefg引脚, 1.0~P1.3 直接接 A1 A2 A3 A4,数码管为扫描式共阳极,以下简述一下读数据操作
1=oxff; delay(); shu=P0; we=P1&0xf0; delay(); if(shu==P0&&we==P1&0xf0) {反向译码,发送数据} 但我电脑每次收到的P0 p1口的数据都为15,而我用单片机的地接到数码管某个引脚上时,又能准确反映,(直接用5v和0v接单片机引脚实验也正确)比如a脚接地,那p0口数据为1111 1110,也就是说数码管引脚的低电平不能拉低单片机引脚电平。各位大侠能想想办法让我读出数码管数据吗?还有即使读出静态的一位的数据,比如说显示第一位数据9,数码管在一位一位快速闪烁显示着,在第一位数码管显示9期间电平能稳定拉低吗?还是有杂波的?还有单片机在它转向显示第二位数码管数据之前能读出来吗?一次可能不能读出所有数据位,有可能在读地位执行解码和传送时,就已经显示第二位了,那就要多读几次,这样延时多大会不会超过0.2s? |
|
相关推荐
5个回答
|
|
头文件 #ifndef
|
|
|
|
帮顶。。。。。
|
|
|
|
你这应该要读的是控制数码管的7段的数据,那直接定义个变量,比如temp并赋值0x00,然后用temp与控制数码管口相或。这样就读到了数据
|
|
|
|
shu=P0,可以这样直接读的啊,我直接用5v 0v电压加到引脚上数据是对的,接数码管引脚就不对了
|
|
|
|
时序配合很重要,否则肯定读不对
|
|
|
|
只有小组成员才能发言,加入小组>>
3294 浏览 9 评论
2970 浏览 16 评论
3473 浏览 1 评论
9023 浏览 16 评论
4061 浏览 18 评论
1140浏览 3评论
589浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
579浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2313浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1876浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:12 , Processed in 1.212632 second(s), Total 87, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号