简易计数器.docx

上传人:b****9 文档编号:29009700 上传时间:2023-07-20 格式:DOCX 页数:18 大小:634.76KB
下载 相关 举报
简易计数器.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

简易计数器

 

课程设计报告

 

课程名称:

单片机课程设计

专业:

广播电视工程班级:

B1201

姓名:

熊业昌学号:

12405040114

同组人:

朱舟、李佳星、吕杰

成绩:

 

完成日期:

2015年一月七日

任务书

题目:

简易计数器

设计内容及要求:

1、硬件设计

单片机主电路、数码管显示电路等

2、软件设计

系统流程图、各功能程序

3、安装调试

设计环境:

PROTEUS、Keil开发环境

基本目标:

(1)使用单片机实现简易计数器

(2)当从入口出投入物件时,能显示投入的个数(十以内,1位)

扩展功能:

(1)百以内计数(两位);

(2)超过量程,报警后,清零;

(3)达到所需数量,按压开关,清零;

(4)其他。

摘要

本文结合实际使用需求和课程设计课题的要求,简单论述了一种结合数码管显示器可以简单计数的单片机,类似地铁站的硬币收集装置。

该方案以AT89C51单片机、数码管显示器、简单计数开关为基础,重点对设计系统的硬件、软件的设计组成进行论述和分析。

整个计数器系统由四大模块组成:

最小系统、数码管显示器、清零开关、计数开关。

硬件设计在PROTEUS仿真软件完成,软件编程在KeilC软件上完成,最后完成联合仿真。

仿真完成无误后,连接实物,测试并完成课题。

 

关键词:

单片机、数码管显示器、弹片开关

 

目录

 

第一章:

设计说明5

第二章:

单片机主要原理5

第三章:

硬件设计7

第四章:

软件设计8

第5章:

调试与仿真10

第六章:

实物图11

第六章:

心得体会12

附录:

13

第1章:

设计说明

1.1:

设计要求

能够简单进行计数,并将数字显示在数码管显示器上。

对投入系统的硬币可以进行100以类的计数,并且可以随时完成清零操作。

1.2:

确定设计方案

由于红外开关设计较为复杂,所以使用弹片开关。

计数时,必须将硬币准确投进弹片开关,否则有可能没有启动开关,无法计数。

第2章:

单片机主要原理

由于该课程设计主要是AT89C51芯片,将对其进行纤细介绍。

2.1:

单片机概述

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

 

2.2:

芯片简介 

MSC-51芯片简介:

8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

引脚介绍:

 

VCC(40脚):

接+5V电源正端。

VSS(20脚):

接+5V电源地端。

XTAL1(19脚):

接外部石英晶体的一端。

在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。

当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。

P0口(39~32脚):

P0.0~P0.7统称为P0口。

在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。

在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。

P1口(1~8脚):

P1.0~P1.7统称为P1口,可作为准双向I/O口使用。

对于52子系列,P1.0与P1.1还有第二功能:

P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。

P2口(21~28脚):

P2.0~P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。

P3口(10~17脚):

P3.0~P3.7统称为P3口。

除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。

2.3:

单片机最小系统

单片机最小系统是支持主芯片正常工作的最小系统,是单片机工作的最基本配置,包括主控芯片、复位电路和晶振电路。

2.4:

七段共阴极数码管

其引脚从上到下为a、b、c、d、e、f、g,最下为GND。

第3章:

硬件设计

简易计数器系统主要包括:

最小系统、数码管显示器、清零开关、计数开关等。

下面简单进行说明。

3.1:

清零电路的设计

此开关主要用于清零操作。

当系统完成计数时,可以通过此开关完成清零,而不需要使系统达到最大数值才能完成清零操作。

3.2:

计数开关的设计

此开关为特殊开关,主要用来计数。

开关为弹片开关,当有硬币投入时,触发开关,完成计数。

3.3:

显示电路的设计

显示器用来显示硬币数,左边为十位,右边为个位。

3.4:

硬件模拟图

第4章:

软件设计

4.1:

系统模块图

此系统包括输入、显示、清除模块,并全部由单片机控制。

系统通过输入模块计数,然后在显示模块显示数字。

清除模块为辅助模块。

 

4.2:

系统总流程图

 

 

Y

N

N

Y

Y

N

 

第5章:

调试与仿真

根据所学内容,利用KeilC软件和PROTEUS软件进行联合仿真实验。

5.1:

KeilC软件的使用

1.打开KeilC软件,创建一个工程,先单击【工程】选项,在弹出的下拉菜单中选中【新建工程】选项,弹出【新建工程】对话框。

2.编辑源程序文件,选择【文件】菜单下的【新建】,出现文本编辑窗口。

在该窗口输入所要设计的源程序。

3.单击文本框左侧的“目标1”前的“+”号,展开文件夹,,可看到文件夹“源程序组1”,右侧源程序1图标,出现下拉菜单。

4.根据需要配置C51编译器,Debug调试器等各种选项。

5.编译程序,选择【工程】菜单下的【重新构造所有目标】选项,检查错误。

6.调试∕运行程序,编译完成后,选择【调试】菜单下的【启动∕停止调试】选项进行调试运行。

5.2:

PROTEUS仿真软件的使用

1.在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等(简称PROTEUS电路设计); 

  2.在KeilC平台上进行单片机系统源程序设计、编辑、汇编编译、调试,最后生成目标代码文件(*.hex); 

  3.在ISIS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真; 

  4.仿真正确后,安装实际单片机系统电路,并将目标代码文件(*.hex)下载到实际单片机中运行、调试。

若出现问题,可与PROTEUS设计与仿真相互配合调试,直至运行成功。

5.3:

调试结果图(部分)

开启清零开关,所有数据清零。

投入八枚硬币,即弹片开关起合八次。

数据溢出,显示错误。

数据溢出错误后清零,一切重启。

 

第六章:

实物图

弹片开关

第七章:

心得体会

通过这次课程设计,是我更加扎实的掌握了有关单片机和程序编程方面的理解,在设计方面虽然遇到了一些问题,但小组成员经过一遍又一遍的思考和检查终于找到了原因所在,调试的时候发现延时太高,原因是程序汇编时r3和r4数值过小,后期将他们分别调到190和100时,系统运行正常。

过而能改,善莫大焉。

在课程设计中,我们不断发现错误,不断改正,不断领悟,不断获取。

诚然好多地方我没有直接参与,但在汇编方面,经过同学的解释,我终于有了一点点的理解。

课程设计诚然是一门专业课,给予我很多专业知识和专业技能上的提高,同时又是一门思辨课,需要我们能够快速理解老师的问题并能够给予解答。

通过这次课程设计,我理解了单片机硬件连接所需注意的一些方面,比如电阻的阻值选择,最小系统的确定;还有软件汇编方面,我可以简单的了解程序运行是的规律。

最后,通过查询资料,能够简单了解这次课程设计的目的。

实验过程中,也对团队精神进行了考察,让我们在合作起来更加默契,最后看着程序运行的流畅无阻,我们也感到很骄傲。

此次设计也让我明白了思路及出路,有什么不明白的地方必须及时请教同组和查阅网上资料。

只要认真钻研,就没有无法解决的问题。

 

附录程序清单

org0000h;

start:

movp2,#3fh;

movp1,#3fh;

mova,#0h;

movb,#0h;

ljmpstop;

k1:

cjnea,#1h,k2;

movp1,#06h;

ljmpstop;

k2:

cjnea,#2h,k3;

movp1,#5bh;

ljmpstop;

k3:

cjnea,#3h,k4;

movp1,#4fh;

ljmpstop;

k4:

cjnea,#4h,k5;

movp1,#66h;

ljmpstop;

k5:

cjnea,#5h,k6;

movp1,#6dh;

ljmpstop;

k6:

cjnea,#6h,k7;

movp1,#7dh;

ljmpstop;

k7:

cjnea,#7h,k8;

movp1,#07h;

ljmpstop;

k8:

cjnea,#8h,k9;

movp1,#7fh;

ljmpstop;

k9:

cjnea,#9h,k0;

movp1,#6fh;

incb;

ljmpstop;

k0:

cjnea,#0h,k1;

xcha,b;

cjnea,#0ah,k10;

xcha,b;

movp1,#31h;

movp2,#79h;

acalldelay;

ljmpstart;

k10:

movp1,#3fh;

acallm1;

xcha,b;

ljmpstop;

stop:

acallpan;

ljmpk1;主程序结束

m1:

cjnea,#1h,m2;

movp2,#06h;

ret;

m2:

cjnea,#2h,m3;

movp2,#5bh;

ret;

m3:

cjnea,#3h,m4;

movp2,#4fh;

ret;

m4:

cjnea,#4h,m5;

movp2,#66h;

ret;

m5:

cjnea,#5h,m6;

movp2,#6dh;

ret;

m6:

cjnea,#6h,m7;

movp2,#7dh;

ret;

m7:

cjnea,#7h,m8;

movp2,#07h;

ret;

m8:

cjnea,#8h,m9;

movp2,#7fh;

ret;

m9:

cjnea,#9h,m0;

movp2,#6fh;

ret;

m0:

cjnea,#0h,m10;

movp2,#3fh;

ret;

m10:

ret;

delay:

movr2,#10;

de1:

movr3,#190;

de2:

movr4,#100;

de3:

djnzr4,de3;

djnzr3,de2;

djnzr2,de1;

ret;

pan:

mov0ffh,a;

mova,p0;

cjnea,#0h,pan1;

ljmpstart;

pan1:

mova,p3;

cjnea,#0ffh,l0;

mova,0ffh;

ljmppan;

l0:

mova,0ffh;

inca;

acalldelay;

cjnea,#0ah,l1;

mova,#0h;

sjmpl1;

l1:

ret;

end;

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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