找回密码
 立即注册
查看: 1495|回复: 20

STC8G1K08读取IO高低电平问题

[复制链接]

该用户从未签到

2

主题

7

回帖

40

积分

新手上路

积分
40
发表于 2023-5-31 17:35:26 | 显示全部楼层 |阅读模式
  1. #include "reg51.h"
  2. #include "intrins.h"
  3. sfr P3M1 = 0xb1;
  4. sfr P3M0 = 0xb2;
  5. sfr P5M1 = 0xC9;
  6. sfr P5M0 = 0xCA;
  7. sbit P32 = P3^2;
  8. sbit P33 = P3^3;
  9. sfr P5   = 0xC8;
  10. sbit P54 = P5^4;
  11. sbit P55 = P5^5;
  12. void delay()
  13. {
  14.     int i, j;
  15.     for (i=0; i<1000; i++)
  16.     for (j=0; j<500; j++);
  17. }
  18. void main()
  19. {
  20.                 P3M0 = 0x00;
  21.     P3M1 = 0x00;
  22.     P5M0 = 0x00;
  23.     P5M1 = 0x00;
  24.        
  25.     while(1)
  26.     {
  27.                         P55 = 1;
  28.                         _nop_();
  29.                         _nop_();
  30.                         CY = P55;
  31.                        
  32.                         if(CY)
  33.                         {
  34.                                 P33 = 1;
  35.                                 delay();
  36.                                 P33 = 0;
  37.                                 delay();
  38.                         }
  39.                         else
  40.                         {
  41.                                 P33 = 0;
  42.                         }               
  43.     }
  44. }
复制代码
使用的是STC8G1K08,P5^5连接一个5V按钮,根据P5^5的电平值,P3^3连接Led灯输出不同的状态。设计思路是,P5^5接5V按钮则灯闪烁,P5^5不接5V按钮则灯灭。但是程序烧到板子的实际情况是,不管P5^5有没有连接按钮,灯都是在闪烁。请问问题出在哪里?

回复 送花

使用道具 举报

该用户从未签到

552

主题

9496

回帖

1万

积分

管理员

积分
14067
发表于 2023-5-31 18:02:57 | 显示全部楼层
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

7

回帖

40

积分

新手上路

积分
40
 楼主| 发表于 2023-5-31 18:50:43 | 显示全部楼层
神农鼎 发表于 2023-5-31 18:02
仿真看下,咋回事

现在P5.5悬空,没接5V按钮。但是运行完“CY = P55;”后,CY变为1了
1.jpg
2.jpg
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-5-31 19:00:30 | 显示全部楼层
    你的P55是设置为准双向模式,带弱上拉。不接5V时悬空,脚位也还是高电平的。
    想要实现不接5V时灯灭的话,要在P55口上加个下拉电阻。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3042

    回帖

    6857

    积分

    超级版主

    积分
    6857
    发表于 2023-5-31 22:59:25 | 显示全部楼层
    1、P5.5设置为高阻。
    2、P5.5下拉一个10K电阻。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    回帖

    40

    积分

    新手上路

    积分
    40
     楼主| 发表于 2023-6-1 09:15:49 | 显示全部楼层
    乘风飞扬 发表于 2023-5-31 19:00
    你的P55是设置为准双向模式,带弱上拉。不接5V时悬空,脚位也还是高电平的。
    想要实现不接5V时灯灭的话,要 ...

    (1)P5.5设置为准双向模式,P5.5接下拉电阻,上电前P5.5不接5V,上电后灯是灭的;然后P5.5接5V,灯闪烁;然后P5.5不接5V,灯没有灭,还是继续闪烁。
    (2)P5.5设置为高阻输入,P5.5接下拉电阻,上电前P5.5不接5V,上电后灯是灭的;然后P5.5接5V,灯闪烁;然后P5.5不接5V,灯灭。满足设计要求。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    回帖

    40

    积分

    新手上路

    积分
    40
     楼主| 发表于 2023-6-1 09:17:30 | 显示全部楼层
    梁工 发表于 2023-5-31 22:59
    1、P5.5设置为高阻。
    2、P5.5下拉一个10K电阻。

    (1)P5.5设置为准双向模式,P5.5接下拉电阻,上电前P5.5不接5V,上电后灯是灭的;然后P5.5接5V,灯闪烁;然后P5.5不接5V,灯没有灭,还是继续闪烁。
    (2)P5.5设置为高阻输入,P5.5接下拉电阻,上电前P5.5不接5V,上电后灯是灭的;然后P5.5接5V,灯闪烁;然后P5.5不接5V,灯灭。满足设计要求。
    这种情况是不是P5.5不能设置成准双向,只能是高阻输入?

    点评

    也可以设置为准双向口,但是下拉电阻用3K。还是建议高阻,下拉10K。  详情 回复 发表于 2023-6-1 11:18
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3042

    回帖

    6857

    积分

    超级版主

    积分
    6857
    发表于 2023-6-1 11:18:06 | 显示全部楼层
    旭日圆月 发表于 2023-6-1 09:17
    (1)P5.5设置为准双向模式,P5.5接下拉电阻,上电前P5.5不接5V,上电后灯是灭的;然后P5.5接5V,灯闪烁 ...

    也可以设置为准双向口,但是下拉电阻用3K。还是建议高阻,下拉10K。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    回帖

    40

    积分

    新手上路

    积分
    40
     楼主| 发表于 2023-6-1 14:42:33 | 显示全部楼层
    梁工 发表于 2023-6-1 11:18
    也可以设置为准双向口,但是下拉电阻用3K。还是建议高阻,下拉10K。

    (1)P5.5设置为准双向模式,P5.5接下拉3K电阻。
    (2)P5.5设置为高阻输入,P5.5接下拉10K电阻。
    经过测试,以上两种均满足设计要求。
    请问下以上的两种方案是否可以作为通用设计的标准?哪里可以查阅选取电阻大小的依据?

    点评

    要根据实际电路设计选取,哪有什么标准,硬件是很灵活的,一定要根据具体的外部电路进行设计匹配。  详情 回复 发表于 2023-6-1 15:26
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3042

    回帖

    6857

    积分

    超级版主

    积分
    6857
    发表于 2023-6-1 15:26:59 | 显示全部楼层
    旭日圆月 发表于 2023-6-1 14:42
    (1)P5.5设置为准双向模式,P5.5接下拉3K电阻。
    (2)P5.5设置为高阻输入,P5.5接下拉10K电阻。
    经过测 ...

    要根据实际电路设计选取,哪有什么标准,硬件是很灵活的,一定要根据具体的外部电路进行设计匹配。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-18 18:53 , Processed in 0.071074 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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