路灯控制系统本科毕业设计论文.docx
- 文档编号:27676390
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:58
- 大小:395.90KB
路灯控制系统本科毕业设计论文.docx
《路灯控制系统本科毕业设计论文.docx》由会员分享,可在线阅读,更多相关《路灯控制系统本科毕业设计论文.docx(58页珍藏版)》请在冰豆网上搜索。
路灯控制系统本科毕业设计论文
第一章总体设计
我们在设计路灯系统控制之前,先了解系统所要实现的各个功能情况。
在设计的过程中,除了要让硬件电路简洁外,还要兼顾软件不能过于复杂。
这样才能达到设计的实际要求,硬件支持软件,软件带动硬件。
本电路设计的主要思路是:
对路灯实现实时控制,最基本的程序是时钟显示程序,之后的设定开灯和关灯时间并能对路灯进行实时控制都是在基本程序上扩展而得到的。
时钟显示程序中最关健是否对数码管进行动态扫描的子程序放在哪里,本课设中把动态扫描程序放在T0中断里,中断的时间是非1MS,也就是说每1MS扫描一次,扫描频率非常快,利用了人眼的视觉残留特性,使程序更加简洁.
调时程序和对路灯的单路控制程序都是按键进行控制的.所以对对按键的控制显得尤为重要了.本课设主程序中一直在对所有的按键进行扫描,当按键一有动作,在第一时间就执行相应的程序,达到实时控制的目的.
根据任务书上的要求进行综合分析,总设计方案分为以下几个步骤:
1)根据路灯控制系统的功能,选用合理元器件并画出总体原理图。
(见附录Ⅰ)
2)画出各个程序流程图的各模块。
3)根据流程图编写出各模块的程序。
4)完成主程序及实现模块调用。
5)硬件电路的焊接及调试。
6)硬件软件的综合调试及程序烧制。
7)制作PCB版
根据上述步骤,设计总体方案的流程图可简化为如下:
图1-1总体设计方案流程图
第二章硬件设计
2.1硬件设计原则
一般对于大型的硬件设计的主要思路如下:
一个大型的单片机应用系统的硬件电路设计包含两部分内容:
一是系统扩展,二是系统的配置,即按照系统功能要求配置外围设备,要设计合适的接口电路。
系统的扩展和配置应遵循以下原则:
1、尽可能选择典型电路,为硬件系统的标准化、模块化打下良好的基础。
2、系统扩展与外围设备的配置水平应充分满足应用系统的功能要求。
3、硬件结构应结合程序设计方案一并考虑。
考虑的原则是:
软件能实现的功能尽可能由软件实现,以简化硬件结构。
4、系统中的相关元器件要尽可能做到性能匹配。
5、可靠性及抗干扰设计是硬件设计必不可少的一部分。
6、尽量减少外围。
系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性[1]。
因而在选择器件上尽量的简洁。
由于本次的毕业设计是一个单片机的小型系统,所以对于上述需要注意的事项在这次设计中并不需要面面具到,我总结了一下,在这次设计中需要注意的问题有:
1)注意硬件方案和软件方案的结合.
2)电路的抗干扰性能.
3)对元器件的保护能力,要在电路中对电流敏感元器件进行限流控制.
硬件设计是本次设计的基础,它的成功与否关系到本次毕业设计的成败。
首先我们依然是对系统进行分析,分析它有些什么功能,用什么样的器件才能实现。
根据任务书的要求,分析出需要的功能有:
具备时钟功能、时间调节的调节、二极管(模拟路灯)的显示功能、定时开灯关灯的时间调整功能、按键控制功能。
基于以上功能要求,我们决定使用AT89C51芯片,显示器件选用数码管(4个),通过电阻驱动,驱动数码管的显示。
数码管采用动态显示。
最终确定的结构框图为:
图2-1结构框图
2.2硬件设计思路
通过硬件电路的分析,当开机后,经过上电复位,时钟显示为17:
59:
50,这时可以调整时、分、秒按钮进行精确调整到当前时间,进行正常走时。
开机后系统内部自定义开路灯时间为18:
00:
00,关路灯时间为6:
00:
00,如果不做调整的话,时间就是下午六点钟开灯,早晨6点钟关灯,但春、夏、秋、冬四季的昼夜并不相等,为了更好的节省资源(电力)。
本设计中可以进行手动调整,根据四季的变化来调整开路灯和关路灯的时间,更有效的节省资源。
本设计中另外的一大特点就是在夜晚12:
00的时候,路灯会熄灭一半,这种设计也是为了节省资源,因为夜深人静的时候,并不需要太多的路灯照明整个路面,只需要点点灯光就行。
然后到早晨六点钟或自己重新设定的时间的时候在关闭其它的路灯。
本次设计中共用到了五个按钮,和四个发光二极管,用来控制路灯和调整时间。
按钮上到下编号为①、②、③、④、⑤。
①为进入调整开灯、关灯的时间按钮,和为退出调整开灯和关灯的按钮,只有通过它才能有效的退出定义开灯和关灯的调整状态,②为调整加一小时的按钮,③为调整减一小时的按钮,④为调加一分钟的按钮,⑤为调整减一分钟的按钮。
发光二极管从上至下的标号是①、②、③、④。
①、③为路灯的左边一排。
②、④为路灯的右边一排。
2.3时钟电路
时钟电路是计算机的心脏,它控制着计算机的工作节奏。
MCS-51单片机允许的时钟频率是因型号而异的。
晶振的选择:
6MHz的晶振,其机器周期是2us。
12MHz的晶振,其机器周期是1us,也就是说在执行同一条指令时用6MHz的晶振所用的时间是12MHz晶振的两倍。
为了提高整个系统的性能我选择了12MHz的晶振。
振荡方式的选择:
内部振荡方式,MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件,这样就构成了内部振荡方式。
外部振荡方式是把已有的时钟信号引入单片机内。
这种方式适合用来使单片机的时钟与外部信号一致。
在我的这个设计中没有也无需与外部时钟信号一致,所以我选择了内部振荡方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
晶振我选择了12MHz,相对于6MHz的晶振,整个系统的运行速度更快了。
电容器C1、C2起稳定振荡频率、快速起振的作用,电容值我选择了30pF。
内部振荡方式所得的时钟信号稳定性高。
2.4复位电路
2.4.1可靠性
计算机在启动运行是都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。
MCS-51单片机有一个复位引脚RST,它是施密特触发输入,当振荡器起振后,该引脚上出现2个机器周期(即24个时钟周期)以上的高电平。
使器件复位,只要RST保持高电平,MCS-51保持复位状态。
此时ALE、/PSEN、P0、P1、P2、P3口都输出高电平。
RST变为低电平后,退出复位,CPU从初始状态开始工作。
复位以后内部寄存器的初始状态为(SP=07,P0、P1、P2、P3为0FFH外,其它寄存器都为0。
对于NMOS型单片机,在RST复位端接一个电容至VccHE一个电阻至Vss,就能实现上电自动复位,对于CMOS单片机只要接一个电容至Vcc即可。
如图,在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS-51有效地复位。
RST端在加电时应保持的高电平时间包括Vcc的上升时间和振荡器起振时间,Vcc上升时间若为10ms,振荡器起振时间和频率有关。
10MHz时间约为1ms,1MHz时约为10ms,所以一般为了可靠地复位,RST在上电时应保持20ms以上的高电平。
图2.5中,RC时间常数越大,上电时RST端保持高电平的时间越长。
振荡频率为12MHZ时,典型值为C=10uF,R=8.2kΩ。
若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运转。
图2-2上电复位电路
2.4.2人工复位
除上电自动复位以外,常常需要人工复位,将一个按钮开关并联于上电自动复位电路,按一下开关就RST端出现一段时间的高电平,即使器件复位。
如图所示
图2-3上电和开关复位
而在这次的毕业设计中运用的上电复位电路.即只要一接+5V电压,系统就会自动的复位.出于可靠性和适时性的考虑,我选择了简单实用的上电复位电路上电后,由于电容充电,使RST持续一段高电平时间。
从而实现上电复位操作。
我选择的C=10uF,R=1kΩ。
2.5按键电路
在单片机系统中,通常有且仅有一键按下才视为按键有效。
有效的确认方式通常又可以分为两类。
第一类为按下-释放键方式,系统要求从按下倒释放键才算一次有效按键。
另一类为连击方式,就是一次按键可以产生多次击键效果,其连击频率可自己设定,如3次/秒、4次/秒等。
根据设计的需要,我选择了按下-释放方式,电路如下图9所示。
电路为低电平有效输出方式,当按键按下时输出为低电平。
图2-4开关电路图
在按下-释放键方式时,系统先判断是否有键按下,若不用硬件去抖,则同时进行软件去抖,确认有键按下,然后等待至该按键释放才算依次按键,注意释放键判断同样要进行去抖处理。
2.6显示电路
2.6.1显示方式选择
LED数码显示器时常用的显示器之一,我用的是单片机并口设计的LED数码显示电路。
LED有着显示亮度高、响应速度快的特点,最常用的是七段式LED显示器,又称数码管。
七段式LED显示器内部由7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。
从各发光段电极连接方式分有共阳极和共阴极两种。
所谓共阳方式是指笔画显示器各段发光管的阳极(即P区)是公共的,而阴极互相隔离。
所谓共阴方式是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离的。
显示方式的论证:
方案一:
静态显示方式,就是把共阴极或共阳极的公共端(位选端)连接在一起接地或接5V电源,形成位控端;每一位的段选线(a~dp)作为段控端。
方案二:
动态显示方式,是单片机应用系统中最常用的显示方式,把所有的显示器的同名段选端选线相互并接在一起,由同一个8位并行输出口控制;而各显示器的位选线则分别由不同输出口线控制端。
这样各显示位不能同时显示不同的数字或字符。
因此要选择扫描的方法,即从左到右(或从右到左)依次轮流使每位显示器显示数字或字符并保留一段时间(通常位1ms),由于LED的余辉特性以及人眼视觉的惰性,尽管各位显示器实际上使分时断续地显示,但只要适当选取扫描频率,给人眼的视察印象就会是在连续地显示,而察觉不到闪烁现象。
相对与静态显示动态显示方式虽然占用的CPU空间较多,但使用的硬件少,所占用的端口也较静态显示方式少,可以大大的节约系统的端口资源,所以根据我设计中没有扩展端口,端口资源比较紧张,因此我才用的是动态显示,能节约线路板空间,而且效果也不亚于静态显示。
2.6.2LED的驱动和显示
在电路设计的过程中,单片机的的P0.0-P0.7作为段选输出口,经上拉电阻加到数码管的A-G和DP上,P2.0-P2.5作为位选输出口,经电阻驱动分别加到数码管的COM端。
LED的驱动问题是显示设计中的一个非常重要的环节。
如果驱动能力差,显示器高度就低;且驱动器长期在超负荷下运行很容易损坏。
下面就简单介绍选择LED驱动器时应注意的问题。
显示分为静态显示和动态显示两种方式,由于这两种方式有本质的不同,因此在选择LED驱动器时,一定要分清显示方式。
如果是静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器的工作电流相匹配即可,而且只需要考虑段的驱动,因为,共阳极接+5V,而共阴极接地,所以位的驱动无须考虑。
动态显示则不同,由于一位数据的表示是由段和位选信号共同配合完成的,因此必须同时考虑段与位的驱动能力和位的驱动能力,而且段的驱动能力决定位的驱动能力。
段的驱动能力是由驱动能力决定位的驱动能力。
段的驱动能力是由显示器的亮度决定的,通过发光的二极管的电流较大,其亮度也就越多,对于静态显示器,当某位电量时,此位中点亮的段通过恒定的电流;而对于动态显示器,此电流却是以一定脉冲方式出现的,其峰值电流来考虑。
我采用的是三个数码管集成在一起的管子,这种管子的好处是在接线的时候比较简单,三个COM端接位选接口,非常适合用于动态显示。
我们所采用的是动态显示,虽然有闪烁感,占用的CPU空间较多,但使用的硬件少,能节约线路板空间。
下图为数码显示的硬件电路设计:
图2-5数码显示的硬件电路
说明:
8个上拉电阻是增加[D0-D8]的驱动能力的。
使其更清楚的显示。
六个电阻也是增加驱动能力的。
2.7路灯电路
本设计中用的是四个发光二极管模拟两路路灯控制,每两个二极管用来代替一条街或一个干道的路灯,在加上键盘的点动控制,实现路灯的多路实时控制。
原理图如下:
图2-6路灯电路
2.8PCB板
PCB中文称为印制电路板。
所谓印制电路板是指:
在绝缘基板上,有选择地加工安装孔、连接导线和装配焊接电子元器件的焊盘,以实现元器件间的电气连接的组装板。
硬制电路板的优点:
(1)印制电路板PCB优点之一是可以实现电路中各个元器件间的电气连接,代替复杂的布线,减少了传统方式下的接线工作量,简化了电子产品的装配、焊接、调试工作。
(2)印制电路板PCB优点二是缩小了整机体积,降低了产品成本,提高了电子设备的质量和可靠性。
(3)印制电路板PCB优点三是具有良好的一致性,它可以采用标准化设计,有利于装备生产的自动化和焊接的机械化,提高了生产率。
(4)印制电路板PCB优点四装备的部件有好的机械性能和电气性能,使电子设备实现单元组合化,使整块经过装配调试的印制电路板作为一个备件,便于整机产品的互换与维修。
正是由于以上PCB优点,所以这次我做成了PCB版。
硬制电路板的制作过程:
一般PCB基本设计流程如下:
前期准备->PCB结构设计->PCB布局->布线->布线优化和丝印->网络和DRC检查和结构检查->制版。
第一:
前期准备。
这包括准备元件库和原理图。
在进行PCB设计之前,首先要准备好原理图SCH的元件库和PCB的元件库。
第二:
PCB结构设计。
这一步根据已经确定的电路板尺寸和各项机械定位,在PCB设计环境下绘制PCB板面,并按定位要求放置所需的接插件、按键/开关、螺丝孔、装配孔等等。
并充分考虑和确定布线区域和非布线区域。
第三:
PCB布局。
布局说白了就是在板子上放器件。
这时如果前面讲到的准备工作都做好的话,就可以在原理图上生成网络表(Design->CreateNetlist),之后在PCB图上导入网络表(Design->LoadNets)。
然后就可以对器件布局了。
在放置元器件时,一定要考虑元器件的实际尺寸大小,元器件之间的相对位置,以保证电路板的电气性能和生产安装的可行性和便利性以及整齐美观。
第四:
布线。
布线是整个PCB设计中最重要的工序。
这将直接影响着PCB板的性能好坏。
在PCB的设计过程中首先是布通,这时PCB设计时的最基本的要求。
其次布线要整齐划一,不能纵横交错毫无章法。
在做这次设计布线时主要按以下原则进行:
①.一般情况下,首先应对电源线和地线进行布线,以保证电路板的电气性能。
在条件允许的范围内,尽量加宽电源、地线宽度,最好是地线比电源线宽,它们的关系是:
地线>电源线>信号线。
②.振荡器外壳接地,时钟线要尽量短,且不能引得到处都是。
③.尽可能采用45º的折线布线,不可使用90º折线,以减小高频信号的辐射。
④.任何信号线都不要形成环路,如不可避免,环路应尽量小;信号线的过孔要尽量少。
⑤.关键的线尽量短而粗,并在两边加上保护地。
⑥.原理图布线完成后,应对布线进行优化;同时,经初步网络检查和DRC检查无误后,对未布线区域进行地线填充,用大面积铜层作地线用,在印制板上把没被用上的地方都与地相连接作为地线用。
——PCB布线工艺要求
①.线
线与线之间和线与焊盘之间的距离大于等于0.33mm(13mil),线间距不小于0.254mm(10mil)。
这次设计中信号线宽为0.5mm,电源线宽与地线宽0.8mm。
②.焊盘(PAD)
焊盘(PAD)与过渡孔(VIA)的基本要求是:
盘的直径比孔的直径要大于0.6mm;实际应用中,应根据实际元件的尺寸来定,有条件时,可适当加大焊盘尺寸;PCB板上设计的元件安装孔径应比元件管脚的实际尺寸大0.2~0.4mm左右。
③.过孔(VIA)
一般为1.27mm/0.7mm(50mil/28mil);当布线密度较高时,过孔尺寸可适当减小,但不宜过小,可考虑采用1.0mm/0.6mm40mil/24mil)。
焊盘和过孔的实际尺寸要根据各个元器件的实际情况再综合PCB布线工艺要求来确定。
第五:
布线优化和丝印。
优化布线的时间是初次布线的时间的两倍。
对于丝印,要注意不能被器件挡住或被过孔和焊盘去掉。
第六:
网络和DRC检查和结构检查。
首先,在确定电路原理图设计无误的前提下,将所生成的PCB网络文件与原理图网络文件进行物理连接关系的网络检查(NETCHECK),并根据输出文件结果及时对设计进行修正,以保证布线连接关系的正确性;网络检查正确通过后,对PCB设计进行DRC检查,并根据输出文件结果及时对设计进行修正,以保证PCB布线的电气性能。
最后需进一步对PCB的机械安装结构进行检查和确认。
第七:
制版。
这一过程在厂里完成。
经过以上步骤最后晚成的版子为:
图2-7硬制电路版
第三章软件设计
3.1主程序
本软件设计的程序设计包括判断各个按钮按下之后能够实现什么功能,判断开灯关灯的时间。
其中,动态显示是在中断子程序中进行的,每一次中断的时间为1MS,每中断一次扫描一次,实现动态显示。
正常走时的动态显示是在T0中断中进行动态扫描的,设置开灯关灯的时间是在T1中断中进行动态扫描的。
主程序流程图为:
图3-1主程序流程图
3.2计时程序
计时程序的设计主要用到定时器的知识。
下面我简述一下定时器的一些基础知识。
MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。
它们既可用作定时器方式,又可用作计数器方式。
(1)定时器/计数器结构
定时器/计数器的基本部件是两个8位的计数器(其中TH1,TL1是T1的计数器,TH0,TL0是T0的计数器)拼装而成。
在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可看作是对计算机机器周期的计数器(因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号)。
故其频率为晶振频率的1/12。
如果晶振频率为12MHZ,则定时器每接收一个输入脉冲的时间为1us。
定时器/计数器有四种工作方式,其工作方式的选择及控制都由两个特殊功能寄存器(TMOD和TCON)的内容来决定。
用指令改变TMOD或TCON的内容后,则在下一条指令的第一个机器周期的S1P1时起作用。
(2)定时器/计数器的工作方式
MCS-51片内的定时器/计数器可以通过对特殊功能寄存器TMOD中的控制位C/
的设置来选择定时器方式或计数器方式;通过对M1M0两位的设置来选择四种工作方式,由于我采用了T0,所以就以T0来加以说明。
1、方式0
当M1M0设置为00时,定时器选定为方式0工作。
在这种方式下,16位寄存器只用了13位,TL0的高三位未用。
由TH0的8位和TL0的低5位组成一个13位计数器。
当GATE=0时,只要TCON中的TR0为1,TL0及TH0组成的13位计数器就开始计数;当GATE=1时,此时仅TR0=1仍不能使计数器计数,还需要
引脚为1才能使计数器工作。
由此可知,当GATE=1和TR0=1时,TH0+TL0是否计数取决于
引脚的信号,当
由0变1时,开始计数;当
由1变0时,停止计数,这样就可以用来测量在
端出现的脉冲宽度。
当13位计数器从0或设定的初值,加1到全“1”以后,再加1就产生溢出。
这时,置TCON的TF0位为1,同时把计数器变为全“0”。
2、方式1
方式1和方式0的工作相同,唯一的差别是TH0和TL0组成一个16位计数器。
3、方式2
方式2把TL0配置成一个可以自动恢复初值(初始常数自动重新装入)的8位计数器,TH0作为常数缓冲器,TH0由软件预置值。
当TL0产生溢出时,一方面使溢出标志TF0置1,同时把TH0中的8位数据重新装入TL0中。
方式2常用于定时控制。
例如希望每隔250µs产生一个定时控制脉冲,则可以采用12MHz的振荡器,把TH0预置为6,并使C/
=0就能实现。
方式2不用作串行口波特率发生器。
4、方式3
方式3对定时器T0和定时器T1是不相同的。
若T1设置为方式3,则停止工作(其效果与TR1=0相同)。
所以方式3只适用于T0。
方式0和方式1的最大特点是计数溢出后,计数器全为0,因此循环定时或计数应用时就存在重新设置计数初值的问题,这不但影响定时精度,而且也给程序设计带来不便。
方式2就是针对此问题而设置的,它具有自动重新加载功能,因此也可以说方式2是自动重新加载工作方式。
在这种工作方式下,把16位计数器分为两部分,即以TL0作计数器,以TH0作预置寄存器,初始化时把计数初值分别装入TL0和TH0中。
当计数溢出后,由预置寄存器以硬件方法自动加载。
初始化时,8位计数初值同时装入TL0和TH0中。
当TL0计数溢出时,置位TF0,同时把保存在TH0中的计数初值自动加载装入TL0中,然后TL0重新计数,如此重复不止,这不但省去了用户程序中的重装指令,而且有利于提高定时精度。
但这种方式下计数值有限,最大只能到256。
这种自动重新加载工作方式非常适用于连续定时或计数应用。
当为计数工作方式时,计数值的范围是:
1-256(28)
当为定时工作方式时,定时时间计算公式为:
(28-计数初值)x晶振周期x12或(28-计数初值)x机器周期
通过上述四种方式的比较,根据本计时软件设计的要求,所以我们就采用了T0定时器的方式1。
[2]
时间调整子程序流程图:
图3-2时间调整子程序流程图
本次设计中用到了T0和T1进行中断控制,T0和T1用的都是方式一。
在中断子程序中放进了显示程序,中断时间为1MS,可以实现数码管的动态扫描且无闪烁感。
3.3中断程序
所谓中断,是指在计算机执行程序过程中,当出现某种情况,如发生停电和其他情况时,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行,而转去执行相应的处理程序,待处理程序执行完毕后,再继续处理执行原来被中断的程序。
中断子程序能实现时钟自动走时功能,从而实现计时的运行,在程序设计的过程中有着重要的作用,其流程图为:
图3-3中断程序流程图
3.4按键程序
按键硬件电路图设计如下图:
在没有键按下去时一直为高电平,有按键按下时变为低电平。
单片机以此为判断的依据。
来表示每个不同的按钮按下能实现各种不同功能,如:
调节定时开灯时间、定时关灯时间等。
当单片机查到键盘闭合时就调用按键功能程序,实现相应的功能7。
图3-4按键硬件电路图
第四章系统电路与软件调试
4.1硬件调试
电路焊接完成之后,就要进行硬件电路的调试。
在做本次设计的过程中,遇到了一些故障并作了相应的排除:
1、AT89C51管脚的检测
管脚很多而且很小,在焊接的过程中注意虚焊。
2、数码管的检测
将电路接上电源,看数码管是否显示初始值888888,如果有问题,用万用表检测一下,看时电路问题还是器件的问题,然后再检测各数码管的显示是否完全正常。
在我们以前所涉及到的数码管显示当中,我们都是用a、b、c、d、e、f、g、dip和P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7相对应的顺序,是以此来写字型码。
在一开始的时候,我们也是这样用的,但是发现其显示总是乱码,经过测试后发现我们买的数码管的引脚和89C52的输出口并不是这样对应的,并且测试后发现其对应方式为按照b、a、f、g、e、d、c、dip的顺序分别和P0口P0.7、P0.6、P0.5、P0.4、P0.3、P0.2、P0.1、P0.0口相对应,改正后写出字型码为0EEH、82H、0DCH、0D6H、0B2H、76H、7EH、0C2H、0FEH、0F6H、00H、0F8H分别对应的是0、1、2、3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路灯 控制系统 本科 毕业设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)