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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告

课题名称:单片机原理与应用课程设计学院(部):电气与信息工程学院

专业:电气工程及其自动化

班级:电自1009班

学生姓名:陈志勇

学号: 10401300902

指导老师:石伟

目录

一.设计任务与要求 (3)

1. 主要任务及目标 (3)

2. 单片机最小系统硬件资源介绍 (3)

二.总体设计方案 (4)

1. 设计思路 (4)

2. 芯片功能介绍 (4)

3. 255计数器程序流程图 (7)

4. 出租车计费系统程序流程图 (8)

三.程序的设计 (9)

1. 255计数器程序设计 (9)

2. 出租车计费程序设计 (10)

四.硬件仿真图 (16)

1. 255计数器硬件仿真 (16)

2. 出租车计费系统硬件仿真 (17)

六.设计总结 (17)

1. 遇到的问题及解决方法 (17)

2. 设计体会 (18)

一.设计任务与要求

1. 主要任务及目标

1.1 外部脉冲自动计数,自动显示。

1.1.1设计一个255计数器:0-255计数,计满后自动清0,重

新计数(在数码管中显示)。

1.2 设计一个出租车计费系统:

起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m 刷新计费一次,在8位数码管中,前4位显示数码管显示里程数,后

4位数码管显示价钱(角,元,十元,百元)

二、单片机最小系统硬件资源介绍:

二.总体设计方案

1. 设计思路

1、255计数:

255可用8位二进制数表示,故本设计可直接采用可以重装载的计数器T1模式二进行计数。然后对TL1的内容进行相应的二进制---十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码,并在LED数码管上显示出来。每来一个脉冲其显示的结果加一,直加至255然后T1重新开始计数。

2、出租车计费系统:

本设计所设计的出租车数字计数器的主要功能有:金额输出、路程输出、数据复位、计时计价等。输出采用2个4位8段共阳数码管,车辆行走时前4位显示路程,后4位显示金额。起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m,刷新计费一次。

2. 芯片功能介绍

AT89C51是一款低功耗、高性能CMOS8位微控制器,具有4K可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。

AT89C51具有以下标准功能:4K字节Flash, 256字节RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。其引脚如图3-2所示,下面简要介绍其引脚功能:

图 1 AT89C51引脚图

VCC:电源。本设计中接电源正极。

GND:地。本设计中接电源负极。

P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写"1"时,引脚用作高阻抗输入。

P1口:P1口是一个具有内部上拉电阻的8 位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对 P1 端口写"1"时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写"1"时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。

P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写"1"时,内部上拉电阻把端口拉高,此时可以作

为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。

RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。本设计中不需要外部程序存储器,因此需接高电平。

ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:振荡器反相放大器的输出端。

以上是AT89C51的引脚功能介绍,下面简要介绍AT89C51的存储器结构。AT89C51有单独的程序存储器和数据存储器,外部程序存储器和数据存储器都可以64K寻址。

程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于AT89C51,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。

数据存储器:AT89C51有256字节片内数据存储器。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。

相关文档
最新文档