




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南工业大学课 程 设 计资 料 袋 电气与信息工程 学院(系、部) 2011 2012 学年第 1 学期 课程名称 单片机应用系统 指导教师 周汝 职称 讲师 学生姓名 何武 专业班级 自动化092 学号 09401700727 题 目 对外部脉冲计数及出租车计费系统的设计 成 绩 起止日期 2011 年 12 月 19 日 2011 年 12 月 30 日目 录 清 单序号材 料 名 称资料数量备 注1课程设计任务书2课程设计说明书3课程设计图纸张456 湖南工业大学课程设计任务书2011 2012 学年第 1 学期 学院(系、部) 专业 班级课程名称: 单片机应用系统 设计题目: 对外部脉冲计数及出租车计费系统的设计 完成期限:自 2011 年 12 月 19 日至 2011 年 12 月 30 日共 2 周内容及任务11 外部脉冲自动计数,自动显示。111设计一个255计数器:0255计数,计满后自动清0,重新计数(在数码管中显示)。112设计一个50000计数器:050000计数,计满后自动清0,重新计数(在数码管中显示)。12 设计一个出租车计费系统: 起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机实训板上执行。进度安排起止日期工作内容200812.19讲述设计内容及基本原理200812.20-2008.12.28进行系统的设计200812.29-2008.12.30进行系统的调试主要参考资料1 刘苗生、潘宗预. 单片机测控系统设计. 中国物质出版社,2006年指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日2(单片机应用系统)设计说明书(题目)对外部脉冲计数及出租车计费系统的设计起止日期: 2011 年 12 月 19 日 至 2011 年 12 月 30 日学生姓名何武班级自动化092学号09401700727成绩指导教师(签字)电气与信息工程学院(部)年 月 日单片机课程设计指导书电气与信息工程学院实验室一、设计任务:11 外部脉冲自动计数,自动显示。111设计一个255计数器:0255计数,计满后自动清0,重新计数(在数码管中显示)。112设计一个50000计数器:050000计数,计满后自动清0,重新计数(在数码管中显示)。12 设计一个出租车计费系统: 起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机实训板上执行。二、单片机最小系统硬件资源介绍: 89S51单片机; 6位共阳极数码管; 段码驱动器74HC573,位选译码器74HC138; 4路独立式按键; 外部晶振电路; ISP下载接口(In system program,在系统编程); DC+5V电源试配器(选配); ISP下载线(选配)。单片机最小系统实训板硬件资源分布见图1元件布局图和图2电路原理图:其中P1为外部电源输入座(DC+5V),S8为电源最小系统的电源开关,E1和C3为电源滤波,去耦电容。D1为系统电源指示灯。J2为ISP下载接口,S7系统复位按键。CRY1,C1,C2为外部时针电路。IC1为89S51(DIP-40),左上角为第一脚。PRE1,PRE2。为上拉排阻(阻值4.7k10k)。J5,J9,J6,J10分别对应单片机的P0,P1,P2,P3口。便于二次开发。6路共阳极数码管动态显示电路,P0口通过74HC573(起驱动和隔离作用,让电流通过74CH573流入公共地),来控制数码管的8路段码,P20-P22通过74HC138译码器(使用其中的6路)控制数码管的公共端(中间还有三极管做驱动器)。这样设计的理由:为了保证该单片机最小系统的二次开发的资源充足和合理性。如果单只做一个动态显示电路,可以省去74HC573,和74HC138。 图1 元件布局图图2 单片机最小系统原理图三、设计思路:1、255计数:255可用8位二进制数表示,故本设计可直接采用可以重装载的计数器T1模式二进行计数。然后对TL1的内容进行相应的二进制-十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码,并在LED数码管上显示出来。每来一个脉冲其显示的结果加一,直加至255然后T1重新开始计数。开始初始化堆栈,定时器初始化清零相关RAM地址单元TF1=1?调用显示子程序脉冲数加1即20H加120H=100?21H加120清零计算出脉冲数的个,十,百位分别存放于30H,31H,32H(20H=54)&(21H=2?)脉冲数计到255后重新计数即20H,21H清零说明:1. 20H存放脉冲的个位和十位数值,21H存放脉冲的百位和千位数值。 2.计算脉冲数的个位和十位数值:(20H)/10的商即十位数值存放于31H,余数即个位数值存放于30H。 3. 计算脉冲数的百位数值:(20H)/10的余数即百位数值存放于32H。例如:脉冲数212(十进制),(20H)=12,(21H)=2。脉冲的个位数值(30H)=2, 脉冲的十位数值(31H)=1, 脉冲的百位数值(32H)=2. 图3 255计数程序流程图1、255计数:255可用8位二进制数表示,故本设计可直接采用可以重装载的计数器T1模式二进行计数。然后对TL1的内容进行相应的二进制-十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码,并在LED数码管上显示出来。每来一个脉冲其显示的结果加一,直加至255然后T1重新开始计数。1、000255循环计数程序:ORG 0000H AJMP START ORG 0030HSTART: MOV TMOD,#60H ;计数器T1,工作方式2 MOV TH1,#00H;计数初值 MOV TL1,#00H SETB TR1;开启计数器T1 MOV DPTR,#TABLE;查表首地址MAIN: MOV A,TL1;二-十进制转换 MOV B,#64H DIV AB;取百位存于A,余数存于B MOV 30H,A;百位存于30H地址 MOV A,B;取余数继续转换 MOV B,#0AH DIV AB;取十位存于A,个位存于B MOV 31H,A;取十位存于31H地址 MOV 32H,B;取个位存于32H地址 LCALL DISPLAY;显示 JNB TF1,MAIN CLR TF1;清除溢出标志(因为没有开中断,也可以不清除) SJMP MAIN;循环执行DISPLAY: MOV R0,#00H;位选首值MOV R1,#30H;段选值对应首地址MOV R2,#03H;3位数码管,循环3次LOOP1:MOV P2,R0;循环取数 MOV A,R1 MOVC A,A+DPTR;查表取段码 MOV P1,A LCALL DELAY;显示上延时INC R0;改变位选取值INC R1;改变段选对应地址取值 DJNZ R2,LOOP1 RETDELAY: MOV R7,#64H;延时子程序LOOP: NOP NOP NOP DJNZ R7,LOOP RETTABLE: DB 3FH,06H,5BH,4FH,66H;数码管段码显示二进制数 DB 6DH,7DH,07H,7FH,6FH2、050000计数:由于超出了255,而直接将TH1,TL1中的数取出来转换显得有些繁琐,于是采用中断,每中断一次将脉冲数存在Rn寄存器中,而每一个Rn中只存099,计到100就向高位进一,而本寄存器则清零。2、050000循环计数程序:ORG 0000H AJMP START ORG 001BH;中断入口地址 AJMP INTT1 ;转中断程序 ORG 0030HSTART: MOV TMOD,#50H ;计数器T1,工作方式1 MOV TH1,#0FFH ;计数初值 MOV TL1,#0FFH SETB TR1 ;开启计数器T1 SETB EA ;开总中断 SETB ET1 ;开T1中断允许 MOV DPTR,#TABLE;查表首地址 MOV R1,#00H MOV R2,#00H MOV R3,#00H MOV R6,#02HDD: LCALL MAIN ;等待中断处理,循环执行 SJMP DDMAIN: MOV A,R1 ;R1存099 MOV B,#0AH DIV AB MOV 30H,A MOV 31H,B MOV A,R2 ;R2存099,但表示09900 MOV B,#0AH DIV AB MOV 32H,A MOV 33H,B MOV A,R3 ;R3存05,但表示050000 MOV B,#0AH DIV AB MOV 34H,A MOV 35H,B LCALL DISPLAY ;显示 RETINTT1: MOV TH1,#0FFH;继续赋初值 MOV TL1,#0FFH INC R3LOOPA: CJNE R1,#05H,LOOPB;最高位到5转移 DJNZ R6,LOOPD MOV R6,#02H ;为能显示50000专门设置 MOV R1,#00H ;显示了50000后返回0 SJMP LOOPDLOOPB: CJNE R2,#64H,LOOPC;计到99转移 MOV R2,#00H ;清零 INC R1 ;向高位进一 SJMP LOOPA ;继续判断,以防出现显示遗漏LOOPC: CJNE R3,#64H,LOOPD;计到99转移 MOV R3,#00H ;清零 INC R2 ;向高位进一 SJMP LOOPB ;继续判断,以防出现显示遗漏LOOPD: RETI ;中断返回,加一后继续显示DISPLAY:MOV R5,#06H ;显示子程序 MOV R4,#00H MOV R0,#30HL1: MOV P2,R4 ;位选 MOV A,R0 MOVC A,A+DPTR MOV P1,A ;段选 LCALL DELAY INC R4 INC R0 DJNZ R5,L1 RETDELAY: MOV R7,#64H ;延时子程序LOOP: NOP NOP NOP DJNZ R7,LOOP RETTABLE: DB 3FH,06H,5BH,4FH,66H;数码管显示段码二进制 DB 6DH,7DH,07H,7FH,6FH3、出租车计费程序:LL EQU 50 ;假设来一个脉冲表示车轮转的圈数与车轮周长的乘积 ORG 0000H ;即每个脉冲表示车子走的路程设为50m(为显示方便设大点) AJMP START ORG 001BH AJMP INTT1 ;转中断处理 ORG 0030HSTART: MOV SP,#3FH MOV TMOD,#50H ;来2个脉冲表示行进100m,每走100m进入中断处理 MOV TH1,#0FFH MOV TL1,#0FEH SETB TR1 SETB EA SETB ET1 MOV DPTR,#TABLE;查表首地址 MOV R1,#00H MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV R6,#32HDD: LCALL MAIN SJMP DDMAIN: MOV A,R4 ;R4对应数码管前2位,表示路程, MOV B,#0AH ;精度为0.1km DIV AB MOV 30H,A MOV 31H,B MOV A,R2;R2对应数码管3、4位,表示路程,单位为km MOV B,#0AH DIV AB MOV 32H,A MOV 33H,B MOV A,R5 ;R5对应数码管4、5位,表示费用,单位为元 MOV B,#0AH ;精度为0.8元 DIV AB MOV 34H,A MOV 35H,B MOV A,R6;R6对应数码管6、7位,表示费用 MOV B,#0AH DIV AB MOV 36H,A MOV 37H,B LCALL DISPLAY RETINTT1: MOV TH1,#0FFH MOV TL1,#0FEH INC R3 INC R2 CJNE R2,#64H,LOOPC INC R4 MOV R2,#00H ;R2存中断次数LOOPC: CJNE R5,#64H,LOOPA ;R5计到100则重新开始 MOV R2,#00H MOV R4,#00H MOV R1,#00H MOV R3,#00H MOV R5,#00H MOV R6,#32H SJMP LOOPBLOOPA: CJNE R3,#05H,LOOPB ;每中断5次进行相应处理 INC R1 MOV R3,#00H CJNE R1,#05H,LOOPB MOV R1,#04H ;专门设置为处理2.0km以内的计费问题 MOV A,R6 ADD A,#08H ;2.0km以后每加0.5km R6加0.8元 MOV R6,A SUBB A,#64H JC LOOPB;判断R6中的数是否大于100 INC R5;若超出一百,则向R5进一,并舍弃R6的百位 MOV A,R6 MOV B,#64H DIV AB MOV R6,B LOOPB: RETI ;中断返回DISPLAY:MOV P2,#00H ;显示 MOV A,30H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P2,#01H MOV A,31H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P2,#02H MOV A,32H MOVC A,A+DPTR ADD A,#80H MOV P1,A LCALL DELAY MOV P2,#03H MOV A,33H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P2,#04H MOV A,34H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P2,#05H MOV A,35H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P2,#06H MOV A,36H MOVC A,A+DPTR ADD A,#80H MOV P1,A LCALL DELAY MOV P2,#07H MOV A,37H MOVC A,A+DPTR MOV P1,A LCALL DELAY RET DELAY: MOV R7,#64H ;延时子程序LOOP: NOP NOP NOP DJNZ R7,LOOP RETTABLE: DB 3FH,06H,5BH,4FH,66H ;数码管显示段码二进制 DB 6DH,7DH,07H,7FH,6FH四:下图为000255的计数图下图为050000的计数下图为计程车的计费系统图五:课程设计心得时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在两周内完成了。俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,要分析的透彻。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。本次单片机课程设计的任务, 11 外部脉冲自动计数,自动显示。111设计一个255计数器:0255计数,计满后自动清0,重新计数(在数码管中显示)。112设计一个50000计数器:050000计数,计满后自动清0,重新计数(在数码管中显示)。12 设计一个出租车计费系统: 起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机实训板上执行。我们都是在寝室自己动手,编写程序,用proteus仿真。在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过编写程序和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低空经济产业园节能减排管理方案
- 眉山三诊文科数学试卷
- 七上数学沪科版数学试卷
- 机床装配基础知识培训课件
- 养鹅场分层管理与养殖规划方案
- 南宁二模高考数学试卷
- 平邑六年级数学试卷
- 美国小学5年级数学试卷
- 2025年小学语文招编试题及答案
- 辽宁高考文科数学试卷
- GB/T 2820.12-2002往复式内燃机驱动的交流发电机组第12部分:对安全装置的应急供电
- 设备基础知识-动设备课件
- GB/T 12599-2002金属覆盖层锡电镀层技术规范和试验方法
- 2023年哈尔滨市动力区法院书记员招聘笔试模拟试题及答案解析
- 2023年西安陕鼓动力股份有限公司招聘笔试题库及答案解析
- JG-017结构实体位置与尺寸偏差检测作业指导书
- 压铸件常见问题-气孔
- 放射源辐射事故专项应急预案
- 景观工程工作流程解读(PPT)
- 走近数字PCR学习培训课件
- 群控系统试运行及调试方案
评论
0/150
提交评论