找回密码
 立即注册
楼主: YangHY

第一课 序言《AI8051U的特点》

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:28:55 | 显示全部楼层
先看DIP40接口的LED怎么用?

截图202601181728521572.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:31:15 | 显示全部楼层
命令头的含义:

截图202601181731135912.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:34:11 | 显示全部楼层
这个适合我们的擎天柱出场:

截图202601181734099087.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:36:31 | 显示全部楼层
直接写出调用函数:

void PLED_40(void)
{
        u8 cod[8];
        cod[0] = 0x0f;                //表示开启P0-P3
        cod[1] = 0X01;                //P0端口       
        cod[2] = 0X01;                //P1
        cod[3] = T_NUM[state_now];                //P2
//cod[3] = ~T_NUM[state_now];                //P2
        cod[4] = 0X01;                //P3
        LED40_SendData( cod,5 ); //这个函数在USB库里
//说明在STC32_STC8_USB.H里,详见:
//void LED40_SendData(BYTE *dat, BYTE size):
//2个参数,第一个是数组名字,第二个是成员数量
       
        P2 = T_NUM[state_now];
  //P2 = ~T_NUM[state_now];       
        state_now++;
        if( state_now>7 )
                state_now = 0;
}
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:38:34 | 显示全部楼层
记得在io.h里声明:

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

//#define 引脚名称  PXX的端口定义

#define HC595_SER         P34
#define HC595_RCK         P35
#define HC595_SCK         P32

void LED0_Blink(void);
void LED1_Blink(void);
void LED2_Blink(void);

void KEY_Task(void);

//---------------------------------595控制函数---------------------------------
void Init_595(void);
void Send_595( u8 dat );
void Display_Seg(u8 HC595_1,u8 HC595_2);
void Seg_Task(void);

//以下1行任务四才启用
void TIMECOUNT_Task(void);  
void PLED_40(void);
void SEG_PC( void );
       
#endif
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:39:45 | 显示全部楼层
还是1秒调用1次:
static TASK_COMPONENTS Task_Comps[]=
{
//状态  计数  周期  函数
       
{0,    1 ,  1   ,   Seg_Task},        /* task 1 Period: 1ms扫描一次数码管 */
{0,  1000,  1000,   TIMECOUNT_Task},   /* task 1 Period: 1s调用计时一次 */  
{0,  1000,  1000,   PLED_40},   /* task 1 Period:1s调用一次 */   
{0,  1000,  1000,   SEG_PC},   /* task 1 Period: 1s调用一次 */   

};
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:45:56 | 显示全部楼层
下面是试验箱的流水灯+USD-CDC调试接口显示
        u8 cod[8];
        cod[0] = 0x0f;                //表示开启P0-P3
        cod[1] = ~T_NUM[state_now];                //P0端口       
        cod[2] = 0X01;                //P1
        cod[3] = 0X01;                //P2
        cod[4] = 0X01;                //P3
        LED40_SendData( cod,5 );
       
        P0 = ~T_NUM[state_now];
       
        state_now++;
        if( state_now>7 )
                state_now = 0;
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:48:28 | 显示全部楼层
接着看虚拟数码管:

截图202601181748256871.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:50:14 | 显示全部楼层
也是先写驱动函数:
void SEG_PC( void )
{
        u8 cod[8];
       

        cod[0] = SEG_NUM[shi/10];                                        //小时的十位数的数码管段码
        cod[1] = SEG_NUM[shi%10];
        cod[2] =SEG_NUM[16];                                                //数码管刷段码和位码

        cod[3] = SEG_NUM[fen/10];                                        //分钟
        cod[4] = SEG_NUM[fen%10];
        cod[5] =SEG_NUM[16];                                                //数码管刷段码和位码       

        cod[6] = SEG_NUM[miao/10];                                        //分钟
        cod[7] = SEG_NUM[miao%10];
       
        SEG7_ShowCode(cod);
//说明在STC32_STC8_USB.H里,详见:
//void SEG7_ShowCode(BYTE *cod);
//1个参数,是个8位数组名字

}
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2026-03-03 08:35:54
已绑定手机

5

主题

1092

回帖

1374

积分

金牌会员

积分
1374
发表于 2026-1-18 17:56:56 | 显示全部楼层
这样虚拟的数码管和LED都可以使用了:
截图202601181756544410.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-2 20:09 , Processed in 0.112301 second(s), 80 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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