严西湖里的鱼 发表于 2024-11-20 22:32:09

Proteus几个版本都试了,和keil就是不能联调,不知道那里有错误。算了,就这样先跑程序,不能在这个上面耗费太多时间了。

严西湖里的鱼 发表于 2024-11-21 10:40:42

不知道为什么下面这段程序如果用include <sys_Delay.c>就没问题,一用include <sys_Delay.h>就报警告?

//主程序
#include <STC15F2K60S2.H>
#include <sys_Delay.c>

void main(void)
{
       
        while(1)
        {
                P4=0x00;
                Delay(10);
                P4=0xff;
                Delay(10);
        }
}

//---------------------------------------------------
//sys_Delay.c的内容
#include <STC15F2K60S2.H>
#include <intrins.h>

void Delay100ms(void)        //@11.0592MHz
{
        unsigned char data i, j, k;

        _nop_();
        _nop_();
        i = 5;
        j = 52;
        k = 195;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

void Delay(unsigned char dly_t)
{
        unsigned char n;
       
        for(n=0;n<dly_t;n++)
        {
                Delay100ms();
        }
}

//---------------------------------------------------
//sys_Delay.h的内容
#ifndef MY_DELAY_TIME

        #define MY_DELAY_TIME       

        void Delay100ms(void);       
        void Delay(unsigned char dly_t);

#endif

严西湖里的鱼 发表于 2024-11-21 10:45:06

报警的内容:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:_DELAY
    MODULE:.\Objects\main.obj (MAIN)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:_DELAY
    MODULE:.\Objects\main.obj (MAIN)
    ADDRESS: 0009H
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:_DELAY
    MODULE:.\Objects\main.obj (MAIN)
    ADDRESS: 0011H
Program Size: data=9.0 xdata=0 code=33
creating hex file from ".\Objects\SMG.omf"...
".\Objects\SMG.omf" - 0 Error(s), 3 Warning(s).

其中的sys_Delay.c和.h的文件都放在一起在Libs目录下,并且路径也加入到C51编译器中的“include paths”去了,不明所以呀!

严西湖里的鱼 发表于 2024-11-22 19:03:08

原来是sys_Delay.c必须包含在项目中,哪怕是include paths已经包含了路径,这只是能让编译器识别出sys_Delay.h头文件,.c结尾的原文件还是要包含到项目中去,否则编译时就会出现警告信息。

浦江一水 发表于 2024-11-22 22:19:42

严西湖里的鱼 发表于 2024-11-21 10:40
不知道为什么下面这段程序如果用include 就没问题,一用include 就报警告?

//主程序


偶尔浏览至此, 通读了楼主的学习心得, 颇为着急, 冒昧留言几句:

一开始是奔着免费送实验箱的目的来的,一路上也一再强调,没有实验箱没法学习,"学"了20天, 还没拿到,最后就说“早知道就不花时间学这个课程了,直接学32位的了”。

短短半个多月,能从单片机Z80的历史说起,...到中断系统...DMA...RS485多机通讯...几乎把单片机的全部理论知识,都学了一遍. 方方面面谈起来,也已头头是道、游刃有余了, 这是应该肯定的, 也是很了不起的了.

但是看到这里你写的程序(估计是第一个程序吧?),却显露了你学习的真实情况。

首先,可能你还不知道:
#include <STC15F2K60S2.H>
#include <sys_Delay.c>

#include “STC15F2K60S2.H”
#include “sys_Delay.c”
的写法有什么区别吧?

“一用include <sys_Delay.h>就报警告”,搞清楚了没?
其实你已经无意中, 在做多文件的工程了。

根据While(1){...} 的循环看,你大概想让P4口不断的电平翻转
(如果是驱动LED的话就是不断的亮灭了)
这是最最基本的点灯实验, 但是,前面对IO端口模式初始化了吗?
......
......
单片机的学习过程,是一个软硬件和理论实践紧密结合的学习过程。
要注意学习的目的、学习的方法和对每个知识点概念的理解。

许多新手都不是从实验箱才开始学习的, 而是从动手搭建小电路板开始的。

当你拿到官方的AI8051U芯片后,又觉得还是用Proteus软件仿真吧。
殊不知,AI8051U是新型芯片,你的Proteus支持这款芯片了吗?

"直接学32位"?若没有8位的扎实基础, 那可能是空中楼阁啊.

也许, 当你真正明白为什么还没能得到实验箱的时候, 那你就能得到了.

建议你好好享用一下AI8051U这珍贵的芯片,
去买一块散装的51单片机开发实验板(不带CPU,很便宜的),
动动手, 练练焊接的过程, 理解一下电路原理, 再把AI8051U插上去,
从单文件工程开始, 从点灯开始, 一行一行写代码, (即使是抄写)
要理解每一句代码的语法和用意,
学会编译环境的搭建, 学会AIapp-ISP软件的使用. 学会下载/仿真调试....
开始你真正的学习征程吧....
......
得罪了.

严西湖里的鱼 发表于 2024-11-23 23:01:02

感谢指点,自己确实有很多不足之处,受教颇多。确实准备采用这个方法,自己用芯片搭建点简单的电路先试下。毕竟软件很多东西模拟的和实际确实有比较大的出入,而且新芯片的功能有很多都没法模拟。再次感谢!

大叶子 发表于 2024-11-24 07:46:04

本帖最后由 大叶子 于 2024-11-24 07:48 编辑

严西湖里的鱼 发表于 2024-11-23 23:01
感谢指点,自己确实有很多不足之处,受教颇多。确实准备采用这个方法,自己用芯片搭建点简单的电路先试下。 ...
你不要着急,学习是个漫步级的享受。
浦江一水,是个很好的老师级坛友。他的话,
你在接下来的日子,会有好的感受的。
你很努力了。不过,不要着急。
有空,多看看,浦江的贴,和他写的程序。他是很认真的一个人。
他真的在,心里帮助你,
不然,他,也没空,说这么多。
再说一下,有空,多看看,浦江的贴,和他写的程序,很认真的。
值得,花点时间,去小小研究,研究。
新人,会有得到的。{:smile:}

严西湖里的鱼 发表于 2024-11-24 20:28:49

谢谢指导,开始确实有点想着赶在12月份嘉立创的活动结束前参加的,有些想法用单片机来实现。不过大家对我的教导感觉让我获得的更多,技术的提升确实每一步都要走扎实。

神农鼎 发表于 2024-11-24 20:47:45

偶尔浏览至此 !

学习心得写的很空乏,不感人,但现在 Ai8051U 全球大学计划正在启动,
需要众人拾柴火焰高,截本段文字给客服,直接送 AI8051U-实验箱。

全球同步从 Ai8051U 开始学习,帮带头发表学习心得,为 AI8051U加油 !!!


https://www.stcaimcu.com/forum.p ... id=11528&pid=116336




写给还在使用 89C52实验箱 来入门的:



建议大家直接过度到管脚兼容的 Ai8051U-PDIP40/LQFP44/LQFP48
来入门《单片机原理及应用》, www.STCAIMCU.com
Ai8051U-LQFP48比普通 M0/M3,比 32F103C8T6 强太多的地方:
1,Ai8051U有TFPU@120MHz, 算力比他强, uS级硬件三角函数/浮点运算器;
2,Ai8051U的抗干扰比他强;
3,Ai8051U的内部复位是专业级的复位电路,彻底省外部复位;
4,Ai8051U的内部时钟完全满足串口通信要求,4组串口;
5,Ai8051U-LQFP48有 QSPI, i8080/M6800-TFT 接口,32F103C8T6没有;
6,Ai8051U的PWM支持硬件移相@120MHz
7,Ai8051U是 34K SRAM, DMA 支持 外设直接到外设,P2P
8,Ai8051U是 自带硬件USB, 1个芯片就能直接USB连接电脑仿真/下载,全球唯一
   ===这个开发生态,全球最强
Ai8051U-LQFP48, RMB2.3含税
Ai8051U手写计算器,51世界,AI 开山之作,全面进入 TinyML 时代

还是直接过度到管脚兼容更简单更强大的 AI8051U来入门:
T0/T1的模式0被改造成16位自动重载,只讲一种模式就行了
另外还有8位预分频,打开就是24位自动重装载定时器
定时器更简单,定时器更强大了

用T1的模式0来做串口波特率发生器,串口也简单了
波特率 = 系统时钟/4/(65536-重装数),速度快了,
可以到10Mbps, 误差几乎没了
这样,51的 定时器,串行口,就更简单更强大了





神农鼎 发表于 2024-11-24 20:53:15

【免费+包邮】 送/申样/采购 可上班时间加 如下您对应地区的客服 QQ或微信联系
加STC华南区客服刘经理QQ: 3398500488 ;微信:18106296592要求 【免费+包邮】 送, 还免费教仿真
加STC华南区客服曹经理QQ:1933892258 ;微信:18106296595 要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服聂经理QQ:2593903262;微信:18106296598要求 【免费+包邮】 送, 还免费教仿真
加STC西北区客服孙经理QQ: 1347154513 ;微信:18106296593要求 【免费+包邮】 送, 还免费教仿真
加STC华北区客服石经理QQ: 1638975601 ;微信:19952583876要求 【免费+包邮】 送, 还免费教仿真
加STC华中区客服唐经理QQ:2571301708 ;微信:18106296589 要求 【免费+包邮】 送, 还免费教仿真
加STC东北区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
工作时间:8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)

【免费+包邮】 送/申样/采购传统电话热线:0513-55012928、0513-55012929、0513-89896509
工作时间:8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)
页: 1 2 3 [4] 5
查看完整版本: 学习打卡,努力坚持 | 直接送 Ai8051U-实验箱