




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要单片机是指在一个芯片上集成了中央处理器、存贮器和各种I/O接口的微型计算机(MCU),它主要面向控制性应用领域,因此又称嵌入式控制器。这是一项新型的工程技术,其内涵也是随着单片机的发展而发展。MCS-51系列的单片机是属于结构相当简单,但也是单片机中的典型,应用也相当的灵活。51系列的单片机产品发展迅速,在国内外占有重要的地位。出租车计价器从最初只能进行简单的价格计算,发展到价格、距离独立计量并显示,可根据特殊情况设定相应的收费标准。利用单片机可实现出租车计价器功能的智能化和多样化。同时可以降低计价器的成本。本次课程设计报告包括硬件设计和软件设计,软件设计主要包括程序结构设计和程序代码编写及调试。本次设计由一个主程序及相关中断子程序组成。主程序中完成的是整个模块的控制,即7279和中断初始化以及扫健功能检查,检查是否有启动键,切换键,暂停键,复位键中任意一者按下,有则转入相应的功能区去完成实现。否则继续监控按键程序直到有键按下。中断程序则是利用T0来计算外界进来的脉冲数(模拟为车辆行驶的路程),根据此路程加价,最终完成所要求的出租车计价功能。关键字:单片机 出租车计价器 中断目录第一章 设计内容及要求11.1 基本要求11.2 提高要求11.3 参考原理框图1第2章 系统组成及工作原理22.1 系统的组成22.2 工作原理2第3章 硬件电路方案设计43.1 方案论证与比较4 3.1.1方案一4 3.1.2方案二4 3.2 单元电路设计、参数计算和器件选择5 3.2.1微处理器系统5 3.2.2键盘、显示接口5 3.2.3 555多谐振荡电路63.3 硬件电路设计说明7第4章 系统软件设计8 4.1 软件设计说明8 4.2 7279键盘功能设计9 4.3 存储单元及关键字介绍9 4.3.1存储单元介绍9 4.3.2 关键字介绍10 4.4 程序结构设设10 4.4.1主程序结构设计10 4.4.2中断程序结构设计12 4.4.3其他子程序结构设计12第5章 实验调试与测试结果14 5.1实验调试14 5.1.1硬件调试14 5.1.2软件调试14 5.2测试结果15结论16参考资料17附录一18附录二33附录三34 第一章设计要求及要求1.1 基本要求(1)里程显示为:*.*公里。(2)能预置起步价及单价:如起步3公里6.00元;1.60/公里。1.2 提高要求 起步价、起步公里和单价能够调整。第二章 系统组成及工作原理2.1系统的组成本次设计的出租车计价器系统是由四部分组成,包括信号源、由三极管和反相器74LS14组成变换电路、单片机8031系统和HD7279显示模块。设计结构框图如图2.1所示。显示单片机信号源 键盘图2.1 设计结构框图其中,1. NE555多谐振荡电路输出矩形脉冲作为信号源,输出标准脉冲信号。2. 8051单片机模块是以8051作为微处理器的控制系统。它主要实现对整个系统的控制管理,完成数据的处理等。该模块使用单片机8051,128字节的内部RAM数据存储器,2个16位定时器/计数器,一个串行口,5个中断源、2个中断优先级,时钟频率在1.2MHZ12MHZ。由于其内部没有程序存储器,内部数据存储器容量不够,必须外部扩展程序存储器和数据存储器。3.7279可编程数码管/键盘串行接口芯片是一片具有串行接口的,能同时驱动八位共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的强大键盘矩阵,单片即可完成LED显示,键盘接口的全部功能,它是单片机应用系统中常用的一种外围接口电路。本机用HD7279管理16个键和八位数码管。2.2工作原理出租车计价是根据车所行驶的路程以及乘客乘车的时间段综合决定的。出租车行驶总路程可以通过车轮的周长乘以车轮旋转圈数得到,即可计算得到车轮旋转几周出租车能行驶一公里的路程。在本次课程设计中采用555多谐振荡电路输出脉冲模仿出租车计价器计量车轮旋转的圈数。信号源输出电脉冲,输出标准脉冲信号。输出的脉冲信号被接入到8051单片机系统中,通过计算接收到的脉冲个数,计算出当前所行驶的路程。同时,根据不同的收费标准,选择相应的起步价、单价等收费标准进行显示。HD7279管理键盘和数码显示,通过键盘能够实现启动、暂停、停止计价器、切换显示当前的行驶里程和需支付的车费,还能够对单价、起步价、起步公里进行金额调整的显示。第3章 硬件电路方案设计3.1方案论证与比较3.1.1方案一采用数字电路控制,其原理如图所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据用户要求计费保准,电路不够实用。电路框图如图3.1.1所示:金额显示单价显示电源电路及保护电路里程传感器移位寄存器电路图3.1.13.1.2方案二以8051为核心的微处理系统,信号源输出矩形脉冲,经过放大整形电路,输出标准脉冲信号。在处理键盘和显示部分中使用芯片7279处理。用555定时器构成的多谐振荡器电路模拟出租车正在行进中。原理框图请见图2.1。本电路设计的计价器不但能实现基本的计价,而且还能根据用户需求来调节单价。单片机计算总价的公式为:总价=起步价+单价*(总里程-起步里程)。AT89C51作为一个单片微型计算系统,灵活性高,其强大的控制处理功能和可扩展功能为设计电路提供了很好的选择。通过比较以上两种方案,方案二有较大的活动空间,不但能实现所有要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用第二种方案。 3.2单元电路设计、参数计算和器件选择3.2.1微处理器系统 8051单片机模块是以8051作为微处理器的控制系统。它主要实现对整个系统的控制管理,完成数据的处理等。该模块使用单片机8051、数据存储器6116、程序存储器27128、地址锁存器74LS373、74LS138译码器等芯片构成单片机的基本系统。本系统在设计中,通过输入外部信号作为T0计数,完成数据处理。本次设计中使用的微处理系统是以8051为核心的最小开发系统板,如图3.2.1所示。图3.2.13.2.2键盘、显示接口7279键盘、显示接口HD7279A是一片具串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。HD7279主要特性有:(1)串行接口,无需外围元件可直接驱动LED。(2)各位独立控制译码/不译码及消隐和闪烁属性。(3)(循环)左移/(循环)右移指令。(4)具有段寻址指令,方便控制独立LED。(5)64键键盘控制器,内含去抖动电路。 HD7279接口电路如图3.2.2所示。图3.2.2 7279键盘、显示接口电路3.2.3 555多谐振荡电路用555定时器构成的多谐振荡器电路如图3.2.3所示:图中电容C、电阻R1和R2作为振荡器的定时元件,决定着输出矩形波正、负脉冲的宽度。定时器的触发输入端(2脚)和阀值输入端(6脚)与电容相连;集电极开路输出端(7脚)接R1、R2相连处,用以控制电容C的充、放电;外界控制输入端(5脚)通过0.01uF电容接地。 图3.2.3 555多谐振荡电路 其中振荡周期T=T1+T2=0.7(R1+2R2)C,振荡频率f=1/T。正向脉冲宽度T1与振荡周期T之比称矩形波的占空比D =(R1+R2)/(R1+2R2),若使R2R1,则D1/2,即输出信号的正负向脉冲宽度相等的矩形波(方波)。在设计的具体方案中将R1和R2使用100K电位器,使得输出的方波占空比可调。3.3硬件电路设计说明 本系统硬件电路可分为脉冲信号模块、微处理系统模块、键盘显示模块。下面对这几个模块进行介绍。1.脉冲信号模块是利用NE555多谐振荡电路,调整至50%的占空比,为8051输出一个标准的方波,频率为100HZ。利用中断程序,每记100次脉冲,就算出租车走了一公里,进行计价。2.微处理系统模块是利用8051单片机及基础外围电路,实现出租车的基本功能。通过T0中断来进行里程计数,通过P1.0、P1.1、P1.2、P1.3分别连接7279的CS、CLK、DATA、KEY控制键盘显示模块。3.键盘显示模块是利用7279驱动8位共阴式数码管,该芯片同时还可以连接多达64键的键盘矩阵,可以配合单片即可完成LED显示,键盘接口的全部功能。方便用户的操作。第四章 系统软件设计4.1软件设计说明 本系统的软件设计主要可分为主程序模块、定时计数中断程序、里程计数中断服务程序、中途等待中断服务程序、显示子程序服务程序、键盘服务程序六大模块。下面对各部分模块作介绍。1.程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。并设计相应标志位及对它们进行初始化。2.在里程计数中断服务程序设计中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。并调用显示子程序显示总金额或总路程。3.显示子程序服务程序设计中通过编写6个显示子程序来完成其功能的。4.在键盘服务程序设计中,键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。5.为了达到起步价,里程单价和起步公里的提高要求,特地设置了三个查表地址,分别是存放里程单价、起步价和起步公里的范围数值。当需要调整这三个值时,可以通过查表程序来调用这三个参数的范围值,实现显示里程单价、起步价和起步公里的调整价格,但是不能将调整好的参数代入价格计价程序进行计价。本设计通过读8051芯片的T0口的输入脉冲数目来确定里程,为了便于计算,规定T0口来1个脉冲为1米(即车轮周长)。程序运行时,先通过键扫程序判断是否开始启动TO计里程。在这里程序中设定开始运行显示HELLO!;设定S0为启动键、S1为单价显示键、S2键为起步公里显示键、S3为起步价显示键、S4键为复位键、S5键为切换显示总金额、总路程键。在键扫描之后,调用计数子程序,T0口第一次接收累积到100个脉冲后,主程序进入T0中断,开始根据单价进行加价。为使出租车计价器能够切换显示总金额、总路程问题,在程序中设置了显示切换键S5,按下此键能显示总路程,再按一次显示总金额。当再次有乘客上车时,司机可按下S4键(复位键),所有计数内存单元清零,程序重新运行。此外为使起步价,起步公里和单价能够调整,本程序增加6个键:起步价调整键:S6和S7;起步公里调整键:S11和S10;单价调整键:S15和S14。另外增加等待的时候切换成等待时间换算成公里数以及特殊情况下暂停,对应该功能增加两个键:S12等待,S13暂停。4.2 7279键盘功能设计 如图4.2单价显示起步价显示启动出租车计价器起步公里显示单价减一起步公里减一暂停起步公里加一复位路程金额切换起步价减一单价加一起步价加一等待图4.24.3存储单元及关键字介绍4.3.1存储单元介绍 请见表4.3.130H,31H起步价存储单元32H,33H起步公里存储单元34H,35H单价存储单元36H,37H,38H总路程存储单元39H,3AH,3BH总金额存储单元50H,51H,52H,53H,54H,55H,56H,57H,58H,59H显示缓冲区00H标志位切换显示总金额和总路程表 4.3.1存储单元4.3.2 关键字介绍 请见表4.3.2MAIN主程序KEY1读键值子程序STFS发送一字节子程序STJS接收一字节子程序DTRHD7279显示子程序LUC定时器0中断子程序BEGHD7279初始化子程序TAB0“0”到“9”字形表TAB1“0.”到“9.”字形表TAB2其它所用到的功能显示字形表TABR键值表T0口8051芯片脉冲输入口表 4.3.2 关键字介绍4.4程序结构设计4.4.1主程序结构设计程序开始运行时对存储区及7279初始化,对计数器T0初始化,判断是否有按键按下,无键按下,重新进行键盘扫描;有键按下,判断是哪个键按下,并进行相应的操作,如下图4.4.1所示。开始7279初始化,各单元初始化T0初始化,计数,中断允许初始值送显缓区调显示子程序并调键扫描程序有键按下求键号并保存启动键S0?T0计数切换键S5?起步价调整调整公里数调整单价调整调整复位键?调整调整等待计时NYYNN切换显示总金额、总路程NNNYN NNN N Y N图4.4.1 主程序流程图4.4.2中断程序结构设计每100个脉冲信号到来的时候使得总路程加1.00,一直加下去,若总路程超过起步公里数时,则总金额加1.60。如图4.4.2所示。图 4.4.2 中断程序框图4.4.3其他子程序结构设计7279显示子程序设计如图4.4.3所示。图4.4.3 显示子程序框图第五章 实验调试与测试结果5.1实验调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试。5.1.1硬件调试: 数字万用表单片机仿真器烧写器 双踪稳压稳流电源本次课程设计中硬件电路是555多谐振荡电路如图3.2.3。焊接完成后,将多谐振荡电路输出的脉冲接入到示波器的输入端,用示波器测量整形电路的输出端,输出为反向放大的脉冲信号。用示波器观察555电路输出波形,并且调节R2电位器实现了产生0到100HZ可调的方波信号。输出的方波接入整形电路输入端,实现了较好的输出可调占空比的方波信号。硬件调试比较顺利。5.1.2软件调试:在本次设计中,程序的调试并不是杂乱无章的,而是分别对每个子程序进行调试,使每个功能都可以实现后才进行整体的调试。在开始对主程序的调试时,遇到了一点小麻烦,就是读键调转块程序时,由于按键过多,调转时老是出问题,要么不转,要么转错。后来经仔细地检查每条指令,逐条修改,终于使读键部分调试成功。在T0中断程序中,36H,37H,38H单元中存放总路程,39H,3AH,3BH单元存储总金额。当进行一次T0中断,存储总路程的低位38H单元自动加1,从而会引起37H,36H单元内容的改变,即总路程的个位,十位和百位的进位,要通过与32H,33H中存储的起步公里数相比较,看是否超过起步公里,若未超过起步公里,则39H,3AH,3BH单元存储总金额为起步价;若超过起步公里,则总金额要按照34H,35H中存储的单价进行累加。因而可能会引起总金额39H,3AH单元(即总金额的高位存储单元)的进位。在调试中,发现总金额的增加未按照单价进行累加,导致总金额计价不正确,后来发现总路程与起步公里不能正确比较造成的,于是增加程序LUC0,通过修改完成其功能。此外,新增加等待计时功能时也不是很顺利,在调试程序时,按下相应的功能键时,程序总会跳到初始化里去,起初以为是标志位出了问题,后来经过多次调试及查阅相关资料才知道,是中断出了问题,初始化时应先关闭前面的相应中断。最终经调试本设计基本完成相关功能。5.2测试结果出租车计价器开机显示“HELLO!”,按S0键启动计价器,计价器计数,每100个脉冲信号到来的时总路程加1.00,一直加下去,若总路程超过起步公里数时,总金额加1.60;按键S5切换显示总路程、总金额;按键S7和S6为起步价调整键,S7键为起步价加1.00元,S6键为起步价减1.00元;按键S11和S10为起步公里调整键,S10键为起步公里加1.00,S11键为起步公里减1.00;按键S15和S14为单价调整键,S15为单价加0.1,S14为单价减0.1;S4键为复位键;按键S3为起步价显示键,S2键为起步公里显示键,S1为单价显示键,S12为启动时间计算金额数,S13为暂停键。最小系统板和7279键盘设计达到预期的效果。结论本款出租车计价器比目前市场现在的增加了不少功能,其中包括单价输出、单价调整、路程输出、显示当前的系统时间等功能。另外,多功能出租车计价器还具有性能可靠、电路简单、成本低、实用性强等特点,加上经过优化的程序,使其有很高的智能化水平。和一般计算系统一样,单片机的应用系统由硬件和软件所组成。硬件主要指单片机扩展的存储器,输入/输出设备等硬件部件的机器,而软件是各种工作程序的总称。只有硬件和软件紧密配合,协调一致,才能组成高性能的单片机应用系统。有强大的硬件同时也必须有完美的软件编程才能体现其优越性。软件是由要完成的任务总体设计所规定,所以首先要明确程序所要完成的任务,确定输入/输出,对输入数据应进行哪些处理,以及发生错误后该如何处理等。再结合硬件结构,进一步弄清软件程序所承担的一个个任务细节,确实具体实施的方法。对于本次专业课设出租车计价器的设计,是简单的单片机应用系统,这样通常采用顺序设计方法。这种系统软件由主程序和若干个子程序和几个中断服务程序所构成。在本次设计中主要是指显示子程序、读键子程序、与7279串行有关的接收/发送一字节子程序、T0中断服务程序和主程序构成。中断服务程序对模拟路程的输入脉冲作出实时处理,使系统能并行地完成各单元数据的操作。而中断处理程序中必须包括现场保护,中断服务,现场恢复,中断返回等四个部分。中断服务程序是中断处理程序的主体,它是由中断要完成的功能所确定,主程序则是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对日常事务的处理,子程序则为主程序所调用。从这次课设中明显体现了主程序,子程序、中断程序的功能。通过本次课程设计,我学到了许多书本上无法学到的知识,同时也深该体会到单片机技术应用领域的广泛,不仅使我对单片机的相关应用及汇编语言有了更进一步的理解,同时提高了动手能力,实践和理论的得到很好的结合。为我们今后的毕业设计的制作奠定了一定的基础。参考资料1 于海生.微型计算机控制技术.清华大学出版社,1999.62 张友德,赵志英,涂时亮.单片微型机原理应用与实验(第三版)M .上海:复旦大学出版社,2000年.3 孙涵芳.MCS-51系列单片机原理及应用.北京航空航天大学出版社,1996.44 黄正瑾.电子设计竞赛赛题解析.东南大学出版社,2003.55 曾若渊. MCS-51定时器/计数器在出租车计价器中的应用J. 现代测量与实验室管理 , 2005年.附录一 程序清单 ORG 0000H LJMP MAIN ORG 000BH LJMP LUC ORG 001BH LJMP YYMAIN: MOV SP,#67H ACALL BEG ;调7279初始化程序 MOV TMOD,#16H ;TO工作在计数,中断允许 MOV TH0,#0F6H ;计数从F6H到FFH MOV TL0,#0F6H MOV TH1,#0F6H ;计数从F6H到FFH MOV TL1,#0F6H MOV TCON,#00H MOV IE,#8AH ;T0的溢出中允许 MOV 30H,#06H ;初始化起步价6.00元,30H31H单元存起步价 MOV 31H,#00H MOV 32H,#03H ;初始化起步公里数3.00公里,32H33H存起步公里数 MOV 33H,#00H MOV 34H,#01H ;初始化单价1.60元,34H35H存单价 MOV 35H,#60H MOV 36H,#00H ;初始化路程数,36H37H38H存总路程 MOV 37H,#00H MOV 38H,#00H MOV 39H,#00H ;初始化总金额,39H3AH3BH存总金额 MOV 3AH,#06H MOV 3BH,#00H MOV 52H,#16H ;初始化显示,50H到59H为显示缓冲区 MOV 53H,#17H ;开机显示HELLO!,说明工作正常 MOV 54H,#18H ;其中特殊字符造字表为查表程序中的TAB2 MOV 55H,#18H MOV 56H,#00H MOV 57H,#1bH MOV 58H,#0bH MOV 59H,#1BHLP: ACALL DIR ;调用显示程序,显示显缓区数据LP0: ACALL KEY ;调用读键子程序,键值存在A中 CJNE A,#0FFH,LP1 ;判断是否有键按下 SJMP LP0 LP1: ACALL CJH ;调用求键号子程序 CJNE A,#00H,LP2 SJMP L0 ;键值为00H转到L0LP2: CJNE A,#01H,LP3 SJMP L1 ;键值为01H转到L1LP3: CJNE A,#02H,LP4 LJMP L2 ;键值为02H转到L2LP4: CJNE A,#03H,LP5 lJMP L3 ;键值为03H转到L3LP5: CJNE A,#04H,LP6 SJMP L4 ;键值为04H转到L4LP6: CJNE A,#05H,LP7 SJMP L5 ;键值为05H转到L5LP7: CJNE A,#06H,LP8 lJMP L6 ;键值为08H转到L8LP8: CJNE A,#08H,LP9 SJMP L8 ;键值为02H转到L2LP9: CJNE A,#09H,LP10 SJMP L9 ;键值为09转到L9LP10: CJNE A,#0CH,LP11 SJMP L12 ;键值为0CH转到L12LP11: CJNE A,#0DH,LP12 lJMP L13 ;键值为0DH转到13LP12: CJNE A,#07H,LP15 lJMP L14 ;键值为07H转到L14LP15: CJNE A,#0BH,LP16 lJMP L15LP16: CJNE A,#0AH,LP17 LJMP L16LP17: CJNE A,#0EH,LP13 LJMP L17LP13: SJMP LP0 ;再转LP0重新读键L0: ACALL QBJ ;调用QBJ,起步价显示 SJMP LP0L4: INC 30H ;起步价调整,加1 MOV R1,30H CJNE R1,#10,TPTP: JC TPP MOV 30H,#00H TPP: ACALL QBJ ;调整后再显示起步价 SJMP LP0L5: DEC 30H ;起步价调整,减1 MOV R1,30H CJNE R1,#1,TP11TP11: JNC TPP1 MOV 30H,#9TPP1: ACALL QBJ ;再次显示起步价 AJMP LP0 L1: ACALL QBGL ;调用QBGL,起步公里数显示 AJMP LP0L8: INC 32H ;起步公里数调整,加1 MOV R2,32H CJNE R2,#10,LLPP1 JNC LLPP2LLPP2: MOV 32H,#00H LLPP1: ACALL QBGL ;调整后显示 lJMP LP0L9: DEC 32H ;起步公里数调整,减1 MOV R3,32H CJNE R3,#0,LLPP3 JC LLPP4LLPP4: MOV 32H,#09HLLPP3: ACALL QBGL LJMP LP0 ;转LP0,重新读键 L2: ACALL DANJIA ;调用DANJIA,显示单价 lJMP LP0L12: MOV A,35H ;单价调整 ADD A,#10H ;每次加0.10元 DA A ;BCD码调整 MOV 35H,A MOV A,34H ;34H存储单价的高位 ADDC A,#00H ;调整有进位加1 DA A ;BCD码调整 MOV 34H,A ACALL DANJIA ;调整完,再次显示单价 LJMP LP0L13: MOV A,35H ;单价调整,减0.10元; CLR C SUBB A,#10H JNC LLLL0 MOV A,#090H SETB C DEC 34hLLLL0: ADD A,#0 DA A MOV 35H,A MOV A,34H SUBB A,#00H ADD A,#0 DA A MOV 34H,A ACALL DANJIA ;调整完毕,单价显示 LJMP LP0 ;转LP0,重新读键L3: SETB TR0 ;TR0置1,TO开始计数 LJMP LP0L14: AJMP MAIN ;复位,程序重新运行L15: CPL TR0 ;暂停,程序停止计数和定时 LJMP LP0L16: CLR 30H ;启动T0计数器,开T0中断 MOV IE,#82H SETB TR0 CLR TR1 LJMP LP0L17: SETB 30H ;启动T1定时器,暂停T0计数器 MOV IE,#88H SETB TR1 CLR TR0 ACALL SHIJIAN ;显示等待的时间 ACALL DIR LJMP LP0 L6: CPL 00H ;切换显示总金额和总路程 JNB 00H,LC_1 ;其中00H为标志位,用来记忆 ACALL LC_XS ;显示总路程 ACALL DIR LJMP LP0LC_1: ACALL JE_XS ;显示总金额 ACALL DIR LJMP LP0STFS: MOV R7,#08H ;发送一字节子程序 B1: RLC A MOV P1.2,C SETB P1.1 MOV R6,#02H B2: DJNZ R6,B2 ;循环2次,作用为延时约8US CLR P1.1 MOV R6,#02HB3: DJNZ R6,B3 DJNZ R7,B1 RETSTJS: MOV R7,#08H ;接收一字节子程序A1: SETB P1.1 SETB P1.2 MOV R6,#02HA2: DJNZ R6,A2 ;延时约10US MOV C,P1.2 ;键盘值读入CY RLC A CLR P1.1 MOV R6,#01HA3: DJNZ R6,A3 DJNZ R7,A1 RETKEY: SETB P1.3 ;P1口作为输入 MOV C,P1.3 JC TP2 ;为1转LP2 JB 01H,TP1 LCALL KEY1 ; 键盘指令 SETB 01H RETTP2: CLR 01H ;位清零,无键按下TP1: MOV A,#0FFH RETKEY1: CLR P1.0 ;CS无效 MOV R6,#0CH ;延时LLP1: DJNZ R6,LLP1 MOV A,#15H ACALL STFS ;发送一字节子程序 MOV R6,#06H ;延时LLP2: DJNZ R6,LLP2 ACALL STJS ;接收一字节子程序 SETB P1.0 RETDIR: MOV R5,#08H ;显示程序,循环8次(8个数码管) MOV R0,#52H ;52H为显示缓冲区首址 MOV R1,#97H ;显示码D1: CLR P1.0 ;CS有效,P1.0接CS MOV R6,#0CHD2: DJNZ R6,D2 ;延时,大于25US MOV A,R1 ACALL STFS;输出指令码 MOV R6,#06HD3: DJNZ R6,D3;延时 MOV A,R0 ADD A,#0DH MOVC A,A+PC;查表指令 ACALL STFS ;发送显示数据,即查表后的显示码 MOV R6,#02HD4: DJNZ R6,D4 ;延时 SETB P1.0;一个数码管显示完 INC R0 DEC R1 DJNZ R5,D1 ;延时 RETTAB0: DB 7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH,7BHTAB1: DB 0FEH,0B0H,0EDH,0F9H,0B3H,0DBH,0DFH,0F0H,0FFH,0FBHTAB2: DB 67H,0EH,37H,4FH,0EH,3DH,09H,00HCHE: MOV B,A ;CHE子程序, SWAP A ;用来提取一字节存储的两个BCD码 ANL A,#0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水平三跑《接力跑》教学设计08
- 2025年火电运行值班员中级面试实战演练与答案解析
- 电力基本知识培训课件教学
- 2025年医生求职面试技巧与模拟题集锦
- 电力业务知识培训课件
- 2025年特岗教师招聘面试实战模拟题集萃小学英语教育心理学等
- 2025年人力资源和社会保障局公务员招录考试指南
- 2025年售前技术支持工程师中级面试技巧与模拟题
- 电仪岗位安全知识培训课件
- 血液透析护理服务规范
- 电缆管理制度
- 蒸汽管道改造工程施工组织设计方案
- 铁路工程线施工安全培训
- 货架仓库 喷淋施工方案
- 软件正版化培训
- 保洁大理石清洗合同范例
- 2025年上海市劳务合同经典版(2篇)
- 家庭教育中的家庭规则制定
- 2025届云南省高三高考备考数学模拟检测试卷(含解析)
- 碳中和技术概论 课件 第4、5章 氢能、生物质能
- 降低患者跌倒的发生率
评论
0/150
提交评论