找回密码
 立即注册
查看: 41|回复: 10

Ai8H1K17T, P16 / P17口无法输入 | 原理图的管脚图搞错

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 08:51:46

3

主题

14

回帖

59

积分

注册会员

积分
59
发表于 前天 14:58 | 显示全部楼层 |阅读模式
请教一下大家有没有碰到 P16 / P17 口 无法输入问题?
试了好多种方法都没办法读到IO状态。
是不是晶振口就不能用着输入呀???

    P_SW2 |= 0x80;
          P1IE = 0xff;
        ADC_CONTR = 0;
//        CMP_CR1=0;
          P3M0 = 0x00;
    P3M1 = 0x00;
          P1M0 = 0x00;
    P1M1 = 0x00;
          P5M0 = 0x00;
    P5M1 = 0x00;
        
          //P3M0 = 0xbc; P3M1 = 0x40;
         //  P3M0 = 0xbc; P3M1 = 0x43;

          P1M0 = 0x00;
          P1M1 = 0xc3;
         // P1NCS = 0x00;


回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 08:51:46

3

主题

14

回帖

59

积分

注册会员

积分
59
发表于 前天 15:52 | 显示全部楼层
我所有的功能都关了,还有不能接收到输入。不知道是什么问题?
    P_SW2 |= 0x80;
          
          ADC_CONTR = 0;
         // CMP_CR1=0;
          I2CCFG &= ~0x03;   // 释放I2C对P16/P17的控制
          P3M0 = 0x00;
    P3M1 = 0x00;
          P5M0 = 0x00;
    P5M1 = 0x00;
          RTCCR =0;
          X32KCR = 0;
          XOSCCR =0;
          P3M0 = 0xbc; P3M1 = 0x40;
         //  P3M0 = 0xbc; P3M1 = 0x43;
    P16=0;
          P17 =0;
          P1M0 = 0x00;
          P1M1 = 0xc3;
          P1IE = 0xc3;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 08:51:46

3

主题

14

回帖

59

积分

注册会员

积分
59
发表于 前天 15:53 | 显示全部楼层
电路是正常的。在IO口端量是可以量到高低电平的,就是MCU读不到这个值。换成其他脚也是正常的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 08:51:46

3

主题

14

回帖

59

积分

注册会员

积分
59
发表于 前天 16:00 | 显示全部楼层
P_SW2 |= 0x80;
          
          ADC_CONTR = 0;
          CMPCR1=0;
          CMPCR2=0;
          SPCTL =0;
          I2CCFG &= ~0x03;   // 释放I2C对P16/P17的控制
          P3M0 = 0x00;
    P3M1 = 0x00;
          P5M0 = 0x00;
    P5M1 = 0x00;
          RTCCR =0;
          X32KCR = 0;
          XOSCCR =0;
所有的功能全关了还是不行。是不是P1617就不能作为输入使用呀?板子都做了一批,程序跑不起来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:133
  • 最近打卡:2025-07-20 08:14:28

758

主题

1万

回帖

1万

积分

管理员

积分
17979
发表于 前天 16:52 | 显示全部楼层
截图202507191651221172.jpg




#include "stc8h.h"                                 //包含STC8H的头文件
#include "intrins.h"

void Delay1ms(void)                                //@40.000MHz
{
        unsigned char data i, j;

        _nop_();
        i = 52;
        j = 240;
        do
        {
                while (--j);
        } while (--i);
}

void main(void)
{
        P_SW2 |= 0x80;                                  //允许访问扩展的特殊寄存器,XFR

                                                                //32位8051需要使用下面3句进行初始化
//        EAXFR = 1;                                        //允许访问扩展的特殊寄存器,XFR
//        WTST = 0;                                        //设置取程序代码等待时间,赋值为0表示不等待,程序以最快速度运行
//        CKCON = 0;                                        //设置访问片内的xdata速度,赋值为0表示用最快速度访问,不增加额外的等待时间

        P0M0 = 0x38; P0M1 = 0x20;        //设置P03、P04为推挽输出,P05为开漏输出,其余为准双向口模式
        P1M0 = 0x00; P1M1 = 0x00;         //设置 P1 口为准双向口模式
        P2M0 = 0x00; P2M1 = 0x00;         //设置 P2 口为准双向口模式
        P3M0 = 0x30; P3M1 = 0x3b;         //P30、P31为高阻输入,P32为准双向口、P33为高阻输入、P34和P35为开漏输出
        P3PU |= 0x38;                                 //打开P33、P34、P35的内部上拉电阻,并且仅修改这三个I/O的上拉电阻打开状态
//        P3M0 = 0x00; P3M1 = 0x00;         //设置 P3 口为准双向口模式
//        P3M0 = 0x00; P3M1 = 0x3c;         //设置P32、P33、P34、P35为高阻输入,其余引脚为准双向口模式
//        P3PU = 0x3c;                                 //需要同时开启对应端口的上拉电阻
        P4M0 = 0x00; P4M1 = 0x00;         //设置 P4 口为准双向口模式
        P5M0 = 0x00; P5M1 = 0x00;         //设置 P5 口为准双向口模式
        P6M0 = 0x00; P6M1 = 0x00;         //设置 P6 口为准双向口模式
        P7M0 = 0x00; P7M1 = 0x00;         //设置 P7 口为准双向口模式
       
        Delay1ms();                                        //延时1ms,等待IO口电平稳定,因为前面刚改变了模式
                                                                //立刻读可能会读到错误的电平,所以需要先等待电平变化稳定后再读
        EA = 1;                                                //打开总中断
        P40 = 0;                                        //打开LED部分的供电
        while(1)
        {
                if(P32 == 0)  P62 = 0;        //P32为低电平,则LED02亮
                else P62 = 1;                        //P32为高电平,则LED02灭
               
                if(P33 == 0)  P63 = 0;        //P33为低电平,则LED03亮
                else P63 = 1;                        //P33为高电平,则LED03灭
               
                if(P34 == 0)  P64 = 0;        //P34为低电平,则LED04亮
                else P64 = 1;                        //P34为高电平,则LED04灭
               
                if(P35 == 0)  P65 = 0;        //P35为低电平,则LED05亮
                else P65 = 1;                        //P35为高电平,则LED05灭
        }
}




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:133
  • 最近打卡:2025-07-20 08:14:28

758

主题

1万

回帖

1万

积分

管理员

积分
17979
发表于 前天 16:53 | 显示全部楼层
参考下,另外把你 原理图的 PDF发上来,大家帮您分析
截图202507191655428858.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:133
  • 最近打卡:2025-07-20 08:14:28

758

主题

1万

回帖

1万

积分

管理员

积分
17979
发表于 前天 16:58 | 显示全部楼层
输入的口,设置为高阻输入,打开内部上拉/或外部有上拉为好
截图202507191658189794.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 08:51:46

3

主题

14

回帖

59

积分

注册会员

积分
59
发表于 前天 18:09 | 显示全部楼层
没起到作用,我在外部上拉。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 08:51:46

3

主题

14

回帖

59

积分

注册会员

积分
59
发表于 前天 18:11 | 显示全部楼层
截图202507191811118861.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 08:51:46

3

主题

14

回帖

59

积分

注册会员

积分
59
发表于 昨天 08:51 | 显示全部楼层
截图202507200851093930.jpg
找到问题了,被加立创的EDA给坑了。
立创的系统的元件库有问题。


截图202507200911449026.jpg

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-21 13:20 , Processed in 0.121369 second(s), 97 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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