版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、引言2硬件系统方案设计2一二2.1拨号防盗器硬件系统方案22.1.1 硬件系统方案设计22.1.2 脉冲拨号原理32.1.3 脉冲拨号实现过程42.1.4 AT89S2052 单片机的功能特点52.2 时钟计时器的硬件设计方案论证分析82.2.1 功能要求82.2.2 方案论证82.2.3 系统硬件电路设计84.1.2 时钟计时器的硬件电路设计描述9系统的软件设计10三3.1拨号防盗器程序设计103.1.1 主程序设计113.2 时钟显示程序设计123.2.1 主函数123.2.2 LED 显示子函数.43.2.5定时器 T0 中断函数13中断函数14功能函数14四系统的调
2、试部分154.1 时钟系统的调试. 拨号时钟系统的硬件调试15时钟系统的软件调试15性能分析15器功能调试15五总结16参考文献17附录19附录 1附录 2附录 3附录 4程序19系统使用说明19英文资料19系统 PCB 板图19附录 1:程序.20附录 2:系统使用说明37- 1 - 引言随着人们生活水平的不断提高,大家对住宅和办公室的安全意识也日益增加。因此,研究和开发防盗装置引起了科研和生产厂家的重视,特别是面对普通居民、价格低、运行可靠的自动系统。长期以来,一些介绍的廉价防盗均无拨号功能,而市售的可自动拨号的材又价格高昂。这里介绍的拨号防盗器可在这
3、两者之间找到平衡,即兼具高性能和低价位。低成本实现高性能,设计时利用了电信局的交换机支持脉冲拨号方式来实现拨号,这样可利用单片机直接发出拨号脉冲,精简了电路,降低了成本。拨号防盗器作为家庭防盗器材的一员,非常实用。它进入工作警戒后,主控 CPU 不断检查触发开关的状态,当盗贼入室触发开关时,立即启动拨号程序向告警(当然也可以通过修改软件使其在现场发出高分贝音)。实践证明,该系统快速、准确。由于该系统电路简单,而且利用的是公共通信网,因此不存在建立的系统网络问题,具有成本低、体积小、能耗极低、体积小、能耗极低且不影响正常打等突出优点。可以作为时钟计时器来使用,真是一举两得。二 硬件系统方案设计2
4、.1拨号防盗器硬件系统方案2.1.1 硬件系统方案设计图 2.1 为拨号器的系统方框图,由单片机器、键盘输入、数码管显示、触发电路、拨号电路及电源等 6 部分组成。,负责检测输入/输出显示、模拟摘机、单片机器是整个系统的拨号摘机、拨号、等一系列的程序动作。这里使用了小引脚、高性能、低价位的 AT89S2052。- 2 -键盘输入电路负责输入电片机中一系列工作参数及功能设定。发光二极管数码管显示器在整个系统工作过程中充当一个简单的人机界面,用以显示工作状况及输入/输出的数据等。拨号防盗器的触发电路用磁性开关(门磁开关),简单可靠,也可用红外探测器或无线门磁,以实现全方位远距离监测。器应采用隐蔽安
5、装,防止小偷发现。拨号及电路用来完成模拟摘机、拨号、发出音、等工作过程,它的工作由单片机。电源部分负责对整个系统供电由线上取得工作电流并对后备电池充电,拨号后备电池供电。图 2.1拨号防盗器方框图2.1.2 脉冲拨号原理脉冲拨号是目前机两种拨号方式中的一种,另一种为双音多频拨号方式。脉冲拨号就是指在机上拨入的号码以脉冲个数的形式发出,也就是说,在已经通以直流电流的回路上,利用拨号盘及发号电路将回路断开、再接通号码的。在操作中,若用户拨 1,则送而形成的脉冲信号,来完成输入出 1 个脉冲,回路中断一次、接通一次;拨 2,则发出 2 个脉冲,回路断一次、接通一次、再断一次;而拨 0 时,则发出 1
6、0 个脉冲,回路断、接通轮流10 次。图 2.2 为号码“32”的脉冲波形。- 3 -显示模块拨号电路单片机器触发开关电源键盘通断时间号码 2 的脉冲号字间码间隔号码 3的脉冲时间图 2.2号码“32”的脉冲波形正常拨号时,电路电流中断的时间一般在 5865ms 之间,视断续比的不同而不同。快速拨号时,只要取一半时间即可。电路电流接通的时间(即在同一位号码中的 2 个断脉冲之间的接通电流时间)约在 3242ms 之间,视断续比的不同而不同。快速拨号时,只要取一半时间即可。显然脉冲周期等于脉冲中断时间和脉冲接通时间之和,每一个周期的时间为 100ms 左右。快速拨号时,在 50ms 左右。2 位
7、号码(即 2 组脉冲串)之间的最小时间间隔,通常为 800ms 左右;而快速拨号时,其值减半,为 400ms 左右。我国目前采用的脉冲拨号的速率是 10PPS(每秒的脉冲数),即每秒发出 10 个脉冲,因此上述各参数不存在快速拨号时的值。为了提高拨号的可靠性及稳定性,这里设计时选定更低的脉冲拨号速率:1个脉冲代表1,2 个脉冲代表拨出 2,10 个脉冲代表拨出 0,每个脉冲的宽度和间隔为 100ms。工作时首先进行模拟摘机,然后开始脉冲拨号,拨出1 位号码后停顿 500ms(保持接通)再拨下一位,直至全部拨再发音,最后。2.1.3脉冲拨号实现过程图 2.3 为脉冲拨号的实现电路。线上的电压约为
8、 5060V 左右。未拨号时电片机的 P3.0、P3.1 均输出低电平。拨号过程如下:- 4 -单片机的 P3.0 输出高电平,使 TR1 导通,由于线路上接入了负载 R1,这样线的电压下降,模拟摘机。单片机的 P3.0 开始输出拨号脉冲,使线的电压(电平)也呈高、低变化。1 个脉冲代表拨出 1,2 个脉冲代表拨出 2,10 个脉冲代表拨出 0,每个脉冲的宽度和间隔均为 100ms。拨出 1 位号码后停顿 500ms(保持 P3.0 高电平)再拨下一位,直至全部拨完。P3.0 保持高电平(保持线路接通),P3.1 输出1KHz 的音脉冲驱动TR2,以 2Hz 进行调制(即接通 1kHz 信号
9、0.5s、断开 1kHz 信号 0.5s),这样从接听方的中就会听到“嘟、嘟”的声。音的时间根据设计为 60s。60 后,P3.1 输出低电平,TR2 截止,停止。随后 P3.0 也输出低电平,模拟。完成一次过程。VCCR1R2R5C1TR1TR2R6ZND单片机BD1C2D1线图 2.3脉冲拨号实现电路2.1.4AT89S2052 单片机的功能特点拨号防盗器的器是单片机 AT89S2052。AT89S2052 是美国ATMEL 半导体公司生产的一种高性能单片机。该单片机以与 MCS-51 系列单片机高度兼容、低功耗、可以在接近零频率下工作等诸多优点,而广泛应用于各类计算机系统、工业、电信设备
10、、消费类中。由于 ATMEL 是全球最大的 FLASH和 EEPROM 生产制造公司之一,加之以其 EEPROM 技术与 INTEL 的 80C51 内核技术交换,使 ATMEL 拥有了 80C51 内核的使用权,其生产的 AT89 系列电片机不仅与80C51 有极好的兼容性,而且具有极高的性能价格比。- 5 -P3.0 P3.11. AT89S2051 的主要性能特点指令与 MCS-51 完全兼容;内带 2KB 可编程器(FLASH MEMORY)可重复擦写 1000 次;数据保留 10 年;工作电压范围 2.76V;工作频率 024MHZ;两极程序加密锁定;128B 内部 RAM;15 条
11、可编程双向 I/O 口线;2 个 16 位定时器/计时器;5 个中断源;可编程串行 UART 通道;输出口可直接驱动 LED;片内含模拟比较器;低功耗的闲置和掉电模式。AT89S2052 是 AT89 系列电片机种的一种精简。它是将 TA89C52 的 P0口、P2 口、EA/Vpp、ALE/PROG、PSEN 口线省去后,形成的一种仅 20 个引脚的单片机,相当于早期 INTEL8031 的最小应用系统。这对于一些不太复杂的场合,仅用一片 AT89S2052 就足够了,是真正意义上的“单片机”。由于将多功能 8 位 CPU 和 2KB 的器集成在单个中,使其成为一种高效的微器。AT89S20
12、52 的出现为很多规模不太大的系统提供了一种极佳的选择方案,使传统的 51 系列单片机的体积大、功耗大、可选模式少等诸多困扰设计工程师们的致命弱点不复存在。2. 引脚功能介绍AT89S2052 引脚外形。Vcc:电源端。GND:接地。P1 口(P1.0P1.7):是一个 8 位双向 I/O 口,其中 P1.2 至 P1.7 提供内部上拉电阻,P1.0 和 P1.1 需外接上拉电阻。P1.0 和 P1.1 也可作为片内精确模拟比较器的正向输入(AINO)和反向输入(AINI)。P1 口输出缓冲器能提供 20mA 的灌电流,可直接驱动 LED。P1 口写入“1”后可用作输入。P3 口:引脚 P3.
13、0 至 P3.7(P3.5 除外)是 7 个带内部上拉电阻的双向 I/O 口线。原 P3.6 不能使用,已连接片内比较器输出端。与 P1 口相同,P3 口也能提供 20mA的灌电流,并可直接驱动 LED 显示器。与 80C51 相同,P3 口也有第 2 功能,P3.0作为串行数据接收 RXD;P3.1 作为串行数据TXD;P3.2 为外部中断 0 申请INT0;P3.3 为外部中断 1 申请 INT1;P3.4 为定时器/计时器 0 输入;P3.5 位定时器/计数器 1 输入;P3.7 无第 2 功能 RD。- 6 -RST:输入。要使可靠复位,要保持 RST 引脚 2 个周期的高电平。XTA
14、L1:反向振荡放大的输入及内部时钟电路的殊荣。XTAL2:来自反向振荡放大器的输出。3. 特殊功能寄存器(SFR)与 80C51 完全相同4. 程序器锁定AT89S2052 片内有 2 个锁,可以不编程(U),也可以编程(P),以获得一些附加的特性,如表 2.1 所示。表 2.1程序器锁定5、闲置模式在闲置模式下,CPU 自身处于休眠状态,而片内所有其他设备保持工作状态。该模式是软件生成的。在该模式期间,片内 RAM 和所有特殊功能寄存器的内容保持不变。闲置模式可以由中断或硬件复位终止。如果不采用外部上拉,P1.0 和 P1.1 应置 0;如果采用外部上拉,则置 1。应注意的是,当闲置模式被硬
15、件复位中止时,器件要从闲置处恢复程序的执行,执行 2 个周期后,内部复位算法才起作用。此时,硬件内部 RAM,但端口引脚。为了排除闲置被复位中止端口意外写入的可能性,跟在生成闲置模式后的指令不应是对端口引脚的读/写操作。6.掉电模式在掉电模式下,振荡器停止工作,生成掉电状态的指令是最后执行的一条指令。片内 RAM 和特殊功能寄存器保持其值不变直到掉电模式终止。从掉电模式退出的唯一办法是硬件复位。复位将重新定义特殊功能寄存器(SFR),但影响片内 RAM。在 Vcc 没有恢复到其正常工作电压之前,不应进行复位,且复位的保持时间应足够长,使振荡器能重新开始工作并稳定下来。同样,如果不采用外部- 7
16、 -编程锁LB1LB2保护模式1UU没有编程锁定特性2PU对器进一步编程3PP同模式 2,同时校验下拉,P1.0 和 P1.1 应置 0,如果采用外部上拉,则置 1。2.2 时钟计时器的硬件设计方案论证分析2.2.1 功能要求时钟计时器要求用六位 LED 数码管显示时、分、秒、以二十四小时行,使用按键开关实现时,分调整功能。2.2.2方案论证为实现 LED 显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些,考虑到时钟显示只有六位,且系统没有其它复杂的处理任务,所以决定用动态扫描实现 LED 显示。单片机采用易购的AT89S52 系列,这种单片机
17、可具有足够的空余硬件,以实现其它的扩充功能。若使用电池供电,可采用低电压的 LV 系列单片机时钟计时器电路系统的总体设计框架如图 3.1 所示。图 3.1 硬件系统的总体设计框架2.2.3 系统硬件电路设计拨号防盗器的硬件电路设计描述为了发挥电片机强大的计算、能力,充分发挥软件的优势,这里极大地简化了电路,但可实现以前需要几片甚至十几片小规模数字电路才能完成的任- 8 -AT89S52列驱动6 位 LED 显示器单片机控制器务。电路原理,共有 4 个按键,即 rst、ok、up、set。rst:系统复位键。ok:输入数据确认键。up:显示的数字增加键。set:工作模式设定键,可设定、工作、输入
18、时间 t1、输入时间 t2 及输入号码 5 种模式。磁性开关即为装于窗口的防盗感应开关,门关闭时常开,门打开时闭合接通。当然也可改用其他的感应器件,如激光探测、超声波感应、热释电感应、主动红外线探测或无线门磁等,以实现全方位远距离检测。为了防止磁性开关离器较远而产生引入干扰,使用了光耦作信号传递,效果良好。LED 数码管用于工作状态指示或输入数据指示。L1、L2 接线,ZND 为击穿电压 120V 的压敏二极管,防止电路受雷电干扰。系统处于低功耗待机状态(此时耗电仅2mA 左右),由线上取电工作,并对 3.6V/60mA 镍铬电池充电,当输入数据进行设定或进行拨号时,耗电会达到 10mA,这时
19、主要由镍铬电池供电。由于有镍铬电池后备供电,即使线断电也使已输入的数据丢失。该机除用于防盗外,若对软件进行一些修改,也可通过线进行数据传递。三极管 T1、T2 及电阻 R1、R2拨号及电路,其工作原理前面已作详细介绍。4.1.2 时钟计时器的硬件电路设计描述时钟计时器的硬件电路,采用AT89S52 单片机最小化应用设计,显示采用共阳七段 LED 显示器,P0 口输出段数码数据,P2.0P2.5 口作列扫描输出,P1.0,P1.1 和P1.2 口接三个按钮开关用以实现调时,调分功能.为了提供共阳 LED 数码管的驱动电压,用三极管 8550 作电源驱动输出。采用 12MHZ 晶振有利于提高秒计时
20、的精确性。硬件电路图如图 3.2 示。- 9 -1234561234561234561234561234561234567878787878784.7K*3124039P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD TXD INT0 INT1 T0 T1 WR RDXTAL2 XTAL1 VSSVCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA ALE PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0343837567891036353433323130111251
21、0*82928272625131415161718192423222112204.7K*8数据输入线DS69DS59+5vDS494.7KDS34.7K9DS24.7K94.7KDS19VCC4.7KC1010uF/10vC90 1uFC3JZ47uF4.7K3.6v/60m A DZ3244C20.01uF4.7v/1w+5v+5vR.75KC8uF/16vAT89C52R8KDZ2IN4007 R3060 J1 T2D1C530pF R3050IN4007 T1 4 7K T2Y1 12MHZC430pF4 7K +5vT1 4 7K T0BD1R02K 1A/400VC01uFT4T5T
22、6T3+5vC6C7U1 0 022uF/250V 0.022uF/250V R471K R9ZNDPC817R04K R03K图 3.2具有时钟功能的器原理图三 系统的软件设计3.1拨号防盗器程序设计- 10 -a b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgd3.1.1 主
23、程序设计主程序的工作过程为:先进行初始化工作,随后根据输入的键值分别散转输入的键值分别散转至对应的子程序(、警戒工作、输入时间 t1、输入时间t2、输入号码)循环工作。T0 为 100ms 定时中断服务子程序,它实现精确的拨号脉冲时序。INT0 外中断服务子函数用于实现功能选择;而 INT1 外中断服务子函数则检测防盗触发开关的状态。主程序状态流程图如图 3.6 所示。INT0 外中断服务子函数状态流程图及 INT1外中断服务子函数的状态流程图分别如图 3.7、图示。开始图 3.6 主程序状态流程- 11 -输 入号码输入t2输入t1工作关机根据 set 键值散转关闭拨号、线路定时器 T0 初
24、始化图 3.7 INT0 外中断服务子函数状态流程INT1 外中断服务子函数开始INT1 外中断服务子函数结束图 3.8 INT1 外中断服务子函数结束3.2 时钟显示程序设计3.2.1 主函数本设计中计时采用定时器 T0 中断完成,其余状态循环调用显示子函数及键扫描子函数,当端口开关按下时,转入相应调时功能。其主函数执行流程如图3.3 所示。- 12 -门控开关共 10 次INT0 外中断服务子函数结束系统进入低功耗待机状态如键值大于 5,则键值回 0如 set 键按下,则 set 键值加 1INT0 外中断服务子函数开始开始N键按下?进入调时功能图 3.3 主函数流程图3.2.2 LED
25、显示子函数数码管显示的数据存放在内存单元 dis0dis5中,其中 dis0dis1存放秒数据,dis2dis3存放分数据,dis4dis5存放时数据,每一单元内均为十进制 BCD 码。由于采用软件动态扫描实现数据显示功能,显示用的十进制 BCD 码数据的对应段码存放在 ROM 表(dis711)中,显示时,先取出 dis0dis5 中的某一数据,然后查得对应得显示段码从 P0 口输出,P2 口将对应得数码管选中供电,就能显示该地址单元的数据值。3.2.3 定时器 T0 中断函数定时器 T0 用于时间计时。定时溢出中断周期可设为 50ms,中断进入后先判- 13 -调用显示子函数T0 中断T0
26、、T1 设为 16 位计数器模式显示单元清 0断,中断计时累计 20 次(即 1ms)妙计数单元进行加 1 操作。时钟计数单元在 义的 6 个单元(timedata6)中。timedata0timedata1存放秒数据, timedata2timedata3存放分数据,timedata4timedata5存放时数据。最大计时值为 23 小时 59 分 59 秒。在计数单元中采用十进制 BCD 码计数,秒,分、时之间满 60 进位。T0 中断服务程序执行流程如图 3.4 所示。1s 到?图 3.4 T0中断函数3.2.4 中断函数T1 中断服务程序用于指示调整数字单元的亮闪,在时间调整状态下,每
27、过0.4s,将对应单元的显示数据换成“熄灭符”数据(0x0a)。这样,在调整时间时,对应调整单元的显示数据会间隔闪亮。3.2.5 功能函数- 14 -恢复现场,中断返回加 1 处理保护现场T0 中断调时功能函数的设计方法是:按下 T0 键,进入调分状态,时钟停止走动;按 T1 或 T2 键可进行加 1 或减 1 操作 ;继续按 T0 键可分别进行分十位、时个调整;最后按 T0 建将位和调整状态,时钟开始计时运行。四 系统的调试部分4.1 时钟系统的调试4.1.1 时钟系统的硬件调试硬件调试时可先检查印制板及焊接的质量情况,在检查无误后可通电检查LED 显示器的点亮状况。若亮度不理想,可以调整
28、P0 口的电阻大小,一般情况下取 200 欧姆电阻即可获得满意的亮度效果。4.1.2 时钟系统的软件调试软件调试 Keil C51 编译器,源程序编译及位一个个地进行,最后可结合硬件实时运行调试。调试应分段或以子函数为单4.1.3 性能分析按照设计程序分析,LED 显示器动态扫描频率约为 167Hz,实际使用观察时完全没有闪烁,实际计时时精度较高,可满足一般场合的应用需要。4.2 拨号器功能调试通电前应检查焊接质量,确认无短路、虚焊等故障。将拨码开关 J2 指向下侧,即断开 3.6V 镍铬电池与系统的连接。将外部直流可调稳压电源调整为 3.6V。接入系统的 Vcc 与地。如果系统耗电小于 15
29、mA 为正常,否则应检查是否有短 路、元器件不良或错焊现象存在。随后取下外接直流稳压电源,恢复 3.6V 镍铬电池与系统的连接,进行软、硬件统调测试。由于 AT89S52 的 I/O 引脚有限,故数码管只设一位,因此输入数字时只能分阶段一位一位输入。假设需输入 t1=061,t2=025,号码=12345678,在此详述如下:地 1 步:接上线(也即接上电源)后,数码管显示“E”,意为数据错- 15 -误,因为此时我们尚未输入任何数据。第 2 步:点按一下 set 键,键值加 1,即此时 set=1.这时数码管最下的一横点亮,显示“_”,意为可输入时间 t1,点按 ok 键确认(小数点被同时点
30、亮)。然后数码管显示数字“0”。按下 up 键后,数字开始从 09 循环递增,调至 0 后松开 up 键,点按 ok键确认(小数点被同时点亮)。此时百位数字“0”存入内存。按下 up 键后,数字开始循环递增,调至 1 后松开 up 键,点按 ok 键确认(小数点被同时点亮)。此数字“6”存入内存。按下 up 键后,数字开始循环递增,调至 1 后松开 up 键,点按 ok 键确认(小数点被同时点亮)。此时个位数字“6”存入内存。这样就完成了将 061(代表 t1=61s)存入内存的过程。同时数码管又恢复显示“_”。第 3 步:点按一下 set 键,键值加 1,即此时 set=2。这时数码管下面的
31、二横点亮,显示“二”,意为可输入时间 t2,点按 ok 键确认(小数点被同时点亮)。然后数码管显示数字“0”。按下 up 键后,数字开始从从 09 循环递增,调至 0 后松开 up 键,点按 ok 键确认(小数点被同时点亮)。此时百位数字“0”存入内存。按下 up 键后,数字开始循环递增,调至后松开 up 键,点按 ok 键确认(小数点被同时点亮)。此数字“”存入内存。按下 up 键后,数字开始循环递增,调至后松开 up 键,点按 ok 键确认(小数点被同时点亮)。此时个位数字“”存入内存。这样就完成了将(代表 t1=s)存入内存的过程。同时数码管又恢复显示“二”以后的调试同前面的方法相同。五
32、 总结以单片机 89S52 作为部件,利用单片机实现了拨号、时- 16 -钟显示等功能,最终使系统完成设计要求的各项任务。在系统设计过程中,力求硬件线路简单,并综合运用了 C 语言、单片机等各种知识,采用了一些特别的方法使磁电检测达到最佳的效果 ,充分发挥软件编程方便灵活的特点,来满足系统设计的要求。在设计过程中主要遇到几个关键性问题。如检测部分信号不稳定,经检查该问题与周围的干扰有密切相关,将检测部分的进行了合理,使检测信号很准确地检测到。还有拨号电路模块起初方案采用电桥和三极管进行,此设计采用单片机 I/O 口直接指示灯以及开关来进行。不仅节省了硬件,还提高了系统的稳定性。变量定义及初始化
33、模块参考文献.电子报合订本 2002 年上:26112电子世界,2004,9(167):81-823耿,.单片机创新开发与人制作.北京 :北京航空航天大学,2005.3:85-1204吴祖峰,.传感器个数及距离对盲分离影响的分析.电子科技大学学报,2006,4,35(2):186-1885,立,.基于智能功率模块的无刷直流电机器.西北工业大学学报,2006,4,24(2):161-1646,黄玉水.一种改进型 PDM 调动方式.南昌大学学报,2006,3,28(1):99-1027.大学生电子设计竞赛训练. 北京:电子工业,2005.18闫志峰,.管道弧焊人系统设计.哈尔滨理工大学学报,9,.
34、单片机实验与实践(一).北京:北京航空航天大学社,2003.12:123-13110黄河,.Protel培训.北京:,2004.9- 17 -致 谢How time flies!马上就要毕业了。在院、系和的关心、教育和帮助下,经过五年的努力,已经使变成一个动手动脑的复合型。我将利用在校学习的专业知识投身职业教育事业,为我国的职业教育发展做出的贡献。五年来我学习到了大量的专业理论知识和动手实践技能,毕业设计是对我这五年来学习的最好总结。在毕业设计过程中我遇到了很多,正是因为这些困难使我学习到了很多有用的实用知识,加深了书本理论知识和实践的结合,这对我以后从事专业课教学工作是很有益处的。在大学的学
35、习期间,我了大学更重要的是教给我分析和解决问题的方法,这些必将对我以后的工作和生活产生深远的影响。在毕业设计过程中,得到了曲的大力支持和帮助,请我向曲表示诚挚的感谢!五年来我了母校的发展壮大,希望母校再接再厉,健全体制,更加辉煌的明天。最后祝愿伟大的母校前程似锦!祝愿所有的身体健康,工作顺利!- 18 -附录附录 1附录 2附录 3附录 4程序系统使用说明英文资料系统 PCB 板图- 19 -附录 1:程序(1)拨号程序程序设计时需要设立 3 个数组 DATA20、X3、Y3。DATA20用于存放电话号码(最长 20 位),X3用于存放时间 t1(000999s),Y3用于存放时间 t2(00
36、0999s)。另外还要设立 3 个软件计数器 data_flag、t1_flag、t2_flag。Data_flag 用于统计输入的号码位长,t1_flag 用于统计输入的时间 t1 位长,t2 位长。uchar DATA20; uchar X3; uchar Y3;uchar flag;/*存放号码的数组*/*存放时间 t1 数组*/*存放时间 t2 数组*/*RAM 区防干扰标志*/uchar dataflag=0; /*输入号码计数器(最长 20 位)*/uchar set=0;uchar m=0;/*功能键值*/全局变量- 20 -uchar n=0; uint f;uchar t1f
37、lag=0;uchar t2flag=0; uchar cnt_1=0; uchar cnt_2=0;/*定时器 T0 初始化*/viod init_timer() TMOD=0x01;TH0=-(50000/256); TL0=-(50000%256); IE=0x82;/*输入时间 t1 计数器(最长 3 位)*/*输入时间 t2 计数器(最长 3 位)*/*时间 t1 单元数/*时间 t2 单元数算后暂存单元*/算后暂存单元*/定时器 T0 方式 1/装载 100ms 定时初值/开中断启动器子程序模块/*-启动void work()uchar h; p1=0xdf; delay(1);i
38、f(set=1)器进入警戒-*/*数码管左上角显示“1”*/*进入时间 1 循环*/while(cnt<=x0*100+X1*10+X2)delay(1000);cnt_1+;/*计数器 cnt_1 累加*/if(set!=1)EX1=0;cnt_1=0;break;/*如按下 Set 键,则推出此循环*/else EX1=1;PCON=0x00;- 21 -if(set=1)if(cnt_1>=X0*100+X1*10+X2)EX1=1;cnt_1=0;/*时间 1 到,打开外中断 1,计数器归零*/*进入待机。若有 1s 以上开关动作,while(1)待机*/PCON=0x01
39、;if(f>=5PCON=0x00;break;)/*/EX1=0;if(set=1)/*关闭外中断 1*/*进入时间 2 循环*/while(cnt_2<=Y0*100+Y1*10+Y2)delay(1000);cnt_2+;/*计时器 cnt_2 累加*/if(set!=1)cnt_2=0;break;/*如按下 Set 键,则此循环*/if(set=1)bh(); delay(3000); p3_7=0;/*时间 2 到,调用拨号子程序*/输出端为低,可驱动蜂鸣器等for(h=0;h<60;h+)/*发出 60s 警音*/for(f=0;f<500;f+)f+;P
40、3_1=! P3_1;P1=0x5f;delay(1);P3_1=0;P1=0x7f;delay(500);- 22 -P3_7=1;/输出端恢复高cnt_1=0;cnt_2=0;/*有关计数器、端口回到初始状态*/P3_0=0;P3_1=0;P1_7=1;for(f=0;f<3;f+)delay(60000);/*关闭 3min,让接警人进行或座机*/拨号脉冲子程序模块/*-拨号-*/ void bh()data_flag=0; P3_0=1; p1_7=0;delay(1000);/*号码计数器(20 位)归零*/*接通线路*/*数码管小数点亮*/while (DATAdata_fl
41、ag<10)/*号码小于 10 进入循环拨号状态*/if(DATAdata_flag=0)TR0=1;if(n=20)data_flag+; n=0;TR0=0; P3_0=1;P1_7=0;delay(500);/*若号码为 0*/*启动 T0 定时器*/*进行 20 次中断,产生 10 个脉冲*/if(DATAdata_flag>0)TR=1;/*若号码0 但<10*/*启动 T0 定时器*/if(n=(DATAdata_flag*2)data_flag+;/*进行号码 x2 次中断,产生号码个脉冲*/- 23 -n=0;TR0=0; P3_0=1;P1_7=0;dela
42、y(500); TR0=0;关机子程序模块void stop()/*关机子程序if(flag=0x55)P1=0xfb; /*若标志为 55H,说明内存区未受干扰,数码/管右下角显示“1”else P1=0x86;delay(1);/否则数码管显示“E”/延时 1ms 再判if(flag=0x55)PCON=0x01; /进入低耗节电待机状态delay(1);/延时 1ms完整代码#include<AT89x052.H>/器件配置文件#define uchar unsigned char#define uint unsigned int/变量类型的宏定义uchar code DAT
43、A_7SEG10=0xC0,0xF9,0xA4,0xB0,0x990x92,0x82,0xF8,0x80,0x90,; /*09 数码管段码*/uchar DATA20; /*存放号码的数组*/uchar x3;/*存放时间 t2 数组*/- 24 -uchar flag;/*RAM 区防干扰标志*/uchar data_flag=0;/*输入号码计数器(最长 20 位)*/ uchar set=0;/* 功能键值*/uchar m=0;/全局变量uchar n=0;uint f;uchar t1_flag=0; uchar t2_flag=0; uchar cnt_1=0;uchar cnt
44、_2=0;/*输入时间 1 计数器(最长 3 位)*/*输入时间 2 计数器(最长 3 位)*/*时间 t1 单元数/*时间 t2 单元数算后暂存单元*/算后暂存单元*/*/void delay(uint k); void stop();void bh();/*延时子函数/*关机子函数/*拨号子函数*/*/*/*/*定时器 T0 初始化*/ void init_timer() TMOD=0x01;TH0=-(50000/256); TL0=-(50000%256); IE=0x82;/*/*100ms 定时中断服务子函数*/ void zd0()interrupt 1P3_0=! P3_0;
45、P1_7=! P1_7;n+;/P3.0 每 100ms 取反一次,送出脉冲/数码管小数点同步闪烁- 25 -TH0=-(50000/256); TL0=-(50000%256);/*/*100ms 定时中断服务子函数*/ void zd0()interrupt 1p3_0=!P3_0;/P3.0 每 100ms 取反一次,送出脉冲P1_7=!P1_7;/数码管小数点同步闪烁n+;TH0=-(50000/256); TL0=-(50000%256);/*/*INT0 中断服务子函数*/ viod zd_int0()interrupt 0delay(10);if(P3_2=0)set+; if(
46、set>=5)set=0; if(set=1)flag=0x55;PCON=0x00;f=8;/功能键值递增/键值的范围 04/向 RAM 区的标志 flag 写入 55Hagain:if(P3_2=0)goto again;/若按键未/*/*INT1 中断服务子函数*/ void zd_int1()interrupt 2uchar h;f=0;,则等待- 26 -for(h=0;h<10;h+)delay(100) if(P3_3=0)f+;/*检查磁性开关(P3_3 状态)10 次,共 1s*/*/*-关机-*/ void stop()if(flag=0x55)P1=0xfb;
47、elsep1=0x86; delay(1);if(flag=0x55)PCON=0x01; delay(1);/数码管右下角显示“1”。/*进入节电待机状态*/*/*延时 1ms*K 子函数*/ void delay(uint k)uint i,j; for(i=1;j<k;i+) for(j=0;j<60;j+);/*/*-输入时间 t1*/viod in_time1()- 27 -P1=0xf7;delay(1); if(P3_5=0)delay(10);/*数码管显示“”*/*按下 OK 键确认并点亮小数点*/if(P3_5=0)P1=0x7f;m=0;t1_flag=0;delay(500); while(t1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南建筑安全员《B证》考试题库及答案
- 贵阳人文科技学院《先进制造与特种加工》2023-2024学年第一学期期末试卷
- 广州珠江职业技术学院《动物分子生物学C》2023-2024学年第一学期期末试卷
- 广州应用科技学院《日本近现代文学作品选读》2023-2024学年第一学期期末试卷
- 广州新华学院《东西方设计元素》2023-2024学年第一学期期末试卷
- 广州铁路职业技术学院《电子商务》2023-2024学年第一学期期末试卷
- 2025海南省建筑安全员-B证考试题库附答案
- 《固定收入证券》课件
- 一年级语文《借生日》
- 单位人力资源管理制度集锦汇编十篇
- 艺术漆培训课件
- 建德海螺二期施工组织设计
- 山东省菏泽市2023-2024学年高一上学期期末测试物理试题(解析版)
- 2024年学校后勤日用品采购合同范本2篇
- 中建中建机电工程联动调试实施方案范本
- 新《安全生产法》安全培训
- 山东省济南市2023-2024学年高一上学期1月期末考试 物理 含答案
- 中华人民共和国安全生产法知识培训
- 上海教育出版社 艺术 八年级上册第三单元 乡音乡韵 京腔京韵系乡情 教学设计
- 人教版(2024新教材)七年级上册数学第一章《有理数》单元测试卷(含答案)
- 《色彩基础知识》PPT课件(详解)
评论
0/150
提交评论