STC8H8K64U,为什么我的灯不亮,这个程序有什么问题吗
#include <stc8h.h> //包含支持STC8系列单片机的头文件#include <intrins.h>
#include <gpio.h>
#define uchar unsigned char
#define uintunsigned int
sbit ok_led=P6^0;
sbit error_led=P6^1;
sbit k=P4^0;
ucharxdataram256; //定义片内ram,256个字节
/*------------------主函数---------------------*/
void main(void)
{
uinti;
gpio();
k=0;
for(i=0;i<256;i++) //先把ram数组以0--255填满
{
ram256=i;
}
for(i=0;i<256;i++) //通过串口把数据送到电脑显示
{
if(ram256!=i) goto Error;
}
ok_led=0;
error_led=1;
while(1); //结束
Error:
ok_led=1;
error_led=0;
while(1);
}
按理说物理怎样都应该有一个灯亮才对吧,我仿真过,RAM里面的内容没有问题,编译也是通过的
sbit k=P4^0;这个好像也有操作 main函数内没有配置IO输出功能,可以根据你的原理图配置一下IO输出方式,如果灌电流输出就配置成OD或者准双向,如果是高电平驱动LED就配置成推拉方式或开启内部上拉的OD模式。 IO口默认高阻态..相当于断路..要配置一下 需要先设置I/O状态,参考下手册 端口配置不对吧 应该是IO口模式没有配置,默认为高阻状态,所以无法驱动LED #include <stc8h.h> //包含支持STC8系列单片机的头文件
#include <intrins.h>
#include <gpio.h>
#define uchar unsigned char
#define uintunsigned int
sbit ok_led=P6^0;
sbit error_led=P6^1;
sbit k=P4^0;
ucharxdataram256; //定义片内ram,256个字节
/*------------------主函数---------------------*/
void main(void)
{
uinti;
gpio();
/* P6.0,P6.1设置为推挽输出 */
P6M0 |= 0x03;
P6M1 &= ~0x03;
k=0;
for(i=0;i<256;i++) //先把ram数组以0--255填满
{
ram256=i;
}
for(i=0;i<256;i++) //通过串口把数据送到电脑显示
{
if(ram256!=i) goto Error;
}
ok_led=0;
error_led=1;
while(1); //结束
Error:
ok_led=1;
error_led=0;
while(1);
}
不知道gpio(); 是不是用来配置IO口的。 能提供个电路原理图会更好些。
页:
[1]
2