单片机原理及系统课程设计.docx
- 文档编号:7298585
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:20
- 大小:251.10KB
单片机原理及系统课程设计.docx
《单片机原理及系统课程设计.docx》由会员分享,可在线阅读,更多相关《单片机原理及系统课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
单片机原理及系统课程设计
新能源与动力工程学院
课程设计报告
单片机原理及系统课程设计
专业
电力工程与管理
班级
姓名
学号
指导教师
年月
课程设计任务书
课程名称:
单片机原理及系统课程设计指导教师(签名):
班级:
姓名:
学号:
一、课程设计题目
00-99计数器
二、课程设计使用的原始资料(数据)及设计技术要求:
1.教材
2.课程设计说明书
二、课程设计的目的
通过课程设计,主要达到以下目的:
1.使学生增进对单片机的感性认识,加深对单片机理论方面的理解;
2.使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口等;
3.使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。
3、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等)
利用单片机来制作一个手动计数器,在单片机的管脚接一个轻触开关,作为手动计数的按钮,单片机对正确识别的按键进行计数,计数满时,又从零开始计数。
四、工作进度安排
时间
设计内容
要求
星期一
熟悉题目、查阅资料,拟定设计方案
按要求制定出切实可行的方案
星期二
设计硬件电路及软件程序
完成硬件设计及程序设计
星期三~四
仿真调试及产品焊接
先进行计算机仿真再完成实际焊接
星期五~六
产品整理调试并完成设计报告
实现设计要求,报告按要求装订成册
星期日
答辩
展示产品,并简明扼要自述五分钟
5、主要参考文献
王思明等.2012.单片机原理及应用系统设计.北京:
科学出版社
审核批准意见
系主任(签字) 年 月 日
指导教师评语及成绩评定表
指导教师评语
成绩
设计过程
(40)
设计报告
(50)
小组答辩
(10)
总成绩
(100)
指导教师签字:
年月日
引言
计数是一种最简单的基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量,计数和控制的功能,同时兼有分频功能,计数器由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成。
计数器在数字系统中应用广泛,如在电子计算机的控制中对指令的地址进行计数,以便顺序取出下一条指令,在运算中做乘法,除法运算时记下加法,减法的计数。
计数器可以用来显示产品的工作状态,计数器不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等,但是并无法显示计算结果,一般是通过外接LED和LCD才能显示,随着科学技术的不断提高,计数器的计数范围也越来越大。
计数器的产生意义重大,在人类文明的进步过程中是不可缺少的。
本次课程设计主要是通过自行设计硬件电路、软件程序、仿真调试、元件焊接、程序烧录,使学生增进对单片机的感性认识,加深对单片机理论方面的理解;使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口等;使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。
目录
引言
绪论-1-
1课程设计的目的和要求-3-
1.1设计目的-3-
1.2课程设计题目-3-
1.3设计任务及要求-3-
1.4小组成员任务分配-4-
2系统硬件设计-4-
2.1硬件设计思路-4-
2.2元器件清单-4-
2.3系统框图-5-
2.4电路原理图-6-
3硬件说明-6-
3.1主控芯片STC89C52-6-
3.1.1STC89C52单片机的主要特性-6-
3.1.2STC89C52RC引脚功能说明-8-
3.1.3输入/输出(I/O)引脚P0、P1、P2、P3(共32根)-8-
3.2晶体振荡器-10-
3.3排阻-11-
4.系统软件设计-12-
4.1软件设计思路-12-
4.2程序流程图设计-12-
4.3汇编语言源程序-14-
4.4C语言源程序-15-
5结论-19-
6个人体会-20-
7参考文献-21-
绪论
本设计是根据我们所学习的《单片机原理及应用系统设计》课程,按照课程要求进行的课程检验。
单片机技术是一种不可或缺的技术,尤其是对于我们电力工程与管理专业来说它是我们必须要掌握的技能之一,是我们未来工作和生活的根本。
现在的社会是一个信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单片机的档次和水平在不断地提高,其应用领域也越来越广,成为现代电子系统中最重要的智能化核心部分。
随着计数器技术的不断发展与进步,计数器的种类越来越多,应用范围越来越广,随之而来的竞争也越来越激烈。
过硬的技术也成为众多生产厂商竞争的焦点之一。
厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。
现计数器的种类已增加到电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器、液晶计数器等。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
(1)在智能仪器仪表上的应用,例如精密的测量设备;
(2)在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等;(3)在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
(4)单片机在医用设备领域中的应用 例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
(5)在各种大型电器中的模块化应用 如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
1课程设计的目的和要求
1.1设计目的
通过课程设计,主要达到以下目的:
(1)使学生增进对单片机的感性认识,加深对单片机理论方面的理解;
(2)使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口等;
(3)使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。
1.2课程设计题目
00-99加计数器:
利用单片机来制作一个手动计数器,在单片机的管脚接一个轻触开关,作为手动计数的按钮,单片机对正确识别的按键进行计数,计数满时,又从零开始计数。
1.3设计任务及要求
(1)本次课程设计的原始资料(数据)以教材为主,进行单片机的最小系统设计,单片机的最小系统是由电源、复位、晶振组成。
(2)利用单片机来制作一个手动计数器,在单片机的管脚接一个轻触开关,作为手动计数的按钮,单片机对正确识别的按键进行计数,计数满时,又从零开始计数。
1.4小组成员任务分配
表1小组成员任务分配情况一览表
成员
完成任务
张小虎
统一综合器材说明书,报告定稿
黄巨龙
报告拟定(电路图分析)
谢晨芳
材料采购(程序分析)
闫元元
焊接电路
吴天昊
报告修正(修正错误,文献查找)
2系统硬件设计
2.1硬件设计思路
00-99加计数器硬件系统主要由STC89C52单片机,晶振,电容,数码管,电源等元件组成,利用单片机的P1.0口、P1.1口、P1.2口作控制信号输入端,来控制计数器的开始、暂停以及清零,从而来控制数码管的显示,通过单片中烧入程序,然后利用P3.7口作为输入端,通过点动控制实现开关量的控制和计数,然后再通过数码显示器显示出来。
通过调试仿真从而实现00-99加计数。
2.2元器件清单
元件清单,见下表(表2):
表2元件清单
序号
元件名称
型号(规格)
数量
用途
1
单片机
STC89C52
1
控制核心
2
晶振
12MHZ
1
晶振电路
3
30P瓷片电容
30PF
2
晶振电路
4
电解电容
10UF
1
复位电路
5
电阻
10K
1
复位电路
6
两位一体数码管
F5261BH
1
显示电路
7
三极管
SS8550
2
信号放大
8
按键
Button
3
发出控制信号
9
排阻
A103J
1
上位电阻
10
开关
ON/OFF
1
控制电路
11
电源座
+5V
1
提供电源
2.3系统框图
图1计数器系统框图
2.4电路原理图
电路原理图如图3所示:
图3电路原理图
3硬件说明
3.1主控芯片STC89C52
3.1.1STC89C52单片机的主要特性
STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC的STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,STC89C52芯片引脚图如图4所示。
图4STC89C52芯片引脚图
主要特性:
·与MCS-51兼容
·8K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·6个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
3.1.2STC89C52RC引脚功能说明
(1)主电源引脚VCC和VSS
STC89C52芯片引脚图
VCC——(40脚)接+5V电压;
VSS——(20脚)接地。
(2)外接晶体引脚XTAL1和XTAL2
XTAL1(19脚)接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
XTAL2(18脚)接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端
(3)复位引脚RST
RST(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。
推荐在此引脚与VSS引脚之间连接一个约10k的下拉电阻,与VSS引脚之间连接一个约10μF的电容,以保证可靠地复位。
3.1.3输入/输出(I/O)引脚P0、P1、P2、P3(共32根)
(1)P0口(39脚至32脚):
是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。
我们将P0.1—P0.7口共8个管脚共接一个排阻A103J,作为并行口的上拉电阻,在访问期间,即高电平时,激活内部的上拉电阻。
(2)P1口(1脚至8脚):
是准双向8位I/O口。
由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。
P1口能驱动(吸收或输出电流)4个LS型的TTL负载。
对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2外部控制端。
对EPROM编程和程序验证时,它接收低8位地址。
我们在设计时,将P1.0、P1.1、P1.2管脚各接一个按键开关,其中P1.0口开关发出计数器“开始”指令,P1.1口开关发出“暂停”指令,P1.2口发出“清零”指令。
(3)P2口(21脚至28脚):
是准双向8位I/O口。
在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。
在对EPROM编程和程序验证期间,它接收高8位地址。
P2可以驱动(吸收或输出电流)4个LS型的TTL负载。
我们将P2.6口、P2.7口各接一三极管SS8550,用于放大输出信号,将信号输出至数码管。
(4)P3口(10脚至17脚):
是准双向8位I/O口,在MSS-51中,这8个引脚还用于专门功能,是复用双功能口。
P3能驱动(吸收或输出电流)4个LS型的TTL负载。
作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。
作为第二功能使用时,各引脚的定义如表所示。
值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
如表3所示.
表3P3口管脚备选功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
3.2晶体振荡器
晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。
石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。
石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。
为数据处理设备产生时钟信号和为特定系统提供基准信号。
在单片机中为其提供时钟频率。
石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:
从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。
其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。
只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。
当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。
时钟信号用来提供单片机片内的各种微操作的时间基准,时钟信号通常用两种电路形式得到:
内部振荡和外部振荡。
MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。
外接晶体以及电容C1和C2构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选约12MHz。
3.3排阻
所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。
其余引脚正常引出。
所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。
它在排阻上一般用一个色点标出来。
排阻一般应用在数字电路上,比如:
作为某个并行口的上拉或者下拉电阻用。
使用排阻比用若干只固定电阻更方便。
排阻有A型和B型的区别。
A型排阻的引脚总是奇数的。
它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。
B型排阻的引脚总是偶数的。
它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。
排阻的阻值读法如下:
“103”表示:
10kΩ,“510”表示:
51Ω。
以此类推常用于显示数码管。
在本次课程设计中,我们采用的是A型排阻,阻值为10K。
4.系统软件设计
4.1软件设计思路
实现00-99计数功能,子程序实现将高低电位转化为数码管的十进制数字,实现手动开关计数。
通过手动给脉冲信号,实现计数,再加到99时,在手动给脉冲时,回到初始状态,从而实现00到99计数。
4.2程序流程图设计
程序流程图如下图(图5)所示:
N
Y
N
图50-99计数器程序流程图
4.3汇编语言源程序
CountEQU30H;EQU——标号赋值伪指令
SP1BITP3.7
ORG0
START:
MOVCount,#00H
NEXT:
MOVA,Count
MOVB,#10
DIVAB;A除以B,商(存于)A余(下)B
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
MOVA,B
MOVCA,@A+DPTR
MOVP2,A
WT:
JNBSP1,WT;SP为0转移//中断程序
WAIT:
JBSP1,WAIT;SP为1转移
LCALLDELY10MS;调用显示子程序
JBSP1,WAIT
INCCount;Count加1
MOVA,Count
CJNEA,#100,NEXT;累加器与立即数不等转移
LJMPSTART;返回初始值
DELY10MS:
MOVR6,#20;子程序
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET;子程序返回
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;0---9//子程序
END
4.4C语言源程序
#include
#defineuiunsignedint
#defineucunsignedchar
ucmiao,n,f1,f2;//定义无符号字符型初始变量miao,n,f1,f2;
Uccodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
//数码管显示的段码表
sbityi=P2^7;//P2.7口显示yi
sbiter=P2^6;//P2.6口显示er
sbitkaishi=P1^0;//P1.0口显示开始计数
sbitzanting=P1^1;//P1.1口显示暂停
sbitqingling=P1^2;//P1.2口显示清零
voiddelay(uik)//延时函数
{
uii;//定义无符号整型变量i
ucj;//定义无符号整型变量j
for(i=0;i for(j=0;j<110;j++); }//for循环 voidxianshi() { f1=miao/10;//f1显示十位数 f2=miao%10;//f2表示个位数 yi=0; er=1; P0=tab[f1]; delay(5); yi=1; er=0; P0=tab[f2]; delay(5); } voidanjian() { if(kaishi==0) { delay(20); if(kaishi==0) { miao++; if(miao==100) { miao=0; } } while(kaishi==0); } elseif(zanting==0) { delay(20); if(zanting==0) { miao--; if(miao==(-1)) { miao=0; } } while(zanting==0); } elseif(qingling==0) { delay(20); if(qingling==0) { miao=0; } while(qingling==0); } } voidmain() { miao=0; while (1) { xianshi(); anjian(); } } 5结论 对于80C51单片机的编程,我们使用的是我们所学汇编语言,结合自己所学的及寻找大量资料,我们几个拟定了初步的程序,然后进行修改及用Keil软件进行调试,然后进一步修改,最终在我们努力下,完成了程序。 软件调试是通过对程序的编译、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。 先在keil中为所编的程序设置环境,然后输入程序检测并编译,之后用Proteus将编译好的程序输入到已设计好的电路的AT89C51中,开始模拟调试。 进一步修改,完成设计。 6个人体会 通过一周的单片机课程设计,让人感受颇深,虽然有关于单片机的知识,但更重要的是团队合作。 通过这次的课程设计作品的制作让我对单片机的理论有了更深入的了解,同时在具体的制作过程中我们发现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方面问题,这让我们无法根据书上的理论就轻易的得到预想中的结果,有时甚至差别很大。 通过这次实践使我们更深刻的体会到了理论联系实际的重要性,我们今后学习工作中会更加注重实际,避免成为只会纸上谈兵。 刚开始时,我们有点迷茫,我懂得知识理论的知识但要实际操作,总是有差距的,虽然对于我们来说有一定的难度,但是我们经研究从最简单的编程开始,对于80C51单片机的编程,我们使用的是我们所学汇编语言,结合自己所学的及寻找大量资料,我们几个拟定了初步的程序,然后进行修改及用Keil软件进行调试,然后进一步修改,最终在我们努力下,完成了程序。 结束了软件,我们开始进行硬件,我们用Proteus软件进行绘图和仿真,在这一过程中,我们对该软件有了进一步的认识,与此同时,我们从中也学会了许多关于软件方面的知识。 在仿真过程中,我们遇到一些问题,如: 连线的问题、数码管不显示但通电、寻找合适的器件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 系统 课程设计