全中文中语言微电脑单片机编程系统使用教程_第1页
全中文中语言微电脑单片机编程系统使用教程_第2页
全中文中语言微电脑单片机编程系统使用教程_第3页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、- 10 -中语言微电脑编程系统使用说明-中国人自已的微电脑编程语言最近几年,中国的微电子迅猛进展,微电脑应用已进入千家万户,全部的家电几乎每台都装有微电脑芯片,例如电饭煲,电视机,电风扇等。不只是在民用方面,各个行业的微电脑应用也是 是月异:工业应用,医疗器械,航天应用等等。可以说,现在社会微电脑应用已是无所不在!然而,中国的微电脑编程语言始终是英文为主的,这给一些英文根底不太好的微电子爱好者设定了肯定的障碍。在中国,有数亿万计的微电子爱好者,但从事微电脑编程的人员占不到格外之一, 很大一局部就是由于编程语言的原因。不只是工作方面,这些微电子爱好者有好多想法,假设得以实现,可以制造出很多产品

2、,但是就是由于英文根底不态好的缘由造成的微电脑编程不能进展,从而给研发产品造成了肯定的困扰,大的方面说,也阻碍了我国的电子信息化的进展。在美国等一些国家, 一般人员不要专业学问就可以学编程,由于编程语言是他们的,所以就和写文章一样,很简洁的。为此,我们经过多年努力,最终开发出一套完整的中文微电脑编程系统,取名中语言微电脑编 程系统。中语言微电脑编程系统是基于 C 语言根底上结合中文特点而开发的一套完整的微电脑单片机中文编程系统,期望能给我国电子信息化进展尽一份微薄之力!中语言微电脑编程系统有以下特点:1,全中文语法构造与变量,完全符合中国人的书写与阅读习惯。2,基于 C 语言但结合了中国人的语

3、法词汇,无需生记硬背语法,用的时候看一下马上明白意思。3,无论年龄,无论专业,无论性别,只要是微电子爱好者即可学会。人人可学,人人可用。4,一天入门,三天上手,简洁易学。5,重简去繁,在 C 语言上一些简单的用不上的语法完全去掉,只留下简洁有用而且常用的,当然这是建立在不影响微电脑应用的根底上。使得学习起来更加简洁。同时我们开发了中语言微电脑编程系统编程软件,系统软件具有如下特点:1,全中文友好界面,无需英语根底即可书写内容。2,内嵌编译器,一键编译出对应的 HEX 文件,并显示出对应的名目,便利易找到 HEX 文件。3,内附有教程,一看即会。4,代码折叠功能,简单较长的函数可以折叠起来,读起

4、来更便利。5,左栏有双击翻开最近文件功能,简洁有用。中语言微电脑编程系统还有很多优点等着您去觉察,固然,我们这套系统也是一套全的系统, 有些问题和缺乏之处,假设您觉察了,请告知我们,以便利改进。中语言微电脑编程系统使用教程第一节, 建工程名目:首先在 D:盘或 E:根名目下建一个文件夹:我的工程,然后在我的工程文件夹中建一个文件夹:工程 1.这样我们就可以便利的保存将要建的工程:其次节, 翻开软件:翻开我们的编程系统软件,将会消灭如下画面:第三节:建我们的工程工程:点击文件建工程,将会消灭如下画面:这是在提示我们选择相关的微电脑芯片,以供给正确的编译方式,选好以后点击确认选择, 将会消灭如下画

5、面:正确填入我们需要的工程名字:我这里填的是点亮第一盏红灯,点保存,将会消灭如下画面:可以看到,已有了第一行代码,这是引入头文件的,不用我们再写了。接下来就正式进入我们的第一个工程了,这里我们要先从最简洁的入手,也就是点亮一个我们的红灯,代码很简洁,请输入以下代码:#端口再定义 红灯把握脚 P1_1函数 主程序红灯把握脚 = 低;完毕 函数这里第一行我们就是把单片机的 P1_1 口再次定义一下,定义为我们便利看懂的红灯把握脚, 这样对于我们后面查询代码时格外有用。其次行函数主程序,这个不用说了,也就是说是主程序的开 始,第三行,红灯把握脚 = 低;这句代码说的是将这个红灯把握脚置为低电平,可以

6、看出,这个脚接低电寻常红灯会亮。第四句是完毕 函数,也就是主程序完毕了。怎么样,很简洁吧,那么倒底这几句代码是不是有用呢?我们点一下 ,这时消灭如下画面:可以看出,在下面工程编译提示信息中已消灭了.hex 文件编译成功的信息,并给出了文件目录,那么这个文件倒底能不能运行呢?我们必需实践 一下,翻开仿真软件 PROTEUS,这可是个好软件, 在工程调试过程中格外有用,这里晶体选 12M,装入我们刚生成的 HEX 文件,点运行,可以看出,LED 灯亮了。是不是很简洁呢?不过万里长征走了第一步,由浅入深渐渐来,接下来我们要让这个灯始终闪,- 14 - 19 -一秒一次,我们要有个思路,写代码没思路不

7、行,盲目的写最终写出来的很乱的。那么要想让灯闪, 那就让红灯把握脚先置高或低,延时一下,再置高或低,这样是不是就可以了呢?写入如下代码:#端口再定义 红灯把握脚 P1_1声明无返回值 延时_毫秒(整数型 毫秒);函数 主程序红灯把握脚 = 低; 延时_毫秒(1000);红灯把握脚 = 高; 延时_毫秒(1000);完毕 函数函数 延时_毫秒(整数型 毫秒)短整数型 计次变量;多任务自动循环(毫秒 递减)单任务依次循环(计次变量=0;计次变量120;计次变量 递加 );任务安排完毕完毕 函数整个代码加了个延时函数,所以要在主函数上面声明一下,这个函数是没有返回值的,所以要声 明为无返回值的。先看

8、一下延时函数,函数 延时_毫秒(整数型 毫秒)这里先声明白一个局部变量, 毫秒,表示我们要延时多长时间,假设延时 1 毫秒,到时就填 1 就可以了,延时 1000 毫秒也就是 1 秒,填 1000 就可以了。再看下一句:短整数型 计次变量;这里也是声明白一个变量,短整数型的, 用于延时循环。再看一下这一句:单任务依次循环 (计次变量=0;计次变量120;计次变量 递加 ); 这就是说当计次变量小于 120 时,计次变量就会递加 1。这里是 12MHZ 的晶体,或许延时时间在 1 个毫秒。再看上面一句多任务自动循环(毫秒 递减),也就是说这里面的数开头减 1,当减为 0 时自然就完毕这个循环。这

9、里解释一下单任务和多任务,单任务就是只运行这个函数本身的任务,多任务就是包除自身任务外还包含有其它任务运行,后面跟有任务安排完毕的句子。好,点一下编译,装入PROTEUS 运行,好似不对,亮一下就灭了,不是我们想的始终闪,假设我们想始终闪怎么办?很简洁, 再用多任务自动循环(真)就可以了,将代码改一下:#端口再定义 红灯把握脚 P1_1声明无返回值 延时_毫秒(整数型 毫秒);函数 主程序多任务自动循环(真)红灯把握脚 = 低;延时_毫秒(1000);红灯把握脚 = 高;延时_毫秒(1000);任务安排完毕完毕 函数函数 延时_毫秒(整数型 毫秒短整数型 计次变量;多任务自动循环(毫秒 递减)

10、单任务依次循环(计次变量=0;计次变量=100)计数器=0;红灯把握脚 = 取相反 (红灯把握脚);完毕 假设完毕 函数函数 主程序初始化_定时器 0_16 位; 单任务自动循环(真);完毕 函数看一下上面的中断定时器初始化,这里是12MHZ 晶体,所以中断时间或许为 10 毫秒。函数内容很简洁的,就是几个中断必要的条件。中断后的大事加了一个计数器,当计数器大于100 时也就是 1 秒钟,把红灯把握脚翻转,也就是低变成高,高变成低,这样就可以持续的闪耀了。主程序很简洁的,就两句话。下面是运行效果:学以致用,再好的东西用不上那就等于没有学。下面我们来模拟简洁的交通灯程序,我们先理- 24 - 2

11、5 -一下思路,交通灯有红,黄,绿三灯组成,红灯亮完,黄灯亮,黄灯亮完绿灯亮,反之一样,不停循 环。请输入以下代码:#端口再定义红灯把握脚P1_1#端口再定义黄灯把握脚P1_2#端口再定义绿灯把握脚P1_3声明无返回值 延时_毫秒(整数型 毫秒);函数 主程序多任务自动循环(真)红灯把握脚 = 低;延时_毫秒(9000); 红灯把握脚 = 高; 黄灯把握脚 = 低;延时_毫秒(3000); 黄灯把握脚 = 高; 绿灯把握脚 = 低; 延时_毫秒(9000); 绿灯把握脚 = 高; 黄灯把握脚 = 低;延时_毫秒(3000); 黄灯把握脚 = 高;任务安排完毕完毕 函数函数 延时_毫秒(整数型

12、毫秒)短整数型 计次变量;多任务自动循环(毫秒 递减)单任务依次循环(计次变量=0;计次变量120;计次变量 递加 );任务安排完毕完毕 函数程序很简洁,不再解释,这也是全中文的好处! 点击编译,并装入 PROTEUS,可以看到以下效果:到了这时候,我们就要学习一下按键把握了。当按键 1 按下的时候红灯亮,当按键 2 按下的时- 28 - 29 -候绿灯亮,按键把握也有两种方式,我们先看第一种查询方式,也就是不停的查询按键的端口状态,请输入以下代码,:#端口再定义按键 1P3_2#端口再定义按键 2P3_3#端口再定义红灯 1P1_1#端口再定义绿灯 2P1_2声明无返回值 延时_毫秒(整数型

13、 毫秒);函数 主程序红灯 1 = 低;多任务自动循环(真)假设(按键 1=低)延时_毫秒(10);假设(按键 1=低)红灯 1 = 高; 绿灯 2 = 低;完毕 假设完毕 假设假设(按键 2=低)延时_毫秒(10);假设(按键 2=低)红灯 1 = 低; 绿灯 2 = 高;完毕 假设完毕 假设任务安排完毕完毕 函数函数 延时_毫秒(整数型 毫秒) 短整数型 计次变量;多任务自动循环(毫秒 递减)单任务依次循环(计次变量=0;计次变量120;计次变量 递加); 任务安排完毕完毕 函数同样,代码很简洁,这里要解释的就是这个延时 10 毫秒,为什么要这样?由于我们的单片机四周存在很多电磁波干扰,所

14、以延时一点时间,假设这个端口还是这个状态的话,那就表示是真的按 键 了,假设延时后端口状态变化了,就说明这个是干扰,就不处理这次按键的结果了。这种方法叫去抖动或消抖动。编译并装入 PROTEUS,看一下效果:上面演示了按键的查询,下面要进展按键中断演示,由于我们的中断反响很快,而且运行过程- 33 - 39 -中点用的时间很小,这就是中断的好处了,原理是当中断来时,事先可以设定高中断还是低中断,我们这里设定低中断,也就是按键按下以后端口为低,引发中断,从而把握灯的状态,请输入以下代码:#端口再定义 按键 1 P3_2 #端口再定义 按键 2 P3_3#端口再定义红灯P1_1#端口再定义绿灯P1

15、_2短整数型 按键状态位;声明无返回值 延时_毫秒(整数型 毫秒);函数 初始化_硬件中断触发方式选择_硬件 0 = 1;中断允许_硬件 0 = 真;触发方式选择_硬件 1 = 1;中断允许_硬件 1 = 真;总中断允许 = 真;完毕 函数函数 中断后大事_硬件 0中断号 0延时_毫秒(10);假设(按键 1 = 低)按键状态位 = 1;完毕 假设完毕函数函数中断后大事_硬件 1中断号延时_毫秒(10);2假设(按键 2 = 低)按键状态位 = 0;完毕 假设完毕 函数函数 主程序初始化_硬件中断; 多任务自动循环(真)假设(按键状态位 = 1)红灯=高;绿灯=低;否则红灯=低;绿灯=高;完毕

16、 假设任务安排完毕完毕 函数函数 延时_毫秒(整数型 毫秒)短整数型 计次变量;多任务自动循环(毫秒 递减)单任务依次循环(计次变量=0;计次变量120;计次变量 递加); 任务安排完毕完毕 函数这里我们用了两个硬件中断,当中断来时,同样延时 10 毫秒检测一下端口状态,也是起延时消抖的作用。按键把握就这样,固然在实际应用中请机敏运用。到这时候,不得不玩一下我们单片机常用的流水灯也称为跑马灯了,这也是微电脑单片机常用的一个学习程序,那么我们这里也有两种方式,一 种是延时,先看一下这种方式,请输入以下程序:#端口再定义红灯 1P1_0#端口再定义红灯 2P1_1#端口再定义红灯 3P1_2#端口

17、再定义红灯 4P1_3#端口再定义红灯 5P1_4#端口再定义红灯 6P1_5#端口再定义红灯 7P1_6#端口再定义红灯 8P1_7声明无返回值 延时_毫秒(整数型 毫秒);函数 主程序多任务自动循环(真)红灯 1 = 低;延时_毫秒(1000); 红灯 2 = 低;延时_毫秒(1000); 红灯 3 = 低;延时_毫秒(1000); 红灯 4 = 低;延时_毫秒(1000); 红灯 5 = 低;延时_毫秒(1000); 红灯 6 = 低;延时_毫秒(1000); 红灯 7 = 低;延时_毫秒(1000); 红灯 8 = 低;延时_毫秒(1000);红灯 1=高;红灯 2=高;红灯 3=高;

18、红灯 4=高;红灯 5 = 高;红灯 6=高;红灯 7=高;红灯 8=高;延时_毫秒(1000);红灯 8 = 低;延时_毫秒(1000); 红灯 7 = 低;延时_毫秒(1000); 红灯 6 = 低;延时_毫秒(1000); 红灯 5 = 低;延时_毫秒(1000); 红灯 4 = 低;延时_毫秒(1000); 红灯 3 = 低;延时_毫秒(1000); 红灯 2 = 低;延时_毫秒(1000); 红灯 1 = 低;延时_毫秒(1000);红灯 1=高;红灯 2=高;红灯 3=高;红灯 4 = 高; 红灯 5 = 高;红灯 6=高;红灯 7=高;红灯 8=高;延时_毫秒(1000);任务安

19、排完毕完毕 函数函数 延时_毫秒(整数型 毫秒)短整数型 计次变量;多任务自动循环(毫秒 递减)单任务依次循环(计次变量=0;计次变量120;计次变量 递加 );任务安排完毕完毕 函数学了上面几个程序,那么这个就很简洁了,不用解释,全是一些端口置高置低的。看一下效果:这里我们主要介绍其次种方式,移位流水跑马灯,移位这个功能很有用的,用在遥控解密或I2C 通讯等多个方面。请输入以下代码:#端口再定义 流水灯缓冲值 P1声明无返回值 延时_毫秒(整数型 毫秒);函数 主程序短整数型 主计次变量;多任务自动循环(真)流水灯缓冲值 = 0b11111110;多任务依次循环(主计次变量 = 0;主计次变

20、量 8; 主计次变量 递加)延时_毫秒(2022);流水灯缓冲值 = 流水灯缓冲值 按位左移位 1;任务安排完毕流水灯缓冲值 = 0b01111111;多任务依次循环(主计次变量 = 0;主计次变量 8; 主计次变量 递加)延时_毫秒(2022);流水灯缓冲值 = 流水灯缓冲值 按位右移位 1;任务安排完毕任务安排完毕完毕 函数函数 延时_毫秒(整数型 毫秒)短整数型 计次变量;多任务自动循环(毫秒 递减)单任务依次循环(计次变量=0;计次变量120;计次变量 递加 );任务安排完毕完毕 函数我们先看这一句:#端口再定义 流水灯缓冲值 P1这个和我们前几个工程都是有区分的,前几个是针对一个端口

21、,而这里是针对 P1 的 8 个端口, 这 8 个端口我们送数,送什么样的数?固然是二进制数。看这一句:流水灯缓冲值 = 0b11111110; 这里说明我们送的数每一位代表一个端口的状态,二进制数用 0b 表示,最终一位为 0,对应我们的P1.0 端口为低电平,其它的为 1 全是高电平。再看这一句:流水灯缓冲值 = 流水灯缓冲值 按位左- 53 -移位 1;也就是将流水灯缓冲值每次往前移一位,移的数为 1,这样就把 0b11111110 渐渐的移到0b11111100-0b11111000-0b11110000始终移到 0b00000000,这时 8 个灯就全亮了。其它的语句就很简洁了。编译

22、并装入 PROTEUS,看一下效果:- 54 -现在我们来学习一下数码管,数码管的原理很简洁,就是把 8 个灯封装在一起,共高电的那个脚叫共阳,共低电平的叫共阴,每亮一个灯就显示一画,如以下图所示:好,现在我们先学习一个静态显示数码管的程序,请输入以下代码:#端口再定义 数码管段控接口P2声明无返回值 延时_毫秒(整数型 毫秒);函数 主程序数码管段控接口 = 0B00000000;多任务自动循环(真)延时_毫秒(2022);数码管段控接口 = 0B00111111;延时_毫秒(2022);数码管段控接口 = 0B00000110;延时_毫秒(2022);数码管段控接口 = 0B0101101

23、1;延时_毫秒(2022);数码管段控接口 = 0B01001111;延时_毫秒(2022);数码管段控接口 = 0B01100110;延时_毫秒(2022);数码管段控接口 = 0B01101101;延时_毫秒(2022);数码管段控接口 = 0B01111101;延时_毫秒(2022);数码管段控接口 = 0B00000111;延时_毫秒(2022);数码管段控接口 = 0B01111111;延时_毫秒(2022);数码管段控接口 = 0B01101111;任务安排完毕完毕 函数函数 延时_毫秒(整数型 毫秒) 短整数型 计次变量;多任务自动循环(毫秒 递减)单任务依次循环(计次变量=0;

24、计次变量120;计次变量 递加); 任务安排完毕完毕 函数请看第一句,#端口再定义 数码管段控接口P2 说明数码管的 8 个显示脚位接在 P2 口,公共端子是接地的。明显这里是共阴数码管。看这一句:数码管段控接口 = 0B00000000;这里接法和我- 58 -们以前的红灯那些不同,那些是低电平亮,而这里是高电平亮,所以这里先让全部的脚灭一下,然后 才开头显示 0,1.2,3,4,5,6,7,8, 9,主程序就不用解释了,就是灯亮灭的问题,也就是在P2 口送凹凸位的问题。编译并装入 PROTEUS。可以看到以下效果:- 64 -上面学了静态的数码管,目的是让我们了解一下数码管的原理,这样的程序实际应用很占资源, 假设同时亮个 123 那就要 24 个口,而且程序代码量也很大。所以就需要动态显示了,利用人眼的迟滞效应,轮番的让 123 这三位进展显示,由于闪耀的频率很快,所以人眼是看不出来在闪的,请看以下代码:#端

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论