77-串口绘图-使用USB-CDC串口,STC32G144K246实验箱演示程序
主程序main.C代码如下(汇编版本在附件中):
/*---------------------------------------------------------------------*/
/* --- Web: www.STCAI.com ---------------------------------------------*/
/* --- BBS: www.STCAIMCU.com -----------------------------------------*/
/*---------------------------------------------------------------------*/
/************* 功能说明 **************
本例程基于STC32G144K246为主控芯片的实验箱进行编写测试。
程序演示STC-ISP(V6.91P及后续版本)推出的串口绘图功能。
通过USB-CDC虚拟串口输出数据给串口绘图调试接口。
下载时, 选择默认时钟 48MHz (用户可自行修改频率)。
测试流程:
1.烧录演示程序到实验箱,使用USB线连接电脑与实验箱USB1接口。
2.打开STC-ISP软件,选择“调试仿真接口”菜单里的“接口设置”选项,选择“将所有调试接口绑定到USB-CDC/串口助手”。
3.打开“CDC/HID-串口助手”标签页面,选择CDC对应的串口号,设置好波特率,并打开串口。
4.打开STC-ISP软件,选择“调试仿真接口”菜单里的“串口绘图”功能,通过设置菜单勾选“通道1”、“通道2”,数据格式设置“单字节”。
正常情况就可以看到通道1与通道2产生的曲线图。
******************************************/
#include "../comm/STC32G144K246.h" //包含此头文件后,不需要再包含"reg51.h"头文件
#include "../comm/ai_usb.h" //USB调试及复位所需头文件
#define FOSC 48000000L
#define T1MS (65536 - FOSC/1000)
u8 code SIN_TAB[256] =
{
100, 102, 105, 107, 110, 112, 115, 117, 120, 122, 124, 127, 129, 131, 134, 136,
138, 141, 143, 145, 147, 149, 151, 153, 156, 158, 160, 162, 163, 165, 167, 169,
171, 172, 174, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 196, 197, 198, 198, 199, 199, 199, 200, 200, 200, 200,
200, 200, 200, 200, 200, 199, 199, 199, 198, 198, 197, 196, 196, 195, 194, 193,
192, 191, 190, 189, 188, 187, 186, 184, 183, 182, 180, 179, 177, 176, 174, 172,
171, 169, 167, 165, 163, 162, 160, 158, 156, 153, 151, 149, 147, 145, 143, 141,
138, 136, 134, 131, 129, 127, 124, 122, 120, 117, 115, 112, 110, 107, 105, 102,
100, 98, 95, 93, 90, 88, 85, 83, 80, 78, 76, 73, 71, 69, 66, 64,
62, 59, 57, 55, 53, 51, 49, 47, 44, 42, 40, 38, 37, 35, 33, 31,
29, 28, 26, 24, 23, 21, 20, 18, 17, 16, 14, 13, 12, 11, 10, 9,
8, 7, 6, 5, 4, 4, 3, 2, 2, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 23, 24, 26, 28,
29, 31, 33, 35, 37, 38, 40, 42, 44, 47, 49, 51, 53, 55, 57, 59,
62, 64, 66, 69, 71, 73, 76, 78, 80, 83, 85, 88, 90, 93, 95, 98,
};
bit f1ms;
u8 dat;
void sys_init();
void main()
{
sys_init();
usb_init(); //USB CDC 接口配置
EA = 1;
f1ms = 0;
dat = 0;
while (1)
{
if(DeviceState != DEVSTATE_CONFIGURED) //等待USB完成配置
continue;
if (bUsbOutReady)
{
//USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度
usb_OUT_done(); //接收应答(固定格式)
}
if (f1ms)
{
f1ms = 0;
USB_SendData(&dat,1); //发送通道1数据
USB_SendData(&SIN_TAB[dat],1); //发送通道2数据
dat++;
}
}
}
void sys_init()
{
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
AUXR |= 0x80; //1T mode
TL0 = T1MS;
TH0 = T1MS >> 8;
TR0 = 1;
ET0 = 1;
}
void tm0_isr() interrupt 1
{
f1ms = 1;
}
77-串口绘图-使用USB-CDC串口.zip
(118.35 KB, 下载次数: 4)
|