新型出租车计价器设计_第1页
新型出租车计价器设计_第2页
新型出租车计价器设计_第3页
新型出租车计价器设计_第4页
新型出租车计价器设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

摘要我国在 70 年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从能够简单的自主计费,到按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展十分迅速。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。随着社会的发展,出租车成为人们生活中非常方便且较普遍的交通工具,但出租车计价器却相对较为落后。在过去,出租车采用机械式计价器,用齿轮比的方式来计算出租车所跑的里程数,并由里程数来换算车费。但是机械齿轮体积较大,计算不是很准确,而且容易磨损。后来又采用了传感器方式,利用传感器接收车的跑动信息,从而计算里程数和车费。随着我国交通事业的发展以及道路的不断改进,出租车作为与人民生活密切相关的行业正在飞速发展壮大。 而出租车计价器的市场也不断扩大.本课题正是在现有计价器的基础上进行改进。现在普通的出租车计价器通常只能够计算出里程数和车费,本课题在原有的基础上进行扩展,使它能够在显示里程和车费的同时,还能够显示时钟,车的速度和加速度。由于出租车计价器是一项技术含量高的产品,因此在设计的过程中由于经验不足,难免会有缺点存在。由于时间关系,还有一些问题尚待改进。关键字 定时器;计数器;传感器AbstractIn the 1970s, I began to taxi, but then the billing system are mostly imported not only inaccurate, the prices are very expensive. With the increasing depth of reform and opening up, the taxi industry momentum of development has been very prominent, and all domestic machinery manufacturers have introduced domestic meter. Taximeter functions independently from the billing, according to the time change in price, and other functions independently With the development of tourism cities, the taxi industry has become the citys window, a symbol of a citys level of civilization. Now all major cities in the taxi industry have universal automatic meter, meter and technological development is a foregone conclusion. And some small cities have not yet universal, but with increasing speed up urban construction, a symbol of urban landscape of the taxi industry will also accelerate the development of the popularity meter is no doubt, therefore, the future of the automobile market still accounted for a very promising . With the development of society, the taxi in which to live in a very convenient and more common means of transport, but the taxi meter is relatively backward. In the past, the use of mechanical taxi meter, and gear than the way by taxi to calculate the mileage run by Miles to convert fare. However, mechanical gear larger, the calculation is not very accurate and easy to wear. Then use the sensor, using sensors to receive the cars running, so as to calculate mileage and fares. As Chinas transport development and road improvements, taxi and the peoples living standard as the industry is closely related to the rapid development and expansion. The taxi meter market also continues to expand. This issue is the existing meter on the basis of improvements. Now ordinary taxi meter is usually only able to calculate the mileage and fares in this issue on the basis of the original expansion to enable it to display mileage and fares, it is also able to show the clock, the vehicle speed and acceleration . As a taxi meter is a high technological content of products, so we designed the course due to lack of experience, difficult There will be free shortcomings. Because of the time, there are still some issues to be improving.Keyword timers counters sensors目录1 绪论.11.1 前言.11.2 单片机计价器的发展.11.3 单片机计价器设计的意义.12 任务要求及目标.23 总体设计方案.33.1 设计思路.33.2 设计总框图.44 检测传感器的设计.54.1 检测传感器的接口.54.2 汽车运行里程,速度,加速度,总价的关系计算.75 单片机定时器/计数器的应用设计.95.1 时钟设计.95.2 计数器功能单元的设计.136 数据的转换及数据显示单元设计.156.1 数据的转换.156.2 数据显示单元设计.187 单片机硬件电路及输入/输出接口设计.237.1 出租车计价器开关设计.237.2 8031 单片机与 8155 的接口237.3 地址译码器与 8155 和 8031 的连接.257.4 LED 的动态扫描显示器接口电路. 268 程序设计.298.1 主程序设计.298.2 定时中断服务程序.308.3 启动/清除计程中断服务程序309 总流程图设计.3110 单片机应用程序设计.37结语.38致谢.39参考文献.40附录.41附录 1.411 绪论1.1 前言毕业设计是学生综合运用所学理论战士的重要体现,是大学中必要的教学环节。通过毕业设计,培养大学生具有一定的创新能力、实践能力和创业精神。毕业设计在培养大学生探求真理、强化社会意识、进行科学研究基本训练、提高综合实践能力与素质等方面,具有不可替代的作用,也是教育与生产劳动和社会实践相结合的重要体现。同时,毕业设计的质量也是衡量教学水平、学生毕业与学位资格认证的重要依据。通过毕业设计,进一步巩固和加深对所学的基础理论、基本技能和专业知识的掌握,使之系统化、综合化。其次,培养学生独立工作、独立思考和综合运用已学知识解决实际问题的能力,尤其注重培养学生开发创造能力和独立获取新知识的能力。最后,使学生初步掌握科学研究的基本方法,获得从事系统科学研究的初步训练,注重科学能力和素质的培养。在实际工程设计中,学生可以得到所学过的理论基础,技术基础,专业课全面的训练,为将来做好机械设计工程师的工作,提供全面的锻炼机会。本论文主要论述了本次毕业设计的课题新型出租车计价器的设计。由于本人水平有限,文中难免有错误和不妥之处,恳请各位老师批评指正。1.2 单片机计价器的发展我国在 70 年代出现出租车,随着出租车行业的普遍和发展势头十分突出,国内各机械厂家纷纷推出国产计价器,计价器在国内也开始普及。在过去,出租车采用机械式计价器,用齿轮比的方式来计算出租车所跑的里程数,并由里程数来换算车费。但是机械齿轮体积较大,计算不是很准确,而且容易磨损。后来又采用了传感器方式,利用传感器接收车的跑动信息,从而计算里程数和车费,计价器计价的准确度和耐磨损程度都得到了很大的提升,出租车计价器的功能从能够简单的自主计费,到按时间自主变动单价等功能。随着我国交通事业的发展以及道路的不断改进,出租车作为与人民生活密切相关的行业正在飞速发展壮大,出租车计价器也在不断的提高和发展,出租车计价器的市场也将不断的扩大,出租车行业已成为城市的窗口,象征着一个城市的文明程度。1.3 单片机计价器论文设计的意义出租车计价器由里程传感器,单片机,显示器等部件组成。现在普通的出租车计价器通常只能够计算出里程数和车费,本课题在原有的基础上进行扩展,使它能够在显示里程和车费的同时,还能够显示时钟,车的速度和加速度。由于出租车计价器是一项技术含量高的产品,因此在设计的过程中由于经验不足,难 免会有缺点存在。由于时间关系,还有一些问题尚待改进。2 任务要求及目标要求和内容:(1) 新型出租车计价器设计总体方案设计(2) 汽车运行里程、速度、加速度检测传感器及接口电路设计,(3) 单片机硬件电路及输入/输出接口设计(4) 单片机应用程序设计目标:利用霍尔传感器及单片机设计出集汽车运行里程、速度、加速度显示和计价于一体的新型出租车计价器3 总体设计方案3.1 设计思路出租车计价器是利用单片机计算总价并送至显示端显示的智能仪器。众所周知,出租车是通过该仪器收费。不过现在常见的出租车计价器只能够显示单价,总价等功能。本设计想对这方面进行扩充,从而能够在显示单价和总价以外,还能够显示,速度,加速度等功能。本电路是以 8031 单片机为中心,附加 A44E 霍尔传感器测量距离,来实现对出租车计价的统计,利用 8155 可编程 I/O 扩展接口与 8031 的连接来传输数据,输出采用八段LED 显示器,利用芯片 8155 和 6 位共阴极显示器的接口电路,实现对 LED 显示器的动态显示。我们把 4 块小磁铁均匀的安装在汽车的车轮上面,我们利用测量工具,测量出汽车轮胎的直径,利用数学公式计算出汽车轮胎的周长,从而计算出每一个脉冲信号所表示的距离。我们把计价器开关的一端接在电源上,另一端接在单片机的 P1.0 端口上,当我们开启开关的时候,单片机开始工作,开始显示。当关闭开关的时候,计价器停止显示。内部定时器的定时时间和计数器的位数,系统晶振频率和计数初值有关,我们根据公式t=(2N-x)*12/fosc 来求出初值,并对定时器进行初始化,当定时器定时的时候,每 0.01 秒进行中断,当计满 100 次的时候(23H),向秒位进 1(22H ) ,同时把 23H 清 0,当秒位计数满 60 次的时候,向分钟位进 1(21H) ,同时把 22H 清 0,当分钟位计满 60 次的时候,向小时位进 1(20H) ,同时把 21H 清 0,当小时位计数满 24 次的时候则把 20H 清 0,各位重新开始计时,完成时钟设计。我们利用安装在车轮上的霍尔传感器对单片机输入脉冲,车轮旋转的时候,当小磁铁靠近霍尔传感器的时候就会产生一个脉冲信号(计数器对外部输入信号进行采样,当一个机器周期的采样值为高电平,而下一个机器周期的采样值变为低电平,即输入脉冲有一个由 1 到 0 的负跳变时)计数器加 1,当内部定时器秒位进 1 的时候,计数器读出所记录的脉冲数,将所得到的脉冲数和每个脉冲所代表的长度相乘,即可算出路程数,将路程的高位和低位分别存入 R2,R3,当定时器下一个 1 秒到来时,计数器中断,将上一次所记录的路程的高位和低位由 R2,R3 分别存到 30H 和 31H 中去,然后读出这一次计数器所记录的脉冲数,将所得到的脉冲数和每个脉冲所代表的长度相乘,即可算出路程数,将路程的高位和低位分别存入 R2,R3。并根据时间,速度,加速度,位移之间的关系计算出速度和加速度。由于在单片机内部的数据进行计算,通常都是采用二进制数,所以,所以我们要把路程,速度,加速度等数据由二进制数转化为压缩 BCD 码。转化完成后,我们把这些数据拆送到显示缓冲区。最后利用 LED 动态显示器进行显示。对于路程,时钟,速度,加速度的显示,我们可以利用地址译码器,对与存储器和I/O 地址译码,产生片选信号,从而选种对应的芯片,从而在相应的接口进行显示。最后利用八段 LED 显示器共阴极动态显示。3.2 设计总框图图 3-2 设计总框图启动/清楚按扭:为 1 时启动计价器,为 0 时关闭计价器。里程传感器:用来记录脉冲数。单片机:在单片机中利用定时器设计出时钟,利用计数器对脉冲进行计数,并且在一定时间内读入脉冲数,进行里程,加速度和速度的计算。地址译码器:当 CE 为 0 时,为低电平,选中该芯片,并在显示电路中,显示对应的内容。并行口:将程序和数据传输到显示电路。显示电路:八段 LED 显示器共阴极动态显示。里程计数与计时中断电路里程传感器启动/清除按钮地址译码器并行口显示电路4 检测传感器的设计4.1 检测传感器的接口里程计算是通过安装在车轮上的霍尔传感器A44E检测到信号,送到单片机,经处理计算,送给显示单元的。其原理如图41所示。图中,当小磁铁靠近霍尔传感器时,产生脉冲信号,霍尔传感器将外部脉冲信号输入到单片机,图中 P3.5 是定时器/计数器 1,计数器接收到脉冲信号就加 1,当定时器秒位进 1 的时候,计数器就读出所记录的脉冲数。路程=R/4*脉冲数(R 为车轮的直径,车轮上平均固定了 4 个小磁铁)图 4-1 传感器测距示意图我们采用A44E霍尔传感器,由于A44E属于开关型的霍尔传感器,其工作电压范围比较宽(4.518V) ,其输入的信号符合TTL电平标准,可以直接接到单片机的IO 端口上,而且其最高检测频率可达到1MHZ。8155单 片 机 P3.5霍尔传感器小磁铁车轮图 4-2 霍尔传感器A44E 集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D 和OC 门输出E 五个基本部分组成。在输入端输入电压VCC ,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差Vh 输出,该Vh 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC 门输出。当施加的磁场达到 工作点( 即Bop )时,触发器输出高电压(相对于地电位),使三极管导通,此时OC 门输出端输出低电压,通常称这种状态为 开 。当施加的磁场达到 释放点( 即Brp )时,触发器输出低电压,三极管截止,使OC 门输出高电压,这种状态为 关 。这样两次电压变换,使霍耳开关完成了一次开关动作。图 4-3 集成霍尔开关外行及接线4.2 汽车运行里程,速度,加速度,总价的关系计算汽车传动系统结构是由发动机,离合器,变速器等组成的。将传感器定位在车轮附近,使其能够在接近小磁铁时,能够接受到脉冲信号,进行计数。将 4 个小磁铁均匀的分布在车轮上,测量出车轮的直径。设车轮的直径是 D,车轮旋转 1 圈有 4 个脉冲。车轮的周长为 D每个脉冲信号所表示的距离为 D/4路程=脉冲数 D/4设 1 次计数器所读入的脉冲数为 N1,下 1 次计数器所读入的脉冲数为 N2S2-S1=(N2-N1) D/4=VTT=1 秒所以 v=S2-S1=(N2-N1) D/4加速度 S2-S1=(N2-N1) D/4=AttT=1 秒所以 A=(N2-N1) R/4设定出租车的起步价为 3 公里(5 元) ,当超过起步价的时候每公里为 10 元。所以总价格 M 为:M=5 元 当 S3 公里M=5+(S-3)10 当 S3 公里MOV 30H,50H ;将第 1 次计算所得到的距离的高位给 30H MOV 31H,51H ;将第 1 次计算所得到的距离的低位给 31HMOV 50H,TH1 ;输入第 2 次的脉冲数高位MOV 51H, TL1 ;输入第 2 次的脉冲数的低位MOV A,51HMOV B,MCLCY ;高位和低位与每个脉冲所表示的距离相乘积MUL ABMOV 52H,BMOV 53H,AMOV A,50HMOV B,MCLCYMUL ABMOV 50H,BADD A,53HMOV 51H,A ;计算出距离的低位 51HMOV A,52HADDC A,50HMOV 50H,A ;计算出距离的高位 50H MOV R2,50H MOV R3,51H MOV A,R3MOV B,MCLCJ ; 距离的高位和低位与每公里的里程价相乘积 MUL AB MOV R4,BMOV R5,AMOV A,R2MOV B,MCLCJMUL ABMOV R2,BADD A,R5ADD A,#05H ;与起步价想加,计算出总价的低位 R3 MOV R3,A MOV A,R4ADDC A,R2 ;计算出总价的高位 R2 MOV R2,AMOV 40H,R2MOV 41H,R3MOV A,30HSUBB A,50H ;第 2 次的距离的高位减去第 1 次的距离高位MOV 42H,AMOV A,31HSUBB A,51H ;第 2 次距离的低位减去第 1 次距离的高位MOV 43H,A 5 单片机定时器/计数器的应用设计我们采用 8031 单片机。如下图:XTAL1:接外部晶体的一端。在单片机内部,它是反相放大器的输入端,该放大器构成了片内振荡器。XTAL2:接外部晶体的另一端。在单片机内部,接至上述振荡器的反相放大器端。P3 各口线的第二功能表口线 第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD(串行口输入)TXD(串行口输出)INTO(外部中断 0 输入)INT1(外部中断 1 输入)T0(定时器 0 的外部输入)T1(定时器 1 的外部输入)WR(外部数据存储器“写”信号输出)RD(外部数据存储器“读”信号输出)图 5-1 8031 单片机5.1 时钟设计设计使用一个定时/计数器每 1/100 s 向主机发一次中断请求信号,并利用并行接口电路完成对时钟的实时显示功能。同时,利用动态扫描电路完成对出租车的起价和当前累计价的显示。同时,当定时/计数器在 1s 中断的时候,用转移指令去执行 T1,令传感器读出所记录的脉冲数。C/T:定时方式或计数方式选择位。当 C/T=1 时。定时器/计数器为计数方式,计数脉冲从外部引脚输入(T0 为P3.4,T1 为 P3.5) 。当 C/T=0 时,定时器/计数器为定时方式,计数脉冲为内部脉冲,其计数脉冲的周期等于机器周期。所以我们采用 C/T=0M1,M0:工作方式选择位。定时器的工作方式由 M1,M0 两位的状态确定,其对应关系如表 5-2 所示。表 2 定时器/计数器的工作方式选择M1 M0 工作方式 功能说明0 0 方式 0 13 位定时器/计数器0 1 方式 1 16 位定时器/计数器1 0 方式 2 具有自动重新装入常数的 8 位定时器/计数器1 1 方式 3 定时器 T1 停止计数,定时器 T0 分为两个 8 位计数器定时器采用定时工作方式 1,在方式 1 中,16 位计数器由两个 8 位寄存器 TH 和 TL组成。其中 TL 计满溢出时,向 TH 进位,16 位计数器计满溢出时,向定时溢出中断标志位进位,使 TF0(TF1)置 1。方式 1 时的逻辑电路结构和控制方式计数位为 16 位计数器结构。T0 的定时方式,工作方式 1,可知 C/T=0,M1M0=01;为实现定时器的运行控制,取GATE=0内部控制,其方式控制字 TMOD 应为 01H,用指令 MOV TMOD,#01H 即可实现。定时方式下的计数初值计算:在定时器/计数器工作在定时方式,其定时时间 t 和计数器位数 n,计数初值 x 及系统的晶振频率 fosc 满足下述关系:t=(2n-x)12/fosc式中 T=12/fosc方式 1:n=16, =65536162x=5553655536 转化为二进制数为 D8F0所以 TH 为 0D8TL 为 0F0定时器初始化每 0.01 秒 23H 进 1计满 100 次?秒位(22H)进 1,23H 清 0计满 60 次?分位(21H)进 1,22H 清 0计满 60 次?小时位(20H)进 1,21H 清 0计满 24 次?20H 清 0 图 5-11 时钟设计的流程图各中断源的中断入口地址如下:中断源 中断入口地址外部中断 0 0003H定时器 T0 中断 000BH外部中断 1 0013H定时器 T1 中断 001BH串行口中断 0023HEA:CPU 中断总允许位。当 EA=1 时,CPU 开放中断,而每个中断源是否允许还是禁止,分别由各自的允许位确定;当 EA=0 时,CPU 屏蔽所有的中断申请,称为关中断,或禁止中断。ET1:定时器 T1 中断允许位。 ET1=1,允许 T1 中断;ET1=0,禁止 T1 中断。ET0:定时器 T0 中断允许位。 ET0=1,允许 ET0 中断;ET0=0,禁止 T0 中断。TR1,TR0:定时器 T1,T0 的运行控制位。该位由软件置位或复位,用于启动或停止定时器工作。TR1(TR0)=1 ,启动定时器 T1(T0)工作;TR1(TR0 )=0,停止定时器T1(T0)工作。时钟的初始化程序如下:ORG 000BHMOV TMOD,#01H ;设定定时器 T0 为定时方式 1MOV TH0,#0D8H ;设置计数初值MOV TL0,#0F0HSETB EA ;开中断 SETB ET0 ;定时器 T0 允许中断SETB TR0 ;启动定时器 T0时钟的中断服务程序:TO:MOV TH0,#0D8H MOV TL0,#0F0HPUSH PSWPUSH ACCSETB 0D3H ;保护INC 23H ;0.01 秒加 1MOV A,23HCJNE A,#64H,DONE ;1 秒到吗?MOV 23H,#00H ;清 0.01 秒单元MOV A,22HADD A,#1 ;秒加 1DA AMOV 22H,A ;十进制调整AJMP TT1CJNE A,#60H,DONE ;60 秒到吗?MOV 22H,#00H ;秒单元清零MOV A,21HADD A,#1DA A ;分加 1.十进制调整MOV 21H,ACJNE A,#60H,DONE ;60 分到吗?MOV 21H,#00H ;分单元清零MOV A,20HADD A,#1DA A ;时加 1.十进制调整 MOV 20H,ACJNE A,#24H,DONE ;24 小时到吗?MOV 20H,#00H ;时单元清零DONE:POP ACC ;退栈POP PSWRETI 5.2 计数器功能单元的设计设计使用计数器,记录外部霍尔传感器所传过来的脉冲数,当定时器每到 1 秒发生中断的时候,计数器也随即读出所记录的脉冲数,把所读出的脉冲数与每个脉冲数所表示的距离相乘积,从而计算出路程,在根据路程,时间,速度,加速度的关系计算出速度和加速度。C/T=1,定时器 /计数器为计数方式,计数脉冲从外部引脚输入(T1 ,P3.5 )M1,M0 我们选择工作方式 1,16 位定时器/计数器。M1=0,M0=1。其方式控制字 TMOD 应为 50H,用指令 MOV TMOD,#50H 即可实现。计数方式下的计数初值:定时器/计数器工作在计数方式时,计数初值可分两种情况确定。(1) 已知计数脉冲的个数 C,则可按下公式计算初值 x:x=M-C=2N-C(M 为计数器的模)(2) 未知计数脉冲的个数,这时计数初值可以任意设定。但要注意初值不能超过对应工作方式时计数器的最大值。由于出租车计价器的脉冲数是未知的,所以我们采用第 2 种情况,由于计数器是加1 计数,如果将计数初值设定为“0” ,那么,在定时器/计数器运行过程中读取的计数器的值就是计数值。这样简化了计算和编程。计数器的初始化编程:MOV TMOD,50HMOV TH1,#00HMOV TL1,#00H计数器的启动用 JB 命令进行控制。JB P1.0,LO ;检测 P1.0(出租车计价器的开关的状态) CLR TR1 ;如果检测到 P1.0=0 即开关处在关闭状态,则把计数器清 0 AJMP DSY ;重新检测 P1.0 的状态LO:SETB TR1 ;检测到 P1.0=1 既开关打开了,则启动计数器 T1当定时器秒单位至 1 的时候,就会执行 AJMP:TT1(跳转到计数器进行计算)TT1: MOV 30H,50H MOV 31H,51HMOV 50H,TH1MOV 51H, TL1MOV A,51HMOV B,MCLCYMUL ABMOV 52H,BMOV 53H,AMOV A,50HMOV B,MCLCYMUL ABMOV 50H,BADD A,53HMOV 51H,AMOV A,52HADDC A,50HMOV 50H,A MOV R2,50H MOV R3,51H MOV A,R3MOV B,MCLCJ MUL AB MOV R4,BMOV R5,AMOV A,R2MOV B,MCLCJMUL ABMOV R2,BADD A,R5ADD A,#05H MOV R3,A MOV A,R4ADDC A,R2 MOV R2,AMOV 40H,R2 MOV 41H,R3MOV A,30HSUBB A,50HMOV 42H,AMOV A,31HSUBB A,51HMOV 43H,A MOV 40H,R2MOV 41H,R3MOV A,30HSUBB A,50HMOV 42H,AMOV A,31HSUBB A,51HMOV 44H,A6 数据的转换及数据显示单元设计6.1 数据的转换单片机内部数据的运算,转移,数据都是二进制数形式。要先将二进制数先转换成BCD 码。二进制数转换为 BCD 码的一般算法是,把二进制数除以 1000,100,10 等 10 的各次幂,所得的商即为千,百,十位数,最后的余数为个位数。现采用如图所示流程图的算法编写子程序。设 R0 为二进制数低位字节地址指针,R7 为二进制数的字节数。R1 为 BCD 码高位字节地址指针。在编写程序前说明两点:(1)n 字节的二进制数转换后的压缩 BCD 码可能为 n+1 个字节(2)用 ADDC 指令对 BCD 码自身加一次,且用 DA A 指令(二,十进制调整指令) ,实现 BCD 码左移一次。DSY: MOV A,R0 ;二转十进制MOV R5,AMOV A,R1MOV R6,AMOV A,R7 ;取二进制数字字数INC AMOV R3,A ;十进制数字节数CLR ABD0: MOV R1,A ;结果单元清 0INC R1DJNZ R3,BD0MOV A,R7MOV B,#8MUL AB ;存二进制数位数MOV R3,ABD3: MOV A,R5MOV R0,A ;二进制数低位字节地址指针MOV A,R7MOV R2,A ;二进制数字节数CLR CBD1: MOV A,R0 ;二进制数左移一位RLC AMOV R0,AINC R0DJNZ R2,BD1MOV A,R6MOV R1,AMOV A,R7MOV R2,AINC R2BD2: MOV A,R1ADDC A,R1 ;BCD 数*2+CyDA AMOV R1,A INC R1DJNZ R2,BD2 ;字节数未完,转 BD2DJNZ R3,BD3 ;二进制位数未完,转 BD2DSY清除结果单元二进制位数计数器二进制数左移一位BCD 数*2+进位,十进制调整字节数到?位数到?RET附录图 6-1 多字节二翻十流程图6.2 数据显示单元设计采用 LED 显示器,LED 是发光二级管,它是一种将电能转为光能的发光器件,根据制造材料的不同有发出白,红,黄,绿等不同的光来。LED 的导电性能类似普通的二极管,正向电压约为 1.52V,工作电流在 1020MA 之间适宜。LED 显示器由七段条形的发光二极管组成,平面布置呈“日” ,各段依次为a,b,c,d,e,f,g还附带小数点 dp,所以也称为八段 LED 显示器。八段显示器有共阴极和共阳极两种结构。公阳极 LED 显示器的所有二极管的阳极并接公共端 COM,当 COM 接+5V 时,则某一段极通过限流电阻低电平,该段点亮。共阴极的 LED 显示器,当阴极 COM 端接地,某段二极管的阳极通过限流电阻接高电平时,该段点亮。通过八段发光管点亮时的不同组合,可以显示 09 和 AF 等字符如果加到各段阳极上的代码不同,则控制着显示器显示不同的字符和数字,这个代码称为段码。 表 6-2 列出七段 LED 显示器(共阴极)显示的数字,字符和对应的段码的关系。共阳极显示器的段码与共阴极显示器的段码是逻辑非的关系,所以对表 1 中的共阴极显示器的段码求反,即可得到共阳极显示器的段码。表 6-2 七段 LED 显示器(共阴极)显示表示字符 DP g f e d c b a段码(H)0 0 0 1 1 1 1 1 1 3F1 0 0 0 0 0 1 1 0 062 0 1 0 1 1 0 1 1 5B3 0 1 0 0 1 1 1 1 4F4 0 1 1 0 0 1 1 0 665 0 1 1 0 1 1 0 1 6D6 0 1 1 1 1 1 0 1 7D7 0 0 0 0 0 1 1 1 078 0 1 1 1 1 1 1 1 7F9 0 1 1 0 1 1 1 1 6FA 0 1 1 1 0 1 1 1 77b 0 1 1 1 1 1 0 0 7Cc 0 0 1 1 1 0 0 1 39d 0 1 0 1 1 1 1 0 5EE 0 1 1 1 1 0 0 1 79F 0 1 1 1 0 0 0 1 71P 0 1 1 1 0 0 1 1 73. 1 0 0 0 0 0 0 0 80空格 0 0 0 0 0 0 0 0 00LED 显示器的动态显示:所谓动态显示,就是单片机定时地对显示器件扫描。在这种方法中,显示器件分时工作,每次只能有一件器件显示。但由于人的视觉暂留现象,所以,仍感觉到所有的器件都在“同时”显示。这种显示方法的优点是使用硬件少,因而价格低;但占用机时多,只要单片机不执行显示程序,就立刻停止显示。动态显示的亮度与导通电流有关,也与点亮时间和间隔时间的比例有关。图 6-2a6-2d 采用八段 LED 共阴极动态显示。(1) 时钟显示显示输出图 6-2a 为时钟显示(图中显示为 10 点 00 分 00 秒)(2) 单价路程显示输出1 0 0 0 0 0图 6-2b 为路程和单价显示(图中显示为总路程 11 公里,当前单价 4.6 元)(3) 单价总金额显示输出图 6-2c 为总金额和单价显示(图中显示为总金额 55.2 元,每公里 4.6 元)(4) 速度加速度显示输出图 6-2d 为速度加速度显示(图中显示的速度为 15 公里/小时,加速度为 2.5 公里/小时)对于时钟显示,单价路程显示,单价总金额显示,速度加速度显示之四中显示输出,我们采用地址译码器对存储器和 I/O 口地址译码,产生片选信号,选种某个 8155 芯片从而进行显示。我们 74LS139 地址译码器。1 1 - - 4. 65 5. 2 - 4. 62. 5 - - 1 5图 6-3 74LS139 的引脚图图 6.22 74LS138 功能表G B A Y0 Y1 Y2 Y31 0 01 0 11 1 01 1 10 1 1 11 0 1 11 1 0 11 1 1 0CE:片选信号,低电平有效,由 CE 是否有效来决定该芯片是否被选种。由于单片的存储容量是有限的,因此需要用若干片才能组成一个实用的存储器。地址不同的存储单元可能处于不同的芯片中,所以在访问存储器单元时,应选种其所属的芯片。只有当片选信号(CE)加上有效信号时,才能对该芯片进行读 /写操作。一般,片选信号由地址码的高位经译码产生的。当 G=1,B=0,A=0 的时候,Y0=0 ,Y1=1,Y2=1,Y3=1。此时因为 Y0=0 输入的是低电平,所以片选信号选上了该芯片进行工作,其余的都是高电平,片选信号,其所在芯片未被选中。7 单片机硬件电路及输入/输出接口设计7.1 出租车计价器开关设计出租车计价器开关与单片机 P1.0 口相连接,利用 JB P1.0 L0 指令对其进行控制,当检测到 P1.0=1 的时候,启动定时器 1(SETB TR1)当检测到 P1.0=0 的时候返回,重新检测.其连接如图所示:图 7-1 计价器开关接口图7.2 8031 单片机与 8155 的接口图 7-2 8155 的引脚图8155 是有两个 8 位并行 I/O 端口 A 和 B,一个 6 位并行 I/O 端口 C,256 个字节的静态 RAM,一个 14 位定时器/计数器及其控制逻辑电路。8155 的地址数据线 AD7AD0 是低 8 位地址线和数据总线分时复用的,当 ALE=1 时,输入低 8 位地址,否则是数据。因此 8155 可直接与 MCS-51 单片机连接,无需另外增加地址锁存器。MCS51-单片机可以与 8155 直接连接而不需要任何外加逻辑器件8031 与 8155 的接口方式如下图 7-3图 7-3 8155 和 8031 的接口电路图中,8031 的 P0 口输出直接与 8155 的 AD7AD0 相连,即作低 8 位地址线又做数据总线,地址的锁存是直接用 ALE 在 8155 内部锁存。8031 的 P2.7 和 P2.0 分别与 8155的 CE,IO/M 相连。当 P2.7 为低电平时,选中 8155。这时,若 P2.0=1,则访问 8155 的I/O 口;若 P2.0=0 则访问 8155 的 RAM 单元。由此可知, 8155 的地址分配如下。(1) RAM 字节地址:7E00H7EFFH(2) I/O 口地址: A 口地址为 7F01H,B 口地址为 7F02H,C 口地址为 7F03H,命令/状态地址为 7F00H,定时器低 8 位地址为 7F04H,定时器高 8 位地址为 7F05H。7.3 地址译码器与 8155 和 8031 的连接当 CE=0 的时候,选种该芯片地址译码器又有部分译码器和全译码两种方式。部分译码是指,未用的高位地址线部分参加译码,其译码输出分别连接到不同的片选端。这种方法的特点类似于线选法,地址有重叠区,地址空间分散。全译码是指,除存储器芯片所用地址线与 CPU 的地址线对应相连外,未用的地址线全部参加译码,通过地址译码器产生的存储器的片选信号。我们采用全译码,这种方法的特点是存储器地址没有重叠区,存储单元地址是惟一的。一般都采用这种译码方法。图 7-4 地址译码法片选信号7.4 LED 的动态扫描显示器接口电路对于图 7.4 中的 6 位显示器,在 8031 片内 RAM 存储器中设置 6 个显示缓冲器单元69H6EH,79H7EH,89H8EH,99H9EH 分别在 4 个 8155 芯片中,存放 6 位显示数据。8155 的 PA 口扫描输出总是只有 1 位为高电平,即 6 位显示器中仅有 1 位公共阴极为低电平,其它位为高电平;8155 的 PB 口输出相应位(阴极为低)的显示数据的段码,使某一位显示出一个字符,其他位为暗。依次地改变 PA 口输出为高位,PB 口输出对应的段码,则 6 位显示器就显示出由缓冲器中显示数据所确定的字符。图 7-5 LED 的动态扫描显示器接口电路下面是根据图 7-4 所示结构显示子程序的程序的程序框图和程序清单。程序清单:DIR:MOV R0,#79H ;置缓冲器指针初值MOV R3,#01H ;扫描位初值送 RMOV A,R3LD0:MOV DPTR,#7F01H ;8155 的 PA 口地址MOVX DPTR,A ;扫描位送 PA 口INC DPTR ;8155 的 PB 口地址MOV A,R0 ;取显示数据ADD A,#0DH ;加偏移量MOVC A,A+PC ;查表取段码数据DIR1:MOVX DPTR,A ;段码8155 的 PB 口ACALL DL1 ;延时 1msINC R0MOV A,R3JB ACC.5,LD

温馨提示

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

评论

0/150

提交评论