课程设计投票器设计说明书.docx

上传人:b****1 文档编号:265721 上传时间:2022-10-08 格式:DOCX 页数:21 大小:133.59KB
下载 相关 举报
课程设计投票器设计说明书.docx_第1页
第1页 / 共21页
课程设计投票器设计说明书.docx_第2页
第2页 / 共21页
课程设计投票器设计说明书.docx_第3页
第3页 / 共21页
课程设计投票器设计说明书.docx_第4页
第4页 / 共21页
课程设计投票器设计说明书.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

课程设计投票器设计说明书.docx

《课程设计投票器设计说明书.docx》由会员分享,可在线阅读,更多相关《课程设计投票器设计说明书.docx(21页珍藏版)》请在冰豆网上搜索。

课程设计投票器设计说明书.docx

单片机课程设计

说明书

课题:

班级投票显示器专业:

测控技术与仪器班级:

机122-1

姓名:

许铎

学号:

201256502116

指导老师:

王东兴

组员:

贺茂森、段亚东、王向东

烟台大学

机电汽车工程学院

目录

第一章设计任务和内容 3

1.1设计任务 3

1.2设计要求 3

1.3设计内容 3

第二章电路设计 4

2.1总体设计 4

2.2详细设计 5

2.2.1 单片机引脚功能 5

2.2.3时钟电路 6

2.2.4复位电路 7

2.2.5数码管显示电路 8

第三章程序设计与仿真 10

3.1 投票显示系统总体功能实现 10

2.2 系统流程图 11

3.3程序编写 13

3.4仿真与调试 15

第四章总结和未来改进构想 21

21

第一章设计任务和内容

1.1设计任务

分组按照选定题目的设计任务,设计各种单片机应用系统,设计工作量至少要包含:

(1)用MCS-51单片机,12MHz时钟,常规的上电和手动复位电路;

(2)3个以上的按键;

(3)LED或/和数码管或/和LCD显示及其接口;

(4)至少2路输入信号,可以是模拟量或数字量。

1.2设计要求

(1)设计一个投票系统,具有计票显示功能;

(2)可实现6人同时进行投票,累计票数在显示器上显示;

(3)主持人使用一个按键开关控制开始投票,终止投票和清零;

(4)投票开始后每人能且仅能投一次票,多投无效;

1.3设计内容

(1)编写项目功能说明书,确定应用系统的功能和具体参数;

(2)设计电路原理图;

(3)编写C语言源程序,程序中加注必要的注解说明;

(4)实物制作与调试;

(5)编写设计说明书。

复位电路

时钟电路

LED数

码管显示

第二章电路设计

2.1总体设计

8051

单片机

整个设计以AT89C51单片机为核心,点触开关控制信号通过单片机I/O口,单片机处理信号并将结果通过LED数码管显示,最终按键复位单片机。

总体设计如下图。

信号源

I/O口

2.2详细设计

2.2.1 单片机引脚功能

·P0口 8位、漏极开路的双向I/O口。

当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。

在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。

P0口也可做通用I/O口使用,但需加上拉电阻。

作为普通输入时,应输出锁存器配置

1。

·P1口8位、准双向I/O口,具有内部上拉电阻。

P1口是为用户准备的I/O双向口。

在编程和校验时,可用作输入低8位地址。

用作输入时,应先将输出锁存器置1。

·P2口8位、准双向I/O口,具有内部上拉电阻。

当使用外存储器或外扩I/O口时,P2口输出高8位地址。

在编程和校验时,P2口接收高字节地址和某些控制信号。

·P3口8位、准双向I/O口,具有内部上拉电阻。

P3口可作为普通I/O口。

用作输入时,应先将输出锁存器置1。

在编程/

校验时,P3口接收某些控制信号。

·RST 复位输入信号,高电平有效。

·EA/VPP外部程序存储器访问允许信号EA.当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。

·PSEN片外程序存储器读选通信号PSEN,低电平有效。

在片外程序存储器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部

RAM时,PSEN无效。

·ALE/PROG低字节锁存信号ALE.在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。

·XTAL1 片内振荡器反向放大器和时钟发生线路的输入端。

·XTAL2 片内振荡器反相放大器和时钟发生线路的输出端。

2.2.3时钟电路

51系列单片机的时钟信号产生通常有两种方式,内部时钟方式和外部时钟方式我们采用内部时钟方式,如图,引脚 XTAL是片内振荡器反向放大器和时钟发生线路的输入端。

XTAL2是片内振荡器反相放大器的输出端。

当使用片内振荡器时,外接石英晶体和微调电容。

C1

30pF

XTAL1

C2

30pF

XTAL2

GND

8XX51

2.2.4复位电路

51系列单片机通常有上电复位和按键复位两种方式。

我们采用了最简单的一种上电复位及按键复位电路如图所示,上电后,由于电容充电,使RESET持续一段时间的高电平,完成复位操作;当单片机处于运行中或死锁时,按下

“复位”按钮,也可使单片机进入复位状态。

通常选择C=10~30uF,

R=100~1000Ω。

74LS245

a

a

1Y1

1A1

1A2

b

1Y1

1A1

P1.0

f

b

c

1Y2

g

1A2

P1.1

d

1Y3

1A3

P1.2

e

e

c

1Y4

1A4

P1.3

f

2Y1

2A1

P1.4

dp

g

2Y2

2A2

P1.5

dp

2Y3

2A3

P1,6

2Y4

2A4

P1,7

d

1Y2

1Y3

1Y4

2Y4

2Y2

2Y3

2Y1

1A3

1A4

2A1

2A2

2A3

2A4

2.2.5数码管显示电路

1、数码管显示方式

数码管有静态显示方式和动态显示方式,我们采用的共阴极七段数码管静态显示方式,如上图所示。

就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。

2、驱动电路

74LS245芯片用作驱动的电路,用来驱动七段数码管,它是8路同相三态双向总线收发器,可双向传输数据,8051单片机的P0口总线负载达到或超过P最大负载能力时,必须接入74LS245等总线驱动器。

当片选端/CE低电平时有效,

AB接高电平时A→B,低电平时B→A

第三章 程序设计与仿真

3.1 投票显示系统总体功能实现

利用单片机设计投票显示系统,应先掌握单片机的结构与功能,在设计中充分利用好单片机各管脚,并配合外部电路,坚持简单易懂,节约成本的原则来设计电路。

2.2 系统流程图

为了简化程序的复杂度,使设计过程简单易懂,该系统将分成主程序和子程序设计,

开始

具体流程如下图。

P1.1=0?

N

Y

执行投票子程序,判断是否有键按下并显示票

调用子程序

数码管显示不变,并不清零

单片机P1口全置1

P1.1=0?

Y

P1.1=0?

Y

N

P1.2=0?

Y

N

结束

退出投票子程序,但数据不清零

模仿上面步骤顺序判断P1.3—P1.7口,并进行票数累加

票数累加1,并此按键不再影响数据变化

轮次置1

N

3.3程序编写

按照上面流程图进行源程序编写,源程序如下:

(1)主程序部分#include"reg51.h"#include"stdio.h"sfrp2=0xa0;

sfrp1=0x90;sfrp0=0x80;

sbitP11=P1^1; /*位定义*/

sbitP12=P1^2;sbitP13=P1^3;sbitP14=P1^4;sbitP15=P1^5;sbitP16=P1^6;sbitP17=P1^7;

Unsigned;chardis[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00};

/*定义字型表*/

unsignedcharnum,num2,num3,num4,num5,num6,num7;charnu=0;

voidscan();

voiddisp() /*显示子程序*/

{num=num2+num3+num4+num5+num6+num7;p0=dis[num];

p2=dis[nu];

}

voidmain()

{P1=0xff; /*对P1口进行初始化*/while

(1) /*进入无限循环*/

{if(!

P11) /*判断总控开关,按下则执行以下程序*/

{num=0;nu++;scan();} /*扫描按键,执行scan()子程序*/else

{num2=0;num3=0;num4=0;num5=0;num6=0;num7=0;}

/*无按键输入则显示0*/

}

}

voidscan()

{

while(!

P11) /*判断总控开关是否一直保持接通状态,接通则进行投票过程循环,否则不执行程序,即投票按键无效*/

{ if(!

P12)

{ num2=1;while(!

P12);} /*对投票按键P1进行判断,按下则累加1

并维持不变*/

if(!

P13)

{ num3=1;while(!

P13);}if(!

P14)

{ num4=1;while(!

P14);}if(!

P15)

{ num5=1;while(!

P15);}if(!

P16)

{ num6=1;while(!

P16);}if(!

P17)

{ num7=1;while(!

P17);}disp();

}

}子程序部分完成投票判断、票数累加工作。

3.4仿真与调试

将源程序输入进Keil软件中,保存为.hex文件并编译,无误后可以再烧进仿真软件ProteusISIS文件中的单片机AT89C51中,方可运行仿真电路。

单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。

仿真过程如下

1、接通总控开关,此时所有人投票有效,并可看见票数显示器显示“0”,轮次显示器显示“1”投票第一轮开始,进入投票阶段,如图

2、任意按下一个投票按键如P3,此时票数显示器示数字变成“1”,轮次显示器“1”不变,如图

3、按另一个P5,票数LED灯变成“2”,如图

4、此时再次按下第一次按过的按键P3,显示器仍保持数字“2”,即完成每个按键只能投票一次的功能。

如图

5、最后将总控开关断开,可看到显示器没有变化,可以继续显示投票结果,再次接通总控,可发现票数显示器又回到初始阶段“0”,轮次显示器显示“2”,即进入第二轮投票,如图

6、若此后有4人投票,则票数显示器显示“4”,而轮次显示器“2”不变。

即票数完成清零并进入新一轮投票阶段,如图

7、所有投票结束后按下轮次复位按钮,则所有显示器回复初始状态,仿真成功。

第四章 总结和未来改进构想

总结:

通过本次课程设计不仅加强

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

当前位置:首页 > 高中教育 > 初中教育

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

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