找回密码
 立即注册
查看: 788|回复: 2

串口屏技术(2):虚拟设备协议与编程

[复制链接]

该用户从未签到

62

主题

640

回帖

1万

积分

荣誉版主

积分
10847
发表于 2022-11-23 22:16:41 | 显示全部楼层 |阅读模式
(5)STCISP_虚拟屏包括好几种虚拟设备,下图是其中几种,依次是:虚拟键盘、OLED-128x647段数码管、LED-DIP40LCD-128x64
6)要通过同一个串口控制不同的虚拟设备实现不同的显示功能,就需要输出与之对应的指定的字符串序列,这个字符串序列与显示功能的关系就称为“通讯接口协议”。下图是7段数码管虚拟设备的通讯接口协议:
Fig02_虚拟设备协议.jpg
7)这是一个典型的设备通讯协议。通常我们把实现一个功能的完整字符串称为“一条指令”,它分为以下几个部分:
命令头段。一条通讯链路上通常连接多个设备,命令头通常用来区分不同的设备。这里的命令头对应的ASCII编码正好是“7SEG”。
功能选择段。通常用来指定不同的设备功能,比如这里的53H是显示字符串,4CH是显示长整数。
保留段:通常跟在功能段后面的是子功能或者功能参数数据段。为了保持整条指令的完整性,对于没有子功能的指令,一般用保留段来充填。
数据段:完成某个功能的数据,比如要显示的字符串,要显示的长整数等。

8)本文以跑马灯为例介绍STC-ISP虚拟设备的编程方法。下图是一段典型的用P2端口实现的硬件跑马灯程序:
Fig03_硬件跑马灯程序.jpg
图中把其中第50行到第86行程序省略了。
这段程序的效果就是上面视频中画面中间打狗棒显示的那样。

9)在STC-ISP上的LED-DIP40虚拟设备上显示P2跑马灯的效果,可以根据它的通讯接口协议来编程。下图是该协议的具体内容:
Fig04_DIP40协议.jpg
10)其中示例1是控制P0口的LED发光的,可以参考它来编程,实际的程序如下图:
Fig05_DIP40程序.jpg
根据协议,“TX_Buf[5] = 0x04;”语句中的右端“0x01”代表P0,“0x02”代表P1,“0x04”代表P2,余此类推。
11)第61行程序是向串口输出一个C字符串。按照C字符串以“0”为结束符的定义,第60行的数据0就是这个结束符,让puts向串口输出到此为止。

12)在虚拟设备LED-DIP40显示的跑马灯动态效果如上面视频中右上角那样,与硬件的LED同步。



回复 送花

使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-5 13:56
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    12

    主题

    245

    回帖

    1540

    积分

    超级版主

    积分
    1540
    发表于 2022-11-24 11:37:06 | 显示全部楼层
    感谢您的USB-CDC串口送电脑虚拟屏幕的资料分享,期待您的下次分享! u=4071536912,2962163358&fm=253&fmt=auto&app=120&f=JPEG.webp.jpg
    电话:0513-55012946 QQ:2195591714  微信:  19952583740

    该用户从未签到

    62

    主题

    640

    回帖

    1万

    积分

    荣誉版主

    积分
    10847
     楼主| 发表于 2022-11-27 20:41:55 | 显示全部楼层
    111.gif

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

    本版积分规则

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

    GMT+8, 2024-5-6 00:56 , Processed in 0.056977 second(s), 39 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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