找回密码
 立即注册
查看: 263|回复: 14

第三集

[复制链接]
已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
发表于 2026-7-8 14:58:31 | 显示全部楼层 |阅读模式
点亮第一颗LED灯
截图202607081452116059.jpg
截图202607081452406764.jpg

led.zip

44.76 KB, 下载次数: 6

回复

使用道具 举报 送花

已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
 楼主| 发表于 2026-7-13 14:44:50 | 显示全部楼层
第四集USB不停电下载
截图202607131441554779.jpg
截图202607131444351327.jpg

USB.zip

90.9 KB, 下载次数: 8

回复

使用道具 举报 送花

36

主题

240

回帖

1457

积分

版主

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

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

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

下载 最新的 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


上面是 小李 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成


上面是 小赵 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成
回复

使用道具 举报 送花

已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
 楼主| 发表于 2026-7-15 15:58:39 | 显示全部楼层
第五集C语言基础
截图202607151557422229.jpg
截图202607151557546819.jpg
截图202607151558177622.jpg
截图202607151558347446.jpg

C.zip

1.01 MB, 下载次数: 8

回复

使用道具 举报 送花

已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
 楼主| 发表于 2026-7-17 15:36:08 | 显示全部楼层
第六集I/O口输入输出

任务1

任务1

任务2

任务2

任务3

任务3

C.zip

1.01 MB, 下载次数: 3

回复

使用道具 举报 送花

已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
 楼主| 发表于 2026-7-25 09:40:50 | 显示全部楼层
第七集定时器中断
#include "AI8051U.h"               
#include "stc32_stc8_usb.h"
#include "intrins.h"    //调用头文件
#define u8 unsigned char
        #define u16 unsigned int
        u8 state = 0;            //初始状态
        u8 Run_state=0;   //运行状态
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
        void Delay20ms(void)
        {
                unsigned long edata i;
                _nop_();
                _nop_();
                i=119998UL;
                while(i) i--;
        }

       
void Timer0_Init(void);        //3秒@24.000MHz  //函数声明
void main(void)
{
        int count=1;      //按键计数
       
        WTST = 0;
        EAXFR=1;
        CKCON=0;
       
    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();
       
        IE2 |= 0x80;
   // Timer0_Init();        //定时器初始化
    EA = 1;
        P40=0;
       
         while (DeviceState != DEVSTATE_CONFIGURED);  
       
        while(1)
        {
               
                 if (bUsbOutReady)   //如果接收到一个数据
        {
                       
          usb_OUT_done();
        }

               
        //任务1:按键按下次数
//        if(P32 == 0)       //判断P32是否按下
//                {
//                        Delay20ms();
//                        if(P32==0)
//                        {
//                       
//                        printf("按键按下次数\xfd:%d 次\r\n",(int)count);   // "\xfd"特数字加上就会显示
//                                count++;
//                        while(P32 == 0);   //等待P32松开
//                        }
//                }
               
        //任务2:灯按一下点亮三秒熄灭       
//                if(P32 == 0)       //判断P32是否按下
//                {
//                        Delay20ms();
//                        if(P32==0)
//                        {
//                       
//                        //printf("按键按下次数\xfd:%d 次\r\n",(int)count);   // "\xfd"特数字加上就会显示
//                                //count++;
//                                P00=0;
//                                Timer0_Init();
//                               
//                        while(P32 == 0);   //等待P32松开
//                        }
//                }
                //任务3:救护车灯控制器,按下报警按钮,红蓝交替闪烁  (LED1表示红LED2表示蓝)再按下按钮红蓝停止
               
                if(P32 == 0)       //判断P32是否按下
                {
                        Delay20ms();
                        if(P32==0)
                        {
                       
                        Run_state=!Run_state;   //运行状态取反
                                if (Run_state==1)    //运行
                                {
                                        Timer0_Init();
                                }
               else
                {
                                        TR0 = 0;   //关闭定时器
                                        P00 =1;
                        P01 = 1;
                }       
                               
                               
//                                P00=0;
//                                Timer0_Init();
                       
                        while(P32 == 0);   //等待P32松开
                        }
                }
        }
}
//        void Timer0_Init(void)                //3秒@24.000MHz  //函数定义
//{
//       
//        TM0PS = 0x63;                        //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
//        AUXR &= 0x7F;                        //定时器时钟12T模式
//        TMOD &= 0xF0;                        //设置定时器模式
//        TL0 = 0xA0;                                //设置定时初始值
//        TH0 = 0x15;                                //设置定时初始值
//        TF0 = 0;                                //清除TF0标志
//        TR0 = 1;                                //定时器0开始计时
//        ET0 = 1;                                //使能定时器0中断
//       
//         TMOPS = 91
//         12T   /12
//TH0 TDO =319
//}
void Timer0_Init(void)                //500毫秒@24.000MHz
{
        TM0PS = 0xBF;                        //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
        AUXR |= 0x80;                        //定时器时钟1T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0xDC;                                //设置定时初始值
        TH0 = 0x0B;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
}

void Timer0_Isr(void) interrupt 1  //定时器等待三秒
{
        state = !state;
        P00 = state;
        P01 = !state;
            
}

任务3

任务3

任务2

任务2

任务1

任务1

定时中断.zip

1.14 MB, 下载次数: 6

回复

使用道具 举报 送花

已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
 楼主| 发表于 2026-8-22 11:48:39 | 显示全部楼层
第八集 定时器周期性调度任务

代码演示

代码演示
截图202608221147381295.jpg
截图202608221147429169.jpg
截图202608221147471464.jpg
截图202608221147594101.jpg
截图202608221148063457.jpg
截图202608221148109865.jpg

第八集.zip

145.53 KB, 下载次数: 5

代码包

回复

使用道具 举报 送花

已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
 楼主| 发表于 2026-8-25 14:07:07 | 显示全部楼层
第九集 数码管
截图202608251405417054.jpg
截图202608251405466851.jpg
截图202608251405515784.jpg
截图202608251405555986.jpg
截图202608251405599126.jpg
截图202608251406069987.jpg
截图202608251406121687.jpg
截图202608251406163365.jpg

数码管虚拟显示

数码管虚拟显示

数码管.zip

1.2 MB, 下载次数: 2

回复

使用道具 举报 送花

已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
 楼主| 发表于 2026-8-29 11:26:15 | 显示全部楼层
第十集
截图202608291125156225.jpg
截图202608291125237232.jpg
截图202608291125283511.jpg

第十集.zip

162.81 KB, 下载次数: 1

回复

使用道具 举报 送花

已绑定手机

1

主题

12

回帖

81

积分

注册会员

积分
81
 楼主| 发表于 4 天前 | 显示全部楼层
第十一集 矩阵按键

代码运行结果

代码运行结果

实物演示

实物演示

第十一集.zip

164.4 KB, 下载次数: 2

回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-9-23 16:02 , Processed in 0.077268 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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