出租车计费系统
出租车计价系统控制原理

出租车计价系统控制原理
出租车计价系统控制原理是指出租车上安装的计价器的工作原理和控制方式。
计价器主要由速度传感器、计价装置、显示屏和控制电路等组成。
当车辆行驶时,速度传感器会感应到车轮转速,计算出车辆行驶的距离和时间,并将这些信息传送至计价装置中。
计价装置根据行驶的距离和时间,按照规定的计费标准计算出乘客需要支付的车费,并将其显示在显示屏上。
在控制方面,出租车计价系统主要由计价器和计价控制器两部分组成。
计价控制器是出租车公司或政府监管部门安装在车辆上的一个控制装置,它能够对计价器进行远程控制和管理。
例如,可以设置不同的计费标准,或者对不良司机进行惩罚和处罚。
总的来说,出租车计价系统的控制原理基于计价器和计价控制器的交互作用,确保了乘客支付车费的合理性和公正性,同时也保障了出租车公司和政府监管部门对出租车运营的有效控制和管理。
- 1 -。
基于CPLD的出租车计费系统设计

基于CPLD的出租车计费系统设计一、引言出租车计费系统是指通过计算出租车行驶的距离和时间来确定乘客需要支付的费用的系统。
传统的计费系统通常使用微控制器来控制计费规则和处理计费过程。
然而,随着计算机技术的进步,使用CPLD(复杂可编程逻辑器件)来设计出租车计费系统成为可能。
CPLD具有高度灵活性和可编程性,可以用于实现复杂的计费算法和处理大量的数据。
本文将详细介绍基于CPLD的出租车计费系统的设计方法和流程。
二、设计要求1.支持多种计费规则:根据不同城市的出租车计费规则的差异,计费系统需要支持多种不同的计费规则,包括按里程、按时间和混合计费等规则。
2.精确计算距离和时间:计费系统需要能够精确计算出租车的行驶距离和所花费的时间。
3.实时更新计费:计费系统需要实时更新乘客的费用,并在计费过程中能够实时处理折扣等特殊情况。
4.可配置的费率和计费规则:计费系统需要支持灵活配置费率和计费规则,并能够根据政策的变化进行更新。
5.可靠性和稳定性:计费系统需要具备高可靠性和稳定性,以确保计费过程的准确性。
三、设计方案1.系统框架:基于CPLD的出租车计费系统主要由以下几个部分组成:输入模块、计费算法模块、存储模块、显示模块和输出模块。
输入模块用于获取出租车行驶的距离和时间信息,计费算法模块用于根据距离和时间计算费用,存储模块用于存储费率和计费规则,显示模块用于显示乘客的费用,输出模块用于向乘客输出费用信息。
2.系统流程:(1)输入模块获取出租车行驶的距离和时间信息。
(2)计费算法模块根据距离和时间信息结合存储模块中的费率和计费规则,计算出乘客需要支付的费用。
(3)计费算法模块将计算出的费用存储到存储模块中。
(4)显示模块从存储模块中获取费用,并将费用信息显示给乘客。
(5)输出模块向乘客输出费用信息。
3.系统设计:(1)输入模块:使用距离传感器和时间传感器获取出租车行驶的距离和时间信息,并将数据传输给CPLD。
(2)计费算法模块:根据距离和时间信息以及存储模块中的费率和计费规则,使用CPLD设计计费算法,计算出乘客需要支付的费用。
出租车计费系统设计

4.8 出租车计费系统的设计4.8.1 设计要求设计出租车计费系统,实现出租车按照行驶里程计费,行驶里程在3公里以 内,预置起步费为7元,3公里以上以1.6元/公里计费,当计费总额超过30元, 以 2.4 元/公里计费,车停止结束计费。
车费总额可显示最大值为 99.9 元,能同 步显示对应行驶里程。
模拟出租车启动、暂停、停止等状态,通过动态扫描显示 电路,显示行驶里程和车费总额。
4.8.2 设计过程1.出租车计费系统的设计原理出租车计费系统整体设计框图如图 4.8.1 所示,主要模块包括车轮脉冲计数 模块、里程计数模块、计费模块、动态扫描模块及译码模块。
图 4.8.1 出租车计费系统整体设计框图车轮脉冲计数模块接收来自车轮传感器的脉冲信号, 以及出租车运营过程的 启动、暂停、停止等信号,根据车轮的型号,转换得到百米行驶信号。
里程计数 模块负责统计百米行驶信号,得到行驶里程数据信号,计费模块根据行驶里程以 车轮脉冲计数模块计费模块 里程计数模块动态扫 描及译 码模块车轮脉冲 信号 启动/暂停 停 止 时钟信号及车费规则,得到车费总金额数据信号,将行驶里程和车费总金额数据信号,送 入动态扫描模块及译码模块,供外部数码管显示。
2.车轮脉冲计数模块车路脉冲计数模块接收来自车轮传感器的脉冲信号,经过计数分频,产生出 租车行驶100米的输出信号。
由于不同型号的车轮,直径大小不同,行驶100米车轮转的圈数不同,即车 轮传感器发出的脉冲信号个数不同,对不同车轮应区别对待。
如表481所示, 车轮直径与每公里所转圈数对应表。
表 481 车轮直径与每公里所转圈数对应表车轮直径 500mm 520mm 540mm 560mm 580mm圈数/公里 637 612 590 569 549本设计中我们选取车轮直径为520mm进行讨论,设计程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count ISPORT(clk, reset, start : IN STD_LOGIC;clk_out : OUT STD_LOGIC);END count;ARCHITECTURE behave OF count ISSIGNAL mode : STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL temp : STD_LOGIC_VECTOR(5 DOWNTO 0);TYPE states IS (s0, s1);SIGNAL s_state : states;BEGINmode <= "111101";PROCESS(clk, start, reset)BEGINIF reset = '1' THEN s_state <= s0;temp <= "000000";ELSIF (clk'EVENT AND clk = '1') THENCASE s_state ISWHEN s0 => temp <= "000000";IF start = '1' THENs_state <= s1;ELSE s_state <= s0;END IF;WHEN s1 => IF start = '1' THENIF temp = mode THENtemp <= "000000"; s_state <= s1;ELSE temp <= temp + 1; s_state <= s1;END IF;ELSE s_state <= s0;END IF;END CASE;END IF;END PROCESS;clk_out <= '1' WHEN temp = mode ELSE '0';END behave;以上程序中,当停止键 reset 设为高电平,模块进入停止计数状态(s0);停止键 reset 设为低电平,同时启动/暂停键设为启动状态(start 高电平),进入;设置为暂停(start 低电平),回到s0状态,停止分频计数。
单片机课程设计---出租车计费系统

课程名称:单片机系统课程设计设计题目:出租车计费系统完成期限:自2011 年12 月19 日至2011 年12 月31 日共 2 周1一、设计任务1.1 外部脉冲自动计数,自动显示。
1.1.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
1.1.2设计一个999999计数器:0-999999计数,计满后自动清0,重新计数(在数码管中显示)。
1.2 设计一个出租车计费系统:起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前三位显示数码管显示里程数,后三位数码管显示价钱(角,元,十元)二、设计目的1、掌握寄存器、存储器读写等汇编指令;2、掌握软件编程、编译、调试等基本操作;3、学会程序的基本调试方法;4、熟悉Proteus仿真软件的使用;5、学会单片机最小系统电路原理设计分析,程序设计、调试分析与修改,程序调试等实际操作。
三、硬件资源※89S51单片机;※6位共阳极数码管;※段码驱动器74HC573,位选译码器74HC138;※4路独立式按键;※外部晶振电路;※ISP下载接口(In system program,在系统编程);※DC+5V电源试配器(选配);※ISP下载线(选配)。
四、电路原理分析与设计P1为外部电源输入座(DC+5V),S8为电源最小系统的电源开关,E1和C3为电源滤波,去耦电容。
D1为系统电源指示灯。
J2为ISP下载接口,S7系统复位按键。
CRY1,C1,C2为外部时针电路。
IC1为89S51(DIP-40),左上角为第一脚。
PRE1,PRE2。
为上拉排阻(阻值4.7k—10k)。
J5,J9,J6,J10分别对应单片机的P0,P1,P2,P3口。
便于二次开发。
6路共阳极数码管动态显示电路,P0口通过74HC573(起驱动和隔离作用,让电流通过74CH573流入公共地),来控制数码管的8路段码,P20-P22通过74HC138译码器(使用其中的6路)控制数码管的公共端(中间还有三极管做驱动器)。
出租车计费系统课程设计

出租车计费系统课程设计一、课程目标知识目标:1. 学生能理解出租车计费系统的基本构成和原理;2. 学生能掌握出租车起步价、里程价和等候时间的计算方法;3. 学生了解并掌握实际出租车计费中的分段计费和优惠策略。
技能目标:1. 学生能够运用所学知识设计并实现一个简单的出租车计费系统;2. 学生能够运用计算机编程语言,编写出计费系统的核心算法;3. 学生通过实际操作,培养解决问题的能力和团队协作能力。
情感态度价值观目标:1. 学生在学习过程中,培养对信息技术学科的兴趣和热情;2. 学生通过了解计费系统的实际应用,认识到数学和信息技术在生活中的重要性;3. 学生在团队协作中,学会尊重他人,培养合作精神和沟通能力。
课程性质分析:本课程为信息技术学科,结合数学知识,以提高学生的实际操作能力和解决问题的能力为主要目标。
学生特点分析:本课程针对初中年级学生,他们对计算机编程有一定的基础,具备一定的逻辑思维能力和团队协作能力。
教学要求:1. 教学内容与实际生活紧密联系,提高学生的实践操作能力;2. 教学过程中注重培养学生的团队协作和沟通能力;3. 教学评价以学生的实际操作和解决问题能力为主要标准。
二、教学内容1. 出租车计费系统的基本概念与原理:- 出租车计费系统的组成与功能;- 出租车计费的基本原则与标准。
2. 出租车计费算法:- 起步价、里程价和等候时间的计算方法;- 分段计费和优惠策略的应用;- 计费算法的编写与实现。
3. 编程实践:- 利用计算机编程语言(如Python)设计出租车计费系统;- 编写计费系统核心算法;- 调试、优化和测试计费系统。
4. 教学内容的安排与进度:- 第一课时:介绍出租车计费系统的基本概念与原理,让学生了解计费系统的组成和功能;- 第二课时:讲解出租车计费算法,引导学生学习起步价、里程价和等候时间的计算方法;- 第三课时:学习分段计费和优惠策略,分析实际案例;- 第四课时:编程实践,指导学生编写计费系统核心算法;- 第五课时:调试、优化和测试计费系统,总结学习成果。
(整理)出租车计费系统VHDL.

EDA课程设计:出租车计费系统学生姓名:所在班级:指导老师:完成时间:一、课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;二、课程设计要求实际中出租车的计费工作原理一般分成3个阶段:(1)车起步开始计费。
首先显示起步价(本次设计起步费为7.00元),车在行驶3 km 以内,只收起步价7.00元。
(2)车行驶超过3 km后,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加。
(3)行驶路程达到或超过9 km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费。
车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。
若停止则车费清零,等待下一次计费的开始三、基本设计思想1、根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。
①计数器A完成车费百位。
②计数器B完成车费十位和个位。
③计数器C完成车费角和分。
④计数器D完成计数到30(完成车费的起步价)。
⑤计数器E完成模拟实现车行驶100 m的功能。
2、行驶过程中车费附加50%的功能:由比较器实现。
3、车费的显示:由动态扫描电路来完成。
用专用模块来实现,完成数据的输入即动态数据的显示。
4、通过分析可以设计出系统的顶层框图如图3.1所示:图3.1 系统的顶层框图四、出租车计费系统的实现1、系统的总体框图2、程序流程图图4.2程序流程图3、系统各功能模块的实现(1)模块JIFEI的实现:图 4.3 模块模块JIFEI见图4.3。
输入端口START、STOP、PAUSE、JS分别为汽车起动、停止、暂停、加速按键。
单片机课程设计出租车计费系统,255计数,50000计数

(题目)255计数器、50000计数器、出租车计费系统起电气与信息工程学院单片机课程设计实验报告一、设计任务:1.1 外部脉冲自动计数,自动显示。
1.1.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
1.1.2设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
1.2 设计一个出租车计费系统:起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机实训板上执行。
二、单片机最小系统硬件资源介绍:1 单片机系统数码管和键盘接口电路2 7279A 资料三、设计思路:1、255计数:255可用8位二进制数表示,故本设计可直接采用可以重装载的计数器T1模式二进行计数。
然后对TL1的内容进行相应的二进制---十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。
接着将相应的十进制数进行译码,并在LED数码管上显示出来。
每来一个脉冲其显示的结果加一,直加至255然后T1重新开始计数。
255计数器汇编程序ORG 0000HAJMP START ORG 0300HSTART:MOV DPTR,#0CFE9H MOV A,#0D1HMOVX @DPTR,ANOPNOPNOPNOPNOPNOPNOPNOPMOV TMOD,#50HMOV TH1,#00HMOV TL1,#00HSETB TR1LOOP1:MOV A,TL1MOV B,#64HDIV ABMOV R1,A //存百位MOV A,BMOV B,#0AHDIV ABMOV R2,A //存十位MOV R3,B //存个位MOV DPTR,#0CFE9HMOV A,#80HMOVX @DPTR,A //选择第一个显示管MOV DPTR,#TABMOV A,R1MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ACLR AMOV DPTR,#0CFE9HMOV A,#81HMOVX @DPTR,A //选择第二个显示管MOV DPTR,#TABMOV A,R2MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ACLR AMOV DPTR,#0CFE9HMOV A,#82HMOVX @DPTR,A //选择第三个显示管MOV DPTR,#TABMOV A,R3MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ALJMP LOOP1TAB:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHENDPROTUES仿真图50000计数器设计思路;由于DIV AB指令中A、B均为8位寄存器,因此255二进制转十进制计数的方法不能用于0-50000的循环计数。
出租车计价系统设计

出租车计价系统设计要求: 1.实现计费功能:按行驶里程收费,起步费为7.00元,并在车行3公里后能:能模拟汽车启动、停止、暂停、车速等状态; 3.设计动态扫描电路:显示车费,保存两位小数; 4.仿真验证:观察波形确认电路设计是否正确。 5.实际验证:设计电路下载,检查设计方案的正确性。 6.分析方案:进行资源占用、工作频率及其时间分析以及改进方案分析。
北京出租车详细价目: 1.每公里2元,基价3公里,起价10元; 2.单程15公里以上局部加收50%空驶费; 3.时速低于12公里/小时或等候乘客,每累计5分钟加收1公里费用; 4.晚23时至早5时,每公里租价加收20%;晚23时以后起步价11元; 5.不同乘客合租,按合乘里程各收60%; 6. 租车,每次加收3元 租车费; 7.出北京市,由双方议定收费;过路过桥费由乘客支付。 另:出租车四舍五入按元收费,没有角分的概念;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告项目名称:出租车计价器设计与制作课程名称:单片机技术二级学院:电气与电子工程学院系:电气工程系班级:14电气4班学号:29学生姓名:黄凌周小组成员:刘智超黄凌周指导教师:钟立华成绩:报告完成日期2016年12月20日目录摘要21 课程设计任务书31.1 课程设计任务31.2 课程设计方案32硬件电路设计42.1 振荡电路42.2 复位电路设计52.3 键盘接口电路52.4 显示电路62.4.1 1602LCD的基本参数及引脚功能62.4.2 显示模块采用1602液晶显示接口电路72.5 单片机各引脚功能说明73软件设计103.1 单片机资源使用103.2 单片机软件模块设计103.2.1 中断子函数103.2.2 判键子函数113.2.3 显示子程序113.3 总程序流程框图12总结13参考文献14附录1 元件件清单15附录2原理图16附录3 程序清单17摘要本设计的是一个基于单片机STC89C52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。
复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。
时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。
在上电时字符型液晶1602显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。
通过按键模拟出租车的运行,暂停,停止。
在1602液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。
在这里主要是以STC89C52单片机为核心控制器,P1口接1602液晶显示模块。
关键字STC89C52;1602液晶;出租车计费器1 课程设计任务书1.1 课程设计任务基于单片机出租车模拟计价器,采用at24c02存储芯片+LCD1602液晶显示等设计而成。
用24c02来存储单价,通过按键来模拟增加里程,模拟出租车向前开。
通过液晶显示器显示当前的行驶状态、行驶公里、行驶时间时间(时、分、秒)、费用、单价、等信息。
可以设置每公里单价,以及夜间单价和白天单价的不同模式,设置后掉电无需重新设置,设置有等待/继续计时模式。
计费分行走的里程*单价+等待的时间*价格。
1.2 课程设计方案方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案一如图1.1所示:图1.1方案一方案二:采用EDA技术,根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块计量模块、译码和动态扫描显示模块,其系统框图如图1.2所示:图1.2方案二方案三:采用MCU 技术,通过单片机作为主控器,利用1602字符液晶作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系统流程图,本方案主要是必须对于数字电路比较熟悉,成本又高。
方案图如图1.3所示:图1.3方案三方案总结:通过各个方案的比较本次采用方案三,不但控制简单,而且成本低廉,设计电路简单。
2硬件电路设计2.1 振荡电路单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容和一般取20pF )。
这样就构成一个稳定的自激振荡器。
振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE 信号,此时得到的信号时机器周期信号。
振荡电路如图2.1所示:图2.1振荡电路STC89C521602液晶LED 灯电源电路 按键电路 复位电路2.2 复位电路设计复位操作有两种基本形式:一种是上电复位,另一种是按键复位。
按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。
上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。
上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
按键复位电路图如图2.2所示。
图2.2复位电路2.3 键盘接口电路(1)独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。
I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。
I/O口内部有上拉电阻时,外部可不接上拉电阻。
键盘接口电路如图2.3所示:图2.3键盘接口电路2.4 显示电路2.4.1 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图10所示。
图10 LM016L结构图LCD1602主要技术参数:容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示:表1引脚接口说明表编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 数据2 VDD 电源正极10 D3 数据3 VL 液晶显示偏压11 D4 数据4 RS 数据/命令选择12 D5 数据5 R/W 读/写选择13 D6 数据6 E 使能信号14 D7 数据7 D0 数据15 BLA 背光源正极8 D1 数据16 BLK 背光源负极第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W 为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
2.4.2 显示模块采用1602液晶显示接口电路图2.4显示电路2.5 单片机各引脚功能说明下面对STC89C52各引脚的功能进行较为详细的介绍:1)电源引脚Vcc和VssVcc(40脚):电源端为+5V Vss(20脚):接地端。
2)时钟电路引脚XTAL1和XTAL2XTAL2(18脚):接外部晶体和微调电容的一端。
在单片机内部它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。
若需采用外部时针电路时,该引脚输入外时钟脉冲。
要检查89C52的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。
XTAL1(19脚):接外部晶体和微调电容的另一端。
在片内,它是振荡电路反向放大器的输入端。
在采用外部时钟时,该引脚必须接地。
3)控制信号脚 RST ALE PSEN 和EA。
RST(9脚):RST是复位信号输入端,高电平有效。
在此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
ALE/PROG(30引脚):地址锁存允许信号端。
当STC89C52上电正常工作后,ALE 引脚不断向外输出正脉冲信号。
此频率为振荡器频率fosc的1/6,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。
在CPU访问片外数据存储时,每取值一次(一个机器周期)会丢失一个脉冲。
平时不访问片外存储时,ALE端也以1/6的振荡频率固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。
如果你想看一下STC89C52芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出,如有脉冲信号输出,则STC89C52基本上是好的。
ALE的负载驱动能力为8个LS型TTL(低功耗高速TTL)。
PSEN(29脚);程序存储允许输出信号引脚,在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。
此引脚接ERROM的OE端。
PSEN端有效,即允许读出ERROM/ROM中的指令码。
CPU在从外部ERROM/ROM取指令期间,每个周期PSEN两次有效。
不过,在访问片外RAM时,要少产生两次PSEN负脉冲信号。
要检查一个STC89C52小系统上电后CPU能否正常到ERROM/ROM中读取指令码,也可用于示波器看PSEN端有无脉冲输出。
如有,说明基本上工作正常。
EA/VPP(31脚):外部程序存储器地址允许输入端/固化编程电压输入端。
当EA 引脚接高电平时,CPU只访问片内ERROM/ROM并执行内部程序存储器中的指令。
但在PC(程序计数器)的值超过OFFFH(对8751/8051为4k)时,将自动转向执行片外存储器的程序。
当出入信号EA引脚接低电平(接地)时,CPU只访问外部ERROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。
对于无芯片内的ROM的8031或8032,须外扩ERROM,此时必须将EA引脚接地。
如果使用有片内ROM的STC89C52,外扩ERROM也是可以的,但也要使EA接地。
4)I/O(输入/输出端口,P0,P1,P2,P3)P0口:P0口是一个漏极开路的8位准双向I/O端口。
P1口:8位准双向I/O端口。
P2口:即可以做地址总线输出地址高8位,也可以做普通I/O用,(此时为准双向口)。
P3口:双功能口,即可以做普通I/O口用(此时为准向口,也可以按每位定义实现第二功能操作)。
见表1。
表1 P3口的第二功能表3软件设计3.1 单片机资源使用在本次设计中像电路键盘用到了P2口,其中P2.0到P2.5口作为键盘的输入,显示电路用到了P1和P3口,P1口为液晶的数据口。
3.2 单片机软件模块设计3.2.1 中断子函数对于中断程序,只要定时器计数满就会产生中断50ms中断一次,共计20次,秒钟加1,秒钟计满再分钟加,当分钟加到99时全部清零。
以下是中断子函数的流程图如图3.1所示:3.2.2 判键子函数对于独立式键盘判键,首先看有键按下不,如果有键按下则延时一会儿,在判断是否真的有键按下,如果确实有键按下,在判键释放,最后执行键功能程序。
判键子函数的流程框图如图3.2所示:图3.2判键子程序流程图3.2.3 显示子程序1602液晶是字符型液晶,它的内部自带字符库,它可以写两行的字符,同时每行可以写40个字符,在写显示程序的时候,我们先写命令,再设定字符显示,最后写数据,在每写一次命令或数据都需要判断液晶是否忙。