i_zw 发表于 2024-4-17 22:40:24

新手上路的奇怪问题,请指教【已解决】

本帖最后由 8051启蒙者 于 2024-5-8 10:10 编辑

用 STC8H8K64U 的计时器做一个方波评率发生器,自己按照最小系统画了板,贴了芯片上去,VCC,GND,P31,P30接上

问题:用USB转串口或STC-USB Link1D,写入程序后,不能直接运行,手动断电后还是不能运行。用万用表测试正负供电正常

一直怀疑参考的程序有问题,就用Link1D的进行调试。

STC8H8K64U每次在STCAI-ISP内点击Keil仿真设置-将所选目标单片机设置为仿真芯片后,
启动Keil的调试,点击Run,就运行起来了
用示波器测量输出脚的波形就出现250K HZ方波了。

所以估计不是程序问题,是哪里的设置问题,请大家看看可能是哪里问题?


神农鼎 发表于 2024-4-17 22:45:40

T0CLKO,T1CLKO,T2CLKO,T3CLKO,T4CLKO

电子DIY小家 发表于 2024-4-18 08:04:17

建议代码压缩个传上来看看

jwd 发表于 2024-4-18 08:43:45

你是写入程序还是仿真写入?

小飞侠 发表于 2024-4-18 09:01:56

是不是没有下载程序,芯片还处于仿真状态

乘风飞扬 发表于 2024-4-18 09:39:16

烧写程序需要使用STCAI-ISP软件加载程序文件,设置硬件选项后点击“下载/编程”按钮烧录。
51芯片通过仿真方式,在keil里面点Debug按钮下载的程序是不能直接运行的,只能通过仿真运行。

i_zw 发表于 2024-4-18 22:49:41

神农鼎 发表于 2024-4-17 22:45
T0CLKO,T1CLKO,T2CLKO,T3CLKO,T4CLKO

没有用这些输出,直接用的 tm isr P27=!P27 这样的

i_zw 发表于 2024-4-18 22:52:59

jwd 发表于 2024-4-18 08:43
你是写入程序还是仿真写入?

用STC-ISP直接下载的

i_zw 发表于 2024-4-18 22:55:06

乘风飞扬 发表于 2024-4-18 09:39
烧写程序需要使用STCAI-ISP软件加载程序文件,设置硬件选项后点击“下载/编程”按钮烧录。
51芯片通过仿真 ...

是通过ISP下载的,没有通过keil的仿真,用link d1配置Keil 了STC- monitor-51 driver ,设置好com口后,直接调试,就能运行起来

i_zw 发表于 2024-4-18 23:02:40

本帖最后由 i_zw 于 2024-4-18 23:09 编辑

电子DIY小家 发表于 2024-4-18 08:04
建议代码压缩个传上来看看
第一步就没有走通,就是用的tm isr的例子程序改的,想先在管脚产生个方波再说后面的,在开发版和自己的板子上都是一样的效果。使用代码:

#include "stc8h.h"
#include "intrins.h"

void TM1_Isr() interrupt 3 using 2
{
    P27 = !P27;                                 //????
}

void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;

        P27=0;
       
        AUXR |= 0x40;                        //1Tmode
        TMOD &= 0x0F;                        //???????
        TMOD |= 0x20;                        //???????
        TL1 = 0xBE;                                //???????
        TH1 = 0xBE;                                //???????
        TF1 = 0;                                //clear TF1
        TR1 = 1;                                //start Timer1
        ET1 = 1;
       
        EA=1;

    while (1);
}



自己的板子和 开发板。自己的板子就是把vcc gnd p30,p31 引出来 可以烧程序
页: [1] 2
查看完整版本: 新手上路的奇怪问题,请指教【已解决】