autopccopy 发表于 2023-11-20 10:28:55

转帖:新手的IAR C++ FOR 8051 对STC8H8K64U单片机的最简单C++例程

//新手的IAR C++ (V10.20) FOR 8051 对STC8H8K64U单片机的最简单C++编程,欢迎指正 autopccopy (itkw_com) 2022.09.09;10.05学习数码之家的网友指正Init()的bug

//C语言是面向过程的,而C++是面向对象的。C++:是C语言的继承。理论上C语言都可在C++中运行。但C++有三大特性:封装、继承和多态(嵌入式C++有简化)
//目前支持8051的好像仅有IAR C_C++ FOR 8051软件(KEIL C51 及SDCC等是不支持C++的, MDK是支持ARM的C++),IAR的官方手册下载:https://wwwfiles.iar.com/8051/webic/doc/EW8051_CompilerGuide.pdf
//另可参考文档《IAR 8051 C/C++ 概述 - 以及使用C++ 相比C 的提升》:https://blog.csdn.net/Etberzin/article/details/121287492
//STC的 IAR 8051 例程(暂好像未C++特性的):http://www.stcmcudata.com/OpenSource/STC8H-IAR.ZIP
//网上8051 C++的例程非常少,本例只是一个最简单的例子,抛砖引玉。 以IAR 8051 V10.20 试用版 在STC 打狗棍最小系统板 验证成功。

extern "C"//此处在C++中兼容C代码:包含头文件
{
#include "ioSTC8H.h" //STC8头文件
}

typedef unsigned char u8;
typedef unsigned intu16;
typedef unsigned long u32;


class LED_Class1//建立一个LED的类
{
private:      //私有:成员只能被该类的成员函数访问
u8 GPIO_Pin;   //P口的引脚序号(本例占用P1口)

public:         //公有:成员可以在类外访问
LED_Class1(u8 PinX)
{
   LED_Class1::GPIO_Pin = PinX;//::为C++中的作用域符号(后面GPIO_Pin是该类的成员)
}

void Init(void)//IO模式初始化:上电默认为高阻模式,本例暂设置为开漏 模式 (低电平)驱动LED
{
   //GPIO_OC(GPIO_Pin);
   P3M0 |= 1<<GPIO_Pin;
   P3M1 |= 1<<GPIO_Pin;
}

void Off(void) //设置该IO为高电平关闭LED
{
   //GPIO_SetBits(GPIO_Pin);
   P3 |= 1 <<GPIO_Pin;
}

void On(void) //设置该IO为低电平点亮LED
{
   //GPIO_ResetBits(GPIO_Pin);
   P3 &= ~(1<<GPIO_Pin);
}
};


void delay()//延时函数
{
u32 i=10000;
while(i--);
}

int main(void) //主函数
{
//定义2个LED
LED_Class1 LED1(2); //
LED_Class1 LED2(3); //

//初始化:本例暂使用开漏OC模式,低电平点亮LED
LED1.Init();
LED2.Init();

while(1) //2个LED交错闪烁
{
    LED1.On();
    LED2.Off();
    delay();

    LED1.Off();
    LED2.On();
    delay();
}
}


zhw618 发表于 2023-11-21 12:50:49

有 STC32G 能用IAR的资料么?

autopccopy 发表于 2023-11-21 15:17:22

zhw618 发表于 2023-11-21 12:50
有 STC32G 能用IAR的资料么?

据我所知,STC32目前暂只能使用 KEIL C251编译器。

机灵小老鼠 发表于 2024-7-16 23:52:45

请问现在还能下载到IAR 51的编译器么?个人邮箱在IAR官网下载申请通不过啊,哪位做个好事,给我邮箱( 879381753@qq.com ) 发一个,谢谢啦

BFMIPBWVFP 发表于 2024-7-29 17:42:23

能找到的。

_NCY_ 发表于 2024-10-20 12:51:39

机灵小老鼠 发表于 2024-7-16 23:52
请问现在还能下载到IAR 51的编译器么?个人邮箱在IAR官网下载申请通不过啊,哪位做个好事,给我邮箱() 发 ...

旧版有和谐版
页: [1]
查看完整版本: 转帖:新手的IAR C++ FOR 8051 对STC8H8K64U单片机的最简单C++例程