




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、小灯控制程序目录1单片机技术概述 11.1 基本概念 11.2 MCS-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致谢 131基于单片机的广告灯控制系统1121单片机技术概述1.1基本概念单片机实际上是微型计算机的一种,自从它问世以来,人们对它不断地改进,以应用于 现代化社会的各方各面。单片机体积小,价格低廉,开发
2、较为容易,可根据需要制作成各种 智能控制器以代替人工的操作,实现自动化。在我国,由于ASIC (专用集成电路)的生产还跟不上,单片机的作用更加地重要,在智能仪器仪表、工业设备过程控制、家用电器中, 都可以见到它的踪迹。单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。更重要的意义在于,单 片机的应用从根本上改变了控制系统传统的设计思想和设计方法。以前采用硬件电路实现的 大部分控制功能,正在用单片机通过软件方法来实现。以前自动控制中的PID调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。这种以软件取代硬件 并能提高系统性能的控制技术称为微控技术。单片微型计算机就是
3、将 CPU、RAM、ROM、时/计数器和多种接口都集成到一块集成电 路芯片上的微型计算机。(引脚图例如图1.1)按用途可分为通用型和专用型两大类根据单片 机能够一次处理的数据的宽度,单片机可分为1位机,4位机,8位机,16位机,32位机(内部逻辑如图1.2)P1.0 _P1.1 _P1.2 _P1.3 _P1.4 P1.5 P1.6 P1.7 .RST/Vpd _ RXD、P3.0 一 TXD、P3.1 一 INTO、P3.2 一 INTT. P3.3 _T0、P3.4 _T1、P3.5 一WR"、P3.6 一RD、P3.7 一XTAL2 _XTAL1 V ss12402393384
4、3753663573483398051321087513111803130122913281427152616251724182319222021Vcc_ P0.0_ P0.1_ P0.2P0.3P0.4P0.5_ P0.6_ P0.7一EA/Vpp一 ALE/PROG一 PSEN_ P2.7_ P2.6一 P2.5一 P2.4一 P2.3_ P2.2P2.1一 P2.0控 制 总 线(CB)户I/OP1.7P2.7P1.6P2.6P1.5P2.5P1.4P2.4P1.3P2.3P1.2P2.2P1.1P2.1P1.0 8051P2.0P0.78751P0.6P3.0 8031P0.5P3 1
5、P0 4P3.2P0.3P3.3P0.2P3.4P0.1P3.5P0.0P3.6ALEP3.7PSENEAALERSTVccvss锁存器rS<_J亠 JA15.A14】A13A12A11A10A9A8 IA7卜A6A5A4A3A2A1A0 /D7、D6 数D5D4D3D2D1DO,VccSS地 址 总 线(AB)据总 线(DB)(a)(b)图1.1 51系列单片机引脚图VssRAM地址寻存器1通道0驰动輻 RM道2蒞动器|/ftft彳厂通道0驰动器逋道3銮动器P0. 0P0. 7P2. 0P2 7手宙曲曲-甘甘廿笳-EFRONIROM程序地址寄存器AC匚=缓冲器=i諾器TMP2TMP1J
6、PSW中断、串行口 定时器逻辑堆栈指针定时和指令I 0DFTR揑制进辑寄存器5U通道3锁存器通道1锁存器|通道3驰动器PCKTAL17|通道哑动器|I 1 l- I I 1 1B"- I I I v e +*+¥+*+ *Pl, 0Pl. TP3. 0P3. 7一亠u-eHCS-5L结构框 国图1.2 51系列单片机内部逻辑图1.2 MCS-51系列单片机简介MCS是In tel公司生产的单片机的系列符号 。20世纪80年代中期以后,Intel公司以专 利转让的形式把8051内核技术转让给了许多半导体芯片生产厂家,如AMTEL、PHILIPS、ANALOG DEVICES、
7、DALLAS公司等。这些厂家生产与 MCS-51指令系统兼容的单片机。 这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而常用80C51 系列来称呼所有具有8051指令系统的单片机。不应该把它们直接称为MCS-51系列单片机,因为MCS只是Intel公司专用的单片机系列符号。2系统的硬件设计2.1硬件组成按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能 CMOS 8位单 片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O 口线、2个16位定时/计数器、
8、 5个向量两级中断结构、2个全双工的串行口,具有4.255.50V的电压工作范围和024MHz 工作频率,使用 AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有 八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机2.2流水灯硬件原理图图2.1系统硬件原理图# 一 -i fl- Ou- p F2.3开发软件Keil C51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体, 支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。它可以结合proteus软件可以实现单机仿真。对于初学者的需求基本能得到
9、满足。而对于所需电路图的绘制则需要 专用的protel软件的支持。它也是个功能全面的软件。所以学好单片机首先要熟悉上面提到 的几种软件。以便于理论与实践的真正结合。用protel软件的主要注意的是对各图标代码的熟悉。一提高绘画速度。Keil C51软件主要是对程序的编写要准确。软件的使用要在学习理 论知识的同时带着使用,在使用中不断的熟悉。如果在实验室则主要熟悉对Keil C51与硬件设备的连接和使用。为了正确仿真串口,在软件仿真调试时,在用户的Keil工程文件的属性中,还需要设置实际使用的晶振频率。这个参数非常重要,直接影响通信的波特率,可以按 照实际使用的参数进行设置。2.4编程软件特点它
10、最大的好处就是简单、方便,容易使用,不需要使用任何电路,也没有特殊的要求; 甚至可以在硬件电路制作好之前就将串口部分的程序编写、调试完毕。3 系统软件设计及调试3.1 设计思路从硬件原理图中可以看出,如果要让接在 P1.0 口的LED1亮起来,那么只要把P1.0 口 的电平变为低电平就可以了;相反,如果要接在P1.0 口的LED1熄灭,就要把P1.0 口的电平变为高电平;同理,接在 P1.1P1.7 口的其他7个LED的点亮和熄灭的方法同LED1。 因此,要实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED 灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼
11、的视觉暂留效应以及单片 机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就 看不到“流水”效果了。3.2 软件编程单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能 看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片 机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一 个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实 现 8个 LED 灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。3.3 位控法这是一种比较笨但又最易理解的方法,采用顺序程序
12、结构,用位指令控制 P1 口的每个位输出高低电平,从而来控制相应 LED 灯的亮灭。程序如下:ORG 0000HAJMP START ORG 0030HSTART:MOV SP , #60HCLR P1.0 ACALL DELAY SETB P1.0CLR P1.1 ACALL DELAY SETB P1.1CLR P1.2;单片机上电后从 0000H 地址执行;跳转到主程序存放地址处;设置主程序开始地址;设置堆栈起始地址为 60H;P1.0输出低电平,使LED 1点亮 ;调用延时子程序;P1.0输出高电平,使LED1熄灭 ; P1.1 输出低电平,使 LED2 点亮 ;调用延时子程序; P1
13、.1 输出高电平,使 LED2 熄灭 ;P1.2输出低电平,使LED3点亮ACALL DELAY SETB P1.2 CLR P1.3 ACALL DELAY SETB P1.3 CLR P1.4ACALL DELAY SETB P1.4 CLR P1.5ACALL DELAY SETB P1.5 CLR P1.6ACALL DELAY SETB P1.6 CLR P1.7ACALL DELAY SETB P1.7 ACALL DELAY AJMP START 处再循环DELAY:MOV R0 ,#255;调用延时子程序;P1.2 输出高电平,使 LED3 熄灭;P1.3 输出低电平,使 LE
14、D4 点亮 ;调用延时子程序;P1.3 输出高电平,使 LED4 熄灭;P1.4 输出低电平,使 LED5 点亮 ;调用延时子程序;P1.4 输出高电平,使 LED5 熄灭;P1.5 输出低电平,使 LED6 点亮 ;调用延时子程序;P1.5 输出高电平,使 LED6 熄灭;P1.6 输出低电平,使 LED7 点亮 ;调用延时子程序;P1.6 输出高电平,使 LED7 熄灭;P1.7 输出低电平,使 LED8 点亮 ;调用延时子程序;P1.7 输出高电平,使 LED8 熄灭 ;调用延时子程序;延时子程序;延时一段时间D1:MOVR1,#255DJNZR1,$DJNZR0,D1RETEND;子程
15、序返回;程序结束;8个LED流了一遍后返回到标号 START3.4 循环移位法在上个程序中我们是逐个控制 P1 端口的每个位来实现的, 因此程序显得有点复杂, 下面 我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给 P1 口送一个 数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动, 然后再输出至 P1 口,这样就实现“流水”效果啦。由于 8051 系列单片机的指令中只有 对累加器 ACC 中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC 中,让其移动,然后将 ACC 移动后的数据再转送到 P1 口,这样同样可以实现“
16、流水” 效果。具体编程如下所示,程序结构确实简单了很多。ORG 0000H;单片机上电后从 0000H 地址执行AJMP START;跳转到主程序存放地址处ORG 0030H;设置主程序开始地址START:MOV SP ,#60H;设置堆栈起始地址为 60HMOV A , #0FEH;ACC 中先装入 LED1 亮的数据(二进制的 11111110)MOV P1 ,A;将 ACC 的数据送 P1 口MOV R0 ,#7;将数据再移动 7 次就完成一个 8 位流水过程LOOP: RL A;将 ACC 中的数据左移一位MOV P1,A;把 ACC 移动过的数据送 p1 口显示ACALL DELAY
17、;调用延时子程序DJNZ R0,LOOP;没有移动够 7 次继续移动AJMP START;移动完 7 次后跳到开始重来, 以达到循环流动效果DELAY: ;延时子程序MOV R0 ,#255;延时一段时间D1:MOV R1 ,#255DJNZ R1 , $DJNZ R0 , D1RET ;子程序返回END ;程序结束3.5 查表法上面的两个程序都是比较简单的流水灯程序, “流水” 花样只能实现单一的 “从左到 右”流方式。运用查表法所编写的流水灯程序, 能够实现任意方式流水,而且流水花样无限, 只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的 流水灯效果。我们首
18、先把要显示流水花样的数据建在一个以 TAB 为标号的数据表中,然后 通过查表指令“ MOVC A , A+DPTR ”把数据取到累加器 A 中,然后再送到 P1 口进行显示。 具体源程序如下, TAB 标号处的数据表可以根据实现效果的要求 任意修改。ORG 0000H AJMP STARTORG 0030H START:MOV SP , #60HMOV DPTR ,# TAB LOOP: CLR AMOVC A , A+DPTRCJNE A , #0FFH, SHOW AJMP START SHOW:MOV P1 , AACALL DELA YINC DPTRAJMP LOOPDELAY:MO
19、V R0 ,#255 D1:MOV R1 ,#255DJNZ R1 ,$DJNZ R0 ,D1RETTAB:求任意编写DB 11111110B左移DB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 01111111B低右移;单片机上电后从 0000H 地址执行 ;跳转到主程序存放地址处 ;设置主程序开始地址 ;设置堆栈起始地址为 60H;流水花样表首地址送 DPTR;累加器清零;取数据表中的值;检查流水结束标志 ;所有花样流完,则从头开始重复流 ;将数据送到 P1 口 ;调
20、用延时子程序;取数据表指针指向下一数据 ;继续查表取数据;延时一段时间;子程序返回;下面是流水花样数据表, 用户可据要;二进制表示的流水花样数据, 从低到高;二进制表示的流水花样数据,从高到DB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 10000001B;十六进制表示的流水花样数据;流水花样结束标志 0FFH;程序结束DB 0FEH ,0FDH , 0FBH ,0F7HDB 0EFH ,0DFH , 0BFH ,7FHDB 7FH ,0BFH ,0DFH , 0EFH
21、DB 0F7H , 0FBH ,0FDH,0FEHDB 0FFHEND3.6 汇编语法要求、规则这里需要说明的是,按汇编语法要求,所编制的程序(下称源程序)之格式和书写要求 必须依下列原则:1、源程序必须为纯文本格式文件,如用 Windows “附件”中的“记事本”编写的文本 文件编辑;2、源程序的扩展名应是 *.ASM ;3、一行只能写一条语句, 以回车作为本句的结束, 每一语句行长度应少于 80 个字符(即 40 个汉字)。4、每行的格式应为:标号: 命令 参数 ;注释 。即一行由四部份组成,各部份的顺序 不能搞错,依实际要求可以缺省其中的一部份或几部份,甚至全部省去,即空白行。需要使 用
22、标号时标号后面必须有“: ”(冒号),而命令语句和参数之间必须用空格分开,如果命令有 多个参数,则参数与参数之间必须用“, ”(逗号)分开,需要注释时注释前必须用“; ”(分 号),“;”后面的语句可以写任何字符, 包括汉字用于解释前面的汇编语句, 它将不参与汇编, 不生成代码。由于汇编程序对我们还不直观,所以在编写源程序时,应当养成多写注释的习 惯,这样有助于今后源程序的阅读和维护。标号是标志程序中某一行的符号名,编译后标号的数值就是标号所在行代码的地址。在 宏汇编 ASM51 中标号的长度不受限制,但标号中不能包含: ' 或其它的一些特殊符号,也 不能用汉字,可以用数字作标号, 但
23、必须用字母开头。 当标号作参数用 (如标号作转移地址) , 在命令后面出现时,必须舍去: ' (如上面程序中的 AJMP START 中的 START 是不能再 有:)。每行只能有一个标号,一个标号只能用在一处,如果有两行用了同一个标号,则汇编 时就会出错。由于标号的长度没有限制,可以用有意义的英文或汉语拼音来说明行,使源程 序读起来更方便。在源程序中的字母不区分大小写,也就是说 start 和 START 是一样的, 请不要用大小写方式去区分不同的标号。3.7 小灯控制程序ORG 0START: MOV DPTR,#TABLOOP : CLR AMOVC A,A+DPTRCJNE A
24、,#0FFH,SHOWAJMP STARTSHOW: MOV P1,AACALL DELAYINC DPTRAJMP LOOPDELAY:MOV R5,#2D0:MOV R7,#250D1:MOV R6,#250D2:DJNZ R6,D2DJNZ R7,D1DJNZ R5,D0RETTAB: DB 11111110B,11111101B,11111011B,11110111B,11101111BDB 11011111B,10111111B,01111111B,01111111B,10111111BDB 11011111B,11101111B,11110111B,11111011B,111111
25、01BDB 11111110B,10000001B,01000010B,00100100B,00011000BDB 11000000B,01100000B,00110000B,00011000B,00001100BDB 00000110B,00000011B,10101010B,01010101B,10010101BDB 01101010B,10100101B,01010101B,10001010B,01101000BDB 10110101B,01000010B,10000000B,01000000B,00100000BDB 00010000B,00001000B,00000100B,00000010B,00000001BDB 00000000B,00000001B,00000010B,00000100B,00001000BDB 00010000B,00100000B,01000000B,10000000B,11011101BDB 11101011B,11101101B,11101011B,11011011B,10111111BDB 01111011B,10111011B,11011111B,11101011B,10110101BDB 11011011B,01101101B,111
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年智慧城市产业市场深度分析及发展趋势与投资战略研究报告
- 2025-2030年室内游乐园产业市场深度分析及前景趋势与投资研究报告
- 2025-2030年学生校服行业市场现状供需分析及投资评估规划分析研究报告
- 工程经济市场份额分析试题及答案
- 公共关系学传播效果评估试题及答案
- 2025年深圳租房合同范本下载
- 经济法概论考试报考条件与试题及答案
- 2025市政工程考试策略规划试题及答案
- 2025年市政工程应对挑战试题及答案
- 2025经济法概论考试大纲与试题答案阐释
- 北京大学介绍课件
- 2022年南京晓庄学院教师招聘考试真题
- 婚前协议书简易模板(3篇)
- 《音乐治疗》课程教学大纲
- 华南理工大学模板课件
- 2023春期版国开电大本科《政府经济学》形考任务4试题及答案
- 痔病(内痔)中医临床路径(试行)
- 朝花夕拾电子版打印
- 初中数学北师大八年级下册第五章分式与分式方程认识分式
- (完整版)青马工程试题及答案
- JJF 1984-2022 电子测量仪器内石英晶体振荡器校准规范
评论
0/150
提交评论