小灯控制程序_第1页
小灯控制程序_第2页
小灯控制程序_第3页
小灯控制程序_第4页
小灯控制程序_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

21目录1单片机技术概述……………11.1基本概念……………11.2MCS-51系列单片机简介……………22系统的硬件设计……………32.1硬件组成………………32.2流水灯硬件原理图……………………32.3开发软件………………32.4编程语言特点………………………43系统软件设计及调试…………………53.1设计思路………………53.2软件编程……………53.3位控法…………………53.4循环移位法……………63.5查表法……………73.6汇编语法要求、规则…………………93.7小灯控制程序………………………93.8结语……………114参考文献……………………125致谢…………13基于单片机的广告灯控制系统PAGE11单片机技术概述1.1基本概念单片机实际上是微型计算机的一种,自从它问世以来,人们对它不断地改进,以应用于现代化社会的各方各面。单片机体积小,价格低廉,开发较为容易,可根据需要制作成各种智能控制器以代替人工的操作,实现自动化。在我国,由于ASIC(专用集成电路)的生产还跟不上,单片机的作用更加地重要,在智能仪器仪表、工业设备过程控制、家用电器中,都可以见到它的踪迹。单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。以前自动控制中的PID调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。单片微型计算机就是将CPU、RAM、ROM、时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。(引脚图例如图1.1)按用途可分为通用型和专用型两大类根据单片机能够一次处理的数据的宽度,单片机可分为1位机,4位机,8位机,16位机,32位机。(内部逻辑如图1.2)图1.151系列单片机引脚图ACALLDELAY

;调用延时子程序SETBP1.2

;P1.2输出高电平,使LED3熄灭CLRP1.3

;P1.3输出低电平,使LED4点亮ACALLDELAY

;调用延时子程序SETBP1.3

;P1.3输出高电平,使LED4熄灭CLRP1.4

;P1.4输出低电平,使LED5点亮ACALLDELAY

;调用延时子程序SETBP1.4

;P1.4输出高电平,使LED5熄灭CLRP1.5

;P1.5输出低电平,使LED6点亮ACALLDELAY

;调用延时子程序SETBP1.5

;P1.5输出高电平,使LED6熄灭CLRP1.6

;P1.6输出低电平,使LED7点亮ACALLDELAY

;调用延时子程序SETBP1.6

;P1.6输出高电平,使LED7熄灭CLRP1.7

;P1.7输出低电平,使LED8点亮ACALLDELAY

;调用延时子程序SETBP1.7

;P1.7输出高电平,使LED8熄灭ACALLDELAY

;调用延时子程序AJMPSTART

;8个LED流了一遍后返回到标号START处再循环DELAY:

;延时子程序MOVR0,#255;延时一段时间D1:MOV

R1,#255DJNZ

R1,$DJNZ

R0,D1RET

;子程序返回END

;程序结束3.4循环移位法在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以实现“流水”效果。具体编程如下所示,程序结构确实简单了很多。ORG

0000H

;单片机上电后从0000H地址执行AJMPSTART

;跳转到主程序存放地址处ORG0030H

;设置主程序开始地址START:MOVSP,#60H

;设置堆栈起始地址为60HMOVA,#0FEH

;ACC中先装入LED1亮的数据(二进制的11111110)MOVP1,A

;将ACC的数据送P1口MOVR0,#7

;将数据再移动7次就完成一个8位流水过程LOOP:

RL

A

;将ACC中的数据左移一位MOV

P1,A

;把ACC移动过的数据送p1口显示ACALL

DELAY

;调用延时子程序DJNZ

R0,LOOP

;没有移动够7次继续移动AJMP

START

;移动完7次后跳到开始重来,以达到循环流动效果DELAY:

;延时子程序MOVR0,#255;延时一段时间D1:MOVR1,#255DJNZR1,$DJNZR0,D1RET

;子程序返回END

;程序结束3.5查表法上面的两个程序都是比较简单的流水灯程序,“流水”花样只能实现单一的“从左到右”流方式。运用查表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果。我们首先把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVCA,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。具体源程序如下,TAB标号处的数据表可以根据实现效果的要求任意修改。ORG0000H

;单片机上电后从0000H地址执行AJMPSTART

;跳转到主程序存放地址处ORG0030H

;设置主程序开始地址START:MOVSP,#60H

;设置堆栈起始地址为60HMOVDPTR,#TAB

;流水花样表首地址送DPTRLOOP:CLRA

;累加器清零MOVCA,@A+DPTR

;取数据表中的值CJNEA,#0FFH,SHOW;检查流水结束标志AJMPSTART

;所有花样流完,则从头开始重复流SHOW:MOVP1,A

;将数据送到P1口ACALLDELAY

;调用延时子程序INCDPTR

;取数据表指针指向下一数据AJMPLOOP

;继续查表取数据DELAY:

MOVR0,#255

;延时一段时间D1:MOVR1,#255DJNZR1,$DJNZR0,D1RET

;子程序返回TAB:

;下面是流水花样数据表,用户可据要求任意编写DB11111110B

;二进制表示的流水花样数据,从低到高左移DB11111101BDB11111011BDB11110111BDB

11101111BDB

11011111BDB

10111111BDB

01111111BDB

01111111B

;二进制表示的流水花样数据,从高到低右移DB

10111111BDB

11011111BDB

11101111BDB

11110111BDB

11111011BDB

11111101BDB

11111110BDB10000001BDB

0FEH,0FDH,0FBH,0F7H

;十六进制表示的流水花样数据DB

0EFH,0DFH,0BFH,7FHDB

7FH,0BFH,0DFH,0EFHDB

0F7H,0FBH,0FDH,0FEH……DB0FFH

;流水花样结束标志0FFHEND

;程序结束3.6汇编语法要求、规则这里需要说明的是,按汇编语法要求,所编制的程序(下称源程序)之格式和书写要求必须依下列原则:

1、源程序必须为纯文本格式文件,如用Windows“附件”中的“记事本”编写的文本文件编辑;

2、源程序的扩展名应是*.ASM;

3、一行只能写一条语句,以回车作为本句的结束,每一语句行长度应少于80个字符(即40个汉字)。

4、每行的格式应为:标号:命令参数;注释。即一行由四部份组成,各部份的顺序不能搞错,依实际要求可以缺省其中的一部份或几部份,甚至全部省去,即空白行。需要使用标号时标号后面必须有“:”(冒号),而命令语句和参数之间必须用空格分开,如果命令有多个参数,则参数与参数之间必须用“,”(逗号)分开,需要注释时注释前必须用“;”(分号),“;”后面的语句可以写任何字符,包括汉字用于解释前面的汇编语句,它将不参与汇编,不生成代码。由于汇编程序对我们还不直观,所以在编写源程序时,应当养成多写注释的习惯,这样有助于今后源程序的阅读和维护。

标号是标志程序中某一行的符号名,编译后标号的数值就是标号所在行代码的地址。在宏汇编ASM51中标号的长度不受限制,但标号中不能包含‘:'或其它的一些特殊符号,也不能用汉字,可以用数字作标号,但必须用字母开头。当标号作参数用(如标号作转移地址),在命令后面出现时,必须舍去‘:'(如上面程序中的AJMPSTART中的START是不能再有:)。每行只能有一个标号,一个标号只能用在一处,如果有两行用了同一个标号,则汇编时就会出错。由于标号的长度没有限制,可以用有意义的英文或汉语拼音来说明行,使源程序读起来更方便。在源程序中的字母不区分大小写,也就是说start和START是一样的,请不要用大小写方式去区分不同的标号。

3.7小灯控制程序ORG0START:MOVDPTR,#TABLOOP:CLRAMOVCA,@A+DPTRCJNEA,#0FFH,SHOWAJMPSTARTSHOW:MOVP1,AACALLDELAYINCDPTRAJMPLOOPDELAY:MOVR5,#2D0:MOVR7,#250D1:MOVR6,#250D2:DJNZR6,D2DJNZR7,D1DJNZR5,D0RETTAB:DB11111110B,11111101B,11111011B,11110111B,11101111BDB11011111B,10111111B,01111111B,01111111B,10111111BDB11011111B,11101111B,11110111B,11111011B,11111101BDB11111110B,10000001B,01000010B,00100100B,00011000BDB11000000B,01100000B,00110000B,00011000B,00001100BDB00000110B,00000011B,10101010B,01010101B,10010101BDB01101010B,10100101B,01010101B,10001010B,01101000BDB10110101B,01000010B,10000000B,01000000B,00100000BDB00010000B,00001000B,00000100B,00000010B,00000001BDB00000000B,00000001B,00000010B,00000100B,00001000BDB00010000B,00100000B,01000000B,10000000B,11011101BDB11101011B,11101101B,11101011B,11011011B,10111111BDB01111011B,10111011B,11011111B,11101011B,10110101BDB11011011B,01101101B,11110000B,00001111B,01110000BDB00001110B,00110000B,00010000B,00001000B,00001000BDB00001

温馨提示

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

评论

0/150

提交评论