飞行者 发表于 2025-7-3 13:25:22

Ai8051u擎天柱学习冲哥《8051U深度入门到32位51大型实战视频》记录贴

首先感谢深圳国芯人工智能有限公司提供的硬件和平台,感谢冲哥的视频教学。

03.点亮第一个LED灯


代码:

#include "ai8051u.h" //调用头文件


void main(void)
{

                P2M0 = 0x00;
                P2M1 = 0X00; //P2端口为准双向口(P2端口初始化)每个I/O的配置都需要使用两个寄存器进行设置。
               

        while(1)
        {
                P20 = 0;                //P2端口输出低电平
               
        }
       
}

825

国芯人工智能 发表于 2025-7-3 13:28:00

感谢您的分享与学习记录。作为深圳国芯人工智能有限公司,我们非常高兴看到您在使用AI8051U“擎天柱”平台进行学习的过程中取得了初步成果,成功点亮了第一个LED灯。这不仅是对硬件操作的初步掌握,更是迈向嵌入式开发的重要一步。

在本次学习过程中,您通过调用头文件#include "ai8051uh",并对P2端口进行了初始化配置,最终实现了对P20引脚的控制。这一过程体现了对寄存器操作的理解和实践能力,是学习单片机编程的基础环节。

我们鼓励每一位开发者在学习过程中保持探索精神,逐步深入理解底层硬件与软件之间的交互机制。后续可尝试扩展功能,如实现LED闪烁、按键输入、定时器应用等,进一步提升对AI8051U架构的熟悉程度。

深圳国芯人工智能有限公司将持续为开发者提供优质的硬件平台与教学资源,助力更多开发者在人工智能与嵌入式领域取得更大进步。期待您在后续的学习中继续分享经验与成果!

[本文内容由国芯人工智能辅助生成,仅供参考]

飞行者 发表于 2025-7-3 13:36:59

<p>04.USB不停电下载<br />
<img src="data/attachment/forum/202507/03/133317trk2mqrker0mgkr0.jpg" alt="USB不停电下载.jpg" title="USB不停电下载.jpg" /></p>
<p>代码:</p>
<p>#include &quot;ai8051u.h&quot;                                //调用头文件<br />
#include &quot;stc32_stc8_usb.h&quot;                                //调用头文件</p>
<p>void main(void)<br />
{<br />
P_SW2 |= 0x80;</p>
<pre><code>P0M1 = 0x00;   P0M0 = 0x00;
P1M1 = 0x00;   P1M0 = 0x00;
P2M1 = 0x00;   P2M0 = 0x00;
P3M1 = 0x00;   P3M0 = 0x00;
P4M1 = 0x00;   P4M0 = 0x00;
P5M1 = 0x00;   P5M0 = 0x00;
P6M1 = 0x00;   P6M0 = 0x00;
P7M1 = 0x00;   P7M0 = 0x00;

usb_init();               //USB CDC 接口配置

EA = 1;

while(1)
{
       if (bUsbOutReady)
    {
</code></pre>
<p>//            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)<br />
printf_usb(&quot;1. Read Num:%d\n&quot;, OutNumber);<br />
printf_usb(&quot;2. Read Num:%d\n&quot;, OutNumber);<br />
printf_usb(&quot;3. Read Num:%d\n&quot;, OutNumber);<br />
printf_usb(&quot;4. Read Num:%d\n&quot;, OutNumber);</p>
<pre><code>      usb_OUT_done();
    }

        P20 = 0;                //P2端口输出低电平

        P22 = 0;


}
</code></pre>
<p>}</p>
<video controls="controls" src="forum.php?mod=attachment&amp;aid=107078"></video>
<p><a href="forum.php?mod=attachment&amp;aid=107079" title="attachment"><img src="/source/plugin/zhanmishu_markdown/template/editor/images/upload.svg" alt="upload" /> 附件:04.USB不停电下载工程.rar</a></p>

神农鼎 发表于 2025-7-3 13:59:40


32位8051-AI 发表于 2025-7-3 14:52:41

建议直接从下面这3个最简单的程序开始

还是从 printf_usb("Hello World !\r\n") 开始,《单片机原理及应用》入门@Ai8051U - 51 发烧友,UAC,极致音频,大国工匠,艺术人生,乐林漫步 国芯技术交流网站 - AI32位8051交流社区



飞行者 发表于 2025-7-3 18:02:01

32位8051-AI 发表于 2025-7-3 14:52
建议直接从下面这3个最简单的程序开始

还是从 printf_usb("Hello World !\r\n") 开始,《单片机原理及应用 ...

好的,随后上传AiCube生成的例程。

飞行者 发表于 2025-7-4 20:19:12

使用 AiCube@STC-ISP 智能配置开发工具 实验一printf_usb("Hello World !\r\n"),第一个完整的C语言程序


828



飞行者 发表于 2025-7-4 20:28:41

使用 AiCube@STC-ISP 智能配置开发工具 实验二: 查询方式,查询到电脑命令后,printf_usb("Hello World !\r\n")或其他


829

飞行者 发表于 2025-7-4 20:34:56

使用 AiCube@STC-ISP 智能配置开发工具实验三: 中断方式,单片机USB中断接收服务函数收到命令后,printf_usb("Hello World !\r\n")或其他


830



飞行者 发表于 2025-7-7 15:26:30

04.C语言基础


#include "stc8051u.h"
#include "stc32_stc8_usb.h"

#define u8 unsigned char //8位无符号变量(0-255)
#define u16 unsigned int //16位无符号变量(0-6535)
       
        u8 X = 20;
        u8 Y = 10;

void main()
{
       P_SW2 |= 0x80;
   
    P0M1 = 0x00;   P0M0 = 0x00;
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;
   
    usb_init();                                     //USB CDC 接口配置
   
    EA = 1;

    while (1)
    {
      if (bUsbOutReady)
      {
//            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
//            printf_usb("1. Read Num:%d\n", OutNumber);
//            printf_usb("2. Read Num:%d\n", OutNumber);
//            printf_usb("3. Read Num:%d\n", OutNumber);
//            printf_usb("4. Read Num:%d\n", OutNumber);
                       
                        if( X && Y )        //如果条件为真,输出什么
                        {
                                printf("条件为真\r\n");
                        }
                        else
                        {
                                printf("条件为假\r\n");
                        }
                       
//            printf_usb("x/ y = %u \r\n ", (u16)(x/y));
//                       
//                        printf_usb("x %% y = %u \r\n ",(u16)(x%y));
                       
            usb_OUT_done();
      }
    }
}831

页: [1] 2 3
查看完整版本: Ai8051u擎天柱学习冲哥《8051U深度入门到32位51大型实战视频》记录贴