找回密码
 立即注册
查看: 169|回复: 18

STC8H8K64U,为什么我的灯不亮,这个程序有什么问题吗

[复制链接]
  • TA的每日心情

    2024-5-5 22:53
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    6

    主题

    12

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2024-4-29 23:04:04 | 显示全部楼层 |阅读模式
    #include <stc8h.h>                   //包含支持STC8系列单片机的头文件
    #include <intrins.h>
    #include <gpio.h>
    #define uchar unsigned char
    #define uint  unsigned int
    sbit ok_led=P6^0;        
    sbit error_led=P6^1;     
    sbit k=P4^0;
    uchar  xdata  ram256[256]; //定义片内ram,256个字节
    /*------------------主函数---------------------*/
    void main(void)
    {
            uint  i;
            gpio();
            k=0;
            for(i=0;i<256;i++)                 //先把ram数组以0--255填满
            {
                    ram256[i]=i;
            }
            for(i=0;i<256;i++)                 //通过串口把数据送到电脑显示
            {
                    if(ram256[i]!=i) goto Error;
            }
            ok_led=0;
            error_led=1;
            while(1);               //结束
    Error:
            ok_led=1;
            error_led=0;
            while(1);
    }

    按理说物理怎样都应该有一个灯亮才对吧,我仿真过,RAM里面的内容没有问题,编译也是通过的

    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 06:46
  • 签到天数: 74 天

    [LV.6]常住居民II

    3

    主题

    646

    回帖

    992

    积分

    高级会员

    积分
    992
    发表于 2024-4-29 23:20:14 | 显示全部楼层
    sbit k=P4^0;这个好像也有操作
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 00:20
  • 签到天数: 101 天

    [LV.6]常住居民II

    14

    主题

    399

    回帖

    968

    积分

    荣誉版主

    热心市民

    积分
    968
    发表于 2024-4-30 00:02:30 | 显示全部楼层
    main函数内没有配置IO输出功能,可以根据你的原理图配置一下IO输出方式,如果灌电流输出就配置成OD或者准双向,如果是高电平驱动LED就配置成推拉方式或开启内部上拉的OD模式。
    睁开眼睛做场梦~~~
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 84 天

    [LV.6]常住居民II

    12

    主题

    471

    回帖

    1362

    积分

    荣誉版主

    积分
    1362
    发表于 2024-4-30 01:12:29 | 显示全部楼层
    IO口默认高阻态..相当于断路..要配置一下
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 157 天

    [LV.7]常住居民III

    0

    主题

    403

    回帖

    482

    积分

    中级会员

    积分
    482
    发表于 2024-4-30 07:46:23 | 显示全部楼层
    需要先设置I/O状态,参考下手册
    靡不有初,鲜克有终
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 06:32
  • 签到天数: 172 天

    [LV.7]常住居民III

    26

    主题

    825

    回帖

    2072

    积分

    金牌会员

    积分
    2072
    发表于 2024-4-30 07:55:38 | 显示全部楼层
    端口配置不对吧
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    昨天 07:41
  • 签到天数: 80 天

    [LV.6]常住居民II

    4

    主题

    492

    回帖

    1331

    积分

    金牌会员

    积分
    1331
    发表于 2024-4-30 08:40:01 | 显示全部楼层
    应该是IO口模式没有配置,默认为高阻状态,所以无法驱动LED
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 19:01
  • 签到天数: 87 天

    [LV.6]常住居民II

    3

    主题

    60

    回帖

    550

    积分

    荣誉版主

    积分
    550
    发表于 2024-4-30 10:38:52 | 显示全部楼层
    1. #include <stc8h.h>                   //包含支持STC8系列单片机的头文件
    2. #include <intrins.h>
    3. #include <gpio.h>
    4. #define uchar unsigned char
    5. #define uint  unsigned int
    6. sbit ok_led=P6^0;        
    7. sbit error_led=P6^1;     
    8. sbit k=P4^0;
    9. uchar  xdata  ram256[256]; //定义片内ram,256个字节
    10. /*------------------主函数---------------------*/
    11. void main(void)
    12. {
    13.         uint  i;
    14.         gpio();
    15.         
    16.         /* P6.0,P6.1设置为推挽输出 */
    17.         P6M0 |= 0x03;
    18.         P6M1 &= ~0x03;
    19.         
    20.         k=0;
    21.         for(i=0;i<256;i++)                 //先把ram数组以0--255填满
    22.         {
    23.                 ram256[i]=i;
    24.         }
    25.         for(i=0;i<256;i++)                 //通过串口把数据送到电脑显示
    26.         {
    27.                 if(ram256[i]!=i) goto Error;
    28.         }
    29.         ok_led=0;
    30.         error_led=1;
    31.         while(1);               //结束
    32. Error:
    33.         ok_led=1;
    34.         error_led=0;
    35.         while(1);
    36. }
    复制代码

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:36
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

    积分
    2890
    发表于 2024-4-30 11:52:19 | 显示全部楼层
    不知道  gpio();   是不是用来配置IO口的。

    点评

    不管是不是,在它后面做个gpio的配置,一定能工作  详情 回复 发表于 2024-4-30 13:44
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:36
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

    积分
    2890
    发表于 2024-4-30 11:56:39 | 显示全部楼层
    能提供个电路原理图会更好些。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-19 04:47 , Processed in 0.071864 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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