欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
换一换
首页 沃文网 > 资源分类 > DOC文档下载
 

基于STC89C52RC单片机的路灯模拟控制系统设计.doc

  • 资源ID:1320       资源大小:188.00KB        全文页数:68页
  • 资源格式: DOC        下载权限:注册会员/VIP会员    下载费用:20积分 【人民币20元】
下载资源需要20积分 【人民币20元】
已注册用户请登录:
账号:
密码:
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

基于STC89C52RC单片机的路灯模拟控制系统设计.doc

目录摘要1第一章绪论2第二章方案设计与论证3一外部环境明暗的检测单元3二路况的检测单元3三处理器的选择3第三章硬件设计4一80C51单片机硬件结构41微处理器42数据存储器43程序存储器44中断系统55定时器计数器56串行口57特殊功能寄存器5二最小应用系统设计51时钟电路62复位电路63通用的晶振电路7三显示电路8四LED灯电路构成9第四章软件设计12一主程序设计12二延时子程序设计14三按键扫描子程序设计14四中断子程序设计15五显示子程序16六声光报警子程序19七交通情况检测子程序20八路灯控制子程序设计21参考文献24附录25附1元器件明细表25附2仪器设备清单25附3电路图图纸26附4程序清单26摘要STC89C52RC单片机是一款八位单片机他的易用性和多功能性受到了广大使用者的好评本系统以毕业设计的题目要求为目的采用8051单片机为控制核心利用光电传感器出检测环境的明暗变化以及路灯的工作状态利用对射式红外线检测交通的情况通过在硬件的基础上进行编程利用软件达到路灯模拟系统的支路控制器有时钟功能能设定显示开关灯时间并控制整条支路按时开灯和关灯支路控制器能根据环境明暗变化自动开灯和关灯支路控制器能根据交通情况自动调节亮灯状态支路控制器能分别独立控制每只路灯的开灯和关灯时间当路灯出现故障时灯不亮支路控制器发出声光报警信号并显示有故障路灯的地址编号整个系统的电路结构简单可靠性能高实验测试结果满足要求采用的技术主要有通过编程来路灯的状态传感器的有效应用新型显示芯片的采用关键词STC89C52RC单片机光电传感器红外传感器AbstractSTC89C52RCmonolithicintegratedcircuitsisoneofeightmonolithicintegratedcircuitshiseaseandfunctionalbytheusersthisgraduationdesignsystemtothesubjectoftherequirementsforthepurposeofamonolithicintegratedcircuitstocontrolthe8051PhotoelectricsensorstothedetectionoftheenvironmentandtheworkofthestatetoshootinthetrafficintheinfrareddetectedbythehardwareonthebasisofprogrammingUsedsoftwaretothesystemofcontrolisthewaycansetindisplayingswitchthelightoftimeandcontrolalloftheroadandturnoffthelightoftheturnonthelighttheroadtoenvironmentalchangeAwaytocontroltrafficcanautomaticallyadjustthelightofthestatewaytoeachseparateindependentcontrolthelightsandthetimewhenthefaultsoccuraudibleandvisiblewarningsignalsAndthattherewasfailuretheaddressnumberstheentirecircuitofthesystemsimplereliableperancethetestresultstomeettherequirementsKeywordSTC89C52RCPhotoelectricsensorsInfraredsensors第一章绪论随着交通行业的迅速发展与之相关的一系列智能设备的研究也就越来越受人关注本设计就是以这样的形势为背景提出来的以此以它作为自己的毕业设计具有很现实的实用意义此次的毕业设计结合现在社会的实际需要从而达到学以致用服务于人民的效果根据实际需要设计的路灯模拟控制系统应该具有支路控制器有时钟功能能设定显示开关灯时间并控制整条支路按时开灯和关灯支路控制器能根据环境明暗变化自动开灯和关灯支路控制器能根据交通情况自动调节亮灯状态支路控制器能分别独立控制每只路灯的开灯和关灯时间当路灯出现故障时灯不亮支路控制器发出声光报警信号并显示有故障路灯的地址编号根据毕业设计的题目要求现确定如下方案以单片机最小系统为控制核心然后加装光电传感器红外传感实现对路灯的控制以及交通情况的信息采集并将测量数据传送至单片机进行处理然后由单片机根据所检测的各种数据实现对路灯的智能控制这种方案能实现对路灯状态进行实时控制控制灵活可靠精度高可满足对系统的各项要求本设计采用MCS-51系列中的STC89C52RC单片机STC89C52RC是一款八位单片机它的易用性和多功能性受到了广大使用者的好评它是第三代单片机的代表第三代单片机包括了Intel公司发展MCS-51系列的新一代产品如8xC152、80C51FAFB、80C51GAGB、8xC451、8xC452还包括了Philips、Siemens、ADM、Fujutsu、OKI、Harria-Metra、ATMEL等公司以80C51为核心推出的大量各具特色、与80C51兼容的单片机新一代的单片机的最主要的技术特点是向外部接口电路扩展以实现Microcomputer完善的控制功能为己任将一些外部接口功能单元如AD、PWM、PCA可编程计数器阵列、WDT监视定时器、高速IO口、计数器的捕获比较逻辑等这一代单片机中在总线方面最重要的进展是为单片机配置了芯片间的串行总线为单片机应用系统设计提供了更加灵活的方式Philips公司还为这一代单片机80C51系列8xC592单片机引入了具有较强功能的设备间网络系统总线----CANControllerAreaNetworkBUS本设计就采用了比较先进的80C51为控制核心80C51采用CHOMS工艺功耗很低该设计具有实际意义可以应用于考古机器人医疗器械等许多方面尤其是在足球机器人研究方面具有很好的发展前景在考古方面也应用到了超声波传感器进行检测所以本设计与实际相结合现实意义很强第二章方案设计与论证根据题目的要求确定如下方案利用光电传感器和红外传感器进行外部路灯状态和交通状态的信息收集然后将收集的数据传送至单片机进行处理然后由单片机根据所检测的各种数据实现对路灯的智能控制这种方案能实现对路灯的工作进行实时控制控制灵活可靠精度高可满足对系统的各项要求一外部环境明暗的检测单元方案一采用光敏二极管感受外届光照变化无光照时有很小的饱和反向漏电流二极管截止光照时反向电流增大形成光电流方案二采用光敏电阻对光源的感应改变自身电阻由电压比较器提取之间电压考虑到电阻变化的灵敏度采用两个光敏电阻串联的方式通过改变与光敏电阻串联的电位器的值可以调节光敏电阻的感光范围考虑到现实中声光控制技术的运用已经证明了光敏电阻完全可以达到要求且价格便宜电路简单综合考虑以上方案采用光敏电阻二路况的检测单元方案一采用摄像头或探测头收集路面上信息用这种方法对路面信息处理准确但是成本过高数据处理量大对硬软件的要求都非常高短时间内难以实现方案二使用反射式红外二极管和接收管组成发射-接收器由于红外光波长比可见光长因此受可见光的影响比较小同时红外对管还具有以下优点质量轻灵敏度高线性好接口电路比较简单安装方便足够满足对本系统中物体检测的要求基于以上原因选用了成本较低的方案二三处理器的选择单片机STC89C52RC作为模拟路灯控制系统的核心STC89C52RC具有许多优点RAMROM空间大指令周期短运算速度快低功耗低电压可编程音频处理易于编程和调试本题要求支路控制器有声光报警功能由此看来单片机STC89C52RC更具有优越性第三章硬件设计一个单片机应用系统的硬件电路设计包含有两部分内容一是系统扩展即单片机内部的功能单元如ROM、RAM、IO口、定时记数器、中断系统等能量不能满足应用系统的要求时必须在片外进行扩展选择适当的芯片设计相应的电路二是系统配置既按照系统功能要求配置外围设备如键盘显示器、打印机、AD、DA转换器等要设计合适的接口电路一80C51单片机硬件结构80C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上[2]如果按功能划分它由如下功能部件组成即微处理器数据存储器程序存储器并行IO口串行口定时器计数器中断系统及特殊功能寄存器它们都是通过片内单一总线连接而成其基本结构依旧是CPU加上外围芯片的传统结构模式但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式1微处理器该单片机中有一个8位的微处理器与通用的微处理器基本相同同样包括了运算器和控制器两大部分只是增加了面向控制的处理功能不仅可处理数据还可以进行位变量的处理2数据存储器片内为128个字节片外最多可外扩至64k字节用来存储程序在运行期间的工作变量运算的中间结果数据暂存和缓冲标志位等所以称为数据存储器3程序存储器由于受集成度限制片内只读存储器一般容量较小如果片内的只读存储器的容量不够则需用扩展片外的只读存储器片外最多可外扩至64k字节4中断系统具有5个中断源2级中断优先权5定时器计数器片内有2个16位的定时器计数器具有四种工作方式6串行口1个全双工的串行口具有四种工作方式可用来进行串行通讯扩展并行IO口甚至与多个单片机相连构成多机系统从而使单片机的功能更强且应用更广7P1口P2口P3口P4口为4个并行8位IO口7特殊功能寄存器共有21个用于对片内的个功能的部件进行管理控制监视实际上是一些控制寄存器和状态寄存器是一个具有特殊功能的RAM区由上可见80C51单片机的硬件结构具有功能部件种类全功能强等特点特别值得一提的是该单片机CPU中的位处理器它实际上是一个完整的1位微计算机这个一位微计算机有自己的CPU位寄存器IO口和指令集1位机在开关决策逻辑电路仿真过程控制方面非常有效而8位机在数据采集运算处理方面有明显的长处MCS-51单片机中8位机和1位机的硬件资源复合在一起二者相辅相承它是单片机技术上的一个突破这也是MCS-51单片机在设计的精美之处二最小应用系统设计80C51是片内有ROMEPROM的单片机因此这种芯片构成的最小系统简单、可靠用80C51单片机构成最小应用系统时只要将单片机接上时钟电路和复位电路即可如图3180C51单片机最小系统所示由于集成度的限制最小应用系统只能用作一些小型的控制单元其应用特点有可供用户使用的大量IO口线内部存储器容量有限应用系统开发具有特殊性图180C51单片机最小系统1时钟电路80C51虽然有内部振荡电路但要形成时钟必须外部附加电路80C51单片机的时钟产生方法有两种内部时钟方式和外部时钟方式本设计采用内部时钟方式利用芯片内部的振荡电路在XTAL1XTAL2引脚上外接定时元件内部的振荡电路便产生自激振荡本设计采用最常用的内部时钟方式即用外接晶体和电容组成的并联谐振回路振荡晶体可在12MHZ到12MHZ之间选择电容值无严格要求但电容取值对振荡频率输出的稳定性大小振荡电路起振速度有少许影响CX1CX2可在20pF到100pF之间取值但在60pF到70pF时振荡器有较高的频率稳定性所以本设计中振荡晶体选择6MHZ电容选择65pF在设计印刷电路板时晶体和电容应尽可能靠近单片机芯片安装以减少寄生电容更好的保证振荡器稳定和可靠地工作为了提高温度稳定性应采用NPO电容2复位电路80C51的复位是由外部的复位电路来实现的复位引脚RST通过一个斯密特触发器用来抑制噪声在每个机器周期的S5P2斯密特触发器的输出电平由复位电路采样一次然后才能得到内部复位操作所需要的信号复位电路通常采用上电自动复位和按钮复位两种方式最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的只要Vcc的上升时间不超过1ms就可以实现自动上电复位时钟频率用6MHZ时C取22uFR取1KΩ除了上电复位外有时还需要按键手动复位本设计就是用的按键手动复位按键手动复位有电平方式和脉冲方式两种其中电平复位是通过RST端经电阻与电源Vcc接通而实现的按键手动复位电路见图32时钟频率选用6MHZ时C取22uFRs取200ΩRK取1KΩ图280C51复位电路3通用的晶振电路单片机的晶振电路是一种典型电路分为内部时钟方式和外部时钟方式两种内部时钟方式的电路如图4所示图3单片机的内部晶振电路内部始终的晶振频率一般都选择在4MHz~12MHz之间外接两个谐振电容该电容的典型值为30PF但是在实际应用时需要根据实际起振情况选择如果单片机的时钟必须使用某一个外接的时钟信号就不要外接晶振由于此时的外接晶振引脚上没有晶振信号输入内部的时钟电路将停振这种方式称为外部时钟方式图5给出了两种外部时钟的电路可以根据不同的单片机型号选择不同的电路HMOS型单片机CHMOS型单片机图4单片机的外部晶振电路三显示电路本设计中用两片7位八段数码管gem4561ae作显示器并具有双重功能在一般情况下七段数码comcom当路灯出现故障时显示故障路灯的编号本设计中采用新型芯片EM78P458作为显示驱动器它的管脚如EM78P458管脚介绍所示用单片机的并行口控制一个数码显示电路用4个口线用专用驱动芯片控制可以减少对CPU的利用时间单片机将有更多的时间去完成其他功能该芯片共有20个管脚管脚LED1、LED2、LED3、LED4分别接10k电阻和图5三极管后与4位八段数码管5461中的a1、a2、a3、a4四个数位选择端相连这四个数位选择端用来产生LED选通信号管脚a、b、c、d、e、f、g、dp分别接680欧电阻后与四位八段数码管5461中的a、b、c、d、e、f、g、dp相连分别控制各段码和小数点管脚d0、d1、d2、d3接单片机并行口通过对单片机对芯片进行控制管脚vss串上10k电阻后与vcc管脚相接后再接5v电源管脚gnd接地该芯片所驱动的显示电路如图36EM78P458集成显示电路所示显示驱动器支持动态显示其显示功能如表42真值表所示0000-1001显示从0-9数字1010是未进位时是小数点清位1011是进位后加小数点1100-1111是八段共阴数码管的位选表1真值表D3D2D1D0显示000000001100102001130100401015011060111710008100191010清小数点1011加小数点1100a1选通1101a2选通1110a3选通1111a4选通四LED灯电路构成LED的内在特征决定了它是最理想的光源去代替传统的光源它有着广泛的用途体积小LED基本上是一块很小的晶片被封装在环氧树脂里面所以它非常的小非常的轻耗电量低LED耗电非常低一般来说LED的工作电压是2-36V工作电流是002-003A这就是说它消耗的电不超过01W灯体内也没有松动的部分这些特点使得LED可以说是不易损坏的LED路灯的电路图如下所示图6三端集成稳压电路这是一种集成电路的稳压电路其功能是稳定直流输出电压这种集成电路只有三根引脚使用很方便在许多场合都有着广泛应用稳压电路的作用是使得输出的直流电压在电网电压或负载电流发生变化时保持稳定它由电源变压器整流电路滤波电路稳压电路等4部分组成的变压器的作用是将交流市电变换成所需要的交流电压整流电路的作用是将交流电变换成单向脉动直流电滤波电路的作用是将脉动电压中的脉动成分去掉图8第四章软件设计系统软件设计说明在进行微机控制系统设计时除了系统硬件设计外大量的工作就是如何根据每个生产对象的实际需要设计应用程序因此软件设计在微机控制系统设计中占重要地位对于本系统软件更为重要在单片机控制系统中大体上可分为数据处理过程控制两个基本类型数据处理包括数据的采集数字滤波标度变换等过程控制程序主要是使单片机按一定的方法进行计算然后再输出以便控制生产为了完成上述任务在进行软件设计时通常把整个过程分成若干个部分每一部分叫做一个模块所谓模块实质上就是所完成一定功能相对独立的程序段这种程序设计方法叫模块程序设计法模块程序设计法的主要优点是单个模块比起一个完整的程序易编写及调试模块可以共存一个模块可以被多个任务在不同条件下调用模块程序允许设计者分割任务和利用已有程序为设计者提供方便本系统软件采用模块化结构由主程序、延时子程序按键扫描子程序、中断子程序显示子程序、显示子程序、外部环境检测子程序调试子程序子程序构成一主程序设计路灯模拟系统主程序清单如下voidmaininit8255timer0_initDIR0J10J20while1lightconbaojing_1baojing_2displaykeyscankeydown_ifenvironmentroad_light_control主程序流程图如下所示图7图9二延时子程序设计程序清单如下voiddelay以下是一段大约6ms的延时ucharijkfori1i0i--forj2j0j--fork200k0k--voiddelay_1以下是一段大约防抖的延时uchardefford10d0d--fore10e0e--forf200f0f--voiddelay_2以下是声光报警部分的延时程序uchariijjkkforii2ii0ii--forjj50jj0jj--forkk100kk0kk--三按键扫描子程序设计程序清单如下voidkeyscancon82550 x89read8255portctempc8255read8255clow4key_downtemptemp1temp0 x0fkeyasciitempiftemp10 x0fdelayiftemp10 x07key1delay_1delay_1elseiftemp10 x0bkey2delay_1delay_1elseiftemp10 x0dkey3delay_1delay_1temp2temp0 xf0keyasciitempiftemp20 xf0delayiftemp20 xe0key4delay_1delay_1elseiftemp20 xd0key5delay_1delay_1elseiftemp20 xb0key6delay_1delay_1elseiftemp20 x70key7delay_1delay_1四中断子程序设计程序清单如下voidtimer0_initTMOD0X01TH065536-50000256TL065536-50000256EA1TR01ET01voidclose_timerEA0ET00TR00voidtimer0voidinterrupt1using1TH065536-50000256TL065536-50000256scountifscount20scount0secondifsecond60second0minuteifminute60minute0hourifhour24hour0五显示子程序程序清单如下voiddisplayb82550 x40a8255table[second10]delayb82550 x80a8255table[second10]delayb82550 x10a8255table[minute10]delayb82550 x20a8255table[minute10]delayb82550 x04a8255table[hour10]delayb82550 x08a8255table[hour10]delayvoiddisplay_zongb82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zong10]delayb82550 x20a8255table[minute_zong10]delayb82550 x04a8255table[hour_zong10]delayb82550 x08a8255table[hour_zong10]delayvoiddisplay_zong_cb82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zong_c10]delayb82550 x20a8255table[minute_zong_c10]delayb82550 x04a8255table[hour_zong_c10]delayb82550 x08a8255table[hour_zong_c10]delayvoiddisplay_zhi_1b82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zhi_110]delayb82550 x20a8255table[minute_zhi_110]delayb82550 x04a8255table[hour_zhi_110]delayb82550 x08a8255table[hour_zhi_110]delayvoiddisplay_zhi_1_cb82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zhi_1_c10]delayb82550 x20a8255table[minute_zhi_1_c10]delayb82550 x04a8255table[hour_zhi_1_c10]delayb82550 x08a8255table[hour_zhi_1_c10]delayvoiddisplay_zhi_2b82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zhi_210]delayb82550 x20a8255table[minute_zhi_210]delayb82550 x04a8255table[hour_zhi_210]delayb82550 x08a8255table[hour_zhi_210]delayvoiddisplay_zhi_2_cb82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zhi_2_c10]delayb82550 x20a8255table[minute_zhi_2_c10]delayb82550 x04a8255table[hour_zhi_2_c10]delayb82550 x08a8255table[hour_zhi_2_c10]delayvoiddisplay_1b82550 x01a8255table[1]delayvoiddisplay_2b82550 x02a8255table[2]delay六声光报警子程序程序清单如下voidbaojing_1ifINT11display_1J80光报警程序开始位置delay_2J81delay_2光报警程序结束位置J31声音报警指令elseifINT10displaykeyscankeydown_ifJ80J30voidbaojing_2ifRXD1display_2J80光报警程序开始位置delay_2J81delay_2光报警程序结束位置J31声音报警指令elseifRXD0displaykeyscankeydown_ifJ80J30七交通情况检测子程序程序清单如下voidenvironmentifTXD1J11J21displaykeyscankeydown_ifelseJ10J20displaykeyscankeydown_if八路灯控制子程序设计程序清单如下voidroad_light_controlifhour100minutehour_zhi_1100minute_zhi_1hour100minutehour_zhi_1_c100minute_zhi_1_cdisplaykeyscankeydown_ififhour100minutehour_zhi_2100minute_zhi_2hour100minutehour_zhi_2_c100minute_zhi_2_cdisplaykeyscankeydown_ifelseifhour100minutehour_zong100minute_zonghour100minutehour_zong_c100minute_zong_cdisplaykeyscankeydown_if九看门狗技术PC受到干扰而失控引起程序乱飞也可能使程序陷入死循环[6]指令技术软件陷阱技术不能使失控的程序摆脱死循环的困境这时系统完全瘫痪如果操作者在场就可以按下人工复位安钮强制系统复位但操作者不能一直监视着系统也往往是在引起不良后果之后才进行人工复位为使程序脱离死循环通常采用看门狗技术看门狗技术就是不断监视程序循环运行时间若发现时间超过已知的循环设定时间则认为系统陷入了死循环然后强迫程序返回到0000H入口在0000H处安排一段出错处理程序使系统运行纳入正规看门狗技术可由硬件实现可由软件实现也可由两者结合实现本系统采用硬件看门狗电路实现硬件看门狗电路方案较多目前采用较多的方案有以下几种采用微处理器监控器采用单稳态电路来实现看门狗单稳定电路可采用74LS123采用内带震荡器的记数芯片本设计采用第三种方案实现看门狗电路下面就对该方案作以介绍1基本原理CD4060是带震荡器的14位计数器由该芯片构成的看门狗电路如图42看门狗电路图所示4060记数频率由RT和CT决定设实际的程序所需工作周期为T分频器记满时间为T当TT且系统正常工作时程序每隔T对4060进行扫描一次分频且永无记满输出信号如系统工作不正常如程序跑飞死循环等程序对4060发不出扫描信号分频器记满输出一脉冲号使CPU复位2参数选择4060的振荡频率f由RTCT决定Rs用于改善振荡器的稳定性Rs要大于RT一般取Rs10RT且RT1kΩCT≥100pF如果Rs450ΩRT45ΩCT1uF则f10HZ4060的振荡频率和Qii678910121314的选择要根据情况确定3几个原则看门狗电路必须由硬件逻辑组成不宜由可编程计数器充当因为CPU失控后可能会修改可编程器件参数使看门狗失效4060的RST线上阻容组成的微分电路很重要因为扫描输入信号是CPU产生的正脉冲若此信号变1后由于干扰程序乱飞微分电路只能让上跳沿通过不会封死4060看门狗仍能计数起作用若没有微分电路扫描输入信号上的1状态封死4060使之不能记数看门狗不起作用图42看门狗电路图CPU必须在正确完成所有工作后才能发扫描输入信号且程序中发扫描信号的地方不能太多否则正好在哪里有死循环看门狗就不产生记满输出信号不能重新启动CPU4060的记满输出信号不但要接到MCS-51的RST脚而且还应接到其它芯片的RST脚因为程序乱飞后其它具有RST脚的芯片也混乱了必须全部复位图10参考文献信号与系统ALANVOPPENHEIM著西安西安交通大学出版社1997年数字图像处理学元秋奇著北京电子工业出版社2000年模拟电子线路基础吴运昌著广州华南理工大学出版社2004年数字电子技术基础阎石著北京高等教育出版社1997年数据结构与算法张晓丽等著北京机械工业出版社2002年ARMLinux嵌入式系统教程马忠梅等著北京北京航空航天大学出版社2004年单片机原理及应用李建忠著西安西安电子科技大学2002年附录附1元器件明细表D8255ACSTC89C52DAC0832ADC080974LS245附2仪器设备清单数字示波器数字万用表信号发生器稳压电源附3电路图图纸附4程序清单此程序是路灯模拟系统includeincludeSTC应包含的头文件include以下是对p1口的位寻址定义sbitDIRP20sbitJ1P10sbitJ2P11sbitJ3P12sbitJ4P13sbitJ5P14sbitJ6P15sbitJ7P16sbitJ8P17以下是对8255的端口地址的宏定义definea8255XBYTE[0X0FF7C]defineb8255XBYTE[0X0FF7D]definec8255XBYTE[0X0FF7E]definecon8255XBYTE[0X0FF7F]defineucharunsignedcharUnsignedcharcodetable[]0 xfc0 x600 xda0 xf20 x660 xb60 xbe0 xe00 xfe0 xf60 xee0 x3e0 x9c0 x7a0 x9e0 x8e此为自己做的板子上的数码管显示编码以下是对时分秒变量的声明intscount0这是中断次数的计数寄存器unsignedintsecond0unsignedintminute0unsignedinthour0unsignedinthour_zong7unsignedinthour_zong_c10unsignedintminute_zong0unsignedintminute_zong_c0unsignedinthour_zhi_113unsignedinthour_zhi_1_c16unsignedintminute_zhi_10unsignedintminute_zhi_1_c0unsignedinthour_zhi_220unsignedinthour_zhi_2_c22unsignedintminute_zhi_20unsignedcharminute_zhi_2_c0unsignedintzongunsignedintzong_kunsignedintzong_cunsignedintzhi_2unsignedintzhi_2_kunsignedcharzhi_2_cunsignedintzhi_1unsignedintzhi_1_kunsignedintzhi_1_c以下是按键复用的变量的声明unsignedcharx0unsignedchary0unsignedcharz0按键扫描部分--判断哪一个按键被按下unsignedchartemptemp1temp2unsignedcharkey0unsignedcharkey_down0unsignedcharkey20unsignedcharabk以下是一段大约6ms的延时voiddelayucharijkfori1i0i--forj2j0j--fork200k0k--以下是一段大约防抖的延时voiddelay_1uchardefford10d0d--fore10e0e--forf200f0f--以下是声光报警部分的延时程序voiddelay_2uchariijjkkforii2ii0ii--forjj50jj0jj--forkk100kk0kk--以下是8255的初始化voidinit8255con82550 x80c82550 xffcolselight以下是定时器0的初始化voidtimer0_initTMOD0X01TH065536-50000256TL065536-50000256EA1TR01ET01关闭定时器0voidclose_timerEA0ET00TR00以下是定时器0的定时部分也是中断服务子程序voidtimer0voidinterrupt1using1TH065536-50000256TL065536-50000256scountifscount20scount0secondifsecond60second0minuteifminute60minute0hourifhour24hour0以下是定时器0的数码管显示部分人机对话窗口voiddisplayb82550 x40a8255table[second10]delayb82550 x80a8255table[second10]delayb82550 x10a8255table[minute10]delayb82550 x20a8255table[minute10]delayb82550 x04a8255table[hour10]delayb82550 x08a8255table[hour10]delayvoiddisplay_zongb82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zong10]delayb82550 x20a8255table[minute_zong10]delayb82550 x04a8255table[hour_zong10]delayb82550 x08a8255table[hour_zong10]delayvoiddisplay_zong_cb82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zong_c10]delayb82550 x20a8255table[minute_zong_c10]delayb82550 x04a8255table[hour_zong_c10]delayb82550 x08a8255table[hour_zong_c10]delayvoiddisplay_zhi_1b82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zhi_110]delayb82550 x20a8255table[minute_zhi_110]delayb82550 x04a8255table[hour_zhi_110]delayb82550 x08a8255table[hour_zhi_110]delayvoiddisplay_zhi_1_cb82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zhi_1_c10]delayb82550 x20a8255table[minute_zhi_1_c10]delayb82550 x04a8255table[hour_zhi_1_c10]delayb82550 x08a8255table[hour_zhi_1_c10]delayvoiddisplay_zhi_2b82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zhi_210]delayb82550 x20a8255table[minute_zhi_210]delayb82550 x04a8255table[hour_zhi_210]delayb82550 x08a8255table[hour_zhi_210]delayvoiddisplay_zhi_2_cb82550 x40a8255table[0]delayb82550 x80a8255table[0]delayb82550 x10a8255table[minute_zhi_2_c10]delayb82550 x20a8255table[minute_zhi_2_c10]delayb82550 x04a8255table[hour_zhi_2_c10]delayb82550 x08a8255table[hour_zhi_2_c10]delayvoiddisplay_1b82550 x01a8255table

注意事项

本文(基于STC89C52RC单片机的路灯模拟控制系统设计.doc)为本站会员(星星008)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

网站客服QQ:2622162128   

沃文网 版权所有  | ©2017-2022

  |陕ICP备19002583号

  陕公网安备 61072602000132号

   违法和不良信息举报:0916-4228922