久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1986|回復: 15
收起左側

為什么不同款單片機包含的頭文件卻是一樣的 STC的

[復制鏈接]
ID:1091094 發表于 2023-12-27 12:16 | 顯示全部樓層 |閱讀模式
大家都知道STC89C52寫程序時,包含的頭文件是<reg51.h>;
  但是為什么STC8A8K64S4A12,給它寫程序時,包含的頭文件也是<reg51.h>,而且是他們的芯片手冊上的推薦例程這么寫的。
因為這兩款芯片的資源很不一樣啊,STC8A8K64S4A12多了這么多資源。

  1. //C 語言代碼
  2. #include "reg51.h"
  3. #include "intrins.h"
  4. sbit P10 = P1^0;
  5. sbit P11 = P1^1;
  6. void INT0_Isr() interrupt 0
  7. {
  8. if (INT0) //判斷上升沿和下降沿
  9. {
  10. P10 = !P10; //測試端口
  11. }
  12. else
  13. {
  14. P11 = !P11; //測試端口
  15. }
  16. }
  17. void main()
  18. {
  19. IT0 = 0; //使能 INT0 上升沿和下降沿中斷
  20. EX0 = 1; //使能 INT0 中斷
  21. EA = 1;
  22. while (1);
  23. }
復制代碼

這是為什么呢?

回復

使用道具 舉報

ID:213173 發表于 2023-12-27 14:16 | 顯示全部樓層
當你用到哪個寄存器時可以定義地址,你這個程序要設置端口模式,否則不能正常運行。
//C 語言代碼
#include "reg51.h"
#include "intrins.h"

sfr  P1M1 = 0x91;
sfr  P1M0 = 0x92;
sfr  P3M1 = 0xb1;
sfr  P3M0 = 0xb2;


sbit P10 = P1^0;
sbit P11 = P1^1;

void INT0_Isr() interrupt 0
{
        if (INT0) //判斷上升沿和下降沿
        {
                P10 = !P10; //測試端口
        }
        else
        {
                P11 = !P11; //測試端口
        }
}
void main()
{
        P1M1=0x00;
        P1M0=0x00;
        P3M1=0x00;
        P3M0=0x00;

       
        IT0 = 0; //使能 INT0 上升沿和下降沿中斷
        EX0 = 1; //使能 INT0 中斷
        EA = 1;
        while (1);
}
回復

使用道具 舉報

ID:1057978 發表于 2023-12-27 15:45 | 顯示全部樓層
STC就是傳承自51單片機,增加了許多其他資源,引用頭文件一樣,說明在內核設計上是兼容傳統51單片機的
回復

使用道具 舉報

ID:814525 發表于 2023-12-27 15:59 | 顯示全部樓層
STC單片機有很多與芯片對應的頭文件,你要使用reg51.h。你說這是為什么???
回復

使用道具 舉報

ID:883242 發表于 2023-12-27 16:46 | 顯示全部樓層
說明了你可以把這些單片機當成最基本的51單片機來用。
回復

使用道具 舉報

ID:57657 發表于 2023-12-27 18:18 | 顯示全部樓層
wulin 發表于 2023-12-27 14:16
當你用到哪個寄存器時可以定義地址,你這個程序要設置端口模式,否則不能正常運行。
//C 語言代碼
#inclu ...

reg51.h 是AT89系列單片機使用的,你應該引用STC對應的的頭文件,而不是使用sfr去定義寄存器地址。
部分寄存器在擴展RAM區域(XDADA)區域,訪問這些寄存器,需先將P_SW2的BIT7設置為1,才可正常讀寫。
不同系列單片機的相同的寄存器,地址可能會不一樣,否則你這樣出了問題都找不到北。
回復

使用道具 舉報

ID:1091094 發表于 2023-12-27 19:07 | 顯示全部樓層
wulin 發表于 2023-12-27 14:16
當你用到哪個寄存器時可以定義地址,你這個程序要設置端口模式,否則不能正常運行。
//C 語言代碼
#inclu ...

啊 什么是端口模式,只學了51 ,不懂端口模式。
   不過我覺得每款芯片都應該有相應的頭文件吧
   這樣就不用自己來定義sfr P1M1=0X91,之類的了
回復

使用道具 舉報

ID:1091094 發表于 2023-12-27 19:09 | 顯示全部樓層
張天師 發表于 2023-12-27 15:59
STC單片機有很多與芯片對應的頭文件,你要使用reg51.h。你說這是為什么???

我說的是為什么他的芯片手冊給出的例程也是使用REG51.H。
回復

使用道具 舉報

ID:1091094 發表于 2023-12-27 19:10 | 顯示全部樓層
Hephaestus 發表于 2023-12-27 16:46
說明了你可以把這些單片機當成最基本的51單片機來用。

是的 確實如此,想問一下,如果要添加相應的頭文件,去哪里找合適的頭文件呢?
        謝謝謝謝
回復

使用道具 舉報

ID:748788 發表于 2023-12-27 22:00 | 顯示全部樓層
就找stc呀——stc-isp
回復

使用道具 舉報

ID:213173 發表于 2023-12-28 07:25 | 顯示全部樓層
發表于 2023-12-27 19:07
啊 什么是端口模式,只學了51 ,不懂端口模式。
   不過我覺得每款芯片都應該有相應的頭文件吧
  ...

51hei.jpg
回復

使用道具 舉報

ID:57657 發表于 2023-12-28 07:25 | 顯示全部樓層
3038838599 發表于 2023-12-27 19:07
啊 什么是端口模式,只學了51 ,不懂端口模式。
   不過我覺得每款芯片都應該有相應的頭文件吧
  ...

P1M1這個寄存器 STC89/90系列是沒有的,你定義了也沒用。
其他品牌單片機,該地址可能是別的寄存器,也可能是空白。
回復

使用道具 舉報

ID:879348 發表于 2023-12-28 08:32 | 顯示全部樓層
因為51架構基本寄存器所有型號都是通用的,當你需要用那些額外的東西就要sfr定義寄存器
回復

使用道具 舉報

ID:526108 發表于 2023-12-28 08:44 | 顯示全部樓層
是不一樣的謝謝
回復

使用道具 舉報

ID:136485 發表于 2023-12-28 09:05 | 顯示全部樓層
STC的下載軟件那么方便,復制粘貼保存就行了,還在問這么低級的問題
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品91| 国产高清视频一区二区 | 久久精品小视频 | 久草精品在线 | 亚洲精品一 | 伊人精品在线 | 国产高清自拍视频在线观看 | www亚洲精品 | 三级成人片 | 欧美日一区 | 亚洲国产一区二区三区四区 | 精品国产伦一区二区三区观看方式 | 999www视频免费观看 | 国产精品一区二区日韩 | 男女视频免费 | 欧美日韩一区二区三区在线观看 | 在线观看成人小视频 | 中文字幕91av | 夜夜骑综合 | 亚洲欧美日韩一区 | 免费视频一区二区 | caoporn国产精品免费公开 | 国产第一页在线观看 | 日韩在线不卡视频 | 国产成人精品免费视频大全最热 | 日韩一级欧美一级 | 中文字幕国产精品视频 | www亚洲免费国内精品 | 第一av| 日韩精品1区2区3区 国产精品国产成人国产三级 | 国产成人精品一区二 | 一级片片| 黄色一级电影在线观看 | 综合久久99 | 亚洲第一黄色网 | 日本在线中文 | 成人久久18免费网站麻豆 | 色网站入口| 久久婷婷av | 日本一二三区电影 | 久久亚洲综合 |