找回密码
 立即注册
查看: 7177|回复: 33

视频讲解:虚拟硬件【调试接口 | AI-ISP】:键盘,LED数码管,OLED/LCD12864

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2023-6-27 11:31:32 | 显示全部楼层 |阅读模式
虚拟硬件:键盘,OLED12864, LCD12864, LED数码管 !视频讲解在二楼
===使用【AI-ISP | 调试仿真接口】
===通过【USB-CDC虚拟串口/就是串口】,送电脑端显示,或从电脑往下送
虚拟硬件:
通过USB-CDC虚拟串口/就是串口,
使用【AI-ISP | STC调试接口】的 虚拟键盘,虚拟显示
===串口绘图,
===虚拟硬件,OLED12864
===虚拟硬件,LCD12864
===虚拟硬件,LED数码管
===虚拟硬件,DIP40跑马灯DIP64跑马灯
===虚拟硬件,数字示波器
===虚拟硬件,OLED12864, LCD12864, LED数码管,DIP40跑马灯,数字示波器
截图202410271621565835.jpg
通过 USB-CDC虚拟串口/就是串口,使用 【STC-ISP V6.91V 版,STC调试接口】中的 虚拟-1.png

一、简介
为了方便用户在使用带硬件USB接口芯片开发过程中,输入/输出一些数据信息进行调试分析,我们提供了一套"stc_usb_cdc_32g.LIB"库文件,配套STC-ISP(V6.90H以后版本)软件,可方便的使用USB接口进行数据通信,在STC-ISP软件上模拟LED灯,数码管,12864屏,OLED屏的显示,以及虚拟键盘的输入功能。

二、使用说明
1.添加库文件
在项目栏程序组上点击鼠标右键,选择”Add Existing Files to Group ‘Source Group 1’…”:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-1.png
在弹框里选择库文件,并添加到项目里:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-2.png
2. 添加必要程序
在初始化程序里添加USB时钟源启动,USB模块进行初始化程序:
  1.     usb_init();
  2.     EA = 1;
复制代码
主循环里添加USB接收判断以及应答指令:
  1.         if (bUsbOutReady)
  2.         {
  3.             usb_OUT_done();
  4.         }
复制代码
至此USB CDC数据输入/输出功能的必要准备工作完成。
3.功能使用说明
将例程烧录到芯片里后,通过USB线连接电脑,在串口框里会识别到CDC串行设备,点击STC-ISP软件里的串口助手标签,选择并打开对应的串口设备:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-3.png
通过AI-ISP软件的“调试接口”菜单,打开“接口设置”,设置调试接口,选择串口助手:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-4.png
通过AI-ISP软件的“调试接口”菜单,打开需要使用的虚拟设备:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-5.png

3.1虚拟键盘
例程通过接收虚拟键盘的按键,判断键值执行相应的功能。打开“虚拟键盘”窗口,点击上面的按钮就可以发送对应的键值给MCU:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-6.png
程序里判断接收数据是否来源于虚拟键盘:
  1.             if ((UsbOutBuffer[0] == 'K') &&
  2.                 (UsbOutBuffer[1] == 'E') &&
  3.                 (UsbOutBuffer[2] == 'Y') &&
  4.                 (UsbOutBuffer[3] == 'P'))
复制代码
如果接收数据来源于虚拟键盘,判断键值并执行相应的操作:
  1.                 switch (UsbOutBuffer[5])
  2.                 {
  3.                 case VK_DIGIT_1:
  4.                     printf("%08lx", 0x1234abcdL);      //在数码管上显示字符串
  5.                     break;
  6.                 case VK_DIGIT_2:
  7.                     SEG7_ShowLong(0x98765432, 16);     //在数码管上显示4字节长整型数
  8.                     break;
  9.                 case VK_DIGIT_3:
  10.                     SEG7_ShowFloat(3.1415);            //在数码管上显示IEEE754格式单精度浮点数
  11.                     break;
  12.                     //......
  13.                 case VK_NEXT:     //PageDown
  14.                     OLED12864_ShowPicture(0, 0, 128, 8, (BYTE *)&OLED12864_IMG);  //在OLED12864屏幕上显示图片
  15.                     break;
  16.                 }
复制代码

3.2 七段数码管
通过AI-ISP软件的“调试接口”菜单,打开7段数码管虚拟设备。
显示字符串数据
收到虚拟键盘键值“1”按键码时演示" printf"函数输出虚拟数码管显示的字符串数据:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-7.png
显示长整型数据
收到虚拟键盘键值“2”按键码时演示"ShowLong"函数输出虚拟数码管显示的长整型数据:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-8.png
显示浮点数数据
收到虚拟键盘键值“3”按键码时演示"ShowFloat"函数输出虚拟数码管显示的浮点数数据:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-9.png
显示码值数据
收到虚拟键盘键值“4”按键码时演示"ShowCode"函数输出虚拟数码管码值数据;
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-10.png
7段数码管码值参考
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
3F
06
5B
4F
66
6D
7D
27
7F
6F
77
7C
39
5E
79
71

-
H
J
K
L
N
o
P
U
t
G
Q
r
M
y
00
40
76
1E
70
38
37
5C
73
3E
78
3D
67
50
37
6E
最高位为小数点。

3.3 LED-DIP40
通过AI-ISP软件的“调试接口”菜单,打开LED-DIP40虚拟设备。此虚拟设备模拟 32G12K128核心功能板(降龙棍)的LED显示功能。
收到虚拟键盘键值“5”按键码时演示P0=0xaa驱动虚拟LED灯显示的状态(输出0时LED亮,输出1时LED灭):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-11.png
收到虚拟键盘键值“6”按键码时演示P0=0x12,P1=0x34,P2=0x56,P3=0x78驱动虚拟LED灯显示的状态(输出0时LED亮,输出1时LED灭):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-12.png

3.4 LED-DIP64
通过AI-ISP软件的“调试接口”菜单,打开LED-DIP64虚拟设备。此虚拟设备模拟 32G12K128核心功能板(屠龙刀)的LED显示功能。
收到虚拟键盘键值“7”按键码时演示P0=0xaa驱动虚拟LED灯显示的状态(输出0时LED亮,输出1时LED灭):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-13.png
收到虚拟键盘键值“8”按键码时演示P0=0x12,P1=0x34,P2=0x56,P3=0x78驱动虚拟LED灯显示的状态(输出0时LED亮,输出1时LED灭):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-14.png

3.5 液晶显示12864
通过AI-ISP软件的“调试接口”菜单,打开液晶显示12864虚拟设备。此虚拟设备模拟12864点阵黑白屏的显示功能。
关闭LCD12864的显示
收到虚拟键盘键值“A”按键码时演示关闭LCD12864的显示:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-15.png
打开LCD12864的显示
收到虚拟键盘键值“B”按键码时演示打开LCD12864的显示:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-16.png
显示/隐藏LCD12864的光标
收到虚拟键盘键值“C”按键码时演示隐藏LCD12864的光标;收到虚拟键盘键值“D”按键码时演示显示LCD12864的光标:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-17.png
光标左移/右移
收到虚拟键盘键值“E”按键码时演示光标向左移动一个单位(16个像素);收到虚拟键盘键值“F”按键码时演示光标向右移动一个单位(16个像素):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-18.png
光标复位
收到虚拟键盘键值“G”按键码时演示光标回到左上角初始位置:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-19.png
屏幕向左滚动
收到虚拟键盘键值“H”按键码时演示屏幕向左滚动一个单位(16个像素):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-20.png
屏幕向右滚动
收到虚拟键盘键值“I”按键码时演示屏幕向右滚动一个单位(16个像素):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-21.png
屏幕向上滚动
收到虚拟键盘键值“J”按键码时演示屏幕向上滚动一个单位(16个像素):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-22.png
反白显示
收到虚拟键盘键值“M”按键码时演示反白显示指定的行:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-23.png
清除显示
收到虚拟键盘键值“N”按键码时演示清除显示:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-24.png
显示ASCII码和简体中文字符
收到虚拟键盘键值“O”按键码时演示在LCD12864上显示ASCII码和简体中文字符:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-25.png
自动换行开关
收到虚拟键盘键值“K”按键码时演示关闭自动换行功能;收到虚拟键盘键值“L”按键码时演示开启自动换行功能(先使能自动换行开关,再输出显示字符):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-26.png
显示图片
收到虚拟键盘键值“P”按键码时演示在LCD12864屏幕上显示图片:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-27.png

3.6 OLED-12864
通过STC-ISP软件的“调试接口”菜单,打开OLED-12864虚拟设备。此虚拟设备模拟分辨率为128*64点阵的OLED屏显示功能。
关闭OLED12864的显示
收到虚拟键盘键值“Q”按键码时演示关闭OLED12864的显示:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-28.png
打开OLED12864的显示
收到虚拟键盘键值“R”按键码时演示打开OLED12864的显示:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-29.png
显示屏幕内容
收到虚拟键盘键值“S”按键码时演示显示屏幕内容:

全屏点亮(用于测试)
收到虚拟键盘键值“T”按键码时演示全屏点亮(用于测试,输入“S”按键码切换显示屏幕内容):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-1.png
水平镜像显示
收到虚拟键盘键值“U”按键码时演示水平镜像显示:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-2.png
垂直镜像显示
收到虚拟键盘键值“V”按键码时演示垂直镜像显示:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-3.png
反白显示
收到虚拟键盘键值“V”按键码时演示反白显示:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-4.png
设置亮度值
收到虚拟键盘键值“X”按键码时演示亮度值=0x10(范围0~255):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-5.png
收到虚拟键盘键值“Y”按键码时演示亮度值=0x80(范围0~255):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-6.png
收到虚拟键盘键值“Z”按键码时演示亮度值=0xf0(范围0~255):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-7.png
滚动功能
OLED GDDRAM共分为8个Page,每一个Page对应8个COM,每一个COM驱动一行OLED显示,即共64行;而一个COM驱动内有128列(Segment),组成128*64OLED点阵驱动。

参数1:参与滚屏的起始页(范围0~7);
参数2:参与滚屏的结束页(范围0~7);
参数3:滚屏的周期值(周期单位为毫秒)。

收到虚拟键盘键值“UP”按键码时演示向上滚动功能(设置好方向后通过“OLED12864_ScrollStart”指令开始执行滚动操作):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-8.png
收到虚拟键盘键值“LEFT”按键码时演示向左滚动功能(设置好方向后通过“OLED12864_ScrollStart”指令开始执行滚动操作):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-9.png
收到虚拟键盘键值“RIGHT”按键码时演示向右滚动功能(设置好方向后通过“OLED12864_ScrollStart”指令开始执行滚动操作):
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-10.png

收到虚拟键盘键值“DOWN”按键码时开始执行滚动操作。
收到虚拟键盘键值“PageUp”按键码时停止执行滚动操作。

寻址模式
收到虚拟键盘键值“HOME”,“END”按键码时设置寻址模式(0:水平寻址; 1:垂直寻址; 2:页寻址)。
图片显示
收到虚拟键盘键值“PageDn”按键码时在OLED12864屏幕上显示图片。设置完寻址模式后再进行图片显示,便可看出不同寻址模式的差异。
水平寻址显示效果:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-11.png
垂直寻址显示效果:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-12.png

3.7 数据接收处理
在程序里可对接收到的数据进行处理,例如将接收数据复制到发送缓冲区,然后调用“usb_IN()”函数发送出来:
  1.             else
  2.             {
  3.                 memcpy(UsbInBuffer, UsbOutBuffer, OutNumber);      //原路返回, 用于测试
  4.                 usb_IN(OutNumber);
  5.             }
  6.             usb_OUT_done();
复制代码
测试结果如下:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-13.png

3.8 发送指令触发MCU复位并自动下载
打开AI-ISP软件(V6.94K以上版本),选择芯片型号、打开需要烧录的程序文件、设置好硬件选项后,切换到“收到用户命令后复位到ISP监控程序区”标签:
如下图所示,选择“串口模式”,设置默认波特率、校验位、停止位;
设置自定义命令:@STCISP#
取消 “Hex” 选项,命令应与程序里的定义相同:
char *USER_STCISPCMD = "@STCISP#";   //设置自动复位到ISP区的用户接口命令
点击“发送用户自定义命令并开始下载”按钮,或者在勾选“每次下载前都先发送自定义命令”选项情况下也可点击“下载/编程”按钮开始下载。
(此步骤需要将支持自动下载功能的程序通过手动上电复位的方式下载到芯片后才能使用)
注意:使用CDC接口触发MCU复位并自动下载功能,需要勾选设置:下次使用 STC HID 接口进行ISP下载:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-14.png

正常情况下芯片收到指令后会自动复位到“STC USB Writer (HID1)”模式并开始下载:
通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示-15.png
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-02-28 16:25:34

0

主题

14

回帖

220

积分

中级会员

积分
220
发表于 2023-7-5 13:49:47 | 显示全部楼层
下面是讲解 AIapp-ISP V6.94T 及以后版本软件中的
调试仿真接口虚拟硬件 部分的演示视频
20:59分处开始:
截图202403102247173529.jpg
2023/6/28期USB 实战-STC宣讲会-STC单片机教学视频 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


回复 支持 反对

使用道具 举报 送花

2

主题

10

回帖

126

积分

注册会员

积分
126
发表于 2023-9-10 17:50:29 | 显示全部楼层
请问版主,这段代码哪里可以下载呢?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2023-9-10 18:41:26 | 显示全部楼层
kbm*** 发表于 2023-9-10 17:50
请问版主,这段代码哪里可以下载呢?

例子在官网屠龙刀例程包里面
截图202403211804167609.jpg
深圳国芯人工智能有限公司-核心功能实验板 (stcai.com)

截图202403211805054841.jpg
在 开天斧-STC8H8K64U 核心功能实验板的演示程序包中也有


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:211
  • 最近打卡:2025-03-21 01:00:25

8

主题

84

回帖

782

积分

高级会员

积分
782
发表于 2023-12-13 11:19:24 | 显示全部楼层
mark一下,通过USB-CDC虚拟串口/就是串口,使用【STC-ISP | STC调试接口】的虚拟键盘/显示
截图202405202229166720.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:37
  • 最近打卡:2025-05-01 08:57:59

19

主题

137

回帖

485

积分

中级会员

积分
485
发表于 2023-12-13 12:03:19 | 显示全部楼层
主楼数码管字体挺漂亮的,从哪儿可以下载到?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:37
  • 最近打卡:2025-05-01 08:57:59

19

主题

137

回帖

485

积分

中级会员

积分
485
发表于 2023-12-13 12:23:20 | 显示全部楼层
网络上找不到带小数点的字体 比如 1. 2. 3.   ----   0. 哪位有可以提供一套,做液晶界面也是挺漂亮的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:83
  • 最近打卡:2024-09-30 23:22:51

0

主题

118

回帖

248

积分

中级会员

积分
248
发表于 2024-3-5 08:43:34 | 显示全部楼层
mark一下,
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-4-20 08:58:01 | 显示全部楼层

截图202404200902071007.jpg

截图202404200857578383.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-04-27 10:57:40

0

主题

6

回帖

30

积分

新手上路

积分
30
发表于 2024-4-26 16:44:50 来自手机 | 显示全部楼层
这个教程是所有板子都能用?怎么我用89c52rc就报错
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 20:10 , Processed in 0.145555 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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