单片机课程设计:对外部脉冲计数及出租车计费系统的设计

上传人:飞*** 文档编号:41177277 上传时间:2018-05-28 格式:DOC 页数:18 大小:383.50KB
返回 下载 相关 举报
单片机课程设计:对外部脉冲计数及出租车计费系统的设计_第1页
第1页 / 共18页
单片机课程设计:对外部脉冲计数及出租车计费系统的设计_第2页
第2页 / 共18页
单片机课程设计:对外部脉冲计数及出租车计费系统的设计_第3页
第3页 / 共18页
单片机课程设计:对外部脉冲计数及出租车计费系统的设计_第4页
第4页 / 共18页
单片机课程设计:对外部脉冲计数及出租车计费系统的设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机课程设计:对外部脉冲计数及出租车计费系统的设计》由会员分享,可在线阅读,更多相关《单片机课程设计:对外部脉冲计数及出租车计费系统的设计(18页珍藏版)》请在金锄头文库上搜索。

1、1湖南工业大学课 程 设 计电气与信息工程 学院(系、部) 2011 2012 学年第 1 学期 课程名称 单片机应用系统 指导教师 职称 讲师 学生姓名 专业班级 自动化 092 学号 09401700727 题 目 对外部脉冲计数及出租车计费系统的设计 2湖南工业大学课程设计任务书2011 2012 学年第学年第 1 学期学期学院(系、部) 专业 班级课程名称: 单片机应用系统 设计题目: 对外部脉冲计数及出租车计费系统的设计 完成期限:自 2011 年 12 月 19 日至 2011 年 12 月 30 日共 2 周内 容 及 任 务11 外部脉冲自动计数,自动显示。111 设计一个 2

2、55 计数器:0255 计数,计满后自动清 0,重新计数(在数码管中显示) 。112 设计一个 50000 计数器:050000 计数,计满后自动清 0,重新计数(在数码管中显示) 。 12 设计一个出租车计费系统: 起步价为 5 元(2km 以内) ,2km 后,0.8 元/0.5km;要求每 500m 刷新计费一次,在 8 位数码管中,前 3 位显示数码管显示里程数,后 3 位数码管显示价钱(角,元,十元,百元) 注:要求首先采用 PROTEUS 完成单片机最小系统的硬件电路设计及 仿真;程序仿真测试通过后,再下载到单片机实训板上执行。起止日期工作内容200812.19讲述设计内容及基本原

3、理200812.20-2008.12.28进行系统的设计200812.29-2008.12.30进行系统的调试进 度 安 排主 要 参 考 资 料1 刘苗生、潘宗预. 单片机测控系统设计. 中国物质出版社,2006 年指导教师 (签字): 年 月 日系(教研室)主任( 签字): 年 月 日(单片机应用系统)设计说明书(题目)对外部脉冲计数及出租车计费系统的设计起止日期: 2011 年 12 月 19 日 至 2011 年 12 月 30 日学生姓名 班级自动化 092学号09401700727成绩指导教师 (签字 )电气与信息工程学院(部)电气与信息工程学院(部)年年 月月 日日单片机课程设计

4、指导书单片机课程设计指导书电气与信息工程学院实验室一、设计任务:一、设计任务: 11 外部脉冲自动计数,自动显示。111 设计一个 255 计数器:0255 计数,计满后自动清 0,重新计数(在数码管中显示) 。112 设计一个 50000 计数器:050000 计数,计满后自动清 0,重新计数(在数码管中显示) 。 12 设计一个出租车计费系统: 起步价为 5 元(2km 以内) ,2km 后,0.8 元/0.5km;要求每 500m 刷新计费一次,在 8 位数码管中,前 3 位显示数码管显示里程数,后 3 位数码管显示价钱(角,元,十元,百元) 注:要求首先采用 PROTEUS 完成单片机

5、最小系统的硬件电路设计及仿 真;程序仿真测试通过后,再下载到单片机实训板上执行。二、单片机最小系统硬件资源介绍:二、单片机最小系统硬件资源介绍: 89S51 单片机; 6 位共阳极数码管; 段码驱动器 74HC573,位选译码器 74HC138; 4 路独立式按键; 外部晶振电路; ISP 下载接口(In system program,在系统编程) ; DC+5V 电源试配器(选配) ; ISP 下载线(选配) 。单片机最小系统实训板硬件资源分布见图 1 元件布局图和图 2 电路原理图:其中 P1 为 外部电源输入座(DC+5V) ,S8 为电源最小系统的电源开关,E1 和 C3 为电源滤波,

6、去耦 电容。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 路)控制数码管的公共端(中间还有三极管做驱动器) 。这样

7、设计的理由:为了保证 该单片机最小系统的二次开发的资源充足和合理性。如果单只做一个动态显示电路,可以 省去 74HC573,和 74HC138。图 1 元件布局图EA/VP31X119 X218RESET9RD17 WR16INT012INT113T014T115P10/T1 P11/T2 P123 P134 P145 P156 P167 P178P0039 P0138 P0237 P0336 P0435 P0534 P0633 P0732P2021 P2122 P2223 P2324 P2425 P2526 P2627 P2728PSEN29ALE/P30TXD11RXD10VCC40 GN

8、D20IC189S51C1 30PC2 30PCRY1 12MHzVCCE2 10UFS7VCCVCCR3 4.7KR4 4.7K1 2 3 4 5 6 7 8J5P0.01 2 3 4 5 6 7 8J6P2.012345678J9P1.012345678J10P3.0P10P11P12P13P14P15P16P17 WRRDR188.2KD1POWER R171KA81 2 3 4 5 6 7 8 9J15.1kA9 A10VCCP10 P11 P12 P13 P14RXD TXDOC1C111D2 2D3 3D4 4D5 5D6 6D7 7D8 8D91Q19 2Q18 3Q17 4Q1

9、6 5Q15 6Q14 7Q13 8Q12U174HC573ALEINT0INT1T0T1T0T1INT0INT1RXDTXDWRRDA8 A9 A10 A11 A12 A13 A14 A15A8 A9 A10 A11 A12 A13 A14 A15VCCDB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7C5 104C4 104S3S4S5S6P10P11P12P131 2J7ALEALER5 4.7KR6 4.7KR7 4.7KR8 4.7KVCCYS0YS1A1 B2 C3E14 E25 E36Y015 Y114 Y

10、213 Y312 Y411 Y510 Y69 Y77U274LS138YS2YS3YS4YS5132Q5 PNP132Q6 PNP132Q7 PNP132Q8 PNP132Q4 PNP132Q3 PNPAYS0BYS1CYS2DYS3EYS4FYS5GYS6DPYS7VCCA B C D E F G DPa11 b7 c4 d2 e1 f10 g5 dp3com112com29com38com46S2DPY_8SEG_4WMOSI MISO SCK RESET VCC GND RESET1 2 3 4 5 6 7 8 9 10J2CON101 2 3 4 5J4CON5MOSI MISO SC

11、KR9 R10 R11 R12 R13 R14 R15 R16A B C D E F G DPC3 104E1 220UFVCCDB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7VCCS8SW1 2J8CON2C6 104P1 DC+5Vc8e7 f4dp2g1b9a3d6com15com210S1 DPY-8SEG-2WVCCRESETRESET图 2 单片机最小系统原理图三、设计思路:三、设计思路:1、255 计数:255 可用 8 位二进制数表示,故本设计可直接采用可以重装载的计数器T1 模式二进行计数。然后对 TL1 的内容进行相应的二进制-十进制转换:首先 TL1 的内容

12、除以 64H,所的商就是十进制的百位,然后用余数除以 0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码,并在 LED 数码管上显示出来。每来一个脉冲其显示的结果加一,直加至 255 然后 T1 重新开始计数。开始初始化堆栈,定时器初始化清零相关 RAM 地址单元TF1=1?调用显示子程序脉冲数加 1即 20H 加 120H=100?21H 加 120 清零计算出脉冲数的个,十,百位分别存放于 30H,31H,32H(20H=54)计数器 T1,工作方式 2MOV TH1,#00H;计数初值MOV TL1,#00HSETB TR1;开启计数器 T1MOV

13、 DPTR,#TABLE;查表首地址 MAIN: MOV A,TL1;二-十进制转换MOV B,#64HDIV AB;取百位存于 A,余数存于 BMOV 30H,A;百位存于 30H 地址MOV A,B;取余数继续转换MOV B,#0AHDIV AB;取十位存于 A,个位存于 BMOV 31H,A;取十位存于 31H 地址MOV 32H,B;取个位存于 32H 地址LCALL DISPLAY;显示JNB TF1,MAINCLR TF1;清除溢出标志(因为没有开中断,也可以不清除)SJMP MAIN;循环执行 DISPLAY: MOV R0,#00H;位选首值 MOV R1,#30H;段选值对应

14、首地址 MOV R2,#03H;3 位数码管,循环 3 次 LOOP1: MOV P2,R0;循环取数MOV A,R1MOVC A,A+DPTR;查表取段码MOV P1,ALCALL DELAY;显示上延时 INC R0;改变位选取值 INC R1;改变段选对应地址取值DJNZ R2,LOOP1RET DELAY: MOV R7,#64H;延时子程序 LOOP: NOPNOPNOPDJNZ R7,LOOPRET TABLE: DB 3FH,06H,5BH,4FH,66H ;数码管段码显示二进制数DB 6DH,7DH,07H,7FH,6FH2、050000 计数:由于超出了 255,而直接将 T

15、H1,TL1 中的数取出来转换显得有些繁琐,于是采用 中断,每中断一次将脉冲数存在 Rn 寄存器中,而每一个 Rn 中只存 099,计到 100 就向高位进一,而 本寄存器则清零。 2、050000 循环计数程序: ORG 0000HAJMP STARTORG 001BH;中断入口地址AJMP INTT1 ;转中断程序ORG 0030H START: MOV TMOD,#50H ;计数器 T1,工作方式 1MOV TH1,#0FFH ;计数初值MOV TL1,#0FFHSETB TR1 ;开启计数器 T1SETB EA ;开总中断SETB ET1 ;开 T1 中断允许MOV DPTR,#TABLE;查表首地址MOV R1,#00HMOV R2,#00HMOV R3,#00HMO

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号