基于1602加减法单片机资料.docx
《基于1602加减法单片机资料.docx》由会员分享,可在线阅读,更多相关《基于1602加减法单片机资料.docx(19页珍藏版)》请在冰豆网上搜索。
基于1602加减法单片机资料
常熟理工学院
电气与自动化工程学院
《微机原理与接口技术》课程设计
题目:
基于1602加减法
计数系统的设计
姓名:
学号:
班级:
指导教师:
起止日期:
2015.7.6—2015.7.10
目录
第1章引言1
1.1设计任务与要求1
1.2作品设计思路及方案2
第2章硬件设计2
2.1单片机功能的介绍2
2.2proteus介绍3
2.3电路原理图4
2.3.1复位电路4
2.3.2晶振电路5
2.3.3指示灯电路设计5
2.3.4AT89C51单片机6
2.3.574LS48芯片介绍7
2.3.6七段数码管8
第3章软件设计9
3.1软件主程序设计9
3.2软件设计的流程图9
3.3软件代码10
第4章系统调试14
总结17
参考文献18
第1章引言
抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合中,它能迅速、客观地分辨出最先获得发言权的选手。
本课题是利用89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器原理,将软、硬件结合起来,使得系统能够正确的进行计时,数码管可以正确的显示时间和选手号码。
同时系统能后实现:
在抢答过程中只有在主持人按下开始抢答键开始之后5秒以内抢答才被认为抢答有效,如果在开始抢答之前抢答则被视为犯规(抢答无效)。
在抢答成功之后相应的发光二极管会点亮,数码管也会显示选手的号码。
同时还有主持人控制的系统复位键,以实现系统的复位。
还有按键锁定,在第一个选手抢答成功或者犯规状态下其他按键均无效。
1.1设计任务与要求
1、抢答器同时供4名选手比赛,分别用4个按键S0~S3表示。
2、设置一个系统复位和抢答控制按键S,该按键由主持人控制的。
3、抢答器具有数码显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人讲系统复位为止。
4、参赛选手在规定时间内抢答,则抢答有效,定时器停止工作,显示器上显示选手的编号并保持到支持人将系统清除位置。
5、若再规定时间内没有人抢答,则数码管关闭,违规灯亮,那主持人则按复位按键,跳至下一题。
1.2作品设计思路及方案
方案:
该设计中采用AT89C51芯片、LED显示器、LED灯和一些独立式按键构成一个简易四路抢答器。
设计中是采用单片机的内部定时器进行定时,原理框图如图1所示。
图1
整个抢答器的工作原理是:
在正常的供电状态下,开始抢答时利用单片机倒计时,并由单片机将所需要显示的数据送到LED显示器的输入口,当有按键按下时则执行相应按键功能程序。
知识点:
AT89C51、数码管、定时中断、按键、74LS48
第2章硬件设计
2.1单片机功能的介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的将:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜,为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
单片机是由运算器、控制器、储存器、输入输出设备构成。
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的。
该设计中使用的是MCS-51系列单片机。
AT89C51单片机特点如下:
1、可靠性好:
单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM内,许多信号通道都在同一芯片,因此可靠性高,易扩充。
2、单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
3、控制功能强:
单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
2.2proteus介绍
Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多种个元件库。
Proteus软件提供多种现实存在的虚拟仪器仪表。
此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。
这些虚拟仪器仪表具有理想的参数指标。
一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可以相当于一个设备先进的实验室。
以虚代实、以软代硬,就建立一个完善的虚拟实验室。
2.3电路原理图
图2
电路工作原理为:
接通电源后,主持人讲按动复位按键使电路为原态,除去“空闲”灯亮外,其他灯都是灭,数码管亦不显示任何东西;当主持人按动开始键后,所有的灯都会闪烁,数码管显示,定时器开始进行5秒倒计时。
选手在定时时间内抢答是,抢答器完成:
优先判断、编码锁存、编号显示。
当一轮抢答之后,定时器停止、禁止二次抢答、数码管显示第几号选手成功抢答,其他按键按下(除复位按键)均被视为无效。
2.3.1复位电路
图3
如图3所示为复位电路:
可以在程序运行出错或操作错误系统处于死锁状态时手动复位单片机。
在复位后,单片机内存以及各寄存器的值变为初始值。
2.3.2晶振电路
晶振电路:
单片机使用内部时钟时,时钟引脚XTAL1和XTAL2,外加石英晶体和微调电容,构成了一个稳定的自激振荡电路,电路中的电容C2和C3的典型值通常选择为15~33pF,本系统中使用的是30pF的电容,该电容的大小会影响振荡器频率的高低。
晶振频率的范围通常是在1.2—40MHz。
本系统中使用的是12M的晶振,晶体的频率越高,单片机的处理速度也就越快。
在硬件电路的设计时,晶体和电容尽可能与单片机芯片靠近,以减少寄生电容,可以保证振荡器更稳定、可靠的工作。
电路如图所示:
图4
2.3.3指示灯电路设计
如图5所示为指示灯电路,采用共阳极的方式,为低电平时发光二极管点亮,即发光二极管的正极接的是高电平,另外一段接到单片机的P1口的P1.0—P1.3,当其对应的按键按下时,相应的二极管就会被点亮。
图5
2.3.4AT89C51单片机
AT89C51单片机内部是由CPU、4KB的FPEROM,128B的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端口P0、P1、P2、P3等组成。
单片微机内部最核心的部分是CPU。
CPU主要功能是产生各种控制信号,控制存储器、输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU按其功能可分为运算器和控制器两部分。
控制器又程序计数器PC、指令储存器、指令译码器、实时控制与条件转移逻辑电路等组成。
它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。
运算器由算术逻辑器部件ALU、累加器ACC、暂存器、程序状态字寄存器PSW,BCD码运算调整电路等组成。
如图5所示。
图6
2.3.574LS48芯片介绍
74LS48是一种常用的七段数码管译码器驱动器。
在A、B、C、D端口输入信号,则在输出高低电平驱动七段数码管显示。
如图7.1,其真值表如表7.2所示。
图7.1
十进制数或功能
输 入
BI/RBO
输出
备注
LT
RBI
DCBA
a
b
c
d
e
f
g
0
H
H
0000
H
1
1
1
1
1
1
0
1
1
H
x
0001
H
0
1
1
0
0
0
0
2
H
x
0010
H
1
1
0
1
1
0
1
3
H
x
0011
H
1
1
1
1
0
0
1
4
H
x
0100
H
0
1
1
0
0
1
1
5
H
x
0101
H
1
0
1
1
1
1
1
6
H
x
0110
H
0
0
1
1
1
1
1
7
H
x
0111
H
1
1
1
0
0
0
0
8
H
x
1000
H
1
1
1
1
1
1
1
9
H
x
1001
H
1
1
1
0
0
1
1
10
H
x
1010
H
0
0
0
1
1
0
1
11
H
x
1011
H
0
0
1
1
0
0
1
12
H
x
1100
H
0
1
0
0
0
1
1
13
H
x
1101
H
1
0
0
1
0
1
1
14
H
x
1110
H
0
0
0
1
1
1
1
15
H
x
1111
H
0
0
0
0
0
0
0
BI
H
x
xxxx
L
0
0
0
0
0
0
0
2
RBI
x
L
0000
L
0
0
0
0
0
0
0
3
LT
L
x
xxxx
H
1
1
1
1
1
1
1
4
表7.2
2.3.6七段数码管
本系统中采用的是共阴极接法,七段数码管内部实质上就是七个LED发光二极管,把它们排列成一个8字的形状,控制这些发光二极管的灯亮灭情况,从而显示出不同的数字。
如图8所示。
图8
第3章软件设计
3.1软件主程序设计
在抢答过程中,有多个信号输入主电路中,单片机内部的寄存器工作,并识别、记录第一个抢答的人,同时内部的定时器停止工作,数码管显示第一个抢答的人的数字。
采用定时/计数器0,采用的是方式1,在设计中包括:
主程序(超时判断、复位判断、开始判断、抢答判断、显示程序)、始终中断服务程序、重置时钟程序。
3.2软件设计的流程图
3.3软件代码
#include
#defineuintunsignedchar
uints=0,ms=0;
enumqdzt
{
kongxian=0,
Ready=1,
qiangda=2,
}qdzt;
voidTimer()interrupt1using1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ms++;
s+=ms/20;
ms%=20;
s%=60;
}
voidchongzhi()
{
EA=1;
ET0=1;
TMOD=0x01;
TR0=0;
ms=0;
s=0;
}
uintEncode(uintc)
{
uinti,mask=1;
if(c==0)
return0;
for(i=0;i<8;i++)
{
if((c&(mask<
returni+1;
}
}
voidmain()
{
uintled=0xff;
uintdisp=15;
uintbutton;
uintweigui=0;
constuintchaoshi=5;
chongzhi();
while
(1)
{
if(qdzt==kongxian)
P0=0xfe;
elseif(qdzt==Ready)
P0=0xfd;
elseif(qdzt==qiangda)
P0=0xfb;
elseqdzt=0;
if(chaoshi-s==0)
{
weigui=1;
disp=15;
qdzt=kongxian;
chongzhi();
}
button=P3;
if((button&32)==0)
{
disp=15;
led=0xff;
qdzt=kongxian;
weigui=0;
chongzhi();
}
if((button&16)==0)
{
qdzt=Ready;
P1=0;
TR0=1;
}
if((button&15)!
=15)
{
if(qdzt==kongxian)
weigui=1;
if(qdzt!
=qiangda)
{
led=(button&15)+240;
disp=Encode(button&15);
qdzt=qiangda;
}
chongzhi();
}
if(weigui)
led&=127;
if(qdzt==Ready)
disp=chaoshi-s;
P1=led;
P2=disp;
}
}
第4章系统调试
完成硬件电路和软件电路的设计后,需要对整个系统进行调试。
系统调试时整个设计的最后一步,也是很关键的一步,调试过程就是将理论联系实际的论证过程,也是验证实践是否与理论相符合的过程。
综合调试:
(1)开机
接通电源后,“空闲”指示灯点亮,数码管不显示。
(2)测试各组抢答按键
当主持人按动开始,“空闲”灯灭,“就绪”灯迅速点亮,D1~D4灯快速闪烁,开始进行5秒倒计时,数码管显示倒数时间,选手可以抢答。
选手在5秒时间内按动按键,那“抢答”灯点亮,数码管显示第几号选手的数字,相应的LED灯也会点亮。
(3)违规抢答
当主持人读题过程中,而未宣布抢答开始时按下抢答按键。
数码管显示该违规组号,相应的LED灯也会亮,“违规”和“抢答”灯同时点亮。
总结
在这次的四路抢答器的课程设计中,查阅了很多的文献资料,利用单片机AT89C51的功能,设计出所需的外围电路来完成抢答器功能。
利用单片机的中断功能,将软硬件相结合起来设计,综合运用本专业所学习的课程的理论,巩固我们所学的知识,提高了我们的独立思考能力。
通过运用单片机设计四路抢答器课程设计,发现自己的不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。
在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。
特别是Proteus仿真软件的使用,不知是由于电脑问题还是怎么,这个软件的安装就花了很长的时间,好不容易安装好了,又对这个软件一点也不熟悉,要从头开始学起,刚刚开始时候真的很难以下手,因为是英文版的软件,很多东西都看不明白,都是通过在图书馆和网上的资料自己一个个的琢磨,才把仿真图画了出来,然后把写好的程序导入芯片,进行仿真,当看到程序正常运行的那一刻,心中真是有几分的喜悦。
同时这个程序还是觉得不算太完整,还需要继续改进。
参考文献
[1]刘红玲、邵晓根.微机原理与接口技术[M].中国电力出版社,2006年第一版
[2]朱清慧、张凤蕊、翟天蒿.Proteus教程电子线路设计、制版与仿真[M].清华大学出版社,2011.6
[3]皮大能、南光群.单片机课程设计指导书[M].北京理工大学出版社,2010.7
[4]郭速学,朱承彦,郭楠.图解单片机功能与应用[M].中国电力出版社,2008.2
[5]胡启明,葛祥磊.Proteus从入门到精通100例[M].电子工业出版社,2012.9
[6]高伟.AT89单片机原理与应用.国防工业出版社.2008.2