《基于单片机的自动滚动广告牌的设计(外加温度实时显示模块).doc》由会员分享,可在线阅读,更多相关《基于单片机的自动滚动广告牌的设计(外加温度实时显示模块).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于单片机的自动滚动广告牌的设计(外加温度实时显示模块)1 课程设计任务基于单片机的自动滚动广告牌的设计 广告牌有四张宣传彩页,卷入一卷轴,依次来回显示每一页,每一页显示的时间相同。本设计以MCS-51系列单片机为核心,采用常用电子器件设计,自行设计电源,设计广告彩页的显示时间长度,时间一到就用直流电动机旋转控制彩页切换,用一台直流电动机控制广告彩页的旋转(正转/反转),用一个光敏电阻传感器测量光强度,当光线较暗时启动背景灯.设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。设置若干个位置控制行程开关,设置彩页的显示位置。 按键输入采用中
2、断方式.其他资料请联系xuegeng122 设计项目简介通过单片机对系统进行控制,实现系统的自动、手动运行。在运行过程中,由激光传感器做位置控制开关。当有光照时,激光传感器输出高电平,无光照时,输出低电平。每页之间设有通光孔,始末两端也设有通光孔.每页间的通光孔控制电动机转动及停留以使广告自动翻页及停留,始末端通光孔控制电动机正反转以使广告循环播放。模式控制开关按下时,系统进入自动模式。在自动模式下,系统自动实现翻页,停留,翻页,停留.当正转完成后,自动进行反转,在没有断开模式控制开关时,广告页面周而复始的实现自动循环显示.当模式控制开关松开时,系统进入手动模式,由两个正反转开关控制电动机的正
3、转反转,从而实现广告牌的正反转。当按下正转开关时,广告牌正转。按一次,广告牌翻一页,反转亦然.此外,系统中还加入了温度显示装置,能够实时显示当前温度。由数字温度传感器DS18B20,LCD温度显示屏,MCS51单片机组成。温度显示从55度至99度,完全满足日常显示需要。3 电路主要元器件简介l 【AT8C51单片机】AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单
4、片机.单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本.AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.1 主要特性:与MCS51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 :外部中断0(INT0
5、)、外部中断1(INT1)、定时中断0(T0)、定时中断1(T1)、串行中断可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2管脚说明:VCC:供电电压。GND:接地.P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流.当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可
6、用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地
7、址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3。3 /INT1(外部中断1)P3。4 T0(记时器0外部输入)P3。5 T1(记时器1外部输入)P3。6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪
8、烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用.另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,
9、置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效.但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP).XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出.
10、该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统
11、仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。l 【串入并出CD4094】CD4094 位移位存储总线寄存器:CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。CD4094的引脚定义如图1。其中(1)脚为锁存端,(2)脚为串行数据输入端,(3)脚为串行时钟端。(1)脚为高电平时,8位并行输出口Q1Q8在时钟的上升沿随串行输入而变化;(1)脚为低电平时,输出锁定。利用锁存端可方便地进行片选和级联输出控制.(15)脚为并行输出状态控制端,(15)脚为低电平时,并行输出端处在高阻状态,在
12、用CD4094作显示输出时,可使显示数码闪烁。(9)脚QS、(10)脚QS是串行数据输出端,用于级联。QS端在第9个串行时钟的上升沿开始输出,QS端在第9个串行时钟的下降沿开始输出。838电子当CD4094电源为5V时,输出电流大于32MA,灌电流为1 MA。串行时钟频率可达25MHZ。l 【DS1820温度传感器】 DS1820数字温度计提供9位温度读数,知指示器件的温度.信息经过单线接口送入DS1820或者从DS1820送出,因此从主机cpu到DS1820仅需要一条线或地址。DS1820的电源可以从数据线本身提供而不需要外部电源。因为每一个DS1820在出厂时已经给定了唯一的序列号,因此任
13、意多个DS1820可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。DS1820的测量范围从55摄氏度到125摄氏度,增量值为0.5摄氏度,可以在1秒内吧温度转换为数字。每一个DS1820包括一个唯一的64位的长序列号,该序列号的值存放在DS1820内部的Rom中,开始8位是产品类型的编码。接着的48位是每个器件唯一的序列号。最后八位是前面56位的cRc(循环冗余校验码)。DS1820中还有用于储存测得的温度值的两个8位存储器RAM,编号为0和1。1号温度存储器存放温度的符号,如果温度为负值,则1号存储器8位全为1,否则全为0。0号存储器用于存储温度的补码,LSB的1表示0。
14、5摄氏度,将存储器中的二进制数求取补码再转换成十进制数并除以2就得到被测温度值。DS1820的引脚如图所示,每只DS1820可以设置两种供电方式,即数据供电方式和外部供电方式。采取数据供电方式可以节省一根导线,但完成温度测量的时间较长:采取外部供电方式则多一根导线,但是测量速度较快。 DS1820的工作过程及时序:DS1820工作过程及时序如下:初始化,ROM操作命令,存储器操作命令,处理数据。初始化:单线上的所有处理均从初始化开始。ROM操作命令总线主机检测到的DS1820的存在,便可以发出ROM操作命令之一,这些命令如下:READ ROM 33HMATCH ROM 55HSKIP ROM
15、CCHSEARCH ROM F0HALARM ROM ECH存储器操作命令WRITE SCRATCHPAD 4EHREAD SCRATCHPAD BEHCOPY SCRATCHPAD 48HCONVERT SCRATCHPAD 44HRECALL EPROM B8HREAD POWER SUPPLY B4H时序:主机使用时间间隙来读写DS1820的数据位和写命令字的位(1)初始化:如图示,主机总线发送复位脉冲,接着在t1时刻释放总线并进入接受状态,DS1820在检测到总线的上升沿之后等待15-60us,接着DS1820在t2时刻发出存在脉冲。t0t1t2(2)读写0、1时间隙,如图4 电路原理
16、图数字温度实时显示控制电路部分电路总图温度转换及显示电路中断控制开关电路温度传感器激光传感器控制电路电动机控制电路5 程序框图6 程序清单 ORG 0000H LJMP START ORG 0003H LJMP ININT0 ORG 0013H LJMP ININT1 ORG 0100HSTART: MOV SP,#40H MOV P1,#0FFH;定义输入位 JNB P1.7,LP2;P1.7为0自动,为1手动LP1: LCALL HAND SJMP LP2LP2: LCALL AUTO SJMP LP1AUTO: CLR P1.3;运行电机 CLR EA;自动运行中屏蔽中断按键L3: LC
17、ALL TEMP;调用温度显示子程序 JB P1.7,L4 JNB P1.0,$ JNB P1.1,L1 SETB P1.3 LCALL DELAY JMP BACKWARD JMP L3L1: JNB P1。2,L2 SETB P1。3 LCALL DELAY JMP FORWARD JMP L3L2: SETB P1.3 LCALL DELAY CLR P1.3 JMP L3FORWARD: SETB P1.4 CLR P1.3 JMP L3BACKWARD: CLR P1。4 CLR P1。3 JMP L3L4: NOP RETHAND: LCALL TEMP SETB EA SETB
18、IT0 SETB EX0 SETB IT1 SETB EX1 JNB P1.0,;自动变为手动时屏幕停下,转为手动模式 SETB P1.3 JB P1.7,$ RETININT0:SETB PX0;正转中断子程序 JB P1.1,DOWN1;正转至边缘防止电机过载 SETB P1。4 CLR P1。3PL1:JB P1.0,DOWN1;转一页判断S0状态 SJMP PL1DOWN1:CPL P1。3 CLR PX0 RETIININT1:SETB PX1 JB P1。2,DOWN2 CLR P1。4 CLR P1。3PL2: JB P1.0,DOWN2 SJMP PL2DOWN2:CPL P1
19、。3 CLR PX1 RETIDELAY:MOV R0,#250 MOV R2,#250 MOV R1,200 TIME1: DJNZ R0,$ DJNZ R2,TIME1 DJNZ R1,TIME1 RETTEMP:CLR EA LCALL INT;使用初始化子程序 MOV A,0CCHLCALL WRITE;跳过ROM命令MOV A,#44H LCALL WRITE ;送入温度转换命令 LCALL INT;温度转换完全,再次初始化MOV A,#0CCHLCALL WRITEMOV A,#0BEHLCALL WRITE;读入温度暂存器命令LCALL READ MOV R7,A ;读出温度值低
20、字节存入R7 LCALL READ MOV R6,A MOV DPH,R6;读取温度变换为实际温度算法MOV DPL,R7MOV A,R6JNB ACC。0,LL1MOV A,DPHCPL AMOV DPH,AMOV A,DPLCPL AMOV DPL,AINC DPTRMOV R7,DPLLL1:MOV A,R7MOV B,#16DIV ABMOV B,#100DIV ABMOV R0,AMOV A,BMOV B,10DIV ABMOV R1,AMOV R2,BMOV DPTR,#TABMOV A,R1MOVC A,A+DPTRMOV R1,AMOV A,R2MOVC A,A+DPTRMOV
21、 R2,AMOV A,R6JB ACC。0,LL2MOV A,#11MOVC A,A+DPTRMOV R3,AJMP LL3LL2:MOV A,#10MOVC A,A+DPTRMOV R3,ALL3:MOV SCON,00HCLR EACLR P2.0CLR P2.1CLR P2.2MOV A,R3MOV SBUF,AJNB TI,CLR TISETB P2。0CLR P2。0MOV A,R1MOV SBUF,AJNB TI,CLR TISETB P2.1CLR P2。1MOV A,R2MOV SBUF,AJNB TI,$CLR TISETB P2.2CLR P2.2RETINT: ;初始化d
22、s1820子程序 CLR EA L00: CLR P1。6MOV R2,#200 L11: CLR P1。6 DJNZ R2,L11SETB P1。6MOV R2,30 L44: DJNZ R2,L44CLR CORL C,P1.6 JC L00MOV R6,80 L55: ORL C,P1.6JC L33DJNZ R6,L55SJMP L00 L33: MOV R2,240 L22: DJNZ R2,L22RETWRITE: ;向ds1820写操作命令CLR EAMOV R3,#8WR1:SETB P1。6MOV R4,#8RRC ACLR P1.6WR2:DJNZ R4,WR2MOV P1
23、。6,CMOV R4,20WR3:DJNZ R4,WR3DJNZ R3,WR1SETB P1.6RETREAD: ;向ds1820读温度转换器数值CLR EAMOV R6,8RE1:CLR P1。6MOV R4,4 NOPSETB P1.6RE2:DJNZ R4,RE2MOV C,P1.6RRC AMOV R5,30RE3:DJNZ R5,RE3DJNZ R6,RE1SETB P1.6RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90HDB 0BFH,0FFHEND 7 总结为期八天的单片机课程设计终于就要画上完美的句号了,在这里,写
24、下课程设计以来的感悟和收获.首先我觉得作为一名机械设计制造及其自动化专业的学生,进行这样一次单片机设计是非常有必要的,也是有其实际意义的。这不仅考察了我们对知识的掌握状况,更是考察了我们对知识的实际运用能力。从刚开始拿到题目的一脸茫然到小组内成员查阅资料,共同研讨,制定出大体思路,再到后来计划实施,遇到意想不到的困难,探讨,解决困难,经历了上述过程,发现了自己的不足之处,同时,也学到了不少知识,激发了我今后努力学习的兴趣,对我今后的学习产生积极的影响。其次,工欲善其事必先利其器,要做好一个课程设计,就必须做到在设计程序之前,对所用的单片机的内部结构有一个系统的了解,知道单片机内有哪些资源;要有
25、一个清晰的思路和一个完整的软件流程图;在设计程序时,不要妄想一次就把整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个完美的程序与否不仅仅是实现功能,而应让人一看就明白你的思路,这样也为资料的保存和交流提供了方便;在设计过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再遇到同样的问题.课程设计结束了,但是从中学到的知识会让我受益终身。最后,感谢杨老师在此次设计中对我们的的帮助,也同时感谢班级同学在此次设计中提出的各种建设性的建议,才使得此次设计初见成效。8参考文献1、新编单片机原理及应用 汪贵平 李登峰 龚贤武 雷旭编著 机械工业出版社2、单片机原理及接口技术(第二版)胡汉才 编著 清华大学出版社3、中国期刊全文数据库:http:/dlib。4、百度文库5、www。google。com第17 页