找回密码
 立即注册
查看: 1031|回复: 17

刚从89系列转到8H看到很多头文件不明白怎么办

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:49
  • 最近打卡:2024-09-24 06:50:15

12

主题

44

回帖

364

积分

中级会员

积分
364
发表于 2024-8-21 22:04:03 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-8-22 09:34 编辑

大家晚上好,首先感谢各位热心网友耐心读完我的帖子。我之前在学校都是从AT89开始学习单片机编程,并且还用汇编开始,后来转移到STC89系列,功能几乎一模一样,只是STC89支持串口下载。我都只学到定时器中断,后面的串口通讯和ADC0804和DAC都要用模块的,我都没有玩过。1602用AT89试过,就是根据规格书参照例程输入相关指令,基本上没什么难度。像跑马灯、数码管独立按键和矩阵按键一些基本的用法了解,能够看到教程里面的程序。现在一下子转移到STC8H,一个简单的程序都很多头文件,我一下子手忙脚乱,很多语句我都看不懂怎么办?我担心学不会。像截图中这个简单的跑马灯,在STC8H里面,都不知道这些头文件干嘛用的。而STC89系列就很简单,没有这么多头文件,只有一个“include<reg52.h>”最多也就是加了#define uint unsigned int等等这些宏定义我都懂。就是到了STC8H一下子就手忙脚乱,我都对STC89系列还放不下,担心STC8H学不会。大家刚开始转过来有没有同样的困惑?像图片中这个,头文件格式都与之前的不一样,是不是因为头文件保存的路径不一样?像这个都头文件全部保存在一个文件夹里面,如图所示。
截图202408212201435273.jpg
截图202408212203192049.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:49
  • 最近打卡:2024-09-24 06:50:15

12

主题

44

回帖

364

积分

中级会员

积分
364
发表于 2024-8-21 23:54:26 | 显示全部楼层
我对AT89和STC89有种依依不舍的感觉,之前网上下载的视频教程很多都还没开始看。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-04 00:16:27
已绑定手机

19

主题

3191

回帖

4930

积分

论坛元老

积分
4930
发表于 2024-8-22 00:01:08 | 显示全部楼层
头文件一样都是一个啊。都是一个stc8h.h,多的是其它定义,usb是usb功能。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:68
  • 最近打卡:2024-09-14 12:02:46

11

主题

75

回帖

3568

积分

荣誉版主

积分
3568
QQ
发表于 2024-8-22 01:16:54 | 显示全部楼层
其实学习STC89和STC8H,方法是一样的
STC89功能简单:外设资源少(头文件需要定义的内容少),运行速度慢(12T单片机),支持主频较低
STC8功能复杂:外设资源多(头文件需要定义的内容多),运行速度快(1T单片机),可达45MHz
截图202408220052288952.jpg

如上图两处箭头处
写法1: #include <头文件名.h> :尖括号一般用于系统自带的标准头文件,像stdio.h、intrsins.h等等
                                                用尖括号时,编译器会从系统库文件夹中查找该头文件,如果没有找到机会报错
写法2: #include "头文件名.h":双引号一般用于自定义头文件,比如delay.h 、I2C.h等等

                                               用双引号,编译器会从项目文件夹根目录查找该文件

因为官方例程,都是伴随着新型号单片机而推出的
新单片机刚推出时,很多人的Keil中还没有添加STC8H的头文件(新单片机头文件,需要用STC-ISP软件添加到Keil中)
比如当Keil库中没有stc8H.h头文件,无论是用 #include <STC8H> 还是 #include "STC8H.h",都会报错
为了适应所有情况(有些人添加了头文件到KEIL中,有些没有),在例程包COMM文件夹中放一个STC8H.h头文件
例程所有代码,都用#include 包含comm文件中的这个STC8H.h头文件,就不会有问题


#include "../comm/stc8h.h",是使用了相对地址,
如上图中,
两个点+反斜杠,代表:从当前目录返回上一级
comm+反斜杠,代表:在comm文件夹中
整体的意思,就是从当前目录(项目所在文件夹(跑马灯文件夹)),返回上一级目录,在comm文件夹中,查找stc8h.h


用STC-ISP软件,将STC8H头文件添加到KEIL中以后,就可以直接用 #include <stc8h.h> 或 #include "stc8h.h"

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2025-05-03 08:05:19
已绑定手机

4

主题

339

回帖

1566

积分

金牌会员

积分
1566
发表于 2024-8-22 07:49:29 | 显示全部楼层
布丁*** 发表于 2024-8-22 01:16
其实学习STC89和STC8H,方法是一样的
STC89功能简单:外设资源少(头文件需要定义的内容少),运行速度慢( ...

你打开头文件看看,只是多了很多定义
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:375
  • 最近打卡:2025-04-26 15:51:33
已绑定手机

27

主题

301

回帖

822

积分

高级会员

积分
822
发表于 2024-8-22 08:47:56 | 显示全部楼层
布丁*** 发表于 2024-8-22 01:16
其实学习STC89和STC8H,方法是一样的
STC89功能简单:外设资源少(头文件需要定义的内容少),运行速度慢( ...

解答 专业 {:5_332:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4851

回帖

8390

积分

超级版主

DebugLab

积分
8390
发表于 2024-8-22 09:18:31 | 显示全部楼层
这是用了usb库函数,需要的一些定义,可以不用
新建工程,直接用stc8h.h,初始化时候P_SW2|=0x80,再PxMx=0x00(x代表多个),就和89系列一样用了
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:49
  • 最近打卡:2024-09-24 06:50:15

12

主题

44

回帖

364

积分

中级会员

积分
364
发表于 2024-8-22 09:32:40 | 显示全部楼层
Debu*** 发表于 2024-8-22 09:18
这是用了usb库函数,需要的一些定义,可以不用
新建工程,直接用stc8h.h,初始化时候P_SW2|=0x80,再PxMx=0 ...

好的,非常感谢,如果我把P1M1=0x00;P1M0=0x00 就是把P1口全部设置成准双向IO口对不对?如果把P1M1=0x01;P1M0=0x01 就是把P0.1设置成推挽输出对吗?

点评

推挽P1M1=0x00,P1M0=0x01  详情 回复 发表于 2024-8-22 09:40
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:49
  • 最近打卡:2024-09-24 06:50:15

12

主题

44

回帖

364

积分

中级会员

积分
364
发表于 2024-8-22 09:33:46 | 显示全部楼层
布丁*** 发表于 2024-8-22 01:16
其实学习STC89和STC8H,方法是一样的
STC89功能简单:外设资源少(头文件需要定义的内容少),运行速度慢( ...

非常感谢,我回头好好看看。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4851

回帖

8390

积分

超级版主

DebugLab

积分
8390
发表于 2024-8-22 09:40:13 | 显示全部楼层
Bee_*** 发表于 2024-8-22 09:32
好的,非常感谢,如果我把P1M1=0x00;P1M0=0x00 就是把P1口全部设置成准双向IO口对不对?如果把P1M1=0x01 ...

推挽P1M1=0x00,P1M0=0x01
DebugLab
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 04:11 , Processed in 0.224080 second(s), 121 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表