基于51的Arduino解决方案

—THY51—


THY51是一款基于51单片机的、开放的、便于初学者接触、学习、渐进掌握单片机技术的51系简洁开发环境,命名为“THY51”(读音θi 51)。软件方面,这是一个基于国内宏晶公司的STC单片机的简易开放系统。因为STC单片机是51内核的,国内应用最广的一种单片机产品,具有广泛的应用基础,大量的已调试好的例程为初学者从此入门提供了便利。硬件方面,你可以选用任何一款51单片机的最小系统,淘宝上就足以满足,不像Arduino将用户束缚在一套固定的模式里(THY51实际是基于STC12C5A60S2开发、测试的,如果要用其他型号,只要更换头文件或是在主文件中对特殊寄存器定义即可)。因为THY51最终的编译结果是HEX文件,用宏晶的STC-ISP下载软件通过串口就可以完成下载。
下面将从几个方面对THY51,这个基于51单片机的,供初学者学习使用单片机技术的模式予以介绍。

 

THY51编译环境IDE


打开THY51的主界面如图1 。

 

主菜单

主菜单包含:文件、编辑、查看、程序、窗口、帮助等条目,下 面一一介绍。

【文件】条目如图2 。 菜单选项中的[新建]等均为大家熟悉的Windows选项,唯有[打开例程]对话框是为方便用户调出实验例程文件而设,如图 3。 对话框窗口划分为两部分,左侧是一个按照例程目录的排列顺序列出的选择树,选择一个例程目录,点按后列出目录内的例程列表,点按一个例程,例如:“例_1”,在右侧显示出该例程的主文件名。选中文件名,然后点按【确定】按钮,该主文件就会在编辑界面中打开,同时关闭对话框。

【编辑】条目包含标准的Windows编辑选项,如图 4诸如粘贴、拷贝、删除;查找与替换等。特殊的以下几项。
【只读】点按此项后,打开的文本成为只读。这一功能便于保护原始文件,避免意外删除的误操作。
【字体】用户可以选择自己喜爱的字体与大小用于浏览程序文件。
【设置Tab键】供用户自己选择Tab键替换的空格数,缺省为4个空格,也就是说按一下Tab键光标向右移动4个空格。此功能主要是在编写程序时保证语句逻辑块的层次清晰,便于阅读。
【查看】条目内容简单,主要是打开或关闭工具条、信息栏等而设,无需详细介绍。

【程序】的选项如图5 。

其中【缩进】选项的作用是按照用户设定的Tab键距离,按照语法逻辑自动缩进程序文本,形成一个层次清晰的程序文本。
【编译】选项点按后马上对当前程序进行编 译,生成与被编译文件同名的HEX文件并存于同一目录下供STC下载软件下载。
【编译EEP文件】将当前打开的eep文件编译成一个HEX文件,经STC下载软件下载至单片机的EEPROM里,供程序使用(有的程序需要一些固定的数据存放在EEPROM里,程序运行过程中根据需要取用,这就要求这些数据事先写入单片机的EEPROM里)。
【窗口】也是一个传统Windows常用的选项,篇幅关系不再赘述。
【帮助】包含两个子项。[关于]介绍THY51的版权信息,而[帮助]则提供一个丰富的在线帮助文档,主要是提供8051C语言常用的包含文件及其函数,以及THY51提供的函数库说明等文件,大大方便用户编程过程中的问题检索。

工具条

工具条由一组按钮组成其安排如图 6,前几个按钮仍为传统定义,如【新建】、【打开】、【保存】、【打印】等,其功能想必读者已很熟悉,我们重点看看后面几个按钮的功能。
【缩进】按钮的功能与主菜单里【程序】选项下的【缩进】子项的功能同,也是维护程序文本的整齐划一,自动生成层次分明的、便于阅读的文档。
【编译】按钮同主菜单对应选项的功能,也是编译程序文档,生成与被编译文件同名的HEX文件并存在同一目录下供下载。编译过程中如遇语法错误会在编辑窗口左侧提示错误的大致位置。因为编译过程是逐条语句编译的,所以有时标志出的出错行不是真正的位置,可能在前面,要分析决定。如遇编译或链接出错,错误信息会在【信息窗口】显示。
【串口对话框】按钮调出一个串口对话框,具有参数设置,通过串口接收和发送数据的功能。后面有详实说明。
【帮助】按钮可调出在线帮助,方便查阅。后文提供专门文字介绍帮助文档的内容与使用方法。

程序编辑窗口

这是一个标准的、多文本的Windows窗口,可以通过主菜单或工具条上的选项在这个窗口新建、打开程序文件,编写或修改后再存储。主菜单的【编辑】菜单提供了所有编辑工具。
在此界面里,事先将光标置于打开文件的合适位置,点按鼠标右键可调出【函数包含文件】和【函数快捷帮助】两组菜单,如图7 。点按【函数包含文件】弹出二级菜单,如图 8 。 点按选中的条目,该条目的包含语句自动添加入鼠标所在位置,如: #include “1wire\1wire.h”。
同样,点按【函数快捷帮助】会弹出二级菜单,继续点按选中的项目将弹出三级菜单如图 9。
三级菜单的内容为相应库文件里的函数,点按一条函数,该函数语句将添加的文本里鼠标的位置,如:“DS1302_Init();”



   需注意的是,此工具只是方便程序编写过程中提示、快捷函数的书写,函数的带入值,返回值等要用户自行根据定义填入,可参考帮助文件。

信息窗口

该窗口显示编译过程中的信息,包括编译成功,或是各种错误。特别提醒注意的是,处于简洁的目的THY51没有工程的概念,而是以目录以及目录内的文件来组织一个程序。每个程序有一个也只能有一个主文件,也就是包含main函数的文件。没遵守这个条件,编译过程中就会报错。

串口对话框

 虽然串口是一种相当古老的通讯协议,但在今天仍是一种非常简单、有效、廉价的通讯方式,特别是单片机与电脑间的通信。对于单片机技术的初学者尽快掌握串口通信技术,特别是调试技术对技术的进一步提高会有很多帮助。THY51提供了比较完善的串口通讯技术手段:串口对话框,见图10 。

【波特率】选项提供串口通讯所需的速率即波特率的选择。由于波特率的计算比较复杂,与系统时钟频率、所用定时发生器等有关,建议初学者固定使用9600的波特率为佳。
【串口号】就是你的单片机所用的串口连接设备(可能是USB接口的)在电脑里的编号。在控制面板的设备管理器里可以查到,如图 。


      

注意:由于Windows支持串口动态库的原因,串口号不能大于10。当遇到较大串口号时可以人工修改,具体修改方法请参考THY51在线帮助。
【打开串口】打开选中的串口,并以选择的波特率工作。串口打开成功后小南瓜会睁开双眼,否则报错。
【接收区】接收单片机或其他设备经串口发来的信息。该窗口内也可以发送信息,这个特点对于应答型的应用特别有用。例如,对方发来一个询问信息,你可以在这条信息的后面直接输入答复并按回车键回复。这一特性带来更友好的用户体验。
【清空】点按此按钮清空接收窗口里的文字。
【十六进制显示】选中此框,接收到的信息将以十六进制形式显示。此特性主要用于观察不可见字符(如回车换行等控制符)和纯数字的信息。
【RX】显示已接收的字符数。
【发送区】输入要发送的文字,点按【发送】按钮,信息即发送出去。发送之前,可以选择【发送时】的选项,在信息文字串的后面添加诸如‘空白’、‘回车’、‘换行’等控制符号,这往往是接收端需要的以确定信息流的终止点。
【十六进制发送】在发送区里写入十六进制数,不需要“0x”。例如:30,35,45中间以空格分开,接收方收到的是03E三个字符。
【发送时】有时接收方要求在发送的信息结尾处加入控制字符,以利判断信息的结束。此列表提供一些控制字符如“回车”,“换行”。选择某一项后,当发送时字符串后面自动添加该控制字符。
【TX】显示已发送的字符数。

文件组织

为了简化,THY51没有工程的概念,是以文件目录的形式组织一个应用的文件,也就是说一个应用的所有文件“*.c”或“*.h”等都放到一个目录里。只能有一个主文件也就是写有主函数main的文件。可以有这个应用独有的一些包含文件,常用、常见的器件的驱动函数以引用“include”目录里的函数库为主。目录名要求简洁,不要混杂诸如‘-’,‘(’,‘)’等符号。

函数库的引用

函数库的引用分为两类,8051标准C函数库和THY51提供的函数库。函数库文件(也称头文件)的引用方式是:语句“#include”后跟以箭头括号引用8051标准C函数库,例如:<reg52.h>,<stdio.h>;以双引号引用THY51函数库,例如:”delay\delay.h”,”uart\uart.h”,等,而且要包括子目录名。这一区分很重要,否则编译系统报找不到文件的错误。

开放性

THY51的宗旨是为初学者提供一种低门槛的学习通道,提供大量的调试好的软件包与例程供初学者模仿、学习是主要手段。公布的THY51安装包以包含很多常见的单片机外围模块、器件的函数包含文件,以及丰富的例程,但绝不可能覆盖如此丰富的单片机技术领域,仍需不断补充。TH51的开放性弥补了这一点。THY51其应用对象除了电子技术爱好者,也适用于中小学的电子技术课和科技馆的科普制作,有经验的电子工程师、教师就可以开发自己的函数库,以及演示特定模块或器件的例程补充进来。
开发制作函数库并加入系统的方法非常简单,分以下几步。首先将调试好的库文件以*.c 和*.h (也可以只有*.h文件)的形式存放于与其同名的目录内,这些目录都存放至“include”目录下,如图12 。

其次,使用文本编辑软件编写“keyword”目录里的“function.xml”文件的条目,格式如下:
单词POPUP与END包括了条目语句块。与POPUP写在同一行的尖括号内是函数所在的包含文件名;MENUITEM单词引出尖括号包含由‘|’分割的函数名与函数体,见图13 。


编写好后存盘,重启系统,再点按鼠标右键,新加函数就出现了。

硬件平台(芯片)

THY51可以编译STC的多种芯片的源代码,并对硬件体系没有强制要求,不绑架用户必须使用某种形式的最小系统,用户可使用任何一款自己喜欢的51单片机最小系统,当然要注意板上的芯片。如果不是STC12C5A60S2或STC89C52芯片,也可通过替换头文件或重新定义相关寄存器来使用。
系统所带的大量例程主要是以STC12C5A60S2为硬件平台调试的,但是一些不用新增特殊寄存器的例程也可用于STC89C52芯片。例程中,其主文件均包含头文件“reg52.h”以最大限度地适用于STC89C52。专用于STC12C5A60S2的例程主要是对特殊寄存器的定义。有两种方法可以实现,使用头文件“STC12C5A60S2.H”或使用指令“sfr”和“sbit”分别对特殊寄存器及其引脚进行定义。两种方式不可同时使用,否则报重复定义的错误。使用特殊寄存器的例程STC89C52芯片不支持。

THY51技术特点

THY51充分保留了单片机的技术特点,将单片机的功能、引脚尽可能的暴露给用户,没有隐藏或是变更含义。

端口

 “端口”也叫“总线”是学习单片机技术的最基础、最重要的概念之一,可以理解为能够同时处理的两进制比特位,即一个最小数据处理单位。计算机自诞生以来,从最初的4位机发展到8位机,8位为一个字节,于是这个单位就固定了下来。以后随着大规模集成电路技术的飞跃,端口位数成8的倍数增长,16位、32位、64位。其实即使是高于8位的芯片,其内部数据处理模式往往也是高8位、低8位的分步处理。
在单片机编程过程中,运用端口概念可以编写出非常简洁、高效的代码。例如,在处理八段数码管的程序中,一个数码管的段位码引脚接在端口P0,则如下语句即可完成显示一个字符的功能:

P0 = 0x3F; //显示数据0

数码管为共阴形式,假如采用一个引脚、一个引脚的设置模式编程,读者可尝试处理方法。
8位端口是单片机最基本的概念,也是众多外围IC芯片所采用的处理单位,在单片机连接外围芯片的系统中,以端口为处理单元无疑是最明智的。

引脚

很多情况下又需要对一个端口的某单个引脚进行操作,这里使用指令“sbit”就好。例如下面是一个关于单总线的例子,信号引脚接入端口P3的第5引脚,因此使用“sbit”指令定义如下。      

sbit  DQ = P3^5;    //单总线端口定义

程序中就可以有如下语句对这些引脚操作。

DQ = 1;  
//DQ复位置高
DelayUS(5);
//稍做延时
DQ = 0; 
//将DQ拉低

以上语句使端口P3的第5引脚产生一个脉冲,实践中,这是单总线通讯协议所需要的。

例程

THY51提供了涵盖面广泛的例程,从最简单的C语言的练习到与电脑交互的游戏,像LCD1602、LCD12864,以及并行操作的与串行操作的LED数码管这类显示模块;模拟量、数字量的练习,以及常用器件像DS18B20、DHT11温湿度模块,DS1302、DS1307时钟芯片等,红外、超声波器件等。另外,常见通讯协议也包括,如I2C,单总线,SPI,还有IAP,PCA,PWM,EEPROM读写技术等。初学者认真做完这些例程,并在此基础上尝试修改,重新组合开发出新的程序,通过这样的练习会对单片机技术以及一些常用周边设备的驱动与运算方法获得一个大概的了解,为下一步学习高级工程软件打好基础。
用户新编例程只需将有关文件放在一个目录下,并将此目录置于“examples”目录里,【文件】菜单下的[打开例程]弹出的对话框就有显示了。 打开例程>>

安装

THY51为绿色、免费软件,其安装非常简单,只需将安装包拷入你选中的硬盘并建立目录,打开THY51.exe即可运行了。安装文件夹内目录如图 14。 按装包下载>>最新更新日期:2018/9/14

关于版本:安装包里提供的C51编辑器是测试版,有编译长度限制。想要得到正式版请按一下步骤操作。

一:安装一套Keil 4.0 以上的正式版,并填写注册码,完成注册。(具体做法网上都可获得)如果电脑里已装,此步骤可免。
二:在Keil 文件根目录下找到文件“TOOLS.INI”文件,打开后复制LIC0=行,将其粘贴至THY51根目录下的TOOLS.INI文件里即可。如图15。

HEX文件下载

THY51 IDE编译生成的HEX文件使用传统的STC串口下载器,下载速度很快,当前版本V6.86 以上。下载前注意选好芯片类型和串口号。 STC-ISP V6.86下载>>

结束语

51单片机在我国具有众多用户,宏晶的STC也是国产并拥有广大用户且价廉质优的单片机产品。THY51的定义可以描述为,适合国情的、国人开发的、基于51单片机的Arduino系统。必将给广大单片机爱好者,中小学电子技术以及科普教学带来新的选择。

THY51安装包下载地址: www.thy51.com
意见建议反馈电话:18810096369,
邮箱:18810096369@163.com



跟我学单片机创意坊 Copyright 2007 - 2018, All Rights Reserved
单片机学习|单片机培训|单片机入门|单片机教程
京ICP备10017461号-2