湖南工业大学 单片机课程设计.docx

上传人:b****6 文档编号:6581159 上传时间:2023-01-08 格式:DOCX 页数:18 大小:457.48KB
下载 相关 举报
湖南工业大学 单片机课程设计.docx_第1页
第1页 / 共18页
湖南工业大学 单片机课程设计.docx_第2页
第2页 / 共18页
湖南工业大学 单片机课程设计.docx_第3页
第3页 / 共18页
湖南工业大学 单片机课程设计.docx_第4页
第4页 / 共18页
湖南工业大学 单片机课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

湖南工业大学 单片机课程设计.docx

《湖南工业大学 单片机课程设计.docx》由会员分享,可在线阅读,更多相关《湖南工业大学 单片机课程设计.docx(18页珍藏版)》请在冰豆网上搜索。

湖南工业大学 单片机课程设计.docx

湖南工业大学单片机课程设计

湖南工业大学

课程设计

资料袋

电气与信息工程学院3学年第1学期

课程名称单片机系统课程设计指导教师李祥飞职称教授

学生姓名曾文龙专业班级电自094学号5

题目0-255和0-999999计数及显示,出租车计费系统

成绩起止日期2011年12月19日~2011年12月31日

目录清单

序号

材料名称

资料数量

备注

1

课程设计任务书

2

课程设计说明书

3

课程设计图纸

4

5

6

湖南工业大学

课程设计任务书

2011—2012学年第1学期

电气与信息工程学院电气工程及其自动化专业电气094班级

课程名称:

单片机系统课程设计

设计题目:

0-255和0-999999计数及显示,出租车计费系统

完成期限:

自2011年12月19日至2011年12月31日共2周

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位数码管中,前三位显示数码管显示里程数,后三位数码管显示价钱(角,元,十元)

起止日期

工作内容

2011.12.19-2011.12.20

讲述设计内容及基本原理

2011.12.21-2011.12.30

进行系统的设计

2011.12.31-2011.12.31

完成课程设计的验收

[1]刘苗生、潘宗预.单片机测控系统设计.中国物质出版社,2006年

[2]欧伟明、何静.单片机原理与应用系统设计.电子工业出版社,2009年

单片机系统课程设计说明书

出租车计费系统

起止日期:

2011年12月19日至2011年12月31日

 

学生姓名

曾文龙

班级

电自094

学号

09401300405

成绩

 

电气与信息工程学院

2011年12月19日

摘要

单片机是单片微型计算机(CPU)的简称,是集CPU、读写寄存器、定时器、计数器和多种接口于一体的微控制器。

它体积小,功耗小,成本低,功能强,广泛应用于智能产品和工业自动化控制领域。

而51系列单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计的目的就是要通过对它的学习应用,从而达到学习、设计、开发单片机软硬件的能力。

此次设计的出租车计费系统,是基于单片机最小系统设计的,利用外围的一些逻辑电路和数码管,来模拟显示出租车计费系统。

最后由protues7.5软件仿真。

关键词:

单片机最小系统,出租车计费

单片机最小系统简介

单片机最小系统电路原理设计分析与讲解

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路)控制数码管的公共端(中间还有三极管做驱动器)。

这样设计的理由:

为了保证该单片机最小系统的二次开发的资源充足和合理性。

如果单只做一个动态显示电路,可以省去74HC573,和74HC138。

图1单片机最小系统原理图

硬件原理图

本次单片机课程设计脉冲计数的基本硬件主要由AT89C51、七段LED数码管显示器连接而成,其AT89C51芯片的P0口和P1口分别与四个七段数码显示管连接实现数码显示功能,P3.2和P3.4相连,实现外部中断与计数的连接,即当外部来一个脉冲实现一次加一计数,中断完成转到跳转程序,计下的数字通过送七段数码管进行显示。

图2硬件原理图

复位电路模块如图4所示

图4复位电路图

软件的设计

出租车计费系统设计要求

设计一个出租车计费系统,起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前三位显示数码管显示里程数,后三位数码管显示价钱(角,元,十元)。

资源分配:

60H-62H存放里程数的BCD码。

70H-72H存放价钱的BCD码。

程序流程图

图5主程序流程图

图6公里计算流程图

 

图7价钱计算子程序流程图

由于延时15ms的程序比较简单故没有画出流程图,程序附在后面附录中。

下同。

附录

出租车计费源程序:

ORG0000H

SJMPMAIN

ORG0030H

MAIN:

MOV60H,#0

MOV61H,#0

MOV62H,#0

MOV70H,#0

MOV71H,#0

MOV72H,#0

MOVTMOD,#01100000B

MOVTH1,#255

MOVTL1,#255

SETBTR1

L1:

JNBTF1,L2

CLRTF1

LCALLKM

LCALLPRICE

L2:

LCALLDISPLAY

SJMPL1

KM:

MOVA,60H

ADDA,#5

MOV60H,A

CJNEA,#10,BTOM

MOV60H,#0

INC61H

MOVA,61H

CJNEA,#10,BTOM

MOV61H,#0

INC62H

MOVA,62H

CJNEA,#10,BTOM

MOV62H,#0

BTOM:

RET

PRICE:

MOVA,62H

CJNEA,#0,SUB11

MOVA,61H

CJNEA,#2,SUB1

MOVA,60H

CJNEA,#0,SUB11

SJMPFIVEY

SUB1:

JCFIVEY

SUB11:

MOVA,70H

ADDA,#8

MOV70H,A

CJNEA,#10,SUB2

SJMPSUB3

SUB2:

JCBTOM2

SUB3:

SUBBA,#10

MOV70H,A

INC71H

MOVA,71H

CJNEA,#10,BTOM2

MOV71H,#0

INC72H

MOVA,72H

CJNEA,#10,BTOM2

MOV72H,#0

SJMPBTOM2

FIVEY:

MOV71H,#5

BTOM2:

RET

DISPLAY:

MOVR0,#70H

MOVR3,#0

MOVR1,#60H

MOVR4,#3

MOVDPTR,#SEG

LOOP:

MOVA,@R0

MOVCA,@A+DPTR

MOVP2,R3

CJNER3,#1,DIS1

ANLA,#7FH

DIS1:

MOVP0,A

LCALLD6MS

MOVA,@R1

MOVCA,@A+DPTR

MOVP2,R4

CJNER4,#4,DIS2

ANLA,#7FH

DIS2:

MOVP0,A

LCALLD6MS

INCR0

INCR1

INCR3

INCR4

CJNER3,#3,LOOP

RET

SEG:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H

D6MS:

MOVR7,#30

DL:

MOVR6,#100

DJNZR6,$

DJNZR7,DL

RET

END

硬件仿真

本次硬件仿真是用的protues7.5软件。

Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译。

仿真图如下:

0-255计数显示

设计要求

设计一个255计数器:

0-255计数,计满后自动清0,重新计数(在数码管中显示)。

70H-72H中分别存放个位、十位、百位。

程序流程图

 

图6主程序流程图图7BCD转换程序流程图图8显示程序流程图

程序清单见附件。

硬件仿真图如下:

0-255计数显示源程序:

ORG0000H

LJMPMAIN

ORG0060H

MAIN:

MOVTMOD,#01100000B

MOVTH1,#0

MOVTL1,#0

SETBTR1

L1:

MOVA,TL1

LCALLTOBCD

LCALLDISPLAY

SJMPL1

TOBCD:

MOVB,#100

DIVAB

MOV72H,A

XCHA,B

MOVB,#10

DIVAB

MOV71H,A

MOV70H,B

RET

DISPLAY:

MOVR1,#70H

MOVR3,#0

MOVDPTR,#SEG

L2:

MOVA,@R1

MOVCA,@A+DPTR

MOVP2,R3

MOVP0,A

LCALLD15MS

INCR1

INCR3

MOVP0,#0FFH;消隐

CJNER3,#3,L2

RET

SEG:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H

D15MS:

MOVR7,#30

DL:

MOVR6,#255

DJNZR6,$

DJNZR7,DL

RET

END

 

255计数仿真图

 

0-999999计数显示

设计要求

设计一个999999计数器:

0-999999计数,计满后自动清0,重新计数(在数码管中显示)。

70H-75H分别存放个位到十万位的BCD码。

 

程序流程图

图9主程序流程图图10COUNT子程序流程图图11显示子程序流程图

程序清单见附录

硬件仿真图

0-999999计数显示源程序:

ORG0000H

SJMPMAIN

ORG0030H

MAIN:

MOV70H,#0

MOV71H,#0

MOV72H,#0

MOV73H,#0

MOV74H,#0

MOV75H,#0

MOVTMOD,#01100000B

MOVTH1,#255

MOVTL1,#255

SETBTR1

L1:

JNBTF1,L3;用MOVA,TL1CJNEA,#0,L3经试验不行

CLRTF1

LCALLCOUNT

L3:

LCALLDISPLAY

SJMPL1

COUNT:

MOVR1,#70H

L2:

INC@R1

CJNE@R1,#10,BTOM

MOV@R1,#0

INCR1

CJNER1,#76H,L2

MOVR1,#70H

BTOM:

RET

DISPLAY:

MOVR0,#70H

MOVR3,#0

MOVDPTR,#SEG

L4:

MOVA,@R0

MOVCA,@A+DPTR

MOVP2,R3

MOVP0,A

INCR0

INCR3

LCALLD6MS;经试验,延时15ms不行

MOVP0,#0FFH

CJNER3,#6,L4

RET

SEG:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H

D6MS:

MOVR7,#30

DL:

MOVR6,#100

DJNZR6,$

DJNZR7,DL

RET

END

 

单片机课程设计体会

为期两周的单片机课程设计,提升了我对单片机的认识也锻炼了自己的动手能力和知识的应用。

在此感谢李老师和实验室老师对我们的帮助和教导。

在和同学的交流中我学会了基本的编程的应用和范例,在以后的学习中我还会更加努力学好单片机。

编写255计数器的过程,我首先参考和同组同学的编程思路和流程图进行编写程序。

整个过程在老师和同学的协助下才完成。

经过255计数的编译,对99999计数器程序的汇编语言编写也就好很多了,编写过程也是参照流程图进行了相应编写。

然后跟据要求,我用Proteus7.5画了模拟仿真图。

编写出租车计费器的过程也和前面计数器的编写思路一样,首先我做了流程图和设计大纲,然后分配确定编译的各支路语言,然后组织好相应的程序编写组织结构。

然后用Protes7.5拟了仿真图,进行汇编导入仿真进行模拟编译显示。

做课程设计时,首先做的是将单片机的最小系统在protues7.5画出,简单元件的放置和连线,最小系统基本完成。

但是我在接下来编程的过程中却出现了问题。

程序中源程序中断出现了一些故障,我没注意程序整体的布局思路,编写过程中位数显示一环出现了倒置。

后在学委耐心的指导下解决了一些问题,后来运行就基本正常了。

在计数编程方面,整个程序还算明朗了,有了先前的铺垫上手好些了。

简而言之,此次的课程设计,我学到了很多的东西。

首先我以后要注意编程的态度问题,还要多操练才能熟练,编程也要适当和同学交流才能发挥团队的优势。

在此感谢老师和同学们对我的帮助,这次单片机课程设计不是结束而是新的开始,以后的日子里我会更加努力,也衷心祝愿老师同学们健康快乐,工作顺利,学习进步

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1