新型出租车计价器设计

上传人:痛*** 文档编号:45643898 上传时间:2021-12-08 格式:DOC 页数:47 大小:3.07MB
返回 下载 相关 举报
新型出租车计价器设计_第1页
第1页 / 共47页
新型出租车计价器设计_第2页
第2页 / 共47页
新型出租车计价器设计_第3页
第3页 / 共47页
点击查看更多>>
资源描述
毕业设计(论文)新型出租车计价器设计NEW DESIGN TAXIMETER学生姓名学院名称专业名称机械设计制造及其自动化指导教师原创性声明本人郑重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用或参考的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标注。本人完全意识到本声明的法律结果由本人承担。论文作者签名: 日期: 年 月 日摘要我国在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.41目录编至三级标题,致谢、参考文献、附录同样按第一层次(章)的编辑要求处理,另起新页,与正文一起顺序用阿拉伯数字编页。目录中各章题序及标题用小四号黑体,其余用小四号宋体。1 绪论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个小磁铁) 8155 单 片 机 P3.5霍尔传感器小磁铁车轮图4-1 传感器测距示意图我们采用A44E霍尔传感器,由于A44E属于开关型的霍尔传感器,其工作电压范围比较宽(4.518V),其输入的信号符合TTL电平标准,可以直接接到单片机的IO 端口上,而且其最高检测频率可达到1MHZ。图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,R3 MOV B,MCLCJ ; 距离的高位和低位与每公里的里程价相乘积 MUL AB MOV R4,B MOV R5,A MOV A,R2 MOV B,MCLCJ MUL AB MOV R2,B ADD A,R5 ADD A,#05H ;与起步价想加,计算出总价的低位R3 MOV R3,A MOV A,R4 ADDC A,R2 ;计算出总价的高位R2 MOV R2,A MOV 40H,R2 MOV 41H,R3 MOV A,30H SUBB A,50H ;第2次的距离的高位减去第1次的距离高位 MOV 42H,A MOV A,31H SUBB 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 定时器/计数器的工作方式选择M1M0工作方式功能说明00方式013位定时器/计数器01方式116位定时器/计数器10方式2具有自动重新装入常数的8位定时器/计数器11方式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, =65536x=5553655536转化为二进制数为D8F0所以TH为0D8 TL为0F020H清0计满24次?小时位(20H)进1,21H清0计满60次?分位(21H)进1,22H清0计满60次?秒位(22H)进1,23H清0计满100次?每0.01秒23H进1定时器初始化 图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,#0F0H PUSH PSW PUSH ACC SETB 0D3H ;保护 INC 23H ;0.01秒加1MOV A,23H CJNE A,#64H,DONE ;1秒到吗? MOV 23H,#00H ;清0.01秒单元 MOV A,22H ADD A,#1 ;秒加1 DA A MOV 22H,A ;十进制调整 AJMP TT1 CJNE A,#60H,DONE ;60秒到吗? MOV 22H,#00H ;秒单元清零 MOV A,21H ADD A,#1 DA A ;分加1.十进制调整 MOV 21H,A CJNE A,#60H,DONE ;60分到吗? MOV 21H,#00H ;分单元清零 MOV A,20H ADD A,#1 DA A ;时加1.十进制调整 MOV 20H,A CJNE A,#24H,DONE ;24小时到吗? MOV 20H,#00H ;时单元清零DONE:POP ACC ;退栈POP PSW RETI 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,R3 MOV B,MCLCJ MUL AB MOV R4,B MOV R5,A MOV A,R2 MOV B,MCLCJ MUL AB MOV R2,B ADD A,R5 ADD A,#05H MOV R3,A MOV A,R4 ADDC A,R2 MOV R2,A MOV 40H,R2 MOV 41H,R3 MOV A,30H SUBB A,50H MOV 42H,A MOV A,31H SUBB A,51HMOV 43H,A MOV 40H,R2 MOV 41H,R3 MOV A,30H SUBB A,50H MOV 42H,A MOV A,31H SUBB 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,A MOV A,R1 MOV R6,A MOV A,R7 ;取二进制数字字数 INC A MOV R3,A ;十进制数字节数 CLR ABD0: MOV R1,A ;结果单元清0 INC R1 DJNZ R3,BD0 MOV A,R7 MOV B,#8 MUL AB ;存二进制数位数 MOV R3,ABD3: MOV A,R5MOV R0,A ;二进制数低位字节地址指针 MOV A,R7 MOV R2,A ;二进制数字节数 CLR CBD1: MOV A,R0 ;二进制数左移一位 RLC A MOV R0,AINC R0 DJNZ R2,BD1 MOV A,R6 MOV R1,A MOV A,R7 MOV R2,A INC R2BD2: MOV A,R1 ADDC A,R1 ;BCD数*2+Cy DA A MOV R1,A INC R1 DJNZ R2,BD2 ;字节数未完,转BD2 DJNZ R3,BD3 ;二进制位数未完,转BD2RET位数到?字节数到?BCD数*2+进位,十进制调整二进制数左移一位二进制位数计数器清除结果单元DSY附录图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显示器(共阴极)显示表示字符DPgfedcba段码(H)0001111113F100000110062010110115B3010011114F401100110665011011016D6011111017D700000111078011111117F9011011116FA0111011177b011111007Cc0011100139d010111105EE0111100179F0111000171P0111001173.1000000080空格0000000000LED显示器的动态显示:所谓动态显示,就是单片机定时地对显示器件扫描。在这种方法中,显示器件分时工作,每次只能有一件器件显示。但由于人的视觉暂留现象,所以,仍感觉到所有的器件都在“同时”显示。这种显示方法的优点是使用硬件少,因而价格低;但占用机时多,只要单片机不执行显示程序,就立刻停止显示。动态显示的亮度与导通电流有关,也与点亮时间和间隔时间的比例有关。图6-2a6-2d采用八段LED共阴极动态显示。(1) 时钟显示显示输出000100图6-2a为时钟显示(图中显示为10点00分00秒)(2) 单价路程显示输出64.-11图6-2b为路程和单价显示(图中显示为总路程11公里,当前单价4.6元)(3) 单价总金额显示输出64.-25.5图6-2c为总金额和单价显示(图中显示为总金额55.2元,每公里4.6元)(4) 速度加速度显示输出1-52.5图6-2d为速度加速度显示(图中显示的速度为15公里/小时,加速度为2.5公里/小时)对于时钟显示,单价路程显示,单价总金额显示,速度加速度显示之四中显示输出,我们采用地址译码器对存储器和I/O口地址译码,产生片选信号,选种某个8155芯片从而进行显示。我们74LS139地址译码器。图6-3 74LS139的引脚图图6.22 74LS138功能表G B AY0 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 ;扫描位初值送R MOV 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 ;延时1ms INC R0 MOV A,R3 JB ACC.5,LD1 RL AMOV R3,A SJMP LD0LD1: RET DB 3FH,06H,5BH,4FH,66H,6DH ;段码数据表 DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,40H,00HDL1:MOV R7,#02H ;延时子程序DL: MOV R6,#0FFHDL6:DJNZ R6,DL1DJNZ R7
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!