基于STM32F1 的BASIC解码实验 vb basic 液晶显示执行过程及结果

基于STM32F1 的BASIC解码实验

1、basic程序以文件形式存储

2、程序文件存储在sd卡

3、解释结果显示在液晶屏上

主函数部分

int main(void)
{
u16 i,j;

delay_init(72); //延时初始化
Init_Io();
GLCD_Init(); //初始化液晶

BACK_COLOR=0x001F;
LCD_ShowString(30,10,"Mini STM32 SD Card TEST");
LCD_ShowString(30,30,__DATE__);
LCD_ShowString(150,30,__TIME__);

ffext_mount(0, &fs);

ffext_read("0:3.bas", wbuff2, 1024, FA_OPEN_ALWAYS | FA_READ);
BACK_COLOR=0x001F;
POINT_COLOR=0xF800;

basic(wbuff2);

while (1)
{

}
}

basic关键字部分

struct commands /* 关键字查找表 */
{
char command[20];
char tok;
}table[] ={ /* 命令必须输入小写 */
"print", PRINT,
"input", INPUT,
"if", IF,
"then", THEN,
"goto", GOTO,
"for", FOR,
"next", NEXT,
"to", TO,
"gosub", GOSUB,
"return", RETURN,
"end", END,
"", END /* 单词表的结束 */
};

执行部分

void basic(char *buf)
{
char *p_buf;

/* 载入源文件 */

p_buf=buf;
if(setjmp(e_buf)) exit(1); /* 初始化长跳缓冲区 */

prog = p_buf;
scan_labels(); /* 在程序中找到标签 */
ftos = 0; /* 初始化FOR堆栈索引 */
gtos = 0; /* 初始化GOSUB堆栈索引 */
do
{
token_type = get_token();
/* 检查赋值语句 */
if(token_type==VARIABLE)
{
putback(); /* 将变量返回到输入流 */
assignment(); /* 必须是赋值语句 */
}
else /* 是命令 */
switch(tok)
{
case PRINT:
print();
break;
case GOTO:
exec_goto();
break;
case IF:
exec_if();
break;
case FOR:
exec_for();
break;
case NEXT:
next();
break;
case INPUT:
input();
break;
case GOSUB:
gosub();
break;
case RETURN:
greturn();
break;
case END:
printf("run basic end!");
while(1);
exit(0);
}
}while (tok != FINISHED);

}

//////////////////////////////////////////////////////////////////////////

参考资料下载地址:http://pan.baidu.com/s/1nt2y7O1

测试硬件:http://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-2613737244.27.uf9NEY&id=43666799360

时间: 2024-11-09 00:17:24

基于STM32F1 的BASIC解码实验 vb basic 液晶显示执行过程及结果的相关文章

LAMP架构搭建以及基于LAMP架构的主流论坛和博客搭建过程详解

了解网站架构的朋友都知道,现在很多网站的架构都是采用LAMP(Linux+Apache+Mysql/Mariadb+Php)的,至于LAMP架构本身我们就不做过于深入的探讨了,今天我给大家分享的是关于如何搭建LAMP构架,以及如何基于lamp架构去搭建目前国内比较流行的两大开源论坛(phpwind.discuz)一大开源博客(wordpress),通过这个过程也就能让大家明白我们经常上的论坛以及博客,包括包括我们访问的各个网站到底是如何工作起来的. 注意:为了方便给大家展示实验效果,我们就直接关

对基于JUnit和Ant的测试用例执行过程使用Kieker(AspectJ)进行监控的方法

这篇日志的目的从标题里可以看出来.这也是我们实验需要,必须总结一下,方便其他师弟师妹在这个基础上做实验. 我已经介绍了很多基于Kieker的监控方法,这里以Prefuse这个开源可视化Java框架为例,总结怎么基于JUnit和Ant实现对开源软件自带测试用例执行过程的监控.在这个链接中,选择最新的版本下载(Prefuse已经有些年头没更新了,不过这个框架确实还不错). 解压之后用Eclipse打开其build.xml,发现这个项目的build.xml结构还比较奇葩.如果运行ant all,可以生

实验八 进程的切换和系统的一般执行过程

实验八 进程的切换和系统的一般执行过程 20135114王朝宪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.进程切换的关键代码switch_to分析 1.1 进程调度与进程调度的时机分析 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已. 对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制

[转]【基于zxing的编解码实战】精简Barcode Scanner篇

通过<[搞定条形码]zxing项目源码解读(2.3.0版本,Android部分)>的分析,现在可以实现最终目标了:精简Barcode Scanner并将其中的编码和解码分离为两个独立的部分,方便日后快速集成到自己的项目中去. 编码 在上一篇分析中,对于编码部分已经有所透露,核心部分只有两个package.现在将分享的部分再去掉分享app.分享书签的功能,保留分享剪切板和分享联系人以及编码文本的功能: 编码部分的逻辑清晰,代码组织整齐,在前面了解zxing整体结构的基础上一直做减法即可. 精简过

Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试

标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9315560/1901284 0.说明 使用Nginx可以配置基于域名的虚拟主机.基于端口的虚拟主机和基于端口的虚拟主机,比较常用的是基于域名的虚拟主机,这里要做的配置是基于域名的虚拟主机,并且是配置多个基于域名的虚拟主机. 关于Nginx配置文件的说明可以参考官方文档,同时也可以参考老男孩老师的书

基于 Arduino 的 RFID 识别实验

http://www.it165.net/embed/html/201512/3287.html 2015年12月04日(周五) 上午  博士的智能卡实验--RFID识别实验,基于51单片机: 我们的实验用的读写器是 RFID-RC522 模块,刚好和我买的 Arduino RFID 套件里的是同一款: 实验时候并没有完成,因为在烧写程序的时候一直烧不进去,好吧,下午在办公室的时候我们博士说有一块单片机是有问题的, TMD有那么巧吗  中午开始我就开始阅读 Arduino 套件配套的 RFID

基于STM32F1的语音合成芯片SYN6288驱动

目录 说明 SYN6288.h SYN6288.c 说明 基于USART2制作,封装了各种通信协议 SYN6288.h #ifndef _SYN6288_H_ #define _SYN6288_H_ #include "sys.h" #include "vTime.h" /** ****************************************************************************** * @File SYN6288.

基于STM32F1的局域网通信模块W5500驱动

目录 说明 W5500 W5500.c 使用方法 说明 需要调整的内容为W5500.h中关于IP地址.端口号.子网掩码.网关等参数 W5500 #ifndef _W5500_H_ #define _W5500_H_ /****************** Parameter **********************/ //网关地址 #define GATEWAY_IP_0 125 #define GATEWAY_IP_1 217 #define GATEWAY_IP_2 54 #define

基于X.509证书和SSL协议的身份认证过程实现(OpenSSL可以自己产生证书,有TCP通过SSL进行实际安全通讯的实际编程代码)good

上周帮一个童鞋做一个数字认证的实验,要求是编程实现一个基于X.509证书认证的过程,唉!可怜我那点薄弱的计算机网络安全的知识啊!只得恶补一下了. 首先来看看什么是X.509.所谓X.509其实是一种非常通用的证书,什么是证书?唉!这么说吧!当两个人需要进行远程通信而又不想让第三个人知道时就必须建立一种安全措施,因为看不到对方的脸,又不能通过电话直接询问对方,就得想点别的办法,比如我设计一个密码,让后发短信告诉你,这样当我们在网上交流之前就可以对一下密码,暗号之类的.确认后就可以证明你的身份了.这