蒋文涛 发表于 2025-3-1 09:28:11

8H8K64U 发表于 2025-2-27 10:32
在线催更

好,忙完这段时间,接着看视频打卡

蒋文涛 发表于 2025-3-2 10:22:08

蒋文涛 发表于 2024-12-23 10:17
视频第八集《时间计时器周期性调动任务》
1.数组概念:相同类型的变量集合,可以采用数组数组变量来写代码 ...
视频第九集《数码管》
一.如何用STG公司提供的,AIapp-ISP单片机在线升级编程仿真调试平台软件生成数码管显示段码数据:
1.工具进入:
第一步:点工具按钮

第二步:点弹出菜单的:字库生成

二.获得段码数据:
1.以共阴极数码管位例:一个byte有8个bit,每个bit刚好对应数码管的一个段位,假如硬件设计是如下对应的:

DP点对应:bit7
G段对应:bit6
F段对应:bit5
E段对应:bit4
D段对应:bit3
C段对应:bit2
B段对应:bit1
A段对应:bit0
2.获得段码数据:右边表格第二栏就是段码数据。
3.在c语言编写中:可以将这些数据如下定义别名,就可直观使用。
列如:

#define   DISP_NUM0       0x3F      //数字'0';
#define   DISP_NUM1      0x06       //数字'1';
#define   DISP_NUM2      0x5B      //数字'2';
......

4.还有更好的方法,方便硬件修改的时候容易维护程序:
列如:
//宏定义,段式LED a~g及DP各段对应的比特,更换硬件只需改动以下8行
#define   SEG_AA      0x01    //对应原理图SEG0
#define   SEG_BB      0x02    //对应原理图SEG1
#define   SEG_CC      0x04    //对应原理图SEG2
#define   SEG_DD      0x08    //对应原理图SEG3
#define   SEG_EE      0x10    //对应原理图SEG4
#define   SEG_FF      0x20    //对应原理图SEG5
#define   SEG_GG      0x40    //对应原理图SEG6
#define   SEG_DP      0x80    //对应原理图SEG7

//----------------------------------------------------------
//用宏定义自动生成字形码宏定义,
#define   DISP_NUM0       (SEG_AA+SEG_BB+SEG_CC+SEG_DD+SEG_EE+SEG_FF)         //数字'0';
#define   DISP_NUM1       (SEG_BB+SEG_CC)                                     //数字'1';
#define   DISP_NUM2       (SEG_AA+SEG_BB+SEG_DD+SEG_EE+SEG_GG)                //数字'2';
#define   DISP_NUM3       (SEG_AA+SEG_BB+SEG_CC+SEG_DD+SEG_GG)                //数字'3';
#define   DISP_NUM4       (SEG_BB+SEG_CC+SEG_FF+SEG_GG)                     //数字'4';
#define   DISP_NUM5       (SEG_AA+SEG_CC+SEG_DD+SEG_FF+SEG_GG)                //数字'5';
#define   DISP_NUM6       (SEG_AA+SEG_CC+SEG_DD+SEG_EE+SEG_FF+SEG_GG)         //数字'6';
#define   DISP_NUM7       (SEG_AA+SEG_BB+SEG_CC)                              //数字'7';
#define   DISP_NUM8       (SEG_AA+SEG_BB+SEG_CC+SEG_DD+SEG_EE+SEG_FF+SEG_GG)//数字'8';
#define   DISP_NUM9       (SEG_AA+SEG_BB+SEG_CC+SEG_DD+SEG_FF+SEG_GG)         //数字'9';
#define   BL_             0x00                                                //全段熄;
#define   A_            (SEG_AA+SEG_BB+SEG_CC+SEG_EE+SEG_FF+SEG_GG)         //字母A;
#define   b_            (SEG_CC+SEG_DD+SEG_EE+SEG_FF+SEG_GG)                //字母b   ;
#define   C_Small         (SEG_DD+SEG_EE+SEG_GG)                              //字母c;
#define   C_Big         (SEG_AA+SEG_DD+SEG_EE+SEG_FF)                     //字母C   ;
#define   d_            (SEG_BB+SEG_CC+SEG_DD+SEG_EE+SEG_GG)                //字母d;
#define   E_            (SEG_AA+SEG_DD+SEG_EE+SEG_FF+SEG_GG)                //字母E;
#define   F_            (SEG_AA+SEG_EE+SEG_FF+SEG_GG)                     //字母F;
#define   G_            (SEG_AA+SEG_CC+SEG_DD+SEG_EE+SEG_FF)                //字母G;
#define   H_            (SEG_BB+SEG_CC+SEG_EE+SEG_FF+SEG_GG)                //字母H;
#define   I_            (SEG_EE+SEG_FF)                                     //字母I;
#define   J_            (SEG_BB+SEG_CC+SEG_DD+SEG_EE)                     //字母J;
#define   K_            (SEG_BB+SEG_DD+SEG_EE+SEG_FF+SEG_GG)                //字母K;
#define   L_            (SEG_DD+SEG_EE+SEG_FF)                              //字母L;
#define   N_Small         (SEG_CC+SEG_EE+SEG_GG)                              //字母n;
#define   N_Big         (SEG_AA+SEG_BB+SEG_CC+SEG_EE+SEG_FF)                //字母N;
#define   M_            (SEG_AA+SEG_CC+SEG_EE+SEG_GG)                     //字母M;
#define   O_Small         (SEG_CC+SEG_DD+SEG_EE+SEG_GG)                     //字母o;
#define   O_BIG         DISP_NUM0                                           //字母O;
#define   P_            (SEG_AA+SEG_BB+SEG_EE+SEG_FF+SEG_GG)                //字母P;
#define   q_            (SEG_AA+SEG_BB+SEG_CC+SEG_FF+SEG_GG)                //字母q;
#define   r_            (SEG_EE+SEG_GG)                                     //字母r;
#define   S_            (SEG_AA+SEG_CC+SEG_DD+SEG_FF+SEG_GG)                //字母S;
#define   T_            (SEG_DD+SEG_EE+SEG_FF+SEG_GG)                     //字母T;
#define   U_Big         (SEG_BB+SEG_CC+SEG_DD+SEG_EE+SEG_FF)                //字母U;
#define   U_Small         (SEG_CC+SEG_DD+SEG_EE)                              //字母u;
#define   v_            (SEG_CC+SEG_DD+SEG_EE)                              //字母v;
#define   W_            (SEG_BB+SEG_DD+SEG_FF+SEG_GG)                     //字母W;
#define   y_            (SEG_BB+SEG_CC+SEG_DD+SEG_FF+SEG_GG)                //字母y;
#define   Z_            DISP_NUM2                                           //字母Z;
#define   NEG             SEG_GG                                              //负号-,亦即中划线;
#define   Line_Top      SEG_AA                                              //上划线;
#define   Line_Bottom   SEG_DD                                              //下划线;




蒋文涛 发表于 2025-3-5 16:30:54

蒋文涛 发表于 2025-3-2 10:22
视频第九集《数码管》
一.如何用STG公司提供的,AIapp-ISP单片机在线升级编程仿真调试平台软件生成数码管 ...

视频第十集《虚拟键盘,LED和数码管》
1.虚拟的概念:MCU通过串口和PC数据通信,MCU和PC之间制订特定数据识别协议,在PC上配套人机界面工具软件来虚拟键盘的操作功能,LED和数码管的显示状态。以便在还没有键盘,LED和数码管硬件电路板的情况下,同过PC机的模拟,实现MCU的程序调试。
2.PC 上的工具入口,打开AIapp-ISP-v6.95F 点如下菜单:

3.在如下地方获得编程帮助资料:

页: 1 [2]
查看完整版本: AI8051U学习之旅-看视频笔记