YangHY 发表于 2025-12-28 08:41:05

它用的是一个擎天柱的一个虚拟接口

这个红色代表是LED点亮

灰色代表的是LED熄灭

其实是和“擎天柱”一一对应

YangHY 发表于 2025-12-28 08:45:10

“擎天柱”这块板上可能还有一些灯没有焊,但是我们的这个虚拟接口上的这个灯全是齐的

功能1:控制DIP40的各个管脚上LED的状态

YangHY 发表于 2025-12-28 08:51:53

前面2个例子:

实际对应端口,端口每一位的取值

YangHY 发表于 2025-12-28 08:59:38

功能2:控制DIP40的指定组管脚上LED的状态

YangHY 发表于 2025-12-28 09:22:17

功能2和功能1 的差别是,功能2只能控制1个端口的LED状态

功能1 名字是voi LED40_SendDataBYTE *dat, BYTE size);

功能2 名字是void LED40_SetPort (BYTE port, BYTE dat)

设置P0口输出55H库函数调用:LED40_SetPort(0,0x55)

P1口输出51H库函数调用:LED40_SetPort(1,0x51)

写2就是P2


P2口输出A1H库函数调用:LED40_SetPort(2,0xA1)

YangHY 发表于 2025-12-28 09:30:33

功能3:控制DIP40的指定管脚输出高电平

YangHY 发表于 2025-12-28 09:31:45

功能4:控制DIP40的指定管脚输出低电平

YangHY 发表于 2025-12-28 10:58:24

库函数声明:void LED40-SetBit(BYTE port,BYTE bt)

库函数声明:void LED40-C1rBit(BYTE port,BYTE bt)

库函数调用:
LED40_SetBit(0,3); //设置P0.3口输出高电平

LED40_SetBit(4,5); //设置P4.5口输出高电平

LED40_C1rBit(0,3);//设置P0.3口输出低电平
LED40_C1rBit(4,5);//设置P4.5口输出低电平

YangHY 发表于 2025-12-28 11:02:47

任务1:P2口流水灯,P10闪烁

// 任务1:P2口流水灯,P10闪烁
void TASK_1( void )
{
       
// ----------------------- p2端口流水灯        -----------------------
        LED40_SetPort(2,~P2_STATE);                        //点亮P20端口
    P2 = P2_STATE;//点亮“擎天柱”

        P2_STATE = (P2_STATE<<1);                        //1000 0000 -> 1 0000 0000
        if( P2_STATE == 0 )
                P2_STATE = 1;
       
// ----------------------- p10端口闪烁        -----------------------       
        if( P10_STATE == 0 )
                LED40_SetBit(1,0);//P10端口输出高电平
        else
                LED40_ClrBit(1,0);//P10端口输出低电平
       
        P10_STATE = !P10_STATE;
}

YangHY 发表于 2025-12-28 11:14:11

注意头文件要更新一下
页: 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47
查看完整版本: 第一课 序言《AI8051U的特点》