单片机广告灯控制 (例子)
- 格式:ppt
- 大小:5.80 MB
- 文档页数:20
一.【设计题目】:采纳外部中断方式操纵广告灯1.设计要求:采纳外部中断方式操纵广告灯,第一用8个彩灯显示作先左移8次,再往右移8次,然后按以上规律来回执行,可是每来一个外部触发,上述规律就要暂停运行,将目前彩灯的状态闪烁5次,以后再继续按上述规律运行。
二.【设计步骤】1.引言单片机在咱们日常生活中有着重要的做用,这次课程设计我就选了一个在生活中到处可见的广告灯来进行程序的编写及设计。
在这次设计中我要紧用到1片80C51的芯片,8个发光二极管,8个电阻,2个电容,1个按键sw等80C51的四个端口都能够作为通用的输入/输出(I/O)口,P0口作为输出口能驱动8个LSTTL输入,P一、P二、P3口输出缓冲器能驱动4个LSTTL。
2.设计内容(1)中断系统原理:①与中断有关的几个特殊功能寄放器●中断许诺寄放器IE。
中断许诺寄放器IE是一个SFR寄放器,用户通过对其中一个或某些位进行设置来操纵中断的开放或禁止,操纵CPU中断的开放或禁止,操纵某个或某些中断的开放和禁止。
●中断优先级操纵寄放器IP。
中断优先级操纵寄放器IP是用于操纵中断响应优先级别的SFR,用户能够依照需要对它的某些位进行操纵,从而设置某个或某些中断源响应优先级别的高低。
●按时操纵寄放器TCON。
对TCON中的位IT0和IT1进行设置,能够设置外部中断的触发方式,将IT0(或IT1)设置为1表示外部中断0(或外部中断1)为负跳变触发,设置为0表示外部中断0(或外部中断1)为低电平触发。
②初始化编程。
初始化编程的目的是为了设置中断系统的工作情形,通过以下指令实现:MOV IE,#data ;设置中断许诺MOV IP,#data ;设置中断优先级别③.外部中断方式操纵广告灯的实验线路连接图如以下图(1)所示:(2)硬件电路硬件电路如以下图(2)所示,P1口接8个发光二极管,按键sw为触发开关,按键sw每按下就从80C51的INT0引脚输入一个低电平。
广告灯的左移右移1.实验任务做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。
2.电路原理图图4.4.13.系统板上硬件连线把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。
4.程序设计内容我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。
每次送出的数据是不同,具体的数据如下表1所示表15.程序框图图 4.4.26.汇编源程序ORG 0START: MOV R2,#8MOV A,#0FEHSETB CLOOP: MOV P1,ALCALL DELAYRLC ADJNZ R2,LOOPMOV R2,#8LOOP1: MOV P1,ALCALL DELAYRRC ADJNZ R2,LOOP1LJMP STARTDELAY: MOV R5,#20 ; D1: MOV R6,#20D2: MOV R7,#248 DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND7. C语言源程序#include <AT89X51.H> unsigned char i; unsigned char temp; unsigned char a,b;void delay(void) {unsigned char m,n,s; for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--); }void main(void){while(1){temp=0xfe;P1=temp;delay();for(i=1;i<8;i++) {a=temp<<i;b=temp>>(8-i);P1=a|b;delay();}for(i=1;i<8;i++) {a=temp>>i;b=temp<<(8-i);P1=a|b;delay();}}}广告灯(利用取表方式)1.实验任务利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。
stc单片机编程实例STC单片机编程是嵌入式系统开发中常用的一种技术手段,具有广泛的应用领域。
本文将通过几个实例介绍STC单片机编程的基本原理和实践操作,帮助读者更好地理解和掌握这一技术。
一、LED灯控制实例STC单片机通常具有多个IO口,可以通过控制这些IO口的电平来实现对外部设备的控制。
我们先来介绍一个简单的实例,通过STC 单片机控制LED灯的亮灭。
我们需要连接STC单片机的IO口和LED灯。
假设我们将LED灯连接到P1口,通过给P1口设置高电平或低电平来控制LED灯的亮灭。
接下来,我们需要编写程序来控制LED灯。
STC单片机的编程语言通常是汇编语言或C语言,这里我们以C语言为例。
首先,在程序中引入STC单片机的头文件,然后定义P1口为输出口。
```c#include <reg51.h> // 引入STC单片机头文件void main(){P1 = 0x00; // 将P1口初始值设为0,灯灭while (1){P1 = 0xff; // 将P1口设为全高电平,灯亮}}```编写好程序后,我们需要使用STC单片机的开发工具将程序烧录到单片机中。
烧录完成后,将单片机连接到电源,LED灯就会开始亮起。
通过这个实例,我们可以看到STC单片机编程的基本流程:连接硬件设备、编写程序、烧录程序、运行程序。
掌握了这些基本步骤,我们就可以实现更复杂的功能。
二、温度检测与显示实例除了控制外部设备,STC单片机还可以用来感知外部环境,并将感知到的信息进行处理和显示。
接下来,我们将介绍一个温度检测与显示的实例。
我们需要连接一个温度传感器到STC单片机的一个IO口。
温度传感器会将检测到的温度值转换为电压信号,并通过IO口输出。
接下来,我们需要编写程序来读取温度传感器的检测值,并将其显示在液晶屏上。
STC单片机通常需要通过一些额外的芯片来驱动液晶屏,这里我们假设我们已经连接好了液晶屏的驱动芯片。
```c#include <reg51.h> // 引入STC单片机头文件void delay(unsigned int t){while (t--);}void main(){unsigned int temp;while (1){temp = read_temperature(); // 读取温度传感器的检测值 display_temperature(temp); // 在液晶屏上显示温度值 delay(1000); // 延时1秒}}unsigned int read_temperature(){// 读取温度传感器的检测值的具体实现}void display_temperature(unsigned int temp){// 在液晶屏上显示温度值的具体实现}```在这个实例中,我们新增了两个函数:read_temperature()用于读取温度传感器的检测值,display_temperature()用于在液晶屏上显示温度值。
一、绪论(一)任务来源随着我国经济建设的快速发展,国内各地城镇景观照明也发生了变化,霓虹灯产业发展迅速,据不完全统计,全国霓虹灯企业已逾几千家,年总产值超过30亿元人民币,出口创汇方面也有不错的业绩。
中国社会主义市场经济的不断繁荣和发展,西部大开发、振兴东北经济、长三角、珠三角东西互动、各地旅游、商贸、餐饮及文化娱乐事业日益繁荣,越来越多的城市已将亮化、美化工程列入城市建设发展规划,霓虹灯已成为不可缺少的夜间文化,夜间霓虹灯广告也成为不可缺少的媒体,霓虹灯行业迎来一个新的发展机遇。
各企业为宣传自己企业的形象和产品, 树立自己的特色品牌,增强自己在社会的影响力和扩大市场的占有率,均采用广告宣传的手法之一--霓虹灯广告屏来实现。
夜幕降临华灯初上时,我们走在大街上,马路两旁各色各样的霓虹灯广告均可以见到,一种是采用霓虹灯管做成的各种形状和多中彩色的灯管,另一种为日光灯管或白炽灯管作为光源,另配大型广告语或宣传画来达到宣传的效果。
这些灯的亮灭,闪烁时间及流动方向等均可以通过PLC来达到控制的要求。
21世纪的今天中国霓虹灯企业不断地走进国际舞台,产品远销欧美等国际市场,在国际这个大舞台上扮演着越来越重要的角色。
(二)方案对比与选择1.用单片机实现该方案时有以下缺点和不足:首先,单片机实现该方案所需要的外围电路多,工作量相当于PLC较大;其次,它的可靠性以及抗干扰性也显然不如PLC;再次,它的中断优先级不明确,相对于PLC而言用起来较复杂;最后,它的配套设施和功能没有可编程控制器PLC完善。
2.用可编程控制器PLC优势是很明显的(1)可靠性高,抗干扰能力强:(2)配套齐全,功能完善,适用性强;(3)系统的设计、建造工作量小,维护方便,容易改造;(4)体积小,重量轻,能耗低。
综上所述,我选择用PLC控制器制作彩灯广告屏。
(三)PLC简介1. PLC的产生20世纪20年代起,人们把各种继电器、定时器、接触器及其触点按一定的逻辑关系连接起来组成控制系统,控制各种生产机械,这就是大家熟悉的传统的继电器控制系统。
广告灯一、问题的提出用八个发光二极管代替广告灯,实现广告灯的循环以及花样变化!二、总体设计1、分析问题的功能将P1 口的8个引脚分别接8位发光二极管0,1,2,3,4,5,6,7。
通过控制P1口的输出,实现每隔0.5s接在P1 口的8个发光二极管从右依次点亮0,1,2,3,4,5,6,7,然后从左依次熄灭7,6,5,4,3,2,1,0,然后8个发光二极管全部点亮,闪烁3 次;接着,每隔0.5s接在P1 口的8个发光二极管从左依次点亮7,6,5,4,3,2,1,0,然后从右依次熄灭0,1,2,3,4,5,6,7,然后8个发光二极管全部点亮,闪烁3 次;接着8个二极管从左轮流点亮0,1,2,3,4,5,6,7,然后8个二极管从右轮流点亮7,6,5,4,3,2,1,0,然后8个发光二极管全部点亮,闪烁5 次,之后全灭;如此反复循环。
循环过程中通过中断加入一些广告灯的花样变化。
2、系统总体结构设计1)硬件设计:8031单片机,DP-51PROC综合仿真实验仪,P1口,定时器0,外部中断1等。
2)软件设计:各功能模块详见程序清单后注释。
三、详细设计:1、硬件详细设计:时间间隔可采用软件延时或定时器定时,软件延时:8031时钟频率11.0592MHz,延时0.5S,P1口输出。
采用定时器0定时延时:ORG 800BHLJMP TOS定时器0赋定时初值:MOV TH0,#4CHMOV TL0,#00H电路图:定时中断子程序:TOS: MOV TH0,#4CHMOV TL0,#00HINC R0CJNE R0,#10,LLMOV R0,#00H…………RETI外部中断子程序:INT1S: PUSH ACC…………POP ACCRETI2、软件详细设计:软件延时:DELAY: MOV 31H,#0MOV 32H,#0LOOP2: DJNZ 32H,$DJNZ 32H,$DJNZ 32H,$DJNZ 32H,$DJNZ 31H,LOOP2RET逐个点亮:NEXT1:MOV P1,ACLR CRLC AINC R1SJMP NEXT逐个熄灭:NEXT3:MOV P1,ASETB CRRC AINC R2SJMP NEXT循环点亮:NEXT13:MOV P1,ARL AINC R7SJMP NEXT闪烁:NEXT11:MOV P1,ACPL AINC R6SJMP NEXT花样变换:见外部中断1子程序。
高职《单片机技术》课程标准一、课程名称:单片机技术二、内容简介:“单片机技术”主要是介绍单片机基本原理、单片机汇编语言程序设计、C语言程序设计、内部资源和外围接口的设计原理等。
通过该课程学习和实验,能够使学生较系统地掌握微型计算机的基本原理,掌握汇编语言的编程方法,掌握微型计算机的接口技术,掌握常用的Protues和Keil 等单片机开发工具的使用方法,为后续专业课程打下必要的基础。
三、课程定位(一)课程专业背景分析“单片机技术”是应用电子技术、光电子技术、通信技术、智能交通技术运用等专业的一门实用技术核心课程,它对培养学生的思维能力和解决问题的能力具有重要作用。
通过本课程的学习,可以使学生较系统地掌握汇编语言的编程方法,掌握单片机的基本原理、接口和应用技术。
熟悉单片机技术在工业控制中的应用,可以培养和锻炼学生动手操作和技术创新的能力,使得学生能紧跟IT技术的发展脚步,为将来从事工业领域相关工作,尤其是自动控制以及应用电子产品的检测和维修奠定坚实的基础,为将来进行各种智能化产品的设计开发提供技术准备。
(二)职业能力需求分析“单片机原理技术”是理、工科电类专业方向与专业特色课程,也是理工科学生学习、掌握单片机在控制领域应用开发的入门课程。
本课程以应用为出发点,以应用为目的,可以综合提高学生在单片机控制领域的软、硬件设计能力,以及实际工作能力。
本课程在培养学生从事嵌入式计算机系统设计领域所需的知识和技能方面承担着重要任务。
它对培养学生的工程思维的能力、独立分析问题和解决问题的能力、实践操作的能力、综合运用和技术创新的能力以及独立获取知识的能力具有重要作用。
在专业课程体系中,它的功能定位是在专业培养目标中起着承上启下的桥梁作用。
四、课程设计指导思想及原则以职业能力培养为重点,与企业专家合作进行基于工作过程的课程开发与设计,充分体现职业性、实践性和开放性的要求。
根据高职学生的实际情况和工作岗位,以及本课程在培养计划中的作用,设置了新的课程体系,重新组织了教学内容,设计了教学模式和方法。
51单片机实用程序库4.1 流水灯程序介绍:利用P1 口通过一定延时轮流产生低电平输出,以达到发光二极管轮流亮的效果。
实际应用中例如:广告灯箱彩灯、霓虹灯闪烁。
程序实例(LAMP.ASM)ORG 0000HAJMP MAINORG 0030HMAIN:9MOV A,#00HMOV P1,A ;灭所有的灯MOV A,#11111110BMAIN1:MOV P1,A ;开最左边的灯ACALL DELAY ;延时RL A ;将开的灯向右边移AJMP MAIN ;循环DELAY:MOV 30H,#0FFHD1: MOV 31H,#0FFHD2: DJNZ 31H,D2DJNZ 30H,D1RETEND4.2 方波输出程序介绍:P1.0 口输出高电平,延时后再输出低电平,循环输出产生方波。
实际应用中例如:波形发生器。
程序实例(FAN.ASM):ORG 0000HMAIN:;直接利用P1.0口产生高低电平地形成方波////////////// ACALL DELAYSETB P1.0ACALL DELAY10CLR P1.0AJMP MAIN;////////////////////////////////////////////////// DELAY:MOV R1,#0FFHDJNZ R1,$RETEND五、定时器功能实例5.1 定时1秒报警程序介绍:定时器1每隔1秒钟将p1.o的输出状态改变1 次,以达到定时报警的目的。
实际应用例如:定时报警器。
程序实例(DIN1.ASM):ORG 0000HAJMP MAINORG 000BHAJMP DIN0 ;定时器0入口MAIN:TFLA G EQU 34H ;时间秒标志,判是否到50个0.2秒,即50*0.2=1秒MOV TMOD,#00000001B;定时器0工作于方式1MOV TL0,#0AFHMOV TH0,#3CH ;设定时时间为0.05秒,定时20次则一秒11SETB EA ;开总中断SETB ET0 ;开定时器0中断允许SETB TR0 ;开定时0运行SETB P1.0LOOP: AJMP LOOPDIN0:;是否到一秒//////////////////////////////////////// INCC: INC TFLAGMOV A,TFLAGCJNE A,#20,REMOV TFLAG,#00HCPL P1.0;////////////////////////////////////////////////// RE:MOV TL0,#0AFHMOV TH0,#3CH ;设定时时间为0.05秒,定时20次则一秒RETIEND5.2 频率输出公式介绍:f=1/ts51 使用12M晶振,一个周期是1微秒使用定时器1工作于方式0,最大值为65535,以产生200HZ的频率为例:200=1/t:推出t=0.005 秒,即5000 微秒,即一个高电12平或低电平的时间为2500 微秒。