投票器设计说明书

单片机课程设计

说明书

课题: 班级投票显示器

班级:指导老师:刘鹏

同组成员:赵庆栋、赵泽峰、张涛、钟伟宝、郭宁、吕义超、吴建科

烟台大学

机电汽车工程学院

目录

前 言...............................................................................3

第一章 绪 论.................................................................4

1.1 概述.......................................................................................4

1.2 设计目的...............................................................................4

1.3 设计任务和内容...................................................................4

第二章 总体设计及核心器件简介..............................6

2.1 总体设计...............................................................................6

2.2 MCS-51单片机....................................................................6

2.3 LED数码显示器..................................................................10

2.4 发光二级管...........................................................................13

第三章 投票显示系统电路设计与仿真.....................14

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

3.2 系统流程图..........................................................................15

3.3 程序编写..............................................................................17

3.4 仿真与调试..........................................................................19

前言

单片机技术是现代电子工程领域一门迅速发展的技术,它的应用已渗透到

各种嵌入式系统中。毫不夸张地说:掌握单片机技术信息类学生就业的一个重要

条件。同时单片机技术又是一门实践性很强的学科。课程设计教学环节的设计和

实施,在很大程度上决定了我们对单片机的掌握程度。为了更好的完成课程设计

这一重要教学环节,我们采用Proteus软件与Keil软件整合构建单片机虚拟实

验平台。首先在PC上利用Proteus软件自己搭建硬件电路,并利用系统提供的

功能完成电路分析,系统调试和输出现实的硬件设计部分,同时在Keil软件中

编制程序,进行相应的编译和仿真,完成系统的软件设计部分。当系统的设计工

作完成后,就可以在PC上看到最终的运行效果。最后在通过Proteus设计PCB,

在完成真正硬件的调试。

采用以上方案具有以下优势:有利于促进课程和教育改革,更有利于人才的

培养;从经济性、可移植性、可推广性角度讲,建立这样的课程设计平台是非常

有意义的,利用仿真系统,可以节约开发时间和开发成本,利用仿真系统具有很

大的灵活性和可扩展性。

第一章 绪论

1.1 概述

目前投票显示系统电路的应用可以说非常广泛,班级投票,公司竞选,文娱

节目等许多不记名投票活动都经常会用到各式各样的投票器,虽然这些投票器外

观和样式都有所不同,功能可能也有多有少,但他们的原理都大同小异。因此现

将基本原理熟练掌握,以后再进行功能扩展就简单易行了。

本文论述了利用单片机制作投票系统的全过程,包括阐述该系统的基本工作原

理,利用WAVE软件进行程序编与调试和Proteus ISIS仿真软件进行电路模拟仿

真,实物制作与调试。

1.2 设计目的

(1)加强对单片机和C51语言的认识,充分掌握和理解设计各部分的工作原理、

设计过程、选择芯片器件、模块化编程等多项知识。

(2)用单片机模拟实现具体应用,使个人设计能够真正应用。

(3)把理论知识好实践相结合,充分发挥个人能力,并在实践中锻炼。

(4)提高利用已学知识分析和解决问题的能力。

(5)提高实践动手能力。

1.3 设计任务和内容

1.3.1 设计任务

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

要包含:

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

(2) 3个以上的按键;

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

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

1.3.2 设计要求

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

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

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

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

创新:(1)增加发光二极管显示有效性;

(2)增加LED显示器显示投票轮数;

1.3.3 设计内容

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

(2)设计电路原理图;

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

(4)编写设计说明书。

第二章总体设计及核心器件简介

2.1 总体设计

整个设计以AT89C51单片机为核心,点触开关控制信号通过单片机I/O口,

单片机处理信号并将结果通过LED数码管显示。以发光二极管显示信号输入的有

效性,最终上电复位单片机。总体设计如下图。

2.2 MCS-51单片机

2.2.1 AT89C51单片机内部结构

AT89C51是一种低电压,高性能CMOS 8位单片机,采用ATMEL公司的高密度、

非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器

(CPU)和4K字节FLASH(FPEROM—Flash Programmable and Erasable Read Only

Memory)存储单元,功能强大AT89C51单片机可为您提供许多高性能比的应用场

合,可灵活应用在各种控制领域。

单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL

高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管

脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL

的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51

单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89C51单片机的主要工作特性:

·内含4KB的FLASH存储器,擦写次数1000次;

·内含28字节的RAM;

·具有32根可编程I/O线;

·具有2个16位可编程定时器;

·具有6个中断源、5个中断矢量、2级优先权的中断结构;

·具有1个全双工的可编程串行通信接口;

·具有一个数据指针DPTR;

·两种低功耗工作模式,即空闲模式和掉电模式;

·具有可编程的3级程序锁定定位;

AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.

AT89C51各部分的组成及功能:

图2-1

还有,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工

作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断

系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有

部件工作直到出现下一个硬件复位。

2.2.2 AT89C51单片机的引脚说明

1. 引脚排列及功能

AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。

(1)I/O口线 ·P0位、漏极开路的双向I/O口。

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

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

也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置

1。P0口可驱动8个TTL负载。

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

P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位

地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。

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

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

P2口接收高字节地址和某些控制信号。

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

P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/

校验时,P3口接收某些控制信号。它可驱动4个TTL负载。

图2-2 引脚位置

(2)控制信号线

·RST 复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。

·EA/VPP 外部程序存储器访问允许信号EA.

当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压5V或12V。在编程校验时,该引脚可接VCC。

·PSEN 片外程序存储器读选通信号PSEN器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部RAM时,PSEN 无效。

·ALE/PROG 低字节锁存信号ALE.在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。此外,ALE端连续输出正脉冲,频率为晶振频率的1/6,可做外部定时脉冲使用。

(3)外部晶振引线

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

荡器时,连接外部石英晶体和微调电容。

·XTAL2 片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体和微调电容。

2.2.3 AT89C51单片机复位方式

8051的复位方式可以是自动复位(左图),也可以是手动复位(右图),见下图 。此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据部丢失。

图2-2 图2-3

此投票器使用自动复位如图2-2

2.3 数码管

LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电

极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类, LED数码管有共阳极和共阴极两种结构。如下图

了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。共阴和共阳极数码管的内部电路发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图。 图2-3-1 这是一个7段两位带小数点 10引脚的LED数码管

图 2-3-1引脚定义

每一笔划都是对应一个字母表示 DP是小数点.

图 2-3-2 共阴极LED数码管的内部结构原理图

LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

表1.1 显示数字对应的二进制电平信号

2.4 发光二级管

发光二极管正向导通,反向截止,当通入正向电时发光。

图2-5

第三章 投票显示系统电路设计与仿真

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

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

图3-1投票显示系统电路原理图

如图3-1所示,投票显示系统电路的核心是单片机AT89C51。单片机的P1.0口引脚接1个单刀单置开关,作为总控开关,控制投票系统的开始、停止和清零工作;单片机的P1.1口引脚接按键式开关,作为控制投票轮次的复位开关;P1.2

—P1.7接6个按键式开关,作为投票者的投票按键,并在总控开关上并联一发光二极管和非门串联的电路,当此发光二极管发红光时所有人投票有效,并在各投票按钮处设置蓝色发光二极管,发光时作为该投票的确认信号。单片机的P0.0—P0.6口7个引脚接LED共阴显示器的段选码(a、b、c、d、e、f、g)的引脚上,实现LED显示器的显示字符(即显示票数),电阻主要起限流作用。RST引脚接自动复位电路;XTAL1与XTAL2引脚接时钟电路。P2口与LED显示器相接,用于显示投票轮次。

3.2 系统流程图

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

具体流程如下图。

3.3 程序编写

按照上面流程图进行源程序编写,源程序如下: (1)主程序部分 #include "reg51.h" #include"stdio.h" sfr p2=0xa0; sfr p1=0x90; sfr p0=0x80;

sbit P10=P1^0; /*位定义*/ sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; sbit P14=P1^4; sbit P15=P1^5; sbit P16=P1^6; sbit P17=P1^7; Unsigned char

dis[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00}; /*定义字型表*/ unsigned char num,num2,num3,num4,num5,num6,num7; char nu=0;

void disp() /*显示子程序*/ { num=num2+num +num4+num5+num6+num7; if(!p11) nu=1; p0=dis[num]; p2=dis[nu]; } main()

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

while(1) /*进入无限循环*/ {if(!P10) /*判断总控开关,按下则执行以下程序*/ {num=0;nu++;scan();} /*扫描按键,执行scan()子程序*/ else

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

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

这部分程序主要完成在总控开关控制下的开始投票、暂停投票和清零工作。 (2)子程序部分 scan() {

while(!P10) /*判断总控开关是否一直保持接通状态,接通则进行投

票过程循环,否则不执行程序,即投票按键无效*/

{ 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 仿真与调试

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

,我们能清楚地观察到每一个引脚的电频变化,红色代表高电

频,蓝色代表低电频。

a b

c

d

e f

g

仿真过程如图,接通总控开关,最高处发光二极管发红光,既此时所有人投票有效,并可看见票数显示器显示“0”,轮次显示器显示“1”投票第一轮开始,进入投票阶段,如图(a);然后任意按下一个投票按键如P3,同时可看到p3处发光二级管闪烁一次蓝光,即投票有效,此时票数显示器示数字变成“1”,轮次显示器“1”不变,如图(b);再按另一个P5,二极管闪烁蓝光后票数LED灯变成“2”,如图(c);此时再次按下第一次按过的按键P3,显示器仍保持数字“2”,如图(d);即可完成每个按键只能投票一次的功能。最后将总控开关断开,可看到显示器没有变化,可以继续显示投票结果,但红色发光二极管终止发光,此后在投票无效,

再次按任意投票按键,投票显示器无反映,即完成投票暂停功能。再次接通总控,可发现票数显示器又回到初始阶段“0”,轮次显示器显示“2”,即进入第二轮投票,如图(e),若此后有4人投票,则票数显示器显示“4”,而轮次显示器“2”不变。即票数完成清零并进入新一轮投票阶段,如图(f),所有投票结束后按下轮次复位按钮,则所有显示器回复初始状态,如图(g),最终出现这个过程就已经意味着系统仿真成功!

21

单片机课程设计

说明书

课题: 班级投票显示器

班级:指导老师:刘鹏

同组成员:赵庆栋、赵泽峰、张涛、钟伟宝、郭宁、吕义超、吴建科

烟台大学

机电汽车工程学院

目录

前 言...............................................................................3

第一章 绪 论.................................................................4

1.1 概述.......................................................................................4

1.2 设计目的...............................................................................4

1.3 设计任务和内容...................................................................4

第二章 总体设计及核心器件简介..............................6

2.1 总体设计...............................................................................6

2.2 MCS-51单片机....................................................................6

2.3 LED数码显示器..................................................................10

2.4 发光二级管...........................................................................13

第三章 投票显示系统电路设计与仿真.....................14

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

3.2 系统流程图..........................................................................15

3.3 程序编写..............................................................................17

3.4 仿真与调试..........................................................................19

前言

单片机技术是现代电子工程领域一门迅速发展的技术,它的应用已渗透到

各种嵌入式系统中。毫不夸张地说:掌握单片机技术信息类学生就业的一个重要

条件。同时单片机技术又是一门实践性很强的学科。课程设计教学环节的设计和

实施,在很大程度上决定了我们对单片机的掌握程度。为了更好的完成课程设计

这一重要教学环节,我们采用Proteus软件与Keil软件整合构建单片机虚拟实

验平台。首先在PC上利用Proteus软件自己搭建硬件电路,并利用系统提供的

功能完成电路分析,系统调试和输出现实的硬件设计部分,同时在Keil软件中

编制程序,进行相应的编译和仿真,完成系统的软件设计部分。当系统的设计工

作完成后,就可以在PC上看到最终的运行效果。最后在通过Proteus设计PCB,

在完成真正硬件的调试。

采用以上方案具有以下优势:有利于促进课程和教育改革,更有利于人才的

培养;从经济性、可移植性、可推广性角度讲,建立这样的课程设计平台是非常

有意义的,利用仿真系统,可以节约开发时间和开发成本,利用仿真系统具有很

大的灵活性和可扩展性。

第一章 绪论

1.1 概述

目前投票显示系统电路的应用可以说非常广泛,班级投票,公司竞选,文娱

节目等许多不记名投票活动都经常会用到各式各样的投票器,虽然这些投票器外

观和样式都有所不同,功能可能也有多有少,但他们的原理都大同小异。因此现

将基本原理熟练掌握,以后再进行功能扩展就简单易行了。

本文论述了利用单片机制作投票系统的全过程,包括阐述该系统的基本工作原

理,利用WAVE软件进行程序编与调试和Proteus ISIS仿真软件进行电路模拟仿

真,实物制作与调试。

1.2 设计目的

(1)加强对单片机和C51语言的认识,充分掌握和理解设计各部分的工作原理、

设计过程、选择芯片器件、模块化编程等多项知识。

(2)用单片机模拟实现具体应用,使个人设计能够真正应用。

(3)把理论知识好实践相结合,充分发挥个人能力,并在实践中锻炼。

(4)提高利用已学知识分析和解决问题的能力。

(5)提高实践动手能力。

1.3 设计任务和内容

1.3.1 设计任务

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

要包含:

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

(2) 3个以上的按键;

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

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

1.3.2 设计要求

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

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

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

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

创新:(1)增加发光二极管显示有效性;

(2)增加LED显示器显示投票轮数;

1.3.3 设计内容

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

(2)设计电路原理图;

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

(4)编写设计说明书。

第二章总体设计及核心器件简介

2.1 总体设计

整个设计以AT89C51单片机为核心,点触开关控制信号通过单片机I/O口,

单片机处理信号并将结果通过LED数码管显示。以发光二极管显示信号输入的有

效性,最终上电复位单片机。总体设计如下图。

2.2 MCS-51单片机

2.2.1 AT89C51单片机内部结构

AT89C51是一种低电压,高性能CMOS 8位单片机,采用ATMEL公司的高密度、

非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器

(CPU)和4K字节FLASH(FPEROM—Flash Programmable and Erasable Read Only

Memory)存储单元,功能强大AT89C51单片机可为您提供许多高性能比的应用场

合,可灵活应用在各种控制领域。

单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL

高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管

脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL

的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51

单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89C51单片机的主要工作特性:

·内含4KB的FLASH存储器,擦写次数1000次;

·内含28字节的RAM;

·具有32根可编程I/O线;

·具有2个16位可编程定时器;

·具有6个中断源、5个中断矢量、2级优先权的中断结构;

·具有1个全双工的可编程串行通信接口;

·具有一个数据指针DPTR;

·两种低功耗工作模式,即空闲模式和掉电模式;

·具有可编程的3级程序锁定定位;

AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.

AT89C51各部分的组成及功能:

图2-1

还有,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工

作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断

系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有

部件工作直到出现下一个硬件复位。

2.2.2 AT89C51单片机的引脚说明

1. 引脚排列及功能

AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。

(1)I/O口线 ·P0位、漏极开路的双向I/O口。

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

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

也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置

1。P0口可驱动8个TTL负载。

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

P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位

地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。

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

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

P2口接收高字节地址和某些控制信号。

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

P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/

校验时,P3口接收某些控制信号。它可驱动4个TTL负载。

图2-2 引脚位置

(2)控制信号线

·RST 复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。

·EA/VPP 外部程序存储器访问允许信号EA.

当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压5V或12V。在编程校验时,该引脚可接VCC。

·PSEN 片外程序存储器读选通信号PSEN器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部RAM时,PSEN 无效。

·ALE/PROG 低字节锁存信号ALE.在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。此外,ALE端连续输出正脉冲,频率为晶振频率的1/6,可做外部定时脉冲使用。

(3)外部晶振引线

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

荡器时,连接外部石英晶体和微调电容。

·XTAL2 片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体和微调电容。

2.2.3 AT89C51单片机复位方式

8051的复位方式可以是自动复位(左图),也可以是手动复位(右图),见下图 。此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据部丢失。

图2-2 图2-3

此投票器使用自动复位如图2-2

2.3 数码管

LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电

极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类, LED数码管有共阳极和共阴极两种结构。如下图

了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。共阴和共阳极数码管的内部电路发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图。 图2-3-1 这是一个7段两位带小数点 10引脚的LED数码管

图 2-3-1引脚定义

每一笔划都是对应一个字母表示 DP是小数点.

图 2-3-2 共阴极LED数码管的内部结构原理图

LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

表1.1 显示数字对应的二进制电平信号

2.4 发光二级管

发光二极管正向导通,反向截止,当通入正向电时发光。

图2-5

第三章 投票显示系统电路设计与仿真

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

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

图3-1投票显示系统电路原理图

如图3-1所示,投票显示系统电路的核心是单片机AT89C51。单片机的P1.0口引脚接1个单刀单置开关,作为总控开关,控制投票系统的开始、停止和清零工作;单片机的P1.1口引脚接按键式开关,作为控制投票轮次的复位开关;P1.2

—P1.7接6个按键式开关,作为投票者的投票按键,并在总控开关上并联一发光二极管和非门串联的电路,当此发光二极管发红光时所有人投票有效,并在各投票按钮处设置蓝色发光二极管,发光时作为该投票的确认信号。单片机的P0.0—P0.6口7个引脚接LED共阴显示器的段选码(a、b、c、d、e、f、g)的引脚上,实现LED显示器的显示字符(即显示票数),电阻主要起限流作用。RST引脚接自动复位电路;XTAL1与XTAL2引脚接时钟电路。P2口与LED显示器相接,用于显示投票轮次。

3.2 系统流程图

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

具体流程如下图。

3.3 程序编写

按照上面流程图进行源程序编写,源程序如下: (1)主程序部分 #include "reg51.h" #include"stdio.h" sfr p2=0xa0; sfr p1=0x90; sfr p0=0x80;

sbit P10=P1^0; /*位定义*/ sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; sbit P14=P1^4; sbit P15=P1^5; sbit P16=P1^6; sbit P17=P1^7; Unsigned char

dis[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00}; /*定义字型表*/ unsigned char num,num2,num3,num4,num5,num6,num7; char nu=0;

void disp() /*显示子程序*/ { num=num2+num +num4+num5+num6+num7; if(!p11) nu=1; p0=dis[num]; p2=dis[nu]; } main()

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

while(1) /*进入无限循环*/ {if(!P10) /*判断总控开关,按下则执行以下程序*/ {num=0;nu++;scan();} /*扫描按键,执行scan()子程序*/ else

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

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

这部分程序主要完成在总控开关控制下的开始投票、暂停投票和清零工作。 (2)子程序部分 scan() {

while(!P10) /*判断总控开关是否一直保持接通状态,接通则进行投

票过程循环,否则不执行程序,即投票按键无效*/

{ 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 仿真与调试

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

,我们能清楚地观察到每一个引脚的电频变化,红色代表高电

频,蓝色代表低电频。

a b

c

d

e f

g

仿真过程如图,接通总控开关,最高处发光二极管发红光,既此时所有人投票有效,并可看见票数显示器显示“0”,轮次显示器显示“1”投票第一轮开始,进入投票阶段,如图(a);然后任意按下一个投票按键如P3,同时可看到p3处发光二级管闪烁一次蓝光,即投票有效,此时票数显示器示数字变成“1”,轮次显示器“1”不变,如图(b);再按另一个P5,二极管闪烁蓝光后票数LED灯变成“2”,如图(c);此时再次按下第一次按过的按键P3,显示器仍保持数字“2”,如图(d);即可完成每个按键只能投票一次的功能。最后将总控开关断开,可看到显示器没有变化,可以继续显示投票结果,但红色发光二极管终止发光,此后在投票无效,

再次按任意投票按键,投票显示器无反映,即完成投票暂停功能。再次接通总控,可发现票数显示器又回到初始阶段“0”,轮次显示器显示“2”,即进入第二轮投票,如图(e),若此后有4人投票,则票数显示器显示“4”,而轮次显示器“2”不变。即票数完成清零并进入新一轮投票阶段,如图(f),所有投票结束后按下轮次复位按钮,则所有显示器回复初始状态,如图(g),最终出现这个过程就已经意味着系统仿真成功!

21


相关内容

  • 中国图书馆年会会徽征集入围投票
  • 中国图书馆年会,是全国图书馆界规模最大的行业盛会,也是一场推动文化事业和文化产业携手共赢的合作盛会."2013年中国图书馆年会-中国图书馆学会年会·中国图书馆展览会"(以下简称"年会"),将于11月7日-9日在上海市浦东新区召开. 本次中国图书馆年会由文化部主 ...

  • 在线投票系统_吴志辉
  • 在线投票系统 [摘 要] 吴志辉 浙江绍兴文理学院工学院计算机系032班 本文给出了一个基于ASP.NET(C#)+SQL-SERVER2000在线投票系统的实现.该系统 分为"前台投票"和"后台管理"两大部分. 其中投票部分有前台用户投票,查看结果两大功能,后台管理,管理员可以登录管理系统.管理员 ...

  • 院标设计大赛策划书
  • 一.活动背景: xx年7月管理学院正式更名为商学院,新的起点赋予新的意义.为了彰显商学院学科特色.打响品牌.扩大影响,提升商学院工作的文化内涵.推动学院发展,现向全校师生征集商学院院标. 二.征集对象:桂林电子科技大学全校师生(可以以团队或个人的形式参加,若以团队形式参加,则每个团队的成员数不得多于 ...

  • 微课大赛说明
  • 首届全省中小学 教师微课竞赛活动说明 竞赛活动组委会办公室 金 玉 2014.2.21 内容大纲 • • • • • • • 微课竞赛活动简介 微课竞赛流程设置 各市级赛事组织单位相关事宜说明 微课作品要求 微课作品评审与投票 微课竞赛省级奖励 交流解答相关问题 目的意义 创新教师培训形式.提升教师 ...

  • 无纸化智能会议系统技术设计方案20170427
  • 无纸化交互式智能会议系统实施方案 (2017年4月) 为了更好的服务人民法院审委会工作需要.提高审委会会议的效率.更好的辅助领导决策,威数开发了无纸化智能会议系统,为人民法院审委会讨论研究重大疑难案件.审议讨论重要文件及研究决议其它有关工作问题等提供全方位的智能管理. 一.系统优势 与传统会议召开方 ...

  • 2014大学校园寝室门牌设计大赛策划书范文
  • 活动背景: 经过长时间的磨合,每个寝室都形成了自己的文化,自己的精神,自己的个性.每个寝室都是一个聚宝盆,蕴藏着这个寝室里每位同学的才华,如何才能将这份才华,这份个性展示其他人呢?来参加寝室门牌设计大赛吧.寝室门牌,其实就像中世纪西欧骑士的徽章,象征着荣誉.理想.信念.这恰恰是我们大学生所需要的,在 ...

  • 高培勇[公共经济学]教案
  • <公共经济学>课程教案 一.教学目的与要求 1.在掌握微观经济学.福利经济学理论的基础上把握公共经济学的基本概念.基本原理.基本范畴和基本方法. 2.在掌握公共经济学理论体系及方法的基础上,理论联系实际,形成分析公共部门的经济活动,探讨存在的实际问题和解决问题的能力. 二.教学重点与难点 ...

  • 校园咖啡杯涂鸦活动策划书
  • 一 活动要素: 活动主办方:北京第二外国语学院外联部 活动对象:北京第二外国语学院所有学生 活动地点:北京第二外国语学院 活动时间:11月9日-- 11月16日 活动背景: 才刚刚结束考试周,为了给大家放松心情,将紧张的考试给大家的疲惫赶快赶走,我们准备举办一场校园咖啡杯涂鸦活动. 二 活动目的和活 ...

  • 关于"手抄报"比赛通知1
  • 关于"手抄报"评选比赛的通知 各二级学院.体教部: 为了积极推动学校一年一度的"心理健康活动月"教育,积极开展促进心理知识教育活动,体现广科学子"积极.健康.向上,创新"的思想,充分发挥各自的才能,提高同学们的创新能力,激发同学们对心理知识 ...