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

上传人:第*** 文档编号:56951693 上传时间:2018-10-17 格式:DOC 页数:21 大小:307.67KB
返回 下载 相关 举报
课程设计投票器设计说明书_第1页
第1页 / 共21页
课程设计投票器设计说明书_第2页
第2页 / 共21页
课程设计投票器设计说明书_第3页
第3页 / 共21页
课程设计投票器设计说明书_第4页
第4页 / 共21页
课程设计投票器设计说明书_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《课程设计投票器设计说明书》由会员分享,可在线阅读,更多相关《课程设计投票器设计说明书(21页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计单片机课程设计 说明书说明书 课题课题:班级投票显示器 专业专业:测控技术与仪器 班级班级:机 122-1 姓名姓名: 许铎 学号学号:201256502116 指导老师指导老师:王东兴 组员组员:贺茂森、段亚东、王向东 烟台大学烟台大学 机电汽车工程学院机电汽车工程学院 2 目录目录 第一章设计任务和内容 .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

2、投票显示系统总体功能实现.10 2.2 系统流程图.11 3.3 程序编写.13 3.4 仿真与调试.15 第四章 总结和未来改进构想21 3 第一章设计任务和内容第一章设计任务和内容 1.1 设计任务设计任务 分组按照选定题目的设计任务,设计各种单片机应用系统,设计工作量至 少要包含: (1) 用 MCS-51 单片机,12MHz 时钟,常规的上电和手动复位电路; (2) 3 个以上的按键; (3) LED 或/和数码管或/和 LCD 显示及其接口; (4) 至少 2 路输入信号,可以是模拟量或数字量。 1.2 设计要求设计要求 (1)设计一个投票系统,具有计票显示功能; (2)可实现 6

3、人同时进行投票,累计票数在显示器上显示; (3)主持人使用一个按键开关控制开始投票,终止投票和清零; (4)投票开始后每人能且仅能投一次票,多投无效; 1.3 设计内容设计内容 (1)编写项目功能说明书,确定应用系统的功能和具体参数; (2)设计电路原理图; (3)编写 C 语言源程序,程序中加注必要的注解说明; (4)实物制作与调试; (5)编写设计说明书。 4 第二章电路设计第二章电路设计 2.1 总体设计总体设计 整个设计以 AT89C51 单片机为核心,点触开关控制信号通过单片机 I/O 口,单 片机处理信号并将结果通过 LED 数码管显示,最终按键复位单片机。总体设计 如下图。 复位

4、电路 I/O 口 8051 单片 机 LED 数 码管显示 信号源 时钟电路 5 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 位 地址。用作输入时,应先将输

5、出锁存器置 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 的 读操作

6、从内部程序存储器开始,并可延续至外部程序存储器。 PSEN 片外程序存储器读选通信号 PSEN,低电平有效。在片外程序存储 器取指期间,当 PSEN 有效时,程序存储器的内容被送至 P0 口;在访问外部 RAM 时,PSEN 无效。 ALE/PROG 低字节锁存信号 ALE.在系统扩展时,ALE 的下降沿将 P0 口输出 的低 8 位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传 送。 XTAL1 片内振荡器反向放大器和时钟发生线路的输入端。 XTAL2 片内振荡器反相放大器和时钟发生线路的输出端。 6 2.2.3 时钟电路时钟电路 51 系列单片机的时钟信号产生通常有两种方式,

7、内部时钟方式和外部时钟方式 我们采用内部时钟方式,如图,引脚 XTAL 是片内振荡器反向放大器和时钟发 生线路的输入端。XTAL2 是片内振荡器反相放大器的输出端。当使用片内振荡 器时,外接石英晶体和微调电容。 XTAL1 XTAL2 GND C1 C2 8XX51 30pF 30pF 7 2.2.4 复位电路复位电路 51 系列单片机通常有上电复位和按键复位两种方式。我们采用了最简单的 一种上电复位及按键复位电路如图所示,上电后,由于电容充电,使 RESET 持续一段时间的高电平,完成复位操作;当单片机处于运行中或死锁时,按下 “复位”按钮,也可使单片机进入复位状态。通常选择 C=1030u

8、F, R=1001000。 8 2.2.5 数码管显示电路数码管显示电路 1、数码管显示方式 数码管有静态显示方式和动态显示方式,我们采用的共阴极七段数码管静态显 示方式,如上图所示。就是当显示器显示某一个字符时,相应的发光二极管恒 定地导通或截止。 1Y1 1Y2 1Y3 1Y4 2Y1 2Y2 2Y3 2Y4 1A1 1A2 1A3 1A4 2A1 2A2 2A3 2A4 a b c d e f g dp a f b g e 74LS245 d c dp 1Y1 1Y2 1Y4 1Y3 2Y1 2Y2 2Y3 2Y4 1A1 1A2 1A3 1A4 2A1 2A2 2A3 2A4 P1.0

9、 P1.1 P1.2 P1.3 P1.4 P1.5 P1,6 P1,7 9 2、驱动电路 74LS245 芯片用作驱动的电路,用来驱动七段数码管,它是 8 路同相三态双向总 线收发器,可双向传输数据,8051 单片机的 P0 口总线负载达到或超过 P 最大 负载能力时,必须接入 74LS245 等总线驱动器。 当片选端/CE 低电平时有效, AB 接高电平时 AB,低电平时 BA 10 第三章第三章 程序设计与仿真程序设计与仿真 3.1 投票显示系统总体功能实现投票显示系统总体功能实现 利用单片机设计投票显示系统,应先掌握单片机的结构与功能,在设计中 充分利用好单片机各管脚,并配合外部电路,坚

10、持简单易懂,节约成本的原则 来设计电路。 11 2.2 系统流程图系统流程图 为了简化程序的复杂度,使设计过程简单易懂,该系统将分成主程序和子 程序设计, 具体流程如下图。 N Y 开始 单片机 P1 口全置 1 P1.1=0? 数码管显示不 变,并不清零 执行投票子程序,判断 是否有键按下并显示票 数 调用子程序 12 Y P1.1=0? Y 轮次置 1 P1.2=0? Y N 票数累加 1,并此按键 不再影响数据变化 模仿上面步骤顺序判 断 P1.3P1.7 口,并 进行票数累加 N P1.1=0? N 退出投票子程序, 但数据不清零 结束 13 3.3 程序编写程序编写 按照上面流程图进

11、行源程序编写,源程序如下: (1)主程序部分 #include “reg51.h“ #include“stdio.h“ sfr p2=0xa0; sfr p1=0x90; sfr p0=0x80; sbit P11=P11; /*位定义*/ sbit P12=P12; sbit P13=P13; sbit P14=P14; sbit P15=P15; sbit P16=P16; sbit P17=P17; Unsigned; char dis11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00; /*定义字型表*/ unsigned

12、 char num,num2,num3,num4,num5,num6,num7; char nu=0; void scan(); void disp() /*显示子程序*/ num=num2+num3+num4+num5+num6+num7; p0=disnum; p2=disnu; void main() P1=0xff; /*对 P1 口进行初始化*/ while(1) /*进入无限循环*/ 14 if(!P11) /*判断总控开关,按下则执行以下程序*/ num=0;nu+;scan(); /*扫描按键,执行 scan()子程序*/ else num2=0;num3=0;num4=0;n

13、um5=0;num6=0;num7=0; /*无按键输入则显示 0*/ void scan() 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

14、=1;while(!P17); disp(); 子程序部分完成投票判断、票数累加工作。 15 3.4 仿真与调试仿真与调试 将源程序输入进 Keil 软件中,保存为.hex 文件并编译,无误后可以再烧进仿真 软件 Proteus ISIS 文件中的单片机 AT89C51 中,方可运行仿真电路。单击仿真 运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高 电频,蓝色代表低电频。 仿真过程如下 1、接通总控开关,此时所有人投票有效,并可看见票数显示器显示“0”, 轮次显示器显示“1”投票第一轮开始,进入投票阶段,如图 16 2、任意按下一个投票按键如 P3,此时票数显示器示数字变成“

15、1”,轮次显 示器“1”不变,如图 17 3、按另一个 P5,票数 LED 灯变成“2”,如图 18 4、此时再次按下第一次按过的按键 P3,显示器仍保持数字“2”,即完成每个按 键只能投票一次的功能。如图 19 5、最后将总控开关断开,可看到显示器没有变化,可以继续显示投票结果,再 次接通总控,可发现票数显示器又回到初始阶段“0”,轮次显示器显示“2” ,即 进入第二轮投票,如图 20 6、若此后有 4 人投票,则票数显示器显示“4” ,而轮次显示器“2”不变。 即票数完成清零并进入新一轮投票阶段,如图 7、所有投票结束后按下轮次复位按钮,则所有显示器回复初始状态,仿真成功。 21 第四章第四章 总结和未来改进构想总结和未来改进构想 总结: 通过本次课程设计不仅加强了对我们所学的单片机知识的认识,还掌握了 Proteus 电路图仿真软件和 Keil 编程软件等专业软件的应用。通过实物制作,还 很好的锻炼了我们的动手能力和团队合作的能力,在课设过程中,我们遇到了 一些问题,比如仿真时 P0 口接的数码管不亮,经过我们的讨论和几次试验,我 发现是上拉电阻阻值过大,我们及时改正,解决了这个问题。还有在中期答辩 时,我们忽略了驱动电路的问题,导致数码管显示电路出现错误,亮度不够, 后来在老师的指导和我们对课本上的知识深入学习后修

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号