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

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2024-05-05 22:53:16

8

主题

15

回帖

134

积分

注册会员

积分
134
发表于 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里面的内容没有问题,编译也是通过的

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:428
  • 最近打卡:2025-05-07 00:13:45
已绑定手机

19

主题

3194

回帖

4948

积分

论坛元老

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:421
  • 最近打卡:2025-05-07 00:05:44
已绑定手机

35

主题

2107

回帖

2247

积分

荣誉版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:340
  • 最近打卡:2025-05-06 19:09:22
已绑定手机

14

主题

600

回帖

2215

积分

荣誉版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:508
  • 最近打卡:2025-05-07 07:34:14
已绑定手机

1

主题

836

回帖

1521

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:524
  • 最近打卡:2025-05-07 07:52:10
已绑定手机

46

主题

1728

回帖

2682

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:400
  • 最近打卡:2025-05-07 05:26:49

16

主题

702

回帖

994

积分

高级会员

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

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-03-09 18:14:54

3

主题

88

回帖

642

积分

荣誉版主

积分
642
发表于 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. }
复制代码

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:526
  • 最近打卡:2025-05-07 07:52:42

109

主题

1910

回帖

5304

积分

论坛元老

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

点评

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:526
  • 最近打卡:2025-05-07 07:52:42

109

主题

1910

回帖

5304

积分

论坛元老

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 14:26 , Processed in 0.130628 second(s), 124 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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