欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 為什么不同款單片機(jī)包含的頭文件卻是一樣的 STC的 [打印本頁]

作者: 3038838599    時間: 2023-12-27 12:16
標(biāo)題: 為什么不同款單片機(jī)包含的頭文件卻是一樣的 STC的
大家都知道STC89C52寫程序時,包含的頭文件是<reg51.h>;
  但是為什么STC8A8K64S4A12,給它寫程序時,包含的頭文件也是<reg51.h>,而且是他們的芯片手冊上的推薦例程這么寫的。
因?yàn)檫@兩款芯片的資源很不一樣啊,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. }
復(fù)制代碼

這是為什么呢?


作者: wulin    時間: 2023-12-27 14:16
當(dāng)你用到哪個寄存器時可以定義地址,你這個程序要設(shè)置端口模式,否則不能正常運(yùn)行。
//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);
}
作者: wangxiangtan    時間: 2023-12-27 15:45
STC就是傳承自51單片機(jī),增加了許多其他資源,引用頭文件一樣,說明在內(nèi)核設(shè)計(jì)上是兼容傳統(tǒng)51單片機(jī)的
作者: 張?zhí)鞄?nbsp;   時間: 2023-12-27 15:59
STC單片機(jī)有很多與芯片對應(yīng)的頭文件,你要使用reg51.h。你說這是為什么???
作者: Hephaestus    時間: 2023-12-27 16:46
說明了你可以把這些單片機(jī)當(dāng)成最基本的51單片機(jī)來用。
作者: npn    時間: 2023-12-27 18:18
wulin 發(fā)表于 2023-12-27 14:16
當(dāng)你用到哪個寄存器時可以定義地址,你這個程序要設(shè)置端口模式,否則不能正常運(yùn)行。
//C 語言代碼
#inclu ...

reg51.h 是AT89系列單片機(jī)使用的,你應(yīng)該引用STC對應(yīng)的的頭文件,而不是使用sfr去定義寄存器地址。
部分寄存器在擴(kuò)展RAM區(qū)域(XDADA)區(qū)域,訪問這些寄存器,需先將P_SW2的BIT7設(shè)置為1,才可正常讀寫。
不同系列單片機(jī)的相同的寄存器,地址可能會不一樣,否則你這樣出了問題都找不到北。
作者: 3038838599    時間: 2023-12-27 19:07
wulin 發(fā)表于 2023-12-27 14:16
當(dāng)你用到哪個寄存器時可以定義地址,你這個程序要設(shè)置端口模式,否則不能正常運(yùn)行。
//C 語言代碼
#inclu ...

啊 什么是端口模式,只學(xué)了51 ,不懂端口模式
   不過我覺得每款芯片都應(yīng)該有相應(yīng)的頭文件吧
   這樣就不用自己來定義sfr P1M1=0X91,之類的了
作者: 3038838599    時間: 2023-12-27 19:09
張?zhí)鞄?發(fā)表于 2023-12-27 15:59
STC單片機(jī)有很多與芯片對應(yīng)的頭文件,你要使用reg51.h。你說這是為什么???

我說的是為什么他的芯片手冊給出的例程也是使用REG51.H。
作者: 3038838599    時間: 2023-12-27 19:10
Hephaestus 發(fā)表于 2023-12-27 16:46
說明了你可以把這些單片機(jī)當(dāng)成最基本的51單片機(jī)來用。

是的 確實(shí)如此,想問一下,如果要添加相應(yīng)的頭文件,去哪里找合適的頭文件呢?
        謝謝謝謝
作者: wwh2382    時間: 2023-12-27 22:00
就找stc呀——stc-isp
作者: wulin    時間: 2023-12-28 07:25
發(fā)表于 2023-12-27 19:07
啊 什么是端口模式,只學(xué)了51 ,不懂端口模式。
   不過我覺得每款芯片都應(yīng)該有相應(yīng)的頭文件吧
  ...

51hei.jpg (212.06 KB, 下載次數(shù): 78)

51hei.jpg

作者: npn    時間: 2023-12-28 07:25
3038838599 發(fā)表于 2023-12-27 19:07
啊 什么是端口模式,只學(xué)了51 ,不懂端口模式。
   不過我覺得每款芯片都應(yīng)該有相應(yīng)的頭文件吧
  ...

P1M1這個寄存器 STC89/90系列是沒有的,你定義了也沒用。
其他品牌單片機(jī),該地址可能是別的寄存器,也可能是空白。
作者: wufa1986    時間: 2023-12-28 08:32
因?yàn)?1架構(gòu)基本寄存器所有型號都是通用的,當(dāng)你需要用那些額外的東西就要sfr定義寄存器
作者: 624353765    時間: 2023-12-28 08:44
是不一樣的謝謝
作者: kxcuser    時間: 2023-12-28 09:05
STC的下載軟件那么方便,復(fù)制粘貼保存就行了,還在問這么低級的問題




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1