zschen 发表于 2023-12-29 17:17:07

什么原因程式写入成功,但程式不跑吗

各位大神,本人刚学单片机,现想用STC8G1K08A-SOP8芯片做下演示板,不用外围晶振,原理图如下:



程式如下:

#include <STC8G.h>
#include<intrins.h>
#include<math.h>
#define CLKSEL (*(unsigned char volatile xdata*)0xfe00)


unsigned char p,z=0;
unsigned int i=0,q=0,m=5;
sbit k1=P3^1;
sbit echo=P3^2;
sbittrig=P3^3;
void delay_us(unsigned int i)
{
while(i)
{
    unsigned char a;
    for(a=5;a>0;a--);
    i--;
}
}
void delay100ms(unsigned int i)
{
while(i)
{
    unsigned char a,b,c;
    for(c=106;c>0;c--);
    for(b=197;b>0;b--);
    for(a=38;a>0;a--);
    _nop_();
    i--;
}
}
void main()
{
P3M1=0x00;
P3M0=0x0e;
P5M1=0;
P5M0=0;
P_SW2=0x80;
CLKSEL=0x00;
P_SW2=0x00;
P3=0xff;
while(1)
{
    echo=0;
    trig=0;
    delay100ms(50); //启动5秒种后开炸头
    echo=1;
    trig=1;
    delay100ms(30); //开炸头3秒,如此反复工作开关继电器通断控制炸头
}
}


采用U8W工具写程式的提示信息如下图:


但结果系芯片按原理图上电后,红色及绿色指示灯不闪动,一直亮。请教下各位指点下那里不对,谢谢!


神农鼎 发表于 2023-12-29 19:21:57

程序 ISP 进去后,会立即复位到用户区,立即跑用户程序

zschen 发表于 2023-12-30 19:12:37

先多谢楼上答复,预祝各位元旦愉快,反映的问题系程式运行不了,不是烧录程式不成功,因没使用外围晶振,不知是不是原因,还望指教{:4_196:}谢谢

zschen 发表于 2023-12-30 19:13:54

不知是不是程式有问题,麻烦帮分析下,再次感谢!

嵌入式之路 发表于 2023-12-30 20:35:33

zschen 发表于 2023-12-30 19:13
不知是不是程式有问题,麻烦帮分析下,再次感谢!

你直接写个最小的点亮下LED测试下

小涵子爸爸 发表于 2023-12-30 21:38:11

楼上说的对,学单片机从点灯开始

zschen 发表于 2023-12-31 18:29:26

就是一个点LED灯的简单程式呢,原理图也系简单的,只系有一个程式延时,如果没有延时,也看不到LED灯是否有变化,同样也不知程式是否运行,还系帮看下没外接晶振时,STC8G1K08-SIP8芯片在上述程式定议是否正确这方面指教下,谢谢!

神农鼎 发表于 2023-12-31 18:53:15


把这个程序烧进去测试下






zschen 发表于 2024-1-3 16:06:19

神农鼎 发表于 2023-12-31 18:53
把这个程序烧进去测试下

多谢楼上的指教,问题解决了,如果没提醒,还不知烧录软件还这么好用,谢了!{:handshake:}

xxkj2010 发表于 2024-1-3 17:13:23

本帖最后由 xxkj2010 于 2024-1-3 17:14 编辑

1、单独点灯,不至于用P_SW2和CLKSEL吧。
2、P3M0 = 0x00; P3M1 = 0x0e; 是把P32P33设置成高阻输入模式了,所以无法输出!这是关键所在。

页: [1]
查看完整版本: 什么原因程式写入成功,但程式不跑吗