出租车计价器设计.doc_第1页
出租车计价器设计.doc_第2页
出租车计价器设计.doc_第3页
出租车计价器设计.doc_第4页
出租车计价器设计.doc_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硬件工程实践报告 题目名称: 出租车计价器 姓 名: 陈力强专 业: 电子信息工程班级学号:058043 08同 组 人:黄伟康 南昌航空大学电子信息工程学院2008年 7月 3日 电子信息工程 专业课程设计题单班级 058043 学生 陈力强 课程名称 专业课程设计 课 题 出租车计价器 设计要求 该课题需要实现功能: 1) 出租车里程测量:采用信号源产生脉冲模拟出租车计价传感器产生脉冲 ,设每产生100个脉冲出租车行驶1公里信号源脉冲频率=1KHZ; 2) 里程显示为: *.*公里; 3) 采用8255芯片管理键盘显示。 课 题 发 给 日 期 2008年6月8日 课程设计完成日期 2008年7月2日 指 导 教 师 评语: 评分: 摘要本实验通过设计出租车计价器来介绍了用51系列单片机来实现对各个硬件的操作,本实验阐述了LED数码管的显示过程以及键盘的扫描过程,同时还有价钱的计算和功清零的功能,可方便定期调整价格,省去重写程序的麻烦。以C51单片机为中心、输出采用六位8段共阳数码显示管。通过8255的PA口,PB口,PC口来实现对键盘,数码显示管的连接。通过键盘来控制计程,计价清零。关键词:计价器;单片机8051,8255目 录 摘要.1第一章 21.1系统的设计要求.2第二章 系统的组成以及原理.12.1系统的组成.22.2系统原理.22.2.1控制单元电路设计.22.2.2 显示单元电路设计.3第三章 程序设计.43.1.1 控制程序43.1.2 显示程序53.1.3 清零程序 6第四章 程序的调试以及结果分析7第五章总结与体会. . 6参考文献.6附录一(系统设计总体电路图).7附录二(程序清单).8 前言本实验以51单片机为中心,通过对于8255芯片的PA,PB,PC,控制口进行写入控制字来实现对六位8段共阳数码显示管的控制,通过PA口与数码显示管相连,在PC口读出。通过查表来显示相应的数字。 第一章 系统的设计要求1.1 系统的设计要求与技术指标(1) 出租车里程测量:采用信号源产生脉冲模拟出租车计价器传感器产生脉冲,设每产生100个脉冲出租车行使1公里信号源脉冲频率1KHz(2) 里程显示为:*.*(3) 采用7279芯片管理键盘显示系统组成框图如图1.1:脉冲源变换电路单片机7279键盘显示按键第二章 系统组成及工作原理 2.1系统的组成本系统由8255芯片,键盘,LED六位八段显示二极管,通过8255芯片来实现对LED的显示和键盘的控制。 2.2系统的工作原理2.2.1 控制单元电路设计第三章 程序设计3.1.1控制程序 程序流图开始8255初始化将地址送PA口从PC口读出送A判断A为1? 是开始Run程序等待P1为0进入中断显示百分位接受键盘P10为0显示十分位显示个位P100为00按下循环显示各位F按下显示十位P1000为0复位E按下显示百位P10000为0P100000为0显示千位第五章 总结与体会(1) 本实验以8051单片机为中心,控制8255的PA,PB,PC口来实现对于键盘的扫描,功能键的设定,以及LED的显示。(2) 本实验在设定功能键的时,可以通过对整个键盘扫描,设定标志位来确定功能键是否被按下,但是程序复杂。因为在8255初始化时设定了PA,PB,输出口,PC口为输入口只需对A口的某一行进行列扫描,从C口读出。低电平时说明键按下。(3)模拟路程的输入脉冲作出实时处理,使系统能并行地完成各单元数据的操作。而中断处理程序中必须包括现场保护,中断服务,现场恢复,中断返回等四个部分。中断服务程序是中断处理程序的主体,它是由中断要完成的功能所确定,主程序则是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对日常事务的处理,子程序则为主程序所调用来完成各项功能。(4)从这次课设中明显体现了主程序,子程序、中断程序的功能。在调试中也相当的简化。本次专业课程设计通过自己的努力,加上指导老师吴老师的悉心指导,圆满完成了任务,从而学习到很多东西,实践和理论的得到很好的结合,参考文献1 于海生.微型计算机控制技术.清华大学出版社,1999.62 陈杰 黄鸿.传感器与检测技术.高等教育出版社,2002.83 孙涵芳.MCS-51系列单片机原理及应用.北京航空航天大学出版社,1996.44 黄正瑾.电子设计竞赛赛题解析.东南大学出版社,2003.5出租车计价器设计报告摘要:本设计介绍了用51系列单片机设计的计价器,阐述了AT89S51和霍尔传感器的使用方法,以及LED数码管的显示过程,同时还有价格调整和时间调整功能,可方便定期调整价格,省去重写程序的麻烦。以89S51单片机为中心、附加A44E霍尔传感器测距,实现对出租车计价统计,采用语音提示,输出采用六位8段共阳数码显示管。在不计价的时候还能作为时钟为司机同志提供方便。关键词:计价器;单片机89S51;A44E1 引言道路交通事业的发展以及人们生活水平的提高都促使交通工具的不断变化,无论是在大城市或是中小城市越来越多的出租车公司不断的出现。出租车的出现方便了人们的生活,对于现在快节奏生活方式的人们来说出租车无疑是最好的交通工具。但是,传统的出租车收费方式完全是司机说了算,乘客不能很直观的看到比如收费标准以及行驶里程等各种数据,给本来想寻求方便的人们带了不便,也加重了司机的负担。我们设计的这种出租车计价器,它可以提供不同的收费标、准计时收费,允许司机根据情况修改单价,直观的显示当前单价、行驶里程、总金额等,有必要的话还可以打印输出各种数据。2 总体设计方案2.1 方案比较方案一使用数字电路和模拟电路来完成设计要求。显示器件有:LED显示,VFD显示,分段式数码管等等,针对显示单元电路这里可以使用分段式数码管来显示,分段式数码管分为共阳极和共阴极两种,对数码管的驱动针对不同的类型采用不同的芯片,共阴极数码管通常采用TTL系列的74LS48驱动,而共阳极数码管通常采用CMOS系列的CD4543来驱动;仅时钟显示电路框图和实际电路就这样的庞大,整体电路规模可想而知。而且对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现;整体电路的规模较大,用到的器件多,造成故障率高,难调试。方案二使用单片机来完成设计要求。单片机功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻而易举的实现。避免了机械开关带来的不稳定因素。方案确定经过上面的两种方案的比较,显然第二种方案具有更大的优越性、灵活性,所以我们采用第二种设计方案进行设计。本电路以89S51单片机为中心、附加A44E霍尔传感器测距,实现对出租车计价统计,输出采用8段数码显示管。设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。2.2 总体设计框图2.2.1工作原理框图如图1所示单片机时间显示金额单价显示显示电路设置电路里程检测系统复位存储电路路程单价显示等待时间单价计费模式显示图1 工作原理框图2.2.2单片机单元框图如图2所示CPU蜂鸣器数码管显示霍尔传感器功能按键时钟电路图2 单片机单元框图3 设计原理分析总电路图如附录一所示,部分电路分析如下。3.1 计费功能单元设计里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图3所示。由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.518V),其输出的信号符合TTL 电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。A44E集成霍尔开关由稳压器、霍尔电势发生器(即硅霍尔片)、差分放大器、施密特触发器和OC门输出E五个基本部分组成。在输入端输入电压VCC,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差HV输出,该HV信号经放大器放大后送至施密特触发器整形,使其成方波输送到OC门输出。当施加的磁场达到工作点时,触发器输出高电压(相对于地电位)使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开。当施加的磁场达到释放点时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。这样两次电压变换,使霍尔开关完成一次开关动作。89S51单 片 机P3.2小磁铁车轮霍尔传感器图3 传感器测距示意图我们选择了P3.2口作为信号的输入端,内部采用外部中断1(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数,当计数达到1000次时,也就是1公里,单片机就控制将金额自动的加增加,其计算公式:当前单价公里数=金额。3.2 控制单元设计3.2.1按键名称确定键S0,设置键S1,单价和时间调节键S2,加1键S3。3.2.2按键功能操作说明按键共有五个,从左到右按顺序依次是:确定,设置,单价/时间调节,加1。 在系统时间显示状态下面,直接点击确定键可以进入计费模式,在计费模式下面如果再次点击以下,立即退出计费模式,在退出计费模式的同时,存储器自动保存当前状态的全部数据信息。点击设置键进入时间设置模式,点击单价调节键进入单价设置模式,在设置模式下面,由加1键配合操作来完成设置,设置完成后要点击以下确定键,立即退出单价调节模式并保存我们的设置。a 在没有进入计费状态时候显示当前的系统时间,并且增加了校时功能;b 白天与晚上的计费标准自动转换,无须使用转换开关来控制;c 设有起步价,默认是3公里/5元,可以手动调整;d 途中等待时间自动检测,并根据等待时间合理计费(等待费用和正常行驶费用标准不一致)3.3 输出单元设计3.3.1数据显示由于设计要求有单价(2位)、路程(2位)、总金额(3位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),采用LCD液晶段码显示,在距离屏幕1米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用6位LED数码管的分屏显示,如图4所示:数据分屏显示是通过按键S0和外部传感器的脉冲波来实现切换的。在出租车不走的时候,按下S0,可以实现数据分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S3 切换到里程和单价显示屏,供客户查询。12.00.00默认显示05.01.5S0切换后总额和单价显示03.01.5S3切换里程和单价显示101.0停车等待时间、单价显示1.52.01.0单价调整显示 图4 数码管的分屏显示从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器74HC164还兼作数码管的驱动,接电源、数据和脉冲输出端。三个整流管D1D3可以降低数码管的工作电压,增加使用寿命。3.3.2蜂鸣器报警提示电路压电式蜂鸣器约需10MA的驱动电流,可用一个晶体三晶管驱动,P0.1接晶体管基极输入端。当P0.1输入高电平1时,晶体管导通,蜂鸣器两端获得+5V电压而鸣叫;当P0.1输入高电平0时,晶体管截止,蜂鸣器停止发声。以提醒乘客注意。4 程序设计模块介绍(1)主程序模块在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。其程序流程如图5所示.(2)定时中断服务程序在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。(3)里程计数中断服务程序每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额累加,进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。(4)中途等待中断服务程序当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时累加到10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。NNNYNNY退出?显示总额和单价NYYYNY初始化打开T0定时器启动系统时钟计费设置时间显示收费状态退出?加1?确定?保存设置执行加1时个位时十位分十位分个位时间调整退出?退出?设置键+确定键显示设置键+确定键设置键+确定键晚上单价白天单价起步价图5 主程序流程图(5)显示子程序服务程序由于是分屏显示数据,所以就要用到 4 个显示子程序,分别是:时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)、路程单价显示子程序(DP_DIS)、单价调节子程序(PA_DIS)。 (6)键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦按键按下,便转向相应的子程序处理,处理结束再返回。有以上部分程序设计编写程序如附录二所示5 总结与体会系统使用的各种传感器是高性价比的通用元器件,具有合适的灵敏度、精度,价格便宜。单片机能很好的利用这些传感器的信号,对各部分进行实时控制。电路的特色:采用了掉点保护模块,不会因瞬间掉电而造成数据的丢失。但是,系统设计仍有可以改进的空间。例如,在使用LCD显示器时,可以选用带有背光的LCD显示器。在设计过程中,我们充分体会到了创造的乐趣和分工合作的重要性,在动手的过程中,不但增强了实践能力,而且在理论上有了更深的认识。参考文献1 于海生.微型计算机控制技术.清华大学出版社,1999.62 陈杰 黄鸿.传感器与检测技术.高等教育出版社,2002.83 孙涵芳.MCS-51系列单片机原理及应用.北京航空航天大学出版社,1996.44 黄正瑾.电子设计竞赛赛题解析.东南大学出版社,2003.5附录一 系统设计总体电路图18附录二 程序清单计价器源程序;*键盘定义*S0 BIT P1.0S1 BIT P1.1S2 BIT P1.2S3 BIT P1.3SP BIT P2.1;单价定义DJ EQU 5FHD_DJ EQU 5EHNIG_DJ EQU 5DHWAIT_DJ EQU 5CHZEL EQU 5BH ZEH EQU 5AHM100 EQU 59H ;外部中断次数DIS EQU 58H ;行车距离MS100 EQU 57HMIAO EQU 56HFEN EQU 55HSHI EQU 54H;*显示缓冲区*MIAOL EQU 53H MIAOH EQU 52HFENL EQU 51HFENH EQU 50HSHIL EQU 4FHSHIH EQU 4EHFDJ1L EQU 4DH FDJ1H EQU 4CHLINE_ EQU 4BHFZE1 EQU 4AHFZE2 EQU 49HFZE3 EQU 48HFDJ2L EQU 47H FDJ2H EQU 46HFDISL EQU 45HFDISH EQU 44HFDL EQU 43H FDH EQU 42HFNIGL EQU 41HFNIGH EQU 40HFWAITL EQU 3FHFWAITH EQU 3EHS01 EQU 3DHS11 EQU 3CHS12 EQU 3BHS21 EQU 3AHS31 EQU 39HORG 0000HLJMPMAINORG 0006HLJMP TO ORG 0010HLJMP TOTIME ORG 0020HLJMP TOWAIT ORG 0030HMAIN: MOV SP,#70HMOV TMOD, #11HMOV TH0, #3CH;定时为100msMOV TL0, #0B0HMOV TH1, #3CHMOV TL1, #0B0HMOV 22H, #0AHSETB EA;开中断SETB ET0;定时器溢出中断允许SETB ET1SETB TR0;启动定时器0SETB IT1MOV R6,#40H;RAM单元初始化MOV R0,#5FHLOOPL: MOV R0,#0DEC R0DJNZ R6,LOOPLMOV ZEL, #00H ;起步MOV ZEH, #05HMOV D_DJ,#15H;白天价格MOV NIG_DJ, #18H;晚上价格MOV WAIT_DJ, #10H;中途MOV SHI, #12H;*;键盘第一层扫描程序;(键盘扫描主程序);*KEY_MAIN: SETB TR0ACALL HMS_DISACALL T100MSDJB S0, KEY_MAINACALL T100MSDJB S0, KEY_MAINJNB S0, $SJMP WAI1WAI1: SETB EX0;打开外部中断CLR SPLCALL T100MSDSETB SPMOV R0,#FDJLMOV R2, #6CLR AMOV ZEL, AMOV ZEH, AMOV M100, AMOV DIS, ABK1: MOV R0, ADEC R0DJNZ R2, BK1;起动初始化MOV DJ,D_DJMOV ZEL, #00H;起步价MOV ZEH, #05HLCALL CP_DIS;总金额单价显示WA1: JB S0, WA2ACALL T100MSDJB S0, WA2JNB S0, $INC S00MOV A, S00CJNE A,#1,L1CLR SPLCALL T100MSDSETB SPL1: CJNE A, #2, WA2CLR EX1CLR S00AJMP KEY_MAINWA2: JB S1, K1LCALL T100MSDJB S1, K1WAIT1: JNB S1, WAIT1INC S11MOV A, S11CJNE A, #1, NEX1ACALL HMS_DISNEX1: CJNE A, #2, K1LCALL CP_DISCLR S11K1: JB S2, K2ACALL T100MSDJB S2, K2WAIT2: JNB S2, WAIT2NN: INC S21MOV A, S21CJNE A, #1,NEXT1LCALL PA_DISLJMP KEY_DJNEXT1: CJNE A, #2, NEXT2CLR TR0LCALL HMS_DISLJMP KEY_SJNEXT2: CJNE A, #3, K2MOV S12, #0SETB TR0MOV S21, #0LCALL CP_DIS;总金额单价显示K2: JB S3, K3ACALL T100MSDJB S3, K3WAIT3: JNB S3, WAIT3INC S31MOV A,S31CJNE A, #1, NXT1LCALL DP_DISNXT1: CJNE A, #2, K3MOV S31, #0LCALL CP_DISNT1: CJNE A, #2, NT2MOV DJ,NIG_DJLCALL CP_DISNT2: CJNE A, #3,B_K_MAINMOV DJ, WAIT_DJSETB TR1B_K_MAIN: LJMP WA1;*;键盘第二层扫描程序;(单价调整程序)(KEY_DJ);*KEY_DJ: JB S1, KY1ACALL T100MSDJB S1, KY1WAIT5: JNB S1, WAIT5INC S12MOV A, S12CJNE A, #1,NEXT11LJMP D_PNEXT11: CJNE A, #2, NEXT12LJMP NIG_PNEXT12: CJNE A, #3, KY1MOV S12, #0LJMP MID_PKY1: JB S2, KY2ACALL T100MSDJB S2, KY2WAIT6: JNB S2, WAIT6INC S21MOV A, S21CJNE A, #1, NEXT13SETB TR0LCALL PA_DISLJMP KEY_DJNEXT13: CJNE A, #2, NEXT14CLR TR0LCALL HMS_DISLCALL KEY_SJNEXT14: CJNE A, #3, KY2MOV S12, #0MOV S21, #0SETB TR0LCALL CP_DIS;总金额单价显示AJMP WA1KY2: AJMP KEY_DJ;*;键盘第三层扫描程序;(时间调整程序)(KEY_SJ);*KEY_SJ: JB S1, KEY1ACALL T100MSDJB S1, KEY1WAIT7: JNB S1, WAIT7INC S12MOV A, S12CJNE A, #1, NEXT21LCALL SH_TNEXT21: CJNE A,#2,KEY1MOV S12, #0LCALL FEN_TKEY1: JB S2, KEY2ACALL T100MSDJB S2, KEY2WAIT8: JNB S2, WAIT8INC S21MOV A, S21CJNE A, #1, NEXT23SETB TR0LCALL PA_DISLJMP KEY_DJNEXT23: CJNE A, #2, NEXT24CLR TR0LCALL HMS_DISLCALL KEY_SJNEXT24: CJNE A, #3, KEY2MOV S21,#0MOV S12,#0SETB TR0LCALL CP_DIS;总金额单价显示LJMPWA1KEY2: AJMP KEY_SJ;*;键盘第四层扫描程序;(闪显/加1程序);*DAY_P: SETB F0 LCALL T100MSDMOV FDL, #0AHMOV FDH, #0AHLCALL PA_DIS1LCALL T100MSDLCALL PA_DISLP1: JB S3, KEY11LCALL T100MSDJB S3, KEY11MOV A, #1ADD A, D_DJDA AMOV D_DJ,ACJNE A, #99H, KEY11MOV D_DJ, #0KEY11: JB S1, KEY12ACALL T100MSDJB S1, KEY12WAIT11: JNB S1, WAIT11INC S12MOV A, S12CJNE A, #1, NEXT31LCALL D_PNEXT31: CJNE A, #2, NEXT32LCALL NIG_PNEXT32: CJNE A, #3, KEY12MOV S12, #0LCALL MID_PKEY12:JB S2, KEY13LCALL T100MSDJB S2, KEY13WAIT12: JNB S2, WAIT12MOV S12, #0LJMP WA1KEY13: AJMP D_P;-NIG_P: SETB F0LCALL T100MSDMOV FNIGL, #0AHMOV FNIGH, #0AHLCALL PA_DIS1LCALL T100MSDLCALL PA_DISJB S3, KEY21LCALL T100MSDJB S3, KEY21WAIT13: JNB S3, WAIT13MOV A, #1ADD A, NIG_DJDA AMOV NIG_DJ,ACJNE A, #99H,KEY21MOV NIG_DJ,#0KEY21: JB S1, KEY22ACALL T100MSDJB S1, KEY22WAIT14: JNB S1, WAIT14INC S12MOV A, S12CJNE A, #1,NEXT41LCALL D_PNEXT41: CJNE A,#2,NEXT42LCALL NIG_PNEXT42: CJNE A,#3,KEY22MOV S12, #0LCALL MID_PKEY22: JB S2, KEY23LCALL T100MSDJB S2, KEY23WAIT30: JNB S2, WAIT30MOV S12, #0LJMP WA1KEY23: AJMP NIG_P;-MID_P: SETB F0 LCALL T100MSDMOV FWAITL, #0AHMOV FWAITH, #0AHLCALL PA_DIS1LCALL T100MSDLCALL PA_DISJB S3, KEY31LCALL T100MSDJB S3, KEY31WAIT15: JNB S3, WAIT15MOV A, WAIT_DJADD A, #1DA AMOV WAIT_DJ,ACJNE A, #99H, KEY31MOV WAIT_DJ, #00HKEY31: JB S1, KEY32ACALL T100MSDJB S1, KEY32WAIT16: JNB S1, WAIT16INC S12MOV A, S12CJNE A, #1, NEXT51LCALL D_PNEXT51: CJNE A, #2, NEXT52LCALL NIG_PNEXT52: CJNE A, #3, KEY32MOV S12, #0LCALL MID_PKEY32: JB S2, KEY33LCALL T100MSDJB S2, KEY33WAIT31: JNB S2, WAIT31LJMP WA1KEY33: AJMP MID_P;-SH_T: SETB F0LCALL T100MSDMOV SHIL, #0AHMOV SHIH, #0AHLCALL HMS_DIS1LCALL T100MSDMOV MIAO, #0LCALL HMS_DISJB S3, KEY41LCALL T100MSDJB S3, KEY41WAIT17: JNB S3, WAIT17MOV A, SHIADD A, #1DA AMOV SHI,ACJNE A, #24H, KEY41MOV SHI, #0KEY41: JB S1, KEY42ACALL T100MSDJB S1, KEY42WAIT21: JNB S1, WAIT21INC S12MOV A, S12CJNE A, #1, NEXT61LJMP SH_TNEXT61: CJNE A, #2, KEY42MOV S12, #0LJMP FEN_TKEY42: JB S2, KEY43LCALL T100MSDJB S2, KEY43WAIT32: JNB S2, WAIT32SETB TR0LJMP WA1KEY43: AJMP SH_T;-FEN_T: SETB F0 LCALL T100MSDLCALL T100MSDMOV FENL, #0AHMOV FENH, #0AHLCALL HMS_DIS1LCALL T100MSDMOV MIAO, #0LCALL HMS_DISJB S3, KEY51LCALL T100MSDJB S3, KEY41WAIT22: JNB S3, WAIT22MOV A, FENADD A, #1DA AMOV FEN, ACJNE A, #60HH,KEY51MOV FEN, #0KEY51: JB S1, KEY52ACALL T100MSDJB S1, KEY52WAIT23: JNB S1, WAIT23INC S12MOV A, S12CJNE A, #1, NEXT71LCALL SH_TNEXT71: CJNE A, #2, KEY52MOV S12, #0LCALL FEN_TKEY52: JB S2, KEY53LCALL T100MSDJB S2, KEY53WAIT33: JNB S2, WAIT33SETB TR0LJMP WA1KEY53: AJMP FEN_T;-;时钟中断TOTIME: PUSH PSWPUSH ACCMOV TH0, #3CHMOV TL0, #0B0HINC MS100MOV A, MS100CJNE A, #10,RETURNMOV MS100,#0MOV A, MIAOADD A, #1 DA AMOV MIAO,ACJNE A,#60HH,RETURNMOV MIAO,#0MOV A, #1HADD A, FENDA AMOV FEN,ACJNE A,#60HH, RETURNMOV FEN,#0MOV A, #1HADD A, SHIDA AMOV SHI, ACJNE A, #24H, RETURNMOV SHI, #0RETURN: POP ACCPOP PSWRETI;-;外部霍尔中断TO: PUSH PSWPUSH ACCMOV A,#1ADD A,M100MOV M100,AMOV A, M100CJNE A, #100,RETURN1MOV M100,#0INC 21HMOV A,21HCJNE A, #0AH,RETURN1MOV 21H,#0MOV A, #1ADD A, DISDA AMOV DIS,ACJNE A,#03H,N1AJMP RETURN1N1: JNC N2AJMP RETURN1N2: MOV A,DJADD A,ZELDA AMOV B,AANL A,#0FHMOV ZEL,AMOV A,BSWAP AANL A,#0FHADD A,ZEHDA AMOV ZEH,ACJNE A,#99H,E1MOV ZEH,#00HACALL CP_DISAJMP RETURN1E1: JNC E2ACALL CP_DISAJMP RETURN1E2: SUBB A, #99HMOV ZEH, AACALL CP_DISRETURN1: POP ACCPOP PSWRETITOWAIT: PUSH PSWPUSH ACCMOV TH1, #3CHMOV TL1, #0B0HINC 22HMOV A, 22HCJNE A, #0AH,RETURN2MOV A, #1ADD A, 23HDA AMOV 23H, ACJNE A, #60H ,RETURN2MOV 23H, #0MOV A, #1ADD A, 24HDA AMOV 24H, ACJNE A, #10H, RETURN2MOV 24H, #0MOV A, DJADD A, ZELDA AMOV B, AANL A, #0FHMOV ZEL, AMOV A, BSWAP AANL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论