找回密码
 立即注册
查看: 293|回复: 4

C语言数据类型

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2026-05-29 19:08:42
已绑定手机

8

主题

192

回帖

1406

积分

金牌会员

积分
1406
发表于 2025-12-28 18:22:54 | 显示全部楼层 |阅读模式
/*------------------ 头文件声明 ---------------------*/
#include "ai8051u.H"
#include "stc32_stc8_usb.H"

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

#define MAIN_Fosc 24000000UL        //系统频率

u8 x = 20;
u8 y = 10;

void delay_ms(u8 ms);                        //延时函数声明
/*------------------ MAIN主函数 ---------------------*/
void main(void)
{
        WTST = 0;                          //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
    EAXFR = 1;                         //扩展寄存器(XFR)访问使能
    CKCON = 0;                         //提高访问XRAM速度
       
        P2M0 = 0x00; P2M1 = 0x00;                                                //设置P2口为标准IO口

        usb_init();                                                                                //USB接口配置
        IE2 |= 0x80;                                    //使能USB中断
    EA = 1;                                                                                        //全能总中断
       
        while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
        while(1)
        {
                 if (bUsbOutReady)
        {
            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
            printf("今天是%d年%d月%d日\r\n",25,12,28);
                         printf("x / y = %u\r\n",(u16)(x/y));
                        printf("x %% y = %u\r\n",(u16)(x%y));
            usb_OUT_done();
        }
               
               
                P20 = 0;
                delay_ms(250);
                P20 = 1;
               
                P21 = 0;
                delay_ms(250);
                P21 = 1;
               
                P22 = 0;
                delay_ms(250);
                P22 = 1;
               
                P23 = 0;
                delay_ms(250);
                P23 = 1;
               
                P24 = 0;
                delay_ms(250);
                P24 = 1;
               
                P25 = 0;
                delay_ms(250);
                P25 = 1;
               
                P26 = 0;
                delay_ms(250);
                P26 = 1;
               
                P27 = 0;
                delay_ms(250);
                P27 = 1;
               
               
        }
}
//========================================================================
// 函数: void  delay_ms(unsigned char ms)
// 描述: 延时函数。
// 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟.
// 返回: 无.
// 备注:
//========================================================================
void delay_ms(u8 ms)
{
        u16 i;
        do{
                i = MAIN_Fosc/6000;
                while(--i);
        }while(--ms);
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2026-05-29 19:08:42
已绑定手机

8

主题

192

回帖

1406

积分

金牌会员

积分
1406
发表于 2025-12-28 18:44:51 | 显示全部楼层
Screenshot 2025-12-28 184205.png

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2026-05-29 19:08:42
已绑定手机

8

主题

192

回帖

1406

积分

金牌会员

积分
1406
发表于 2025-12-28 18:46:33 | 显示全部楼层
Screenshot 2025-12-28 184556.png
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2026-05-29 11:32:04

35

主题

97

回帖

1008

积分

版主

积分
1008
发表于 2025-12-29 08:38:12 | 显示全部楼层
要 做到 USB不停电下载
要 尝试 AiCube 图形化自动配置生成程序工具
推荐优先看的:  
printf_usb("Hello World !\r\n")
USB不停电下载, 演示视频链接:
https://www.stcaimcu.com/thread-19077-1-1.html

下载 最新的 AiCube-ISP-V6.96L 或以上版本软件 !

深圳国芯人工智能有限公司-工具软件

下载 最新的 USB库函数,永远用最新的 USB库函数 !
深圳国芯人工智能有限公司-库函数
下载 最新的 用户手册 !
下载 最新的 上机实践指导书 !

下载 最新的 Ai8051U 用户手册
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf

下载 最新的 Ai8051U 实验指导书,
AiCube 图形化自动配置生成程序工具使用说明
https://www.stcaimcu.com/data/do ... %AF%BC%E4%B9%A6.pdf

推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接



回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:289
  • 最近打卡:2026-05-27 07:16:15
已绑定手机

17

主题

119

回帖

808

积分

高级会员

积分
808
发表于 2026-4-22 15:04:10 | 显示全部楼层
/*------------------ 头文件声明 ---------------------*/
#include "ai8051u.H"
#include "stc32_stc8_usb.H"

/*------------------ 常量定义 ---------------------*/
#define MAIN_Fosc 24000000UL        // 系统频率
#define LED_DELAY_MS 250            // LED闪烁延时时间
#define YEAR 25                     // 年份
#define MONTH 12                    // 月份
#define DAY 28                      // 日期

/*------------------ 全局变量 ---------------------*/
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

u8 x = 20;
u8 y = 10;

/*------------------ 函数声明 ---------------------*/
void delay_ms(u8 ms);
void system_init(void);
void led_blink_all(void);
void usb_data_handler(void);

/*------------------ MAIN主函数 ---------------------*/
void main(void)
{
    system_init();                  // 系统初始化
    usb_init();                     // USB接口配置
    IE2 |= 0x80;                    // 使能USB中断
    EA = 1;                         // 使能总中断
   
    while (DeviceState != DEVSTATE_CONFIGURED); // 等待USB完成配置
   
    while(1)
    {
        usb_data_handler();         // USB数据处理
        led_blink_all();            // LED流水灯效果
    }
}

/*------------------ 函数实现 ---------------------*/

//========================================================================
// 函数: system_init(void)
// 描述: 系统初始化,设置CPU速度和IO口模式
// 参数: 无
// 返回: 无
//========================================================================
void system_init(void)
{
    WTST = 0;           // CPU执行指令速度最快
    EAXFR = 1;          // 扩展寄存器访问使能
    CKCON = 0;          // 提高XRAM访问速度
   
    // 设置P2口为准双向IO口(标准模式)
    P2M0 = 0x00;
    P2M1 = 0x00;
   
    // 初始状态熄灭所有LED(假设低电平点亮,高电平熄灭)
    P2 = 0xFF;
}

//========================================================================
// 函数: led_blink_all(void)
// 描述: P2口所有LED逐个点亮,形成流水灯效果
// 参数: 无
// 返回: 无
//========================================================================
void led_blink_all(void)
{
    u8 i;
   
    for(i = 0; i < 8; i++)
    {
        P2 = ~(1 << i);     // 逐个点亮LED(低电平有效)
        delay_ms(LED_DELAY_MS);
    }
   
    P2 = 0xFF;              // 全部熄灭
}

//========================================================================
// 函数: usb_data_handler(void)
// 描述: USB数据接收和发送处理
// 参数: 无
// 返回: 无
//========================================================================
void usb_data_handler(void)
{
    if (bUsbOutReady)
    {
        // 回传接收到的数据
        USB_SendData(UsbOutBuffer, OutNumber);
        
        // 发送格式化数据
        printf("今天是%d年%d月%d日\r\n", YEAR, MONTH, DAY);
        printf("x / y = %u\r\n", (u16)(x / y));
        printf("x %% y = %u\r\n", (u16)(x % y));
        
        usb_OUT_done();
    }
}

//========================================================================
// 函数: delay_ms(u8 ms)
// 描述: 毫秒延时函数,自动适应主时钟频率
// 参数: ms - 要延时的毫秒数,范围1~255ms
// 返回: 无
//========================================================================
void delay_ms(u8 ms)
{
    u16 i;
   
    do {
        i = MAIN_Fosc / 6000;   // 计算1ms所需的循环次数
        while(--i);
    } while(--ms);
}
看看这个能用不
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-30 04:45 , Processed in 0.106185 second(s), 66 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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