单片机航标灯控制课程设计.docx
《单片机航标灯控制课程设计.docx》由会员分享,可在线阅读,更多相关《单片机航标灯控制课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
单片机航标灯控制课程设计
一.系统总体方案选择与说明
1.1设计方案选择
以89C51单片机为核心,逻辑电路为辅助的制作开发自动控制航标灯,以实现设计要求。
1.2设计方案说明
以89C51单片机为核心制作开发的自动控制航标灯系统,实现1)航标灯在黑夜能定时闪闪发光,亮3s,熄灭3s周期循环。
2)白天应停止航标灯工作。
3)枯水季节应检测水位高度,低于通航水位时要发出警告信号,定时闪闪发光,亮1s,熄灭1s周期循环。
二.系统结构框图与工作原理
2.1系统结构框图
图2.1
2.2系统的工作原理
本电路选用了MCS87C51单片微处理器作为航标控制电路的核心,时钟选频为12MHZ。
87C51是INTEL公司MCS-51系列单片机中基本型产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的体系结构和指令系统。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,是80C51BH的EPROM版本,电改写光擦除的片内4kBEPROM。
87C51内置8位中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
快速脉冲编程,如编写4kB片内ROM仅需12秒。
检测P1.1口的电平(即水位的高度),当P1.1为低电平时(即为枯水期),P2.1输出为高电平,灯亮0.5s,熄灭0.5s周期循环。
当P1.1为高电平时(即为安全期),此时P1.0为高电平时(即为白昼),灯不工作;当P1.1为高电平时,此时P1.0为低电平(即为夜晚),灯亮3s,熄灭3s周期循环。
P1.1
P1.0
航标灯工作状态
0
0
灯亮1s,熄灭1s周期循环
0
1
1
0
灯亮3s,熄灭3s周期循环
1
1
灯不工作
三.各单元硬件设计说明及计算方法
3.1单片机简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中。
3.1.1.主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
3.1.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后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
高低电平要求的宽度。
XTAL2:
来自反向振荡器的输出。
3.280C51管脚图及功能介绍
Vss(20脚):
接地
VCC(40脚):
主电源+5V
XTAL1(19脚):
接外部晶体的一端。
在片内它是振荡电路反相放大器的输入端。
在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚):
接外部晶体的另一端。
在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。
若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。
RST(9脚):
单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)
PSEN(29脚):
在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。
CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。
不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。
PSEN端同样可驱动8个LSTTL负载。
我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
ALE/PROG(30脚):
在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。
CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。
不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。
PSEN端同样可驱动8个LSTTL负载。
我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
EA/VPP(31脚):
当EA端输入高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。
当地址超出4KB时,将自动执行片外程序存储器的程序。
当EA输入低电平时,CPU仅访问片外程序存储器。
在对87C51EPROM编程时,此引脚用于施加编程电压VPP。
输入/输出引脚:
(1)P0.0—P0.7 (39脚—32脚)
(2)P1.0—P1.7 (1脚—8脚)
(3)P2.0—P2.7 (26脚—21脚)
(4)P3.0—P3.7 (10脚—17脚)
3.3光敏二极管
光敏二极管也叫光电二极管。
光敏二极管与半导体二极管在结构上是类似的,其管芯是一个具有光敏特征的PN结,具有单向导电性,因此工作时需加上反向电压。
无光照时,有很小的饱和反向漏电流,即暗电流,此时光敏二极管截止。
当受到光照时,饱和反向漏电流大大增加,形成光电流,它随入射光强度的变化而变化。
当光线照射PN结时,可以使PN结中产生电子一空穴对,使少数载流子的密度增加。
这些载流子在反向电压下漂移,使反向电流增加。
因此可以利用光照强弱来改变电路中的电流。
上图是光敏二极管的结构图。
在光敏二极管管壳上有一个能射入光线的玻璃透镜,入射光通过透镜正好照射在管芯上。
发光二极管管芯是一个具有光敏特性的PN结,它被封装在管壳内。
发光二极管管芯的光敏面是通过扩散工艺在N型单晶硅上形成的一层薄膜。
光敏二极管的管芯以及管芯上的PN结面积做得较大,而管芯上的电极面积做得较小,PN结的结深比普通半导体二极管做得浅,这些结构上的特点都是为了提高光电转换的能力。
另外,与普通半导体二极管一样,在硅片上生长了一层SiO2保护层,它把PN结的边缘保护起来,从而提高了管子的稳定性,减少了暗电流。
光敏二极管与普通光敏二极管一样,它的PN结具有单向导电性,因此,光敏二极管工作时应加上反向电压,如图所示。
当无光照时,电路中也有很小的反向饱和漏电流,一般为1*10-8--1X10-9A(称为暗电流),此时相当于光敏二极管截止;当有光照射时,PN结附近受光子的轰击,半导体内被束缚的价电子吸收光子能量而被击发产生电子一空穴对O这些载流子的数目,对于多数载流子影响不大,但对P区和N区的少数载流子来说,则会使少数载流子的浓度大大提高,在反向电压作用下,反向饱和漏电流大大增加,形成光电流,该光电流随入射光强度的变化而相应变化。
光电流通过负载RL时,在电阻两端
将得到随人射光变化的电压信号。
光敏二极管就是这样完成电功能转换的。
(由于硬件器材的限制,本设计用开关来模拟光敏二极管的状态)(常见的有2CU、2DU等系列。
)
四.软件设计及说明(含流程图)
五.调试结果与必要的调试说明
5.1水位安全时间——黑夜
如下图所示,当‘水位检测’开关断开,‘白天黑夜检测’开关闭合,此时P1.0口为低电平(‘0’状态),P1.1口为高电平(‘1’状态),灯进入亮3秒熄3秒的循环。
图5.3
5.2水位安全时间——白昼
如下图所示,当‘白天黑夜检测’开关与‘水位检测’开关均断开时,P1.0口与P1.1口均为高电平(状态为‘1’),此时灯不工作,为熄灭状态。
(由于硬件器材的限制,本设计用开关来模拟光敏二极管的状态)
图5.2
5.3枯水季节
只要水位检测开关闭合,‘天黑夜检测’开关无论开断与否(即无论白天黑夜),此时P1.1口为低电平(状态‘0’),P2.1口做为输出,灯进入亮1秒熄1秒循环。
图5.1
六.使用说明
水路航运系统是运输系统的重要一部分,而航道的正确标识斯船舶航运安全的重要保障。
航标灯(navigationmarklight),是为保证船舶在夜间安全航行而安装在某些航标上的一类交通灯。
它可以在夜间发出规定的灯光颜色和闪光频率,达到规定的照射角度和能见距离。
航标灯有固定灯标、灯浮标、灯船和灯塔4种。
固定灯标、灯浮标和灯船是作导航和警告用的信标。
灯塔在海上昼夜发出可识信号,供船舶测定位置和向船舶提供危险警告。
航标灯多使用蓄电池作电源。
小型灯塔已采用太阳能电池,大型灯塔则采用柴油发电机组作为主电源。
七.总结与体会
转眼为期2周的单片机课程设计就结束了,两周的课程设计两周的辛勤付出,终于结出了一定的果实!
本次课程设计就是要求我们做一个航标灯。
思路是比较简单的,用单片机来设计,通过以89C51单片机为核心,逻辑电路为辅助的制作开发自动控制航标灯,以实现设计要求。
关于这次的课程设计,基本的内容和我们上课所学的差不多!
就是把课本的知识综合了一下,并灵活的运用!
无论是整个程序的哪一个环节,单独拿出来让我们设计都不难,但是一综合起来,对于我们这些初学者来说难度就大了。
因为程序要综合起来考虑很多要点,如果只单单完成一种功能我们还可以慢慢弄清思路,一旦综合性加强,马上就会漏洞百出,失误连连。
我们在平时学习的时候是清楚这一点的,但是遇到综合课题的时候,竟然完全忘记了,这说明有思路和能完成是两个完全不同的水平层次,更说明我们仍需要进一步的学习,不断的努力进取,否则以现在处理问题的能力来应对将来的工作是绝对不行滴。
其次,我们平时学习的都是书本上的理论知识,所做实验的综合性灵活性也没有课程设计这么强,所以我初次动手实际去操作时发现,关于这种应用型的学科必须勤动手勤思考努力去实践。
实践能帮助我们积累经验,这次课程设计让我认识到了自己的经验十分欠缺,不能条件反射的想起一些常识性的问题就是我们动手不够的表现。
另外,通过这次课程设计,让我更加领会到了团队精神的重要性和必要性。
~~~~~路漫漫其修远兮~~~~。
我们仍然得努力的提高自己的动手能力设计能力,把书本知识应用到实际当中,不能够只停留在知识的表面,应该深入探索研究,这样才能让我们更好的适应以后的工作和生活。
八.参考文献
1.何立民主编.MCS-51系列单片机应用系统设计配置与接口技术.北京:
北京航空航天大学出版社,1999
2.高锋主编.单片微机应用系统设计及使用技术.北京:
机械工业出版社,1996
3.苏凯,刘庆国,陈国平编著.MCS-51系列单片机系统原理与设计.北京:
冶金工业出版社,2003
4.周向红主编.51系列单片机应用与实践教程.北京:
北京航空航天大学出版社,2008
5.王迎旭编.《单片机原理与应用》[M].机械工业出版社,2004.
6.楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.
参考文献
九.附录
附录A(系统原理图)
附录B(源程序清单)
ORG0100H
MAIN:
MOVSP,#60H
CLRP1.7
LOOP:
MOVA,P1
JNBACC.1,ONE
JNBACC.0,TWO
LCALLDELAY1S
LCALLDELAY1S
AJMPLOOP
ONE:
MOVR0,#02H
SETBP1.7
LOOP1:
LCALLDELAY1S
DJNZR0,LOOP1
CLRP1.7
LCALLDELAY1S
LCALLDELAY1S
AJMPLOOP
TWO:
MOVR0,#0AH
SETBP1.7
LOOP2:
LCALLDELAY1S
DJNZR0,LOOP2
MOVR1,#0AH
CLRP1.7
LOOP3:
LCALLDELAY1S
DJNZR1,LOOP3
AJMPLOOP
DELAY0.5S:
MOVR6,#4
DL1:
MOVR5,#251
DL2:
MOVR4,#24
DL3:
NOP
NOP
DJNZR4,DL3
DJNZR5,DL2
DJNZR6,DL1
RET
END