找回密码
 立即注册
查看: 1191|回复: 12

stc8g1k08,拨码开关,IO输入模式,3.x端口状态一致? | 已解决

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-03-10 19:23:19

1

主题

2

回帖

15

积分

新手上路

积分
15
发表于 2024-3-7 16:17:33 | 显示全部楼层 |阅读模式
1、我用的stc8g1k08,sop20。

2、用2个4位的拨码开关,分别接P1.2、P1.7、P5.5、P3.6,P3.4、P3.2、P1.6、P5.4端口。打算通过拨码确定程序参数。原理图附件。

3、IO模式设为输入        P0M0 = 0x00;        P0M1 = 0x00;        P1M0 = 0x00;        P1M1 = 0xC4;        P2M0 = 0x00;        P2M1 = 0x00;        P3M0 = 0x00;        P3M1 = 0x54;        P4M0 = 0x00;        P4M1 = 0x00;        P5M0 = 0x00;


4、读取        if(P36) tmpid|=1<<0;        if(P55) tmpid|=1<<1;        if(P17) tmpid|=1<<2;        if(P12) tmpid|=1<<3;        if(P54) tmpid|=1<<4;        if(P16) tmpid|=1<<5;        if(P32) tmpid|=1<<6;        if(P34) tmpid|=1<<7;



5、结果p36\p55这组拨码,2个都不拨为0,拨任1个另一个也为1。p32\p34也是这个现象。其他4个P1.2\p1.7\p1.6\p5.4是独立的。

6、测量io口电平无误,拨码拨下的电平为高(5v),拨码未拨的电平为低(0v)。



7、尝试开启输入使能P1IE\P3IE\P5IE,也无效。代码如下:
P_SW2 = 0x80;        P1IE = 0xC4;        P3IE = 0x54;        P5IE = 0x30;
#define     P1IE                    (*(unsigned char volatile xdata *)0xfe31)
#define     P3IE                    (*(unsigned char volatile xdata *)0xfe33)
#define     P5IE                    (*(unsigned char volatile xdata *)0xfe35)

刚接触stc芯片不久,哪位大神能指点一下问题所在?谢谢
PumpSwitch原理图-20240305.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:391
  • 最近打卡:2025-05-01 08:17:03

0

主题

6

回帖

1640

积分

金牌会员

积分
1640
发表于 2024-3-7 16:52:10 | 显示全部楼层
是不是没设置上下拉电阻的原因
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-03-10 19:23:19

1

主题

2

回帖

15

积分

新手上路

积分
15
发表于 2024-3-7 17:11:58 | 显示全部楼层
补充
1、运行第122行时报错,改成P3IE |= 0x54 不会报错,但是问题没有解决。
2、加入上拉电阻配置,也无效。
3、调试中获取P1IE值为0,好像是配置不成功? err.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2025-05-02 08:15:40
已绑定手机

13

主题

1257

回帖

2975

积分

金牌会员

积分
2975
发表于 2024-3-7 17:43:05 | 显示全部楼层
8个IO口配置为准双向口,不用配置IO口上拉电阻,电路图中两个4位拨码左侧接地而不是接电源。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:391
  • 最近打卡:2025-05-01 08:17:03

0

主题

6

回帖

1640

积分

金牌会员

积分
1640
发表于 2024-3-7 20:57:27 | 显示全部楼层
本帖最后由 haobin1980 于 2024-3-7 20:59 编辑

你拨码开关左侧接电源要加下拉电阻吧,左侧接地要加上拉,看看单片机里能不能设置下拉
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:391
  • 最近打卡:2025-05-01 08:17:03

0

主题

6

回帖

1640

积分

金牌会员

积分
1640
发表于 2024-3-7 21:03:01 | 显示全部楼层
我看了下手册,你这个单片机没内置下拉电阻,只有上拉,可以按照4楼说的设置为准双向口,拨码开关左侧改成接地试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-3-7 21:04:51 | 显示全部楼层
STC32/STC8都有内置上拉电阻
下拉电阻只有 STC32G8K64 开始有
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-03-10 19:23:19

1

主题

2

回帖

15

积分

新手上路

积分
15
发表于 2024-3-10 19:21:45 | 显示全部楼层
按照4楼的方式,改了电路,问题已经解决。谢谢回复的各位。
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

6

回帖

37

积分

新手上路

积分
37
发表于 2024-12-24 10:11:53 | 显示全部楼层
zta*** 发表于 2024-3-10 19:21
按照4楼的方式,改了电路,问题已经解决。谢谢回复的各位。

可以看一下你的代码吗,我也碰到了和你一样的问题,读不出来拨码器的电平
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2024-12-24 10:41:51 | 显示全部楼层
dbfz*** 发表于 2024-12-24 10:11
可以看一下你的代码吗,我也碰到了和你一样的问题,读不出来拨码器的电平
...

准双向口,你可以程序开始运行时先把端口写1后再去读取端口状态
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:49 , Processed in 0.149481 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表