版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51LED灯做流水灯试验第一节:单片机在上电初始后,其各端口输出为高电平。假设我们现在想让接在P1.0LED1P1.0口的电平变为低电平就可以了。想让LED1灭,LED0P1.0上升,P1.1变低,LED1LED2随后既点亮!依始类8LEDSP-51试验板
”学习套件上的相关图纸:P1.0低、P1.0高、P1.1低、P1.1高、P1.2低、P1.2高、P1.3低、P1.3高、P1.4低、P1.4高、P1.5低、P1.5高、P1.6低、P1.6高、P1.7低、P1.7高、返回到开头、程序完毕。P1.1你变低,它就变低了。由于单片机听不懂我们的汉语的,只能承受二进制的码。我们又怎样来用二进制语谈论使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。
“、0……代”今日,我们不必用烦人的二进制去编写程序,完全可以将我们简洁理解的 程序语言”通过翻译”软件翻译”成单片机所需的二进制代码,然后交给单片机去执行。这里的程序语言”目前主要有汇编和C两种;在这里我们所说的翻译”软件,同行们都叫它为编译器”,将程序语言”通过编译器产生单片机的二进制代码的过程叫编译。前面说到,要想使LED1变8LED流水灯试验写为汇编语言程序。汉语”语言汉语”语言汇编语言开头:star:P1.0低clrp1.0P1.0高setbp1.0P1.1低clrp1.1P1.1高P1.2低setbp1.1clrp1.2P1.2P1.2高setbp1.2P1.3低clrp1.3P1.3高setbp1.3P1.4低clrp1.4P1.4高setbp1.4P1.5低clrp1.5P1.5高setbp1.5P1.6低clrp1.6P1.6高setbp1.6P1.7低clrp1.7P1.7高setbp1.7返回到开头ljmpstar完毕end这里用到了四条汇编指令:clr、setb、Ijmp、end;clr:是将其后面指定的位清为0;setb:是将其后面指定的位置成 1;Ijmp:是无条件跳转指令,意思是:跳转到指定的标号处连续运行。end:是一条告知编译器:程序到此完毕的伪指令。伪指令只告知编译器此程序到此有何 要求或条件,它不参与和影响程序的执行。这里需要说明的是,按汇编语法要求,所编制的程序〔下称源程序〕之格式和书写要求必需依以下原则:1、源程序必需为纯文本格式文件,如用 Windows”附件冲的记事本”编写的文本文件;2、源程序的扩展名应是*.ASM;3、一行只能写一条语句,以回车作为本句的完毕,每一语句行长度应少于80个字符〔即40个汉字〕。4、每行的格式应为:标号:命令参数;注释即一行由四部份组成,各部份的挨次不能搞错,依实际要求可以缺省其中的一部份或几部份,甚至全部省去,即空白行。需要使用标号时标号后面必需有假设命令有多个参数,则参数与参数之间必需用
:“”〔冒号〕,而命令语句和参数之间必需用空格分开,,“”〔逗号〕分开,需要注释时注释前必需用 ;”〔分号〕,;””后面的语句可以写任何字符,包括汉字用于解释前面的汇编语句,它将不参与汇编,不生成代码。由于汇编程序对我们还不直观,所以在编写源程序时,应当养成多写注释的习惯,这样有助于今后源程序的阅读和维护。标号是标志程序中某一行的符号名,编译后标号的数值就是标号所在行代码的地址。在宏汇编
ASM51中标号的长度不受限制,但标号中不能包含 :’或其它的一些特别符号,也不能用汉字,可以用数字作标号,但必需用字母开头。当标号作参数用〔如标号作转移地址〕,在命令后面岀现时,必需舍去LJMPSTARSTAR是不能再有:〕。每行只能有一个标号,一个标号只能用在一处,假设有两行用了同一个标号,则汇编时就会出错。由于标
:’’〔如上面程号的长度没有限制,可以用有意义的英文或汉语拼音来说明行,使源程序读起来更便利。源程序中的字母不区分大小写,也就是说 star和STAR是一样的,请不要用大小写方式去区分不同的标号。好拉!法规知道了,现在该来看看前面我们编写的源程序该怎样处理了:编写源程序:先将编译软件安装好〔c51eval软件的安装〕。软件安装好我们就可以编写程序了。第一步:双击图标,消灭如图一Uvw51所示的主界面其次步:建文件单击菜单栏内的文件 建”或者单击
图标按钮则在上图所示的灰色区域内岀现一个白色的编辑区,图二第三步:编程程序建立了一个的编程文件后,我们就可以在这里编写我们所需要的程序了,下面我们就来编写前面所说的程序吧。!如图三所示:第四步:保存文件程序编写好了,我们固然要记得保存了,要不我们编写程序就白费力了。好了,下面我们将上面编写的程序保存起来:单击文件----保存”或者单击图标 ,岀现如图四所示的对话框:图四c51eval保存文件时默认的文件扩展是名
*.C,请按图五所示转变为为*.a51:图五我们这里就先将文件保存在 D/DDW文件夹中,文件名你可以任凭取,这里先叫他为 LED.a51;需强调的是保存文件的文件夹和文件名不能使用中文!即保存文件时不能以如下格式保存:
正确的保存路径:D/DDW/LED.a51固然,保存的文件夹名DDW、编写的程序的文件名LED,你都可以任凭的取一个,可以是D/ABC/000.a51。这就取决于你的兴趣了。 错误的保存路径:D/源程序/DDW/LED.a51,或者是D/DDW流水灯程序.a51。总之在源程序的保存路径下不能有中文的岀现,同时文件名不能取的太长。第五步:建立工程将汇编的源程序保存后,还没有得到我们所需要的文件,这时我们还需要再建立工程,以便得到我们所需hex文件。建工程的步骤如下:首先先翻开建工程的对话框文件,如图六所示:图六点击建工程后岀现如图七所示的对话框,我们将对话框的参数设定好。将文件名设置成与刚刚源程序的文件名一样,即设为LED.prj,同时保存的路径跟前面的源程序保存的路径一样,在 可以把刚刚建立的工程文件LED.prj添加到刚保存的LED.A51源程序上了,留意它们都在同一个根名目下。图七按图七所示操作后,会消灭如图八所示的对话框:图八点击图九按图九所示完成操作后,软件会自动翻开一个对话框,如图十所示:图十如图十所示点击保存后,系统会自动回复到汇编状态。如图十所示点击保存后,系统会自动回复到汇编状态。这时点击*创立全部图标*按钮,则进展了转换,图十一完成上述操作后,在图十一,我们看到了创立成功了的提示画面,这时我们点击 0K就大功告成了。翻开我们文件的保存路径:我的电脑/D/DDW我们可以看到包含hex文件在内的全部相关程序文件了。我们上面的工程文件也在其中了。 他的名字叫作LED.hex文件。好啦,到此我们已将第一个流水灯程序编写、编译、烧写进展完啦,再下来就是将烧写好的 AT89C51从编程器上取下,放到SP-51试验板”学习套件的试验部份通电让LED1 LED8”流水”说明:由于单片机的时钟高达 12MHz,8个LED发光与熄灭的时间很短,实际试验结果凭我们的肉眼是看不到请连续学习下节课
流水”灯效果呢?流水灯试验详解二LED的熄灭与点亮。单片机内部能按部就班的自开工作,正是在系统时钟的作用下,内部各规律硬件产生各种所需脉冲信号而实现的。这个时钟信号〔既晶体振荡信号〕12MHZ.在单片机中,要处理最短周期的一条指令需要由
12个振荡周期〔既晶振振荡周8051核的单片机,大多数指令只用一个机器周期〔既单周期〕,也有双周期和四周期的指令。本试验中用到的SETBP.xCLRP.x均属于单周期指令,也就是说,执行一句SETBP.x用时1uS〔微秒〕CLRP.x1uS;难怪我们前面的程序不能看到流水效果。DDW:CLR;程序开头P1.0;DDW:CLR;程序开头P1.0;LED1亮ACALLDELAYSETBP1.0;调用延时子程序;LED1灭CLRP1.1;换灯,同上帚CLRP1.4旷ACALLDELAYSETBP1.4
现在,将程LED熄灭,连续执行下ACALLDELAYSETBP1.1?CLRP1.2ACALLDELAYSETBP1.2?CLRP1.3?ACALLDELAY?SETBP1.3?CLRP1.5旷ACALLDELAY?SETBP1.5?CLRP1.6?ACALLDELAY?SETBP1.6?CLRP1.7?ACALLDELAY?SETBP1.7?LJMPDDW;返回到开头循环DELAY:?;延时子程序MOVR1,#50AD10:?MOVR2,#100帚AD11:?MOVR3,#100?DJNZR3,$?DJNZR2,AD11?DJNZR1,AD10?RET;延时子程序完毕,返回到调用处的下一句END?请将上面的程序保存为ILED.asm,进展编译,并烧写到AT89S51中,之后将89S51安装到套件的试验部份插座上试验,RET;延时子程序完毕,返回到调用处的下一句END?机内部有不少存放器,这些存放器在单片机通电时,你可以给他写入数据〔是单片机按你程序要求写的数据,而不是编程器写的〕,当其次次给他写入数据时,前次的数据就被数据掩盖;固然也可以从存放器中读取数据。当单片机没有电源供给时,存放器内部的数据也随即消逝;这些存放器人们叫他用编程器将我们编写的程序烧写到单片机中的存储器叫
RAM而ROM现在,我们应当清楚:RAM是让程序去使用的,ROM!我们编写的程序存放的地方! 前面说过,单片机内部有不少 RAM本试验用的AT89C51有多少存放器?我们现在不必关心,现在只须知道单片机内部知名叫 R0~R7的这8个存放器。这8个存放器每个都由8个单独的位存放器组成,最大存放数据为二进制的时留意不要大于其有效范围。上面延时程序中,先用到
11111111,十六进制=FF,十进制=255。在使用MOVR1,#50,MO\是移动的意思,该句是将50这R1中;50是马上数,按汇编语言要求前面要加“面要加“?H”,十六进制数的高位是字母时在字母前面还要加“
#”号,汇编语言还规定,十六进制数后0”,例如:#0F8H;二进制数后面加“B”,例如:#11110000B。十进制不加,例如:#100。延时程序的其次、三句为: MOVR2,#100;MOVR3,#100;这两句意思同前。第四句中 DJNZR3,$的意思是将R3里面的数减1后假设R3不等于0则跳到后面指定的程序位置,这里的“$”既要跳转的程序位置,“$”代表当前语句处,也就是说, R3不等于0,程序返回再次执行本句。假设R3减1后等于0,程序完毕本句,连续执行下面的语句。延时程序的最终一句是RET,意思是退岀本子程序,返回到调用本子程序处的下一句。依据上面的解释,一进入延时子程序首先为R1,R2,R3存放器装入我们需要的数据,然后先对 R3进展减数,每次减1,R3减完后减R2,减R2时就费事啦,由于R2每减1后不为0需要跳转到AD11标号处执行下面的语句,此时R3再次装入数据100,并且还要再次对R3进展减数……,R2减完后减R1,减R1的过程你争论争论看看。 每执行DJNZ?Rn,rel〔RnR0~R7,rel指转移地址〕指令一次,需要2个机器周期,单片机需耗时2uS〔指本试验〕,假设无视装数等语句,延时子程序从开头到完毕,单片机共耗时 100*100*50*2nS,既1000000uS=1秒!假设加上装数等语句的耗时,延时时间大于1秒。到此,我们做的流水灯已成功,原理大致也明白啦,假设你自认为这一课你完全明白了,那请你将“流水灯”的流向转变一下,也可以改为两边向内流,内部向外流……,我想你确定能用前面学到的方法实现这些功能。可能有些高手说,前面的编程方法是最最笨的!,不错!但玩单片机初期不必讲究语言的简练,只要能完成预先要求就好,这是初学者要知道的。那么还有更好的编程思路吗?有!请连续学习下节课做流水灯试验详解三在上节课中让LED流水是去逐个把握P1端口的每个位来实现的,那么我们在程序一开头就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后让这个数据向高位移动不就实现如此!惋惜,8051P1数据移动的指令,但有对累加器ACC中数据左移或右移的指令,
流水”效果啦?确实ACC8051单片机内部算术规律单元中的一个 存放器”〔这里叫他存放器是不正确的,但你可以先这样理解, ACC在指令中常写为A〕,他在数据传输和数据处理过程中作用格外重要, ACC为8位。他可与片内全部单
P1和其他端口在单片机中也是一个存放器。这样我们可以将需移动的数据的数据〔11111110〕;因上句送到?p1的数据〔11111110〕;因上句送到?p17程序如下:DDW:?;开头MOVMOVACC,#0FE tACCLED1熄灭HP1,ACC ;ACCP1口MOVR0,#7LOOP:?8位流水过程;数据移动循环RlA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电线电缆检验员岗前理论知识考核试卷含答案
- 对二乙基苯装置操作工操作管理考核试卷含答案
- 巡检无人机驾驶员岗前沟通技巧考核试卷含答案
- 2026年城乡居民基本养老保险政策题
- 汽车拆解工复试强化考核试卷含答案
- 2026年个人职业素养提升及职业发展指导试题
- 2026年中国中车集团子公司面试常见问题及地铁车辆组装要点
- 2026年中职学校技能竞赛班班级管理方法
- 2026年林业碳汇项目开发流程及碳汇计量监测练习题
- 2026年煤炭清洁高效利用知识问答
- 2026年度春季江铜集团江铜国际贸易有限公司校园招聘2人备考题库含完整答案详解【历年真题】
- 2026江苏事业单位统考泰州市泰兴市招聘79人笔试参考题库及答案解析
- 2026西咸某国有企业电力设计人员招聘(23人)笔试参考题库及答案解析
- 2026广西贺州市从“五方面人员”中选拔乡镇领导班子成员67人笔试备考题库及答案解析
- 2026年广东广州市高三一模高考语文试卷试题(含答案)
- 2026九年级上语文开放题答题方法
- 2026年河北衡水市城市投资控股集团有限公司公开招聘人员7名笔试模拟试题及答案解析
- 铝合金门窗及幕墙施工方案
- 某污水处理厂药剂采购办法
- (25格)舒尔特方格练习题 儿童专注力训练(共19份每日一练)
- 学校内部控制六大业务工作职责及岗位职责说明书
评论
0/150
提交评论