找回密码
 立即注册
查看: 221|回复: 7

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

[复制链接]
  • TA的每日心情
    开心
    2024-3-10 19:23
  • 签到天数: 2 天

    [LV.1]初来乍到

    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
    回复 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 08:40
  • 签到天数: 54 天

    [LV.5]常住居民I

    0

    主题

    6

    回帖

    240

    积分

    中级会员

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-10 19:23
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    15

    积分

    新手上路

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

    使用道具 举报

  • TA的每日心情
    奋斗
    5 天前
  • 签到天数: 97 天

    [LV.6]常住居民II

    9

    主题

    556

    回帖

    817

    积分

    高级会员

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

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 08:40
  • 签到天数: 54 天

    [LV.5]常住居民I

    0

    主题

    6

    回帖

    240

    积分

    中级会员

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 08:40
  • 签到天数: 54 天

    [LV.5]常住居民I

    0

    主题

    6

    回帖

    240

    积分

    中级会员

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

    使用道具 举报

    该用户从未签到

    550

    主题

    9321

    回帖

    1万

    积分

    管理员

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-10 19:23
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    15

    积分

    新手上路

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-5 11:10 , Processed in 0.065344 second(s), 59 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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