多年积累下来,一些杂七杂八的问题,请教下
2023-5-2 18:06 来自 sky999 发布@ 综合讨论
1.因为习惯了,单片机旁边总是放了个47UF和103电容,我想问下,假如前面的降压电路已经有个220UF电容了,还需要这个47UF的吗?
2.检测语句比如 if(i>1) 和if(i>=1) 这2种判断语句的实际用时是一样的吗?还是说后者多一倍时间?
3.前几天有个板子,用的是内部晶振,当使用22.1184Mhz时,可以正常发送“自定义命令并下载”烧录,正常通信,
但使用33.1776Mhz时,无法发送“自定义命令并下载”烧录,但是通信也是正常的,其他没改,就只是单纯改了频率,这是什么原因照成的呢?
程序中,只是在串口中断使用了“IAP_CONTR = 0x60;”,单片机也确实发生了重启,就是不会下载,但是改回22.1184就可以。
4.EEPROM程序中,当芯片频率是22.1184Mhz时,IAP_TPS应该写22还是24? 我试过都可以用,就是不放心,想确认下。
5.STC8G有内建LDO,那有ADC的电路,是不是不需要再外接LDO了,直接用DCDC飘荡大吗?
6.“振荡器放大增益”,“上电复位使用较长延时”,这俩东西在烧录软件上看见好多年了
2.检测语句比如 if(i>1) 和if(i>=1) 这2种判断语句的实际用时是一样的吗?还是说后者多一倍时间?
3.前几天有个板子,用的是内部晶振,当使用22.1184Mhz时,可以正常发送“自定义命令并下载”烧录,正常通信,
但使用33.1776Mhz时,无法发送“自定义命令并下载”烧录,但是通信也是正常的,其他没改,就只是单纯改了频率,这是什么原因照成的呢?
程序中,只是在串口中断使用了“IAP_CONTR = 0x60;”,单片机也确实发生了重启,就是不会下载,但是改回22.1184就可以。
4.EEPROM程序中,当芯片频率是22.1184Mhz时,IAP_TPS应该写22还是24? 我试过都可以用,就是不放心,想确认下。
5.STC8G有内建LDO,那有ADC的电路,是不是不需要再外接LDO了,直接用DCDC飘荡大吗?
6.“振荡器放大增益”,“上电复位使用较长延时”,这俩东西在烧录软件上看见好多年了
STC单片机的情怀
2023-4-27 18:33 来自 wp870521 发布@ 综合讨论
本帖最后由 wp870521 于 2023-4-28 16:49 编辑
很早就开始接触STC单片机,准确的说毕业之后。不仅能够完全兼容C51,而且是超级升级版。
当时还在一个项目上纠结用AVR还是STC,综合之下,妥妥的STC
希望自己和STC一直在发展,一直在进步!
致STC,同样致自己!
很早就开始接触STC单片机,准确的说毕业之后。不仅能够完全兼容C51,而且是超级升级版。
当时还在一个项目上纠结用AVR还是STC,综合之下,妥妥的STC
希望自己和STC一直在发展,一直在进步!
致STC,同样致自己!
第三方应用程序调用STC发布项目程序对单片机进行ISP下载
2023-4-26 14:08 来自 QQ624353765 发布@ 综合讨论
第三方应用程序调用STC发布项目程序对单片机进行ISP下载, 可以吗
8939
我的设备有一套自己的上位机软件,我是想程序升级直接用我的上位机完成升级,
不需要再让我司的用户再去打开另外一个,STC帮我们发布的虽然也是我们用户自己界面的软件去升级,
如果发布项目程序能内嵌到我们用户的专有的上位机进行升级,我们用户就会更方便了
8939
我的设备有一套自己的上位机软件,我是想程序升级直接用我的上位机完成升级,
不需要再让我司的用户再去打开另外一个,STC帮我们发布的虽然也是我们用户自己界面的软件去升级,
如果发布项目程序能内嵌到我们用户的专有的上位机进行升级,我们用户就会更方便了
STC8H4K里uint16数组为什么前面必须加code才能正常?
2023-4-26 10:26 来自 zcllom 发布@ 综合讨论
STC8H4K里uint16数组为什么前面必须加code才能正常?
做了两个unit16的温度值数组,每个数组都有120个uint16的温度值数据。
不正常的现象是数组查表的结果完全不正常
没有加code:
Program Size: data=10.7 xdata=1099 code=8396
加上code:
Program Size: data=10.7 xdata=615 code=8388
做了两个unit16的温度值数组,每个数组都有120个uint16的温度值数据。
不正常的现象是数组查表的结果完全不正常
没有加code:
Program Size: data=10.7 xdata=1099 code=8396
加上code:
Program Size: data=10.7 xdata=615 code=8388
stc32g可以用蓝牙透传uart升级固件吗,不断电
2023-4-24 17:14 来自 poju 发布@ 综合讨论
使用手机蓝牙,微信小程序控制,能否用小程序远程升级固件呢?谁教教我{:dizzy:}
STC8H系列有专用的头文件STC8H.h可以不用用其他的头文件代替
2023-4-24 14:01 来自 沈洁 发布@ 综合讨论
之前STC8H系列芯片刚出来的时候,没注意到有STC8H.h的专用头文件,
现在STC-ISP V6.91N 软件里面已经升级拥有了升级了N次的STC8H.h的头文件了,
大家都升级下。避免不一致的地方,编译会出错。
官方的这个不错,但是注解再多些就更好了,先看官方的,再看爱好者自己加的强大的注解
8764
#ifndef __STC8H_H__
#define __STC8H_H__
/////////////////////////////////////////////////
//包含本头文件后,不用另外再包含"REG51.H"
sfr P0 = 0x80;
sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;
sbit
现在STC-ISP V6.91N 软件里面已经升级拥有了升级了N次的STC8H.h的头文件了,
大家都升级下。避免不一致的地方,编译会出错。
官方的这个不错,但是注解再多些就更好了,先看官方的,再看爱好者自己加的强大的注解
8764
#ifndef __STC8H_H__
#define __STC8H_H__
/////////////////////////////////////////////////
//包含本头文件后,不用另外再包含"REG51.H"
sfr P0 = 0x80;
sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;
sbit
本来想剩下个24C64,DS1402,27.120Mhz晶振省点钱
2023-4-23 15:26 来自 伽马刀 发布@ 综合讨论
85798578
图都画完了,没想到老款MCU降价啦,老板说不换方案了。哈哈哈。可以想想5一放假去哪玩啦。{:4_186:}
图都画完了,没想到老款MCU降价啦,老板说不换方案了。哈哈哈。可以想想5一放假去哪玩啦。{:4_186:}
STC32G记录一个magic事件
2023-4-22 12:53 来自 蒙蒙plus 发布@ 综合讨论
本帖最后由 蒙蒙plus 于 2023-4-22 12:58 编辑
例程放这里了 8531
MCU情况
. 内部参考电压: 1186 mV (参考范围: 1100~1300mV)
. 内部安排测试时间: 2022年8月6日
单片机型号: STC32G12K128-Beta
固件版本号: 7.4.5U
功能分配情况
Timer0 做全局的滴答时钟
UART1 用BRT_Timer1 做波特率发生器
3个LED 灯
#define LED_RED P50
#define LED_GREEN P51
#define LED_YELLOW P52
两个按键 P54,P32
主程序任务
/**
* @brief 主程序 程序入口
*
*/
void main()
{
/** 局部变量定义*/
/** 变量初始化*/
/*
例程放这里了 8531
MCU情况
. 内部参考电压: 1186 mV (参考范围: 1100~1300mV)
. 内部安排测试时间: 2022年8月6日
单片机型号: STC32G12K128-Beta
固件版本号: 7.4.5U
功能分配情况
Timer0 做全局的滴答时钟
UART1 用BRT_Timer1 做波特率发生器
3个LED 灯
#define LED_RED P50
#define LED_GREEN P51
#define LED_YELLOW P52
两个按键 P54,P32
主程序任务
/**
* @brief 主程序 程序入口
*
*/
void main()
{
/** 局部变量定义*/
/** 变量初始化*/
/*
用STC单片机代换量产单片机
2023-4-20 11:17 来自 lclbf 发布@ 综合讨论
功能:
输入220VAC用开关短时间开关机,切换输出,单路(K1),两路(K1+K2),单路(K1),工作一分钟,再关机有记忆关机前状态的功能。
这个程序是以前别人写的;现在用STC的单片机来代换,如何写这个程序?我才学冲哥视频,想不到思路,1是如何检测,2是记忆。
原理图如下:
8350
8351
STC8H8K64U 的一个想法
2023-4-19 19:20 来自 zdg102 发布@ 综合讨论
困扰主要在于批量烧录程序, 因为需要使用 USB , 所以可以USB直接USB接电脑烧录。 但是蛋疼的点在于, 硬件上不可能整个按键,按下去才进入USB烧录。
所以有没有可能,STC8H8K64U 出厂的时候,就默认烧录下面这个程序。 这样我也能省掉烧录费了, 通过USB自己烧录了。
#include "stc.h"
void main()
{
IAP_CONTR |= 0x60;
}
[论坛疑问]现在是不是不让查看个人空间了?
2023-4-14 19:29 来自 mxdyeah 发布@ 综合讨论
现在是不是不让查看个人空间了?我突然就这样了,不知道是不是我的问题{:4_167:}
STC15F2K60S2真的可以用485下载吗?
2023-4-14 10:34 来自 Cyfd_Zl 发布@ 综合讨论
1.把485复用到3.0和3.1上了,硬件电路参考 STC15 用户手册,采用的是自动控制。按理说应该不用选择 STC-ISP 里面的RS485控制吧(如果仍需要选择,请说明需要选择的控制引脚)
2.断开485芯片,通过TTL下载正常。连接485芯片,通信正常(手动发送单片机握手信息)。
3.用串口助手发送0x7f模拟下载,单片机会发送握手信息,但数据与 TTL下的握手信息偶尔不符。
注:必须将STC-ISP选择为固定波特率,(最低波特率 = 最高波特率),否则检测不到单片机,不知原因。
设置为固定波特率:可能提示 通信超时。可能提示单片机选型错误。没有可能下载成功。
有知道原因的吗?如何才能做到通过485下载?
2.断开485芯片,通过TTL下载正常。连接485芯片,通信正常(手动发送单片机握手信息)。
3.用串口助手发送0x7f模拟下载,单片机会发送握手信息,但数据与 TTL下的握手信息偶尔不符。
注:必须将STC-ISP选择为固定波特率,(最低波特率 = 最高波特率),否则检测不到单片机,不知原因。
设置为固定波特率:可能提示 通信超时。可能提示单片机选型错误。没有可能下载成功。
有知道原因的吗?如何才能做到通过485下载?
STC8A8K64内部上拉上拉电阻如何启用
2023-4-12 20:29 来自 jasondj118 发布@ 综合讨论
大佬们,帮我看下这段芯片内部上拉电阻启用的代码对吗?我用了感觉没有效果
MOV P0M0,#00H
MOV P0M1,#00H
MOV P1M0,#00H
MOV P1M1,#00H
MOV P2M0,#00H
MOV P2M1,#00H
MOV P3M0,#00H
MOV P3M1,#00H
MOV P_SW2,#80H
MOV DPTR,#0FE10H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#0FE11H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#0FE12H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#0FE13H
MOV A,#0FFH
MOVX @DPTR,A
MOV P_SW2,#00H
MOV AUXR,#00H
MOV P0M0,#00H
MOV P0M1,#00H
MOV P1M0,#00H
MOV P1M1,#00H
MOV P2M0,#00H
MOV P2M1,#00H
MOV P3M0,#00H
MOV P3M1,#00H
MOV P_SW2,#80H
MOV DPTR,#0FE10H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#0FE11H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#0FE12H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#0FE13H
MOV A,#0FFH
MOVX @DPTR,A
MOV P_SW2,#00H
MOV AUXR,#00H
老板,后续会出 8G1K28-TSSOP20 吗?
2023-4-12 18:51 来自 tzgok 发布@ 综合讨论
8H1K28-TSSOP20已经出了,但是工作电流不如8G1K低,期待能出:8G1K28-TSSOP20
一箭双雕之USB转双串口莫名其妙的干扰
2023-4-11 13:45 来自 HengTuo 发布@ 综合讨论
一箭双雕之USB转双串口板HEX模式发送数据F1 01 软件却显示发送数据0D 0A
把无线键盘拆下来 就显示正常,是软件收到干扰,还是硬件收到干扰?
7567
7566
开启串口打印功能后单片机没有执行if语句
2023-4-11 10:30 来自 980578873 发布@ 综合讨论
各位大佬,我经常遇到这个问题:在函数while(1)的大循环里面,如果开启串口打印信息功能,定时计时250mS时间到并没有打开绿灯,或者定时计时250mS时间到了打开绿灯但是到后面1050mS到了绿灯并没有关闭。如果关闭串口打印信息功能,一切正常。这是为什么?如果要开启串口打印信息功能同时也要单片机运行程序正常,怎么解决此问题?
while(1)
{
data_0x10=read_data(0x10);//读取充电盒各种状态的寄存器
ST_CH=0x20&data_0x10;//如果芯片在充电状态,ST_CH==0x20
ST_CH_END=0x40&data_0x10;//如果电池充满电,ST_CH_END==0x40
TI=1;
printf("ST_CH_END is 0x%bx\n",ST_CH_END);//串口打印ST_CH_END状态
while(TI==0);
TI=0;
if(open_lid_flag==1)
{
if(oc_lid_led_5ms==50)
PCA输出PWM改了一点地方也可以?
2023-4-10 19:12 来自 MWX 发布@ 综合讨论
范例中
CCAPM0 = 0x42; //PCA模块0为PWM工作模式
PCA_PWM0 = 0x80; //PCA模块0输出6位PWM
CCAP0L = 0x20; //PWM占空比为50%
CCAP0H = 0x20;
//--7位PWM--
CCAPM1 = 0x42; //PCA模块1为PWM工作模式
PCA_PWM1 = 0x40; //PCA模块1输出7位PWM
CCAP1L = 0x20; //PWM占空比为75%
CCAP1H = 0x20;
我变成这样
CCAPM0 = 0x42; //PCA模块0为PWM工作模式
PCA_PWM0 = 0x80; //PCA模块0输出6位PWM
CCAP0L = 0x20; //PWM占空比为50%
CCAP0H = 0x20;
//--7位PWM--
CCAPM1 = 0x42; //PCA模块1为PWM工作模式
PCA_PWM1 = 0x40; //PCA模块1输出7位PWM
CCAP1L = 0x20; //PWM占空比为75%
CCAP1H = 0x20;
我变成这样
关于STC8H8K64U单片机休眠电流问题,请高手解答。
2023-4-10 17:01 来自 jnyyz 发布@ 综合讨论
本帖最后由 jnyyz 于 2023-4-10 17:34 编辑
STC8H8K64U休眠电流不稳定,有时会是0.56uA(正常值),有时是1.7uA左右,同样的程序,同样的硬件,就是飘忽不定,这次加电好了,下次可能又成了1.7uA,差1.14uA电流始终没有找到问题点。初始化代码如下:
#define GpsPowerOn() MGRxd=1;MGTxd=1;GpsPower=0;//FLAGGpsStart=1;
#define GpsPowerOff() GpsPower =1;MGRxd=0;MGTxd=0;//FLAGGpsStart=0;
#define Uart3On() IE2 |= 0x08;
#define Uart3Off() IE2 &= ~0x08;
#define GpsBatOn() GpsBa
STC8H8K64U休眠电流不稳定,有时会是0.56uA(正常值),有时是1.7uA左右,同样的程序,同样的硬件,就是飘忽不定,这次加电好了,下次可能又成了1.7uA,差1.14uA电流始终没有找到问题点。初始化代码如下:
#define GpsPowerOn() MGRxd=1;MGTxd=1;GpsPower=0;//FLAGGpsStart=1;
#define GpsPowerOff() GpsPower =1;MGRxd=0;MGTxd=0;//FLAGGpsStart=0;
#define Uart3On() IE2 |= 0x08;
#define Uart3Off() IE2 &= ~0x08;
#define GpsBatOn() GpsBa