单片机课程设计最后完稿.docx
《单片机课程设计最后完稿.docx》由会员分享,可在线阅读,更多相关《单片机课程设计最后完稿.docx(14页珍藏版)》请在冰豆网上搜索。
单片机课程设计最后完稿
目录
摘要
一:
投票器简介
(1)设计投票器的目的
(2)投票器基本主要功能及组成简介
(3)投票器所需硬件设备
二:
投票器硬件电路的设计及其功能的描述
(1)主要硬件概要
(2)硬件电路设计原理图
(3)电路功能描述
(4)硬件总连接图
三:
投票器软件部分设计框图(含主程序及典型子程序或中断服务程序)及描述
四:
程序汇编
五:
课程设计体会
六:
参考文献
摘 要
现场投票统计器是单片机系统的简单应用。
它是由硬件和软件相配合使用的,这样可以弥补硬件成本高,结构复杂的特点,提高响应速度。
该统计器经济实惠,适用小型会议室和娱乐场所的现场投票统计。
电路是由控制部分和显示部分两大部分组成。
利用单片机程序进行控制,并通过数码管进行显示。
每个人“赞成通过”的“OFF”和“反对通过”的“ON”两个按键,单片机统计“赞成通过”键的人数,并用动态显示方式显示投票结果。
每人仅能投一次票,再投则无效。
这个现场投票统计器共有八个终端,每个终端有“赞成通过”的“OFF”和“反对通过”的“ON”两个按键,八个评委通过控制按键,给选手投票。
“赞成通过”的票数显示在LED数码管上。
基于单片机的投票器设计
一:
投票器简介
(1)设计投票器的目的:
综合运用单片机的主要性能,完成一个实用电路的设计和制作。
利用MCS-51系列单片机为控制核心,设计投票系统的主机控制器,用于表决活动.要求主机能通过双绞线实现与各分机通信。
设计一个投票系统,由八个评委对若干个参赛选手投票,各个评委手中有“ON”和“OFF”两个按键,“ON”按键代表“反对通过”,“OFF”按键代表“赞成通过”。
设由1号、2号、3号、……n号选手,在1号选手登台时,八个评委对1号选手投票,投完票后,按“OFF”键投“赞成通过”的票数显示在LED数码管上,按“ON”键投“反对通过”的票数不显示。
然后,2号选手再登台,评委再对2号选手投票,依次类推。
(2)投票器基本主要功能及组成简介:
在比赛中,系统八个评委对参赛者投票,每个人通过按键“ON”和“OFF”开关操作,当有N个人投“赞成通过”时,数码管显示N,不读票时数码管呈现霓虹灯状态。
各个评委投票时,不计先后顺序。
投票器由单片机、二个按键、一只LED数码显示管和串行通信接口等组成。
二个键分别表示“ON”和“OFF”,投票前由主持人按总控制台的复位键对整个系统复位(包括分机复位),投票时主持人按下启动键开始投票,系统统计赞成票的票数N,显示在数码显示器上。
(3)投票器所需硬件设备:
1.一个Intel8031
2.一个Intel2724(8KB的UVEPROM)
3.一个Intel6264(8KB的静态RAM)
4.一个Intel8155(I/O口芯片)
5.一只共阳八段LED显示管
6.独立式非编码键盘
7.若干双绞线
8.一个74LS373(IC型号74LS373-90,生产厂商:
Motorola)
9.一个低电位或门
10.八只LED驱动器(AD8240,9~27V,0.36mA,250mA,500Hz窗体底端,,,,PWM,8-MSOP,)
二:
投票器硬件电路的设计及其功能的描述
(1)主要硬件概述:
1.Intel8031:
Intel公司生产
8031单片机是Intel公司生产的MCS-51系列单片机中的一种,除无片内ROM外,其余特性与MCS-51单片机基本一样。
HMOS制造工艺的MCS-51单片机都采用40引脚的直插封装(双列直插式),制造工艺为CHMOS的80C51/80C31芯片除采用双列直插封装方式外,还采用方型封装工艺(本设计不采用),双列直插封装引脚排列如图。
双列直插式封装
在单片机的40条引脚中有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出(I/O)引脚。
Vcc:
+5V电源电压。
Vss:
电路接地端。
P0.0~P0.7:
通道0,它是8位漏极开路的双向I/O通道,当扩展外部存贮器时,这也是低八位地址和数据总线,在编程校验期间,它输入和输出字节代码。
P1.0~P1.7:
通道1是8位拟双向I/O通道,在编程和校验时,它发出低8位地址。
P2.0~P2.7:
通道2是8位拟双向I/O通道,当访问外部存贮器时,用作高8位地址总线。
P3.0~P3.7:
通道3准双向I/O通道。
P3通道的每一根线还有第二功能:
外接晶体引脚XTAL1和XTAL2
XTAL1:
接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。
XTAL2:
接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。
ST/VPD:
当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。
VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。
当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM提供备用电源。
ALE/PROG:
当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。
因此,它可用作对外输出的时钟,或用于定时目的。
PSEN:
此脚的输出是外部程序存储器的读选通信号。
在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。
但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:
当EA端保持高电平时,访问内部程序存储器,当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。
对于常用的8031来说,无内部程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器。
表 P3各口线的第二功能定义
口线
第二功能
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(外部数据存储器读脉冲)
地址总线(AB):
地址总线宽为16位,因此,其外部存储器直接寻址为64K字节,16位地址总线由P0口经地址锁存器提供8位地址(A0至A7);P2口直接提供8位地址(A8至A15)。
数据总线(DB):
数据总线宽度为8位,由P0提供。
控制总线(CB):
由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成。
Intel8031采用双列直插式封装,为HMOS型器件。
2.Intel2724和Intel6264:
Intel2724是一种+5V的8KBUVEPROM存储器芯片,采用HMOS工艺,27是系列号,64和存储容量有关;Intel6264是一种静态RAM,62是系列号,64是序号,和存储容量有关,采用CMOS工艺.
如图:
型号
容量/KB
读出时间/ns
制造工艺
所用电源/V
管脚数
Intel2724
8
200~450
HMOS
+5
28
Intel6264
8K×8
200
CMOS
+5
28
62642764
3.Intel8155:
Intel8155是Intel公司研制的通用I/O接口芯片。
MCS-51和8155相连不仅可为外部设备提供两个8位I/O端口(A口和B口)和一个6位I/O端口(C口),也可为CPU提供一个256字节的RAM和一个14位定时器/计数器。
8155有40个引脚,采用双列直插封装,其引脚图和组成框图如图所示。
8155
地址/数据线(8条) :
AD0~AD7
I/O口总线(22条):
PA0~PA7、PB0~PB7、PC0~PC5。
控制总线(8条):
ALE——地址锁存(输入)
IO/M——IO口/RAM选择,IO/M=0:
选内RAM;IO/M=1:
选内IO口
CE——片选线
RD、WR——读、写控制
TIMERIN——定时器输入(输入定时器所需时钟)
TIMEROUT——定时器输出(输出所产生的方波脉冲)
此时,8155内部RAM的地址范围为:
0000H~00FFH,8155各端口的地址(设无关位为0,这些地址都不是惟一的)为:
命令/状态口 0400H
A口 0401H
B口 0402H
C口 0403H
定时器低字节 0404H
定时器高字节 0405H
4.共阳八段LED显示管:
数码管结构:
有共阴极和共阳极两种接法,
显示方式:
静态显示—在静态显示方式下,每一位显示器的字段控制线是独立的。
当显示某一字时,该位的各字段线和字位线的电平不变,也就是各字段的亮灭状态不变。
静态显示方式下LED显示器的电路连接方法是:
每位LED的字位控制线门共阴极点或共阳极点连在一起,接地或接+SV;其字段控制线(a~SP)分别接到一个8位口。
动态显示—利用人眼的视觉暂留效应。
分时显示不同的数码管。
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。
本设计采用动态显示方式。
共阳八段LED显示管
连4.独立式非编码键盘:
在非编码键盘中,每个按键的作用只是使相应接点接通或断开,每个按键的编码并非由硬件电路产生,而是由相应扫描处理程序对它扫描形成的。
因此,非编码键盘硬件电路极为简单,在微型计算机中得到了广泛的应用。
在独立联接式非编码键盘中,每个按键都是彼此独立的,均需占用CPU的一条I/O输入数据线。
5.74ls373(生产厂商:
Motorola)
74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。
6.LED驱动器
AnalogDevices,Inc.(简称ADI)为液晶背光照明应用提供发光二极管(LED)驱动器。
。
AD8240由于降低了与LED驱动相关的复杂性从而降低了系统成本,它包括过流保护功能并且采用MSOP封装,同时能够保证背光照明液晶显示的亮度均匀。
它通过单独监视每只LED的电流实现了优良的匹配性能。
ADM8845可以在3种电荷泵工作模式之间根据输入电压自动切换,所以它还用来最大化功率效率。
(2)硬件电路设计原理图:
1.Intel8031对独立式非编码键盘的电路连接原理图:
图1
此电路原理图说明:
独立式非编码键盘的优点是硬件电路简单;缺点是每个按键都要占用一条I/O端口线。
2.Intel8031与一个Intel2724(8KB的UVEPROM)和一个Intel6264(8KB的静态RAM)的电路连接原理图:
图2
此电路原理图说明:
Intel8031无内部ROM,所以需要扩展外部ROM;
Intel8031仅有4KBRAM,相对来说存储容量较小,所以需要扩展外部RAM。
3.Intel8031通过Intel8155(I/O口芯片)与一只共阳LED数码显示管的电路连接原理图:
图3
此电路原理图说明:
Intel8031通过扩展的Intel8155I/O接口,控制三只共阳LED数码显示管的显示。
4.共阳LED数码显示管的电路图:
图4
此电路原理图说明:
八段LED显示管由八只发光二极管组成,分别编号a、b、c、d、e、f、g、SP所有发光二极管共连后接到G脚,正常显示时G接+5V。
(3)电路功能描述:
图l:
独立式键盘的结构如图l所示,是最简单的键盘结构形式,每个按键的电路是独立的,都有单独一根数据线输出键的通断状态。
单片机一条I/O口线对应一个按键。
按键操作存在的问题——键抖动
由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象,如图所示。
键的抖动时间一般为5~10ms。
这种现象会引起单片机对于一次键操作进行多次处理,因此须设法消除键接通或断时的抖动现象。
去抖动的方法有硬件和软件两种。
硬件去抖动和软件去抖动。
a.硬件消除抖动
b.软件去抖动:
采用软件去抖动的方法是在单片机检测到有键按下时执行一个10~20ms的延时程序后再次检查该键电平是否仍保持闭合状态.如保持闭合状态,则确认为有键按下,否则从头检测。
这样就能消除键的抖动影响。
按键监测方法——监测有无键按下(查询方式)。
图中的每个按键8031的P1口中一条相连。
若“ON”键按下时,8031从P1口读得的引脚电平均为“1”(+5V);若“OFF”键按下时,则该键所对应的端口线变为地电平。
单片机定时对P1口进行程序查询,即可发现是“OFF”键按下还是“ON”键按下。
图2:
8031与2764的连接,2764存储容量为8KB,故片内地址线为P2.4~P2.0和P0.7~P0.0(P2.4~P2.0直接与2764的A12~A8相接,P0.7~P0.0经74LS373输出后接到2764的A7~A0),共13条。
8031与6264的连接,6264存储容量为8KB,故片内地址线为P2.4~P2.0和P0.7~P0.0(P2.4~P2.0直接与6264的A12~A8相接,P0.7~P0.0经74LS373输出后接到6264的A7~A0),共13条。
8031的地址采用线选法译码方式,片选线P2.7悬空片选线,P2.6与2764的CE相连,P2.5与6264的CE相连。
PSEN与2764的OE相接,以便8031执行MOVC指令时产生低电平而选中2764工作。
PSEN和RD经过低电位或非门后接到6264的OE引脚。
各存储器的基本地址范围为:
1#2764:
0000H~1FFFH8KB
2#6264:
2000H~3FFFH8KB
重叠地址范围:
1#2764:
8000H~9FFFH8KB
2764中共有16KB的重叠地址范围,它们在整个64KB区域中是不连续的,使用硬件电路图时,程序和常数放在基本地质范围内。
图3:
为减少硬件开销,提高系统可靠性并降低成本,单片机控制系统采用动态扫描显示。
图2显示出8031通过8155对三只共阳LED的接口电路,B口和所有LED的a、b、c、d、e、f、g、SP引线相连,各LED控制端G和8155C口相连,故B口为字形口,C口为字位口,CPU通过C口控制各LED是否点亮。
8155的端口地址分配如下:
命令/状态口 0400HA口 0401H
B口 0402HC口 0403H
定时器低字节 0404H定时器高字节 0405H
8155RAM基本地址区0000H~00FFH
图4:
八段LED显示管,正常显示时G接+5V,各发光二极管是否点亮取决于a~SP各引脚上是否是低电平0伏。
(4)硬件总连接图
三:
投票器软件部分设计框图(含主程序及典型子程序或中断服务程序)及描述
假设有参赛选手共M人,评委共8人。
评委按“OFF”键投“赞成通过”,评委按“NO”键投“反对通过”。
30H单元作为显示缓冲区,存储显示数字,地址偏移量和显示数字相同。
四:
程序汇编
ORG0000H
MOVA,#0FFH;准备读P1口
MOVP1,A
MOVA,P1;读键盘状态
JNCACC.0,RP10;若“OFF”键按下,则转RP10
JNCACC.0,RP11;若“OFF”键按下,则转RP11
JNCACC.0,RP12;若“OFF”键按下,则转RP12
JNCACC.0,RP13;若“OFF”键按下,则转RP13
JNCACC.0,RP14;若“OFF”键按下,则转RP14
JNCACC.0,RP15;若“OFF”键按下,则转RP15
JNCACC.0,RP16;若“OFF”键按下,则转RP16
JNCACC.0,RP17;若“OFF”键按下,则转RP17
SJMPCHABIAO
RP10:
INC30H
RP11:
INC30H
RP12:
INC30H
RP13:
INC30H
RP14:
INC30H
RP15:
INC30H
RP16:
INC30H
RP17:
INC30H
RET
CHABIAO:
MOVA,#06H;8155命令字送A
MOVDPTR,#0400H
MOVX@DPTR,A;8155命令字送8155命令口
MOVR0,#30H;显示缓冲区地址送R0
MOVR3,#0FEH;字位码始值送R3
MOVA,R3;字位码始值A
MOVDPTR,#0403H;C口地址送DPTR
MOVX@DPTR,A;字位码送C口
MOVDPTR,#0402H;B口地址送DPTR
MOVA,@R0;待显字符地址偏移量送A
ADDA,#03;对A进行地址修正
MOVCA,@A+PC;查字形码表
LOOP:
MOVX@DPTR,A;字形码送B口输出显示
SJMPLOOP;循环显示
DTAB:
DB0C0H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,
END
五:
课程设计体会
根据课程设计的要求和自己通过参考有关资料拟的方案,写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序,达到能够实现所要求的功能的目的。
在写程序时,在每条指令后都写好注释,以便在程序出错的检查过程中可以更容易查找得到。
这次的单片机课程设计重点是理论与实际的相结合,不单单只是书上的一条条分离的指令。
通过这次设计让我更系统的了解了个个指令以及单片机的扩展内容。
本系统是以单片机8031芯片为核心部件,通过这次设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。
六:
参考文献
1.胡汉才.单片机原理及其接口技术[M].第二版.北京:
清华大学出版社,2002
2.康华光.电子技术基础(模拟部分、数字部分)[M].第四版.北京:
高等教育出版出版社,1998
3.余永权.ATMEL89系列单片机应用技术[M].第二版.北京:
北京航天航空大学出版社,2002
期刊:
a.电子技术应用b.微型机与应用
4.《集成电路速查手册》
5.上网查阅资料