严西湖里的鱼
发表于 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(周一 到 周五, 法定节假日除外)