当前位置:文档之家› (可参照这个)抢答器的设计(1602显示)

(可参照这个)抢答器的设计(1602显示)

(可参照这个)抢答器的设计(1602显示)
(可参照这个)抢答器的设计(1602显示)

序言

电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。

随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能。并简化其电路结构。控制系统的三个模块为:显示模块、存储模块、抢答开关模块。该系统通过开关电路四个按键输入抢答信号,利用1602液晶屏来完成显示功能,用按键来让选手进行抢答,在液晶屏上显示抢答最快的号码及时间,从而实现整个抢答过程。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用AT89C52单片机作为核心。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,单片机控制的智能抢答器设,

计,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题的。本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。

目录

0. 摘要 (3)

1. 四路抢答器的基本理论 (3)

2.方案设计 (4)

3. 硬件电路的工作原理 (5)

4. 软件编程 (14)

5. 系统调试和结果分析 (21)

6. 结论及进一步设想 (24)

参考文献 (25)

附录1 元件清单 (26)

课设体会 (28)

摘要:抢答器可以在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答成功者。通过抢答者的指示灯、液晶屏显示和声音显示等手段指示出第一抢答者。一般抢答器由单片机以及外围电路组成,分为四路、八路等不同,四路和八路的差别是,抢答器背面的接口有几组,和外形没有关系。

通过自主的设计、编程和调试出一个简单的四路抢答并在液晶屏显示抢答成功者号码;熟悉C语言编程;了解单片机仿真系统的使用方法,达到提高综合运用相关知识的能力;进一步熟悉和掌握Proteus7的使用方法;掌握单片机系统设计全部过程的目的。

关键字: 抢答单片机液晶屏显示

Abstract: responder can be in competition, sports entertainment ( answer activity ), accurate, impartial, visually judged successful answer. The responder indicating lamp, liquid crystal display screen and sound display means is indicative of a first responder. The general answer is controlled by single chip microcomputer and the peripheral circuit, divided into four road, eight road, four road and eight road difference is, responder on the back of the interface has several groups, and the shape of it doesn't matter.

Through the independent design, programming and debugging a simple four way contest and in the liquid crystal display screen successful answer number; familiar with C programming language; understand the MCU simulation system the use of methods, to improve the comprehensive use of knowledge related to ability; further familiar with and master the use of Proteus7 method; the master MCU system design whole process objective.

Keywords : Vie for answering ,the MCU LCD ,screen display。

1. 四路抢答器的基本理论

本设计是采用单片机设计的四人比赛用抢答器系统。它具有电路简单、功能齐全、制作成本低、性价比高等特点,是一种经济、实用的比赛用抢答器。硬件部分主要由单片机AT89c52、74HC573锁存器、1602液晶屏、主持人操作键盘和其它基本外围电子电路组成。

2.方案设计

抢答器的设计方案要实现以下功能:(1)抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0 ~ S3表示。(2)设置一个系统清除S1和抢答控制开关S2,该开关由主持人控制。(3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在1602液晶屏上显示,同时蜂鸣器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如10秒)。当主持人启动"开始"键后,定时器进行减计时(5)如果定时时间已到,无人抢答,本次抢答无效,系统禁止抢答,定时显示器上显示01s。该设计采用AT89C52单片机作为控制系统核心。该系统可以完成信号识别,运算控制以及显示功能。

抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。通过抢答按键模块,连接按键进行抢答。此电路完成的功能如图1所示,当主持人宣布抢答开始的时候,按下开始按钮,此时电路进入抢答状态,选手的输入采用了扫描式的输入,之后把相应的信息送往单片机,再由单片机输出到显示输出电路中。此时有人第一按下相应的抢答按钮,经过单片机的控制选择,在液晶屏上显示相应的号码,并锁存,同时禁止其他按钮的输入。系统是采用模块化设计的智能抢答器,主控与参赛者设为终端分系统。主控分系统有:开始与结束控制按钮、时限设定、各种相关显示调控功能等。参赛者分系统设有:抢答按纽、计时显示、提示功能等。

图1 抢答器原理图

3. 硬件电路的工作原理

3.1抢答器的电路图

如图(2)所示为电路图,其工作原理为:接通电源后主持人将开关拨到“清零”状态,抢答器处于禁止状态,定时器设定时间,主持人将开关置“开始”,宣布抢答开始时,选手要在规定时间内完成抢答;定时器倒计时优先判断,编号锁存,扬声器提示。

图2抢答器仿真电路图

若按了清零键后,仿真图为如下所示:

硬件电路应能完成以下功能:参加竞赛者对主持人提出的问题要在最短的时间内作出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示此竞赛者的号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。若有人在可以抢答之前按键,应该有违规提示。电路应该具有倒计时功能,倒计时时间可以设置并显示,在规定时间内没有人抢答则本题作废。回答完或超时后,由主持人将所有按键恢复,重新开始下一轮。

完成上述功能的电路包括时间设定开关、声光显示、按键控制以及按键锁存等部分,如图13.6所示。

各电路模块的功能如下。

·单片机部分:通过读取P3.7~P3.3的状态决定倒计时时间;通过读取P1.3~P1.0

的状态读取按键情况;通过P2.4~P2.2控制显示模块以显示按键者的号码和倒计时所剩时间;通过P0.1控制蜂鸣器。

·时间设定模块:以拨码开关U3作为倒计时时间的选择信号。若P3.7通过U3接地,

倒计时时间为10s;若P3.6通过U3接地,倒计时时间为8s,若P3.5通过U3接地,倒计

时时间为6s,若P3.4通过U3接地,倒计时时间为4s。判断时P3.7优先级最高,P3.4优先级最低。

·按键模块:KEY1~KEY4的信息可以直接传输到P1.3~P1.0。单片机一旦检测到有按键按下,立即将P1.4置为低电平,将按键信息锁存,以免后来的按键对其产生影响。KEY 1~KEY4为抢答按键,KEY5为主持人控制按键。

·数码管显示模块:数码管显示模块由一片MAX7219和3个数码管组成。其中U5用来显示按键者的编号,U6、U7在倒计时时显示还有多长时间,如果有人犯规抢答,U6~U7显示“FF”。

·蜂鸣器模块:蜂鸣器在主持人发出可以抢答信号、有人按下抢答按键和倒计时时间到等3种情况下发出蜂鸣声。

3.2 单片机的最小系统

52单片机的最小系统电路图:

图3-1-1 单片机的最小系统图

说明:

①复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原

则就要让RC组合可以在RST脚上产生不少于2个机周期的高电平;

②复位输入高电平有效,当振荡器工作是,RST引脚出现两个机器周期以上的高电平,使单片机复位。此电路除具有上电复位功能外,若要复位只需按“RST”键,此电源Vcc经电阻分压,在RST端产生一个复位高电平;

③晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的方波便于12分频,方便定时操作);

④单片机:一片AT89S51/52或其他51系列兼容单片机;

注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行;

⑤电源部分:接+5伏特的电压。

3.3 时钟频率电路的设计

单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。

图3-2 外部振荡源电路

一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。

单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12μs。

3.4复位电路的设计

单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图4所示:

值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。

3.5系统复位

使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。上电复位,人工按钮复位和硬件看门狗复位均为硬件复位。硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没有影响。但是,硬件复位还能自动清除中断激活标志,使中断系统能够正常工作,这样一个事实却容易为不少编码人员所忽视。软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000H地址开始执行。对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。而对中断激活标志的清除工作常被遗忘,因为它没有明确的位地址可供编程。有的编程人员用020000(LJMP 0000H)作为软件陷阱,认为直接转向0000H地址就完成了软件复位,就

是这类错误的典型代表。软件复位是使用软件陷阱和软件看门狗后必须进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。由于软件看门是高级中断,它将阻止说要中断响应,由此可见清除中断激活标志的重要性。

在所有的指令中,只有RETI指令能够清除中断激活标志。前文各处提案到的出错处理程序ERR主要完成这一功能,其他的善后工作交由复位后的系统去完成。这部分程序如下:

POWER DATA 67H ;上电标志存放单元

ERR: CLR EA ;关中断

MOV DPTR,#ERR1 ;准备返回地址

PUSH DPL

PUSH DPH

RETI ;清除高级中断激活标志

ERR1: MOV POWER,#0AAH;重建上电标志

CLR A ;准备复位地址

PUSH ACC ;压入复位地址0000H

PUSH ACC

RETI ;清除低级中断激活标志,从程序0000H开始执行。

这段程序先关中断,以便后续处理能顺利进行,然后用两个RETI指令代替两个LJMP 指令,从而清除了两级中断激活标志。有相应软件陷阱捕捉来的程序可能没有全部激活两个标志,这也无妨。

3.6 数码管显示电路

LED显示器,实现七段数码管的显示三位十六进制数。来进行倒计时,即来限制抢答的时间。

其中数码管的显示可以分为两种:静态显示和动态显示。静态显示的段选位和位选位均单独连接,因此占用的I/O接口多,无法扩展多个数码管,在这种采用这种方式,必须要给LED恒定的电压,要求电压一直保持,所以一般在LED和单片机之间加锁存器,这种显示方式亮度高,编程较简单,结构清晰,管理也较简单,占用的CPU时间少。②动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共端COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管选通控制打开,该位就显示

出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

从电路上,按数码管的接法不同又分为共阴和共阳两种。图1-1 是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。其数码管的外形如下图所示:

图3-2 数码管的共阴和共阳极接法

3.7液晶屏显示电路

使用液晶屏显示抢答成功者号码、时间。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。

1602LCD的特性

+3.3V电压,对比度可调

内含复位电路

提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能

有80字节显示数据存储器DDRAM

内建有192个5X7点阵的字型的字符发生器CGROM

8个可由用户自定义的5X7的字符发生器CGRAM

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

管脚功能

LCD1602引脚图

1602采用标准的16脚接口,其中:

第1脚:VSS为电源地

第2脚:VCC接5V电源正极

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端。

第7~14脚:D0~D7为8位双向数据端。

第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。

1602LCD特征及应用

微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。

操作控制

注:关于E=H脉冲——开始时初始化E为0,然后置E为1。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。

以下是1602的16进制ASCII码表地址:

读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)

指令集

1602通过D0~D7的8位数据端传输数据和指令。

显示模式设置:(初始化)

0011 1000 [0x38] 设置16×2显示,5×7点阵,8位数据接口;

显示开关及光标设置:(初始化)

0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)

0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),

N=0(读或写一个字符后地址指针减1 &光标减1),

S=1 且N=1 (当写一个字符后,整屏显示左移)

s=0 当写一个字符后,整屏显示不移动

数据指针设置:

数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)

其他设置:

01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。[

按键控制电路

键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。

独立式键盘,键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图3所示。

图3独立式键盘原理图

最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。

独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。

4. 软件编程

本设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的

调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,数码管显示程序以及按键控制子程序。抢答器主流程图如图4所示:

图4抢答器主程序流程图

抢答器定时中断流程图如图5:

图5抢答器定时器中断流程图

源程序设计:

#include

#define uchar unsigned char

#define uint unsigned int

uchar num; //定义中断变量,num计满20表示1秒时间到uchar num1; //十秒倒计时显示初始值

uchar flag1,flag2; //清零键及开始键按下标志位

uchar flag3,flag4=0; //定义键盘按下标志位

#define LCDPORT P0

sbit LCD1602_RS = P2^0;

sbit LCD1602_EN = P2^1;

sbit sp=P2^2; //定义蜂鸣器端口

sbit clear=P1^0; //定义清零键

sbit start=P1^1; //开始键

sbit key1=P1^2;

sbit key2=P1^3;

sbit key3=P1^4;

sbit key4=P1^5; //key2到key5为选手按键

void delay(uint z) //延时函数

{

uint i,j;

for(i=z;i>0;i--)

for(j=110;j>0;j--);

}

void WriteCmd_1602(unsigned char cmd)

{

LCD1602_RS = 0;

LCDPORT = cmd;

delay(1);

LCD1602_EN = 1;

delay(1);

LCD1602_EN = 0;

}

void WriteByte_1602(unsigned char date)

{

LCD1602_RS = 1;

LCDPORT = date;

delay(1);

LCD1602_EN = 1;

delay(1);

LCD1602_EN = 0;

}

void Init_1602()

{

LCD1602_EN = 0;

WriteCmd_1602(0x38);

WriteCmd_1602(0x0c); //光标不显示地址

WriteCmd_1602(0x06);

WriteCmd_1602(0x01);

}

void beep() //定义蜂鸣器函数

{

sp=0;

delay(500);

sp=1;

// delay(500);

}

void dis(uchar * p)

{

while(*p != '\0')

{

WriteByte_1602(*p++);

}

}

void display_init()

{

WriteCmd_1602(0x80);

dis("Serial Number:");

WriteCmd_1602(0x80 + 0x40);

dis("Surplus Time:");

WriteCmd_1602(0x80 + 0x40 + 13);

dis("00s");

}

void display_num(uchar a) //选手编号显示函数

{

WriteCmd_1602(0x80 + 15);

WriteByte_1602(a);

}

void clr() //清零函数(主持人按下清零键后数码管显示0) {

WriteCmd_1602(0x80 + 15);

WriteByte_1602('0');

}

void dis10s() //十秒倒计时显示函数

{

uchar shi,ge;

shi=num1/10;

ge=num1%10;

WriteCmd_1602(0x80 + 0x40 + 13);

WriteByte_1602(shi + 0x30);

WriteCmd_1602(0x80 + 0x40 + 14);

WriteByte_1602(ge + 0x30);

}

void player() //选手按键检测函数{

if(key1==0&&flag4==0)

{

delay(10);

if(key1==0&&flag4==0)

{

display_num('1');

TR0=0;

flag1=flag2=0;

flag4=1;

beep();

while(!key1);

}

}

if(key2==0&&flag4==0)

{

delay(10);

if(key2==0&&flag4==0)

{

display_num('2');

TR0=0;

flag1=flag2=0;

flag4=1;

beep();

while(!key2);

}

}

if(key3==0&&flag4==0)

{

delay(10);

if(key3==0&&flag4==0)

{

display_num('3');

TR0=0;

flag1=flag2=0;

flag4=1;

beep();

while(!key3);

}

}

if(key4==0&&flag4==0)

{

delay(10);

if(key4==0&&flag4==0)

{

display_num('4');

TR0=0;

flag1=flag2=0;

flag4=1;

beep();

while(!key4);

}

}

}

void keyscan() //检测按键

{

if(clear==0&&flag2!=1) //判断清零键,判断语句的作用是按下开始键清零键失效

{

delay(10);

if(clear==0&&flag2!=1)

{

while(!clear); //等待按键释放

flag1=0;

flag2=0;

flag3=0;

flag4=0;

num=0;

num1=10;

clr(); //清零

flag1=1; //按下清零键标志位

}

}

if(flag1==1) //如果按下清零键

{

if(start==0&&flag3==0) //判断开始键,判断语句的作用是按下

开始键后开始键失效

{

delay(10);

if(start==0&&flag3==0)

{

flag2=1;

flag3=1;

while(!start);

}

}

}

if(flag2==1) //按下开始键

{

TR0=1; //启动定时器0

dis10s();

player();

}

}

void main()

{

TMOD=0x01; //设置定时器0工作方式1 TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1; //开总中断

ET0=1; //开定时器0中断

Init_1602();

display_init();

while(1) //一直检测按键

{

keyscan();

}

}

void T0_ser() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

num++;

if(num==20)

{

num=0;

num1--;

}

if(num1==0)

LCD1602中文资料

液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。 这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的1602液晶模块来介绍它的编程方法。 1602采用标准的16脚接口,其中: 第1脚:VSS为地电源 第2脚:VDD接5V正电源 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。 第15~16脚:空脚 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 1602液晶模块内部的控制器共有11条控制指令,如表2所示,

它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平) 指令1:清显示,指令码01H,光标复位到地址00H位置 指令2:光标复位,光标返回到地址00H 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 (有些模块是 DL:高电平时为8位总线,低电平时为4位总线) 指令7:字符发生器RAM地址设置 指令8:DDRAM地址设置 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据

LCD1602液晶显示器

实验11:1602液晶显示屏显示(字符型液晶显示器) 字符型液晶显示器用于数字、字母、符号并可显示少量自定义符号。这类液晶显示器通常 有16根接口线,下表是这16根线的定义。 字符型液晶接口说明 编号符号引脚说明编号符号引脚说明 1 Vss 电源地 9 D 2 数据线2 2 Vdd 电源正 10 D 3 数据线3 3 VL 液晶显示偏压信号 11 D 4 数据线4 4 RS 数据/命令选择端 12 D 5 数据线5 5 R/W 读/ 写选择端 13 D 6 数据线6 6 E 使能信号 14 D 7 数据线7 7 D0 数据线0 15 BLA 背光源正极 8 D1 数据线1 16 BLK 背光源负极(本学习板配的 内部已经接地) 下图是字符型液晶显示器与单片机的接线图。这用了P0口的8根线作为液晶显示器的数据 线,用P20、P21、P22做为3根控制线。

字符型液晶显示器与单片机的接线图 字符型液晶显示器的使用,字符型液晶显示器一般采用HD44780芯片做为控制器的。 1.字符型液晶显示器的驱动程序 这个驱动程序适用于1602型字符液晶显示器, 1) 初始化液晶显示器命令(RSTLCD) 设置控制器的工作模式,在程序开始时调用。 参数:无。 2) 清屏命令(CLRLCD) 清除屏幕显示的所有内容 参数:无 3) 光标控制命令(SETCUR) 用来控制光标是否显示及是否闪烁 参数:1个,用于设定显示器的开关、光标的开关及是否闪烁。 4) 写字符命令(WRITECHAR) 在指定位置(行和列)显示指定的字符。

参数:共有3个,即行值、列值及待显示字符,分别存放在XPOS、YPOS和A中。其中行值与列值均从0开始计数,A中可直接写入字符的符号,编译程序自动转化为该字符的ASCII 值。 5) 字符串命令(WRITESTRING) 在指定位置显示指定的一串字符。 参数:共有3个,即行值、列值和R0指向待显示字符串的内存首地址,字符串须以0结尾。如果字符串的长度超过了从该列开始可显示的最多字符数,则其后字符被截断,并不在下 行显示出来。 以下是驱动源程序 ;************************************************** ;连线图: ; DB0---DPROT.0 DB4---DPROT.4 RS-------------P2.0 ; DB1---DPROT.1 DB5---DPROT.5 RW-------------P2.1 ; DB2---DPROT.2 DB6---DPROT.6 E--------------P2.2 ; DB3---DPROT.3 DB7---DPROT.7 VLCD接1K电阻到GND* ;系统晶振为11.0592 ;************************************************** RS BIT P2.0 RW BIT P2.1 E BIT P2.2 DPORT EQU P0 XPOS EQU R1 ;列方向地址指针 YPOS EQU R2 ;行方向地址指针 CUR EQU R3 ;设定光标参数 NoDisp EQU 0 ;无显示 NoCur EQU 1 ;有显示无光标 CurNoFlash EQU 2 ;有光标但不闪烁 CurFlash EQU 3 ;有光标且闪烁

4路抢答器数字电路课程设计

课题名称:数显抢答器的设计

数字电子课程设计任务书

目录 1绪论 1.1 摘要 (4) 1.1 设计题目:抢答器电路设计 (4) 1.2 设计任务和要求 (4) 1.3 方案比较 (4) 2系统总体方案及硬件设计 (5) 2.1 系统总体方案 (5) 2.2 硬件设计 (6) 3软件设计 (12) 3.1 单元电路设计 (12) 3.1.1 抢答电路 (12) 3.1.2 定时电路 (14) 3.1.3 报警电路 (15) 3.1.4 时序控制电路 (15) 4课程设计体会 (17) 5参考文献 (18)

摘要 随着我国经济和文化事业的发展,在很多竞争场合要求有快速公正的竞争裁决,例如证券、股票交易及各种智力竞赛等。在现代社会生活中,智力竞赛更是作为一种生动活泼的教育形式和方法能够引起观众极大的兴趣。而在竞赛中往往分为几组参加,这时针对主持人提出的问题,各组一般要进行必答和抢答,对必答一般有时间限制,到时有声响提示;对于抢答,要判定哪组先按键,为了公正,这就要有一种逻辑电路抢答器作为裁判员。一般抢答器由很多门电路组成,线路复杂,可靠性低,特别是抢答路数增多时,实现起来更加困难。本文介绍了一种利用数字电路实现的抢答系统,具有很强的实用性。 数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并数码管上显示选手的编号,同时扬声器给出声音提示;同时封锁输入电路,禁止其它选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。抢答器具有定时抢答的功能,且一次抢答的时间为3秒。当主持人启动“开始”键后,要求定时器立即进行减计时,并用显示器显示通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止;如果定时抢答的时间已到,而没有选手抢答时,本次抢答无效,并封锁输入电路,禁止选手超时后抢答,定时显示器上显示0并闪烁。经过布线、焊接、调试等工作后数字抢答器成形。

四路抢答器设计

09电子信息工程专业技能训练总结 题目:四路抢答器设计 班级:电子信息工程092班 姓名: 学号: 2012年5月

四路抢答器设计 一、设计要求及方案设计 1.1设计任务和要求 1)设计任务 设计一台可供4名选手参加比赛的智力竞赛抢答器。用数字显示抢答倒计时间,由?9?倒计到?0?时,无人抢答,蜂鸣器连续响1秒。选手抢答时,数码显示选手组号,同时蜂鸣器响1秒,倒计时停止。 2)设计要求 (1)4名选手编号为:1,2,3,4。各有一个抢答按钮,按钮的编号与选手的编号对应,也分别为1,2,3,4。 (2)给主持人设置一个控制按钮,用来控制系统清零(抢答显示数码管灭灯)和抢答的开始。 (3)抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,该选手编号立即锁存,并在抢答显示器上显示该编号,同时扬声器给出音响提示,封锁输入编码电路,禁止其他选手抢答。抢答选手的编号一直保持到主持人将系统清零为止。 (4)抢答器具有定时(9秒)抢答的功能。当主持人按下开始按钮后,定时器开始倒计时,定时显示器显示倒计时间,若无人抢答,倒计时结束时,扬声器响,音响持续1秒。参赛选手在设定时间(9秒)内抢答有效,抢答成功,扬声器响,音响持续1秒,同时定时器停止倒计时,抢答显示器上显示选手的编号,定时显示器上显示剩余抢答时间,并保持到主持人将系统清零为止。 (5)如果抢答定时已到,却没有选手抢答时,本次抢答无效。系统扬声器报警(音响持续1秒),并封锁输入编码电路,禁止选手超时后抢答,时间显示器显示0。 的脉冲信号,作为 (6)可用石英晶体振荡器或者555定时器产生频率为1H z 定时计数器的CP信号。

基于51单片机1602液晶显示简易计算器设计

#include #include #define uint unsigned int #define uchar unsigned char #define PI 3.141592 sbit RS = P2^0; sbit RW = P2^1; sbit EN = P2^2; sbit led=P2^4; sbit speek=P3^7; uchar table0[]={"Welcome to use"}; uchar table1[]={"made by Ms. Li"}; uchar table2[]={"error"}; uchar count; void main(void) { uchar error=0,i,first=0,dot1,dot2,dot1_num,dot2_num,minus1,minus2;//错误标志、第一次清屏标志、小数点标志以及小数点个数负号标志、负号个数 uchar Sin,Cos,Tan,ln; uchar Key_num,last_key_num; //键号 uchar flag=0,equal_flag; //运算符、等于符 double num1=0,num2=0,num=0,result=0,save_result; //第一个数、第二个数、计算结果

uchar first_num=0,Ans=0,second_num=0; InitLcd(); EA=1; ET0=1; TMOD=0X01; TH0=(65536-500)/256; TL0=(65536-500)%256; write_com(0x80+0x40+15); write_Dat('0'); write_com(0x80); while(1) { while(key_scan()==0xff); TR0=1; if(first==0) { first=1; write_com(0x01); } Key_num=key_scan(); switch(key_scan()) { case 1: if(last_key_num!=Key_num) { write_Dat('l'); write_Dat('n'); ln=1; }break; case 2: if(last_key_num!=Key_num) { write_Dat('s'); write_Dat('i'); write_Dat('n'); Sin=1; }break; case 3: if(last_key_num!=Key_num) { write_Dat('c'); write_Dat('o'); write_Dat('s'); Cos=1;

1602字符型液晶显示器

1602字符型液晶显示器 在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。 1602字符型LCD简介: 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图10-53: 图10-53 1602字符型液晶显示器实物图 1602LCD的基本参数及引脚功能: 1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图10-54所示:

图10-55 读操作时序 图10-56 写操作时序 1602LCD的RAM地址映射及标准字库表: 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图10-57是1602的内部显示地址。

图10-57 1602LCD内部显示地址 例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。 在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B (41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 图10-58 字符代码与图形对应图

四路抢答器课程设计报告

四 路 抢 答 器 设 计 实 验 报 告 信息科学技术学院自动化*班 ****

四路抢答器设计实验报告 一、设计任务: 1、巩固和加深对电子电路基本知识的理解,提高综合运用本课程所学知识的能 力。 2、养成根据设计需要选学参考书籍,查阅相关手册、图表和文献资料的自学能力。 3、通过电路方案的分析、论证和比较,设计计算和选取元器件、电路组装、 调试和检测等环节,初步掌握简单实用电路的分析方法和工程设计方法。 4、学会简单电路的实验调试和性能指标的测试方法,提高学生动手能力和进行 数字电子电路实验的基本技能。 二、技术指标 抢答器是一种具有优先输出的电子电路。它的基本功能是,在四组参赛的情况下,首先抢答者发出抢答信号,此时其他参赛组的抢答电路即失去控制作用。在优先抢答者解除抢答信号后,电路才自动恢复到各组又可均等抢答的状态中。 1、设计一个可供4人进行的抢答器。 2、系统设置复位按钮,按动后,重新开始抢答。

3、抢答器开始时数码管无显示,选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。抢答后显示优先抢答者序号,同时发出音响。并且不出现其他抢答者的序号,这样其它选手无法再抢答,达到抢答目的。 4、抢答器具有定时抢答功能,本抢答器的时间设定为10秒,当主持人启动“开始”开关后,定时器开始减计。 5、设定的抢答时间,选手可以抢答,这时定时器开始工作,显示器上显示选手 的和抢答时间。并保持到主持人按复位键。 6、当设定的时间一到,而无人抢答时,本题报废,选手们无法再抢答,同时扬 声器报警发出声音,定时器上显示0。 三、元件清单:

LCD1602液晶显示器设计

LCD1602液晶显示课程设计 第一章绪论 1.1课题背景 当今时候是一个信息化的时代,信息的重要性不言而喻的,获取手段显得尤其重要。人们所接受的信息有70%来自于人的视觉,无论用何种方式获取的信息最终需要有某种显示方式来表示。在当代显示技术中,主流的有LED显示屏和LCD液晶显示,而在这些显示技术中,尤其以液晶显示器LCD(Liquid crystal display)为代表的平板显示器发展最快,应用最广。LCD是典型的发光器件,它一材料科学为基础,综合利用了精密机械,光电及计算机技术,并正在微机械,微光学,纤维光学等前沿领域研究基础上,向高集成化,智能化方向发展。 液晶显示技术发展迅猛,市场预测表明,液晶显示平均年销售呈增长10%~13%,不久的将来有可能取代CRT,成为电子信息产品的主要显示器件,另外,液晶显示器对空间电磁辐射的干扰不敏感,且在紧凑的仪器空间不需要专门的屏蔽保护,因而课大大简化仪器的结构和制造成本,在各种便携式仪器,仪表将会越来越广泛的应用。特别是在电池供电的单片机产品中,液晶显示更是必选的显示器件。 1.2课题设计目标 本设计是基于AT89C51芯片单片机为主控芯片,结合1602液晶显示模板等外围电路,通过软件程序,来实现液晶显示英文字母。本次设计的目的在于利用单片机和IIC技术来显示英文字母。 1.3课程设计的主要工作 (1)对系统的各个模块的各个功能进行深入分析和研究,在对课题所采用的方案进行可行详细的研究后设计具体功能电路。 (2)熟悉所选芯片的功能并完成具体电路设计。

(3)对系统的最终指标进行测试,针对系统的不足,进行分析并提出一些改正方法。 1.4 设计要求 (1)运行IIC总线技术。 (2)循环显示字母。 第二章硬件设计 2.1 LCD1602简介 2.1.1 LCD1602引脚功能 LCD1602引脚如图2.1所示 图2.1 LCD1602引脚图 引脚图的功能如表2—1所示

数字四路抢答器设计方案

数字四路抢答器设计方案 一、设计任务 设计并制作一个四路抢答器。 二、设计要求 1.抢答器供4人比赛用,分别有A,B,C,D表示。 2.当按下清零开关时电路复位,这时可以进行下一轮比赛。 3.抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,在LCD数码管上显示, 且蜂呜器发出声音。 注:选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。 三、设计方案与总体设计 1.本设计主要由COMS系列数字集成电路CD4511、CD4001、NE555等组成。 2.其工作原理为:接通电源后,将开关拨到”清除”状态,抢答器处于禁止状态,编号显示器不亮;将开关置于“开始”状态,抢答器开始工作。在抢答时,抢答器完成:优先判断、编号锁存、编号显示、蜂呜发音。当一轮抢答之后,如果再次抢答必须再次操作“清除”和“开始”状态开关抢答器才能工作。 四、单元电路设计 1.开关、编码电路 电路中,R1、R2、R3、R4、用于分压,当任一开关按下时,相应的输出为高电平,否则为低电平。电路直接把每个开关对应的BCD8421码中为“1”的隔着二极管连到对应的线上(只有一个为高电平的可省略二极管),其中二极管的作用是防止短路。当某个开关按下时,与它相连的输出线将为高电平,其它输出线为低电平,输出既为这个开关的8421码(BCD码)。 2.编码表 (1)这部分电路要求将编码电路送入8421码,译为十进制数(对应各个抢答者的编号)并驱动七段数码显示管显示出答题者的编号。CD4511是一块BCD-十进制译码/驱动器,并带有锁存埠。其引脚排列图如图所示:

CD4511引脚排列图: (2)显示电路如下: 3.控制电路 (1)这部分电路的作用完成三个任务:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是使其它选手按键操作无效;三是防止提前按键。(2)控制电路图

基于LCD1602液晶显示系统课程设计

课程设计(论文) 题目名称基于89C51的液晶显示系统设计 课程名称单片机原理及应在电气测控学科中的应用学生姓名刘晨 学号1141201014 系、专业电气工程系电气工程及其自动化专业 指导教师朱群峰 2013年6月14日

邵阳学院课程设计(论文)任务书 年级专业11级电气工程及 其自动化专业 学生姓名刘晨学号1141201014 题目名称基于89C51的液晶显示系统设计设计时间2013年6月3日—2013年6月14日 课程名称单片机原理及应 在电气测控学科 中的应用 课程编号121200105设计地点 数字控制与PLC实 验室(305) 一、课程设计(论文)目的 课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象. 《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。 二、已知技术参数和条件 1、液晶显示功能见第三项“任务和要求”具体参数 1、89C51系列单片机; 2、KEIL 软件;Wave软件、protuse软件 3、THKSCM-1型单片机实验系统。 三、任务和要求 利用89C51驱动液晶显示器工作,液晶显示器的型号自己确定(可以用1602或者12864)要求显示出自己的基本信息(英文或者中文,内容自定)。 1、要求设计出硬件系统的电气原理图; 2、要求设计出程序流程图和程序; 3、要求设计出实物或者仿真调试。 注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效; 2.此表1式3份,学生、指导教师、教研室各1份。

单片机+LCD1602液晶显示字符串

1602液晶显示字符串(附带程序)(注意说明:使用的实验板是郭天祥老师的52单片机板)

基本操作电路 状态字说明 RAM地址映射图

初始化相关指令的意思 读时序图

写时序图

要想通过1602液晶来显示你想要显示字符串,其实是很简单的,程序虽然有点长,但是都是按照步骤来的。 1602的五大步骤 第一个步骤: 检查LCD忙状态 lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。第二个步骤: 写指令数据到LCD RS=L,RW=L,E=高脉冲,D0-D7=指令码。 第三个步骤: 写显示数据到LCD RS=H,RW=L,E=高脉冲,D0-D7=数据。 第四个步骤: 设定显示位置 第五个步骤: LCD初始化设定 只要这五步你弄懂了,什么样的字符串都可以按照你的方式显示。至于这其中的步骤的具体的方式,我们就要参照1602的资料和时序图!不过你大可不必,这份文档就足够了! #include #include #define uchar unsigned char #define uint unsigned int

sbit dula=P2^6; sbit wela=P2^7; sbit LCD_RS = P3^5; sbit LCD_RW = P3^6; sbit LCD_EN = P3^4; uchar code dis1[] = {" WLCOME TO "}; uchar code dis2[] = {" JIANG GAN HUA "}; uchar code dis3[] = {" NAN CHANG "}; uchar code dis4[] = {" HANG KONG DX"}; void delay(int ms) { int i; while(ms--) { for(i = 0; i< 110; i++) { _nop_(); } } } bit lcd_busy() { bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(P0&0x80); LCD_EN = 0; return result; } void lcd_wcmd(uchar cmd) { while(lcd_busy()); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd;

1602液晶显示计算器电路图及程序

#include #include #include #include unsigned char code Error[]={"error"}; unsigned char code Systemerror[]={"system error"}; unsigned char code Lcd[]={"lcd calculate"}; char str[16]; sbit RS=P2^0; sbit RW=P2^1; sbit E=P2^2; sbit BF=P0^7; /*********************** 函数功能:延时1ms ***********************/ void delay1ms() { unsigned char i,j; for (i=0;i<10;i++) for (j=0;j<33;j++) ; } /************************ 函数功能:延时n毫秒 入口参数:n ************************/ void delaynms(unsigned char n) { unsigned char i; for (i=0;i

四路抢答器(详图)

目录 一、实验目的 (3) 二、设计要求与内容 (3) 三、设计原理 3.1总体设计方案 (3) 3.1.1设计思路 (3) 3.1.2总电路框图 (3) 3.2各模块设计方案及原理 3.2.1抢答器 (3) 3.2.2计时器 (5) 四、电路仿真 4.1倒计时电路 (6) 4.2抢答器 (6) 五、实验结果与析 (7) 六、主要元器件 (8) 七、实习总结 (9)

四路数字抢答器 一、实验目的 结合我们所学的有关电子线路课程,综合实现四路抢答器的设计。 二、设计要求与内容 (1)要求实现ABCD四路抢答器的设计,每一组都具有独立的抢答按键,要求某路抢答后,其他三路抢答无效; (2)某路抢答信号到达后,指示该路已抢答的独立灯发光,发出提示音,并用数码管显示抢答的组号(以ABCD表示); (3)裁判桌上的公共通道号显示(以ABCD表示); (4)抢答时间的定时与报警,具体实现可自拟。 扩展内容:①记录某路的抢答次数或抢到得次数; ②记录某路的分数; ③路数的扩展。 三、设计原理及过程 3.1总体设计方案 3.1.1设计思路 ①要准确判断出第一抢答者的信号并将其锁存,实现这一功能可选择使用触发器或锁存器等。得到第一信号后其他组的抢答信号无效,并且第一信号在主持人发出抢答命令后才有效。 ②第一信号发出后,用编码、译码及数码显示电路显示抢答者的组别,发光二极管亮。 ③主持人按下抢答按钮后,开始30秒倒计时,在此时间内抢答有效,若30秒内无人抢答,主持人清零后开始新一轮抢答。 3.1.2总电路框图 3.2各模块设计方案及原理 3.2.1抢答电路

抢答电路实现选手抢答并锁存,同时发光二极管发光,数码显示。 使用优先编码器74LS148和锁存器74LS279来完成。该电路主要完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号(采用七段数字数码显示管);二是禁止其他选手按键,其按键无效。 工作过程:开关S 处于清除端时,RS 触发器R 、S 端均为0,使译码器74LS48的优先编码工作标志端位0,处于工作状态。当开关S 处于开始端时,抢答处于等待状态,当有选手按键时(如J2),优先编码器的输出经RS 锁存后,CTR=1,RBO=1,七段显示电路74LS48处于工作状态,显示数字1,即第1组选手。此时CTR=1,使优先编码器74LS48优先工作标志端为1,处于禁止状态,封锁其他按键的输入。需注意的是,74LS48译码器使抢答组别数字显示0-7,当有八组选手抢答时,1-8组选手就分别对应显示的是0-7。若要进行下一轮抢答,需由主持人按下清零开关,然后在进行下一轮抢答。 原理图如下: 译码显示电路

LCD1602液晶显示实验要点

实验报告 实验名称: [LCD1602液晶显示实验]姓名: 学号: 指导教师: 实验时间: [2013年6月15日] 信息与通信工程学院

LCD1602液晶显示实验 1.实验原理 1.1 基本原理 1.1.1 1602字符型LCD简介 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。 1.1.2 1602LCD的基本参数及引脚功能 1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图1-2所示: 图1-2 1602LCD尺寸图 1.1602LCD主要技术参数: 显示容量: 16×2个字符 芯片工作电压: 4.5~5.5V 工作电流: 2.0mA(5.0V) 模块最佳工作电压: 5.0V 字符尺寸: 2.95×4.35(W×H)mm 2.引脚功能说明: 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表: 表1-3引脚接口说明表 编 符号引脚说明编号符号引脚说明 号 1 VSS 电源地9 D 2 数据 2 VDD 电源正极10 D 3 数据 3 VL 液晶显示偏压11 D 4 数据 4 RS 数据/命令选择12 D 5 数据 5 R/W 读/写选择13 D 6 数据 6 E 使能信号14 D 7 数据 7 D0 数据15 BLA 背光源正极 8 D1 数据16 BLK 背光源负极

1.1.3 1602LCD的指令说明及时序 1602液晶模块内部的控制器共有11条控制指令,如表1-4所示: 表1-4 控制命令表 序号指令RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示0 0 0 0 0 0 0 0 0 1 2 光标返回0 0 0 0 0 0 0 0 1 * 3 置输入模式0 0 0 0 0 0 0 1 I/D S 4 显示开/关控制0 0 0 0 0 0 1 D C B 5 光标或字符移位0 0 0 0 0 1 S/C R/L * * 6 置功能0 0 0 0 1 DL N F * * 7 置字符发生存贮器 地址 0 0 0 1 字符发生存贮器地址 8 置数据存贮器地址0 0 1 显示数据存贮器地址 9 读忙标志或地址 0 1 BF 计数器地址 10 写数到CGRAM或 DDRAM) 1 0 要写的数据内容 11 从CGRAM或 DDRAM读数 1 1 读出的数据内容 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)读写操作时序如图1-5和1-6所示: 图1-5 读操作时序

四路抢答器电路组成及工作原理(含电路图)

电路组成及工作原理 四路竞赛抢答器总电路原理图如图1所示。 图1 四路竞赛抢答器原理图 1.抢答器电路原理: 如图2,IO1,IO2,IO3,IO4分别为抢答器按钮的输入端,开始抢 答,假设IO1抢答成功,通过四D触发器输出Q 1=1,Q 1 ’=0,而 Q 2’=Q 3 ’=Q 4 ’=1,通过四输入与非门后,输出高电平,再经过反相器输 出低电平,再经过两输入与非门,输出低电平,此时四D触发器处于保持状态,并且其他按钮的输入不起作用,IO1的抢答信号被锁存。此时LED1发光并且蜂鸣器发出响声。其他抢答按钮同理。

图2 抢答器部分电路图 2.计时电路原理: 计时电路为两片74LS160用置数法构成的31进制计数器,因为可以为了让答题者直观的看到30S这个时间点,所以设置了31进制的计数器。两片的四个输入端均接低电平,两片的输出端分别接七段译码管 直接显示数字,高位的74LS160芯片的Q 1Q 2 接到一个二输入的与非门 (U8A)输出到计数器的LD端、三输入与非门端、反相器端。输出到LD端是为了构成31进制计数器,当高位变为3时,计数器置0。输出到三输入与非门(U9A)和时钟脉冲、开关的电平信号一起输入到与非

门中,这就是为什么能控制计时的开始与暂停了,当开关输入低电平时,无论是否有时钟信号,时钟均不发生改变,此时时钟信号为无效信号;而当开关输入高电平时,U8A输出也为高,因此,时钟信号为有效信号,因此,凭借这样的类似锁存的电路,就可以控制计时的开始与暂停。而当时间到了30s时,U8A输出为低电平,时钟信号又成为无效信号,时间被停止在30s,此时将U8A信号通过一个反相器输出到蜂鸣器,蜂鸣器发出响声。 图3 计时器电路 3.555函数发生器: 输出高电平时间:T1=(R1+R2)Cln2 输出低电平时间:T2=R2Cln2 振荡周期:T=(R1+2R2)Cln2

LCD1602显示屏地驱动设置及例程

LCD1602显示屏的驱动设置及例程 一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。我手里这块LCD1602的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。如图1所示: 图1 再来一它的背面的,如图2所示:

图2它的16条引脚定义如下: 对这个表的说明: 1. VSS接电源地。 2. VDD接+5V。 3. VO是液晶显示的偏压信号,可接10K的3296精密电位器。或同样阻值的RM065/R M063蓝白可调电阻。见图3。 图3 4. RS是命令/数据选择引脚,接单片机的一个I/O,当RS为低电平时,选择命令;当R S为高电平时,选择数据。 5. RW是读/写选择引脚,接单片机的一个I/O,当RW为低电平时,向LCD1602写入命令或数据;当RW为高电平时,从LCD1602读取状态或数据。如果不需要进行读取操作,可以直接将其接VSS。 6. E ,执行命令的使能引脚,接单片机的一个I/O。 7. D0—D7,并行数据输入/输出引脚,可接单片机的P0—P3任意的8个I/O口。如果接P0口,P0口应该接4.7K—10K的上拉电阻。如果是4线并行驱动,只须接4个I/O口。 8. A背光正极,可接一个10—47欧的限流电阻到VDD。 9. K背光负极,接VSS。见图4所示。

图4 二.基本操作 LCD1602的基本操作分为四种: 1. 读状态:输入RS=0,RW=1,E=高脉冲。输出:D0—D7为状态字。 2. 读数据:输入RS=1,RW=1,E=高脉冲。输出:D0—D7为数据。 3. 写命令:输入RS=0,RW=0,E=高脉冲。输出:无。 4. 写数据:输入RS=1,RW=0,E=高脉冲。输出:无。 读操作时序图(如图5): 图5 写操作时序图(如图6):

四路抢答器 (完整版)

华北科技学院 课程设计说明书 班级:电子B071 姓名:郭亚立 设计题目:四路智能抢答器 设计时间: 2010.1.9 至 2010.1.22 学号: 200703014138 指导教师:杜志伟 评语: 评阅成绩:评阅老师:

四路抢答器设计报告 目录 一、设计任务和要求: ................................................................................................................... - 3 - 1.1设计任务 (3) 1.2设计要求 (3) 二、设计方案的选择与论证 ........................................................................................................... - 4 - 2.1方案的选择、论证 (4) 2.2设计总方案 (4) 三、电路设计计算与分析 ................................................................................................................. - 5 - 3.1抢答器控制电路设计 (5) 3.1.1 优先编码器74LS148 ..................................................................................................... - 7 - 3.1.2 锁存器74LS279 ............................................................................................................ - 9 - 3.1.3 74LS121单稳态触发器:.......................................................................................... - 10 -3.2定时时间电路的设计 (10) 3.2.1 计数器74LS192 ............................................................................................................ - 12 -3.3控制电路和报警电路 (13) 3.3.1 振荡电路....................................................................................................................... - 17 -

基于单片机的1602液晶显示电路设计

本科毕业论文(设计) 题目:基于单片机的1602液晶显示电路设计 学生姓名:学号: 系别:理工部专业:电气工程及其自动化入学时间:2012年09月 导师姓名:职称/学位:

基于单片机的1602液晶显示电路设计 摘要 本文是一篇介绍利用AT89S52单片机和LCD1602液晶显示屏设计一种液晶显示电路并编程实现信息的显示功能。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。1602LCD是指显示的内容为16*2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。从AT89S52单片机与LCD1602液晶显示器性能特点出发,实现两者接口的衔接设计。经过多次的调试, 使得该设计取得了比较满意的结果, 且系统软硬件设计简单方便、稳定可靠, 可广泛应用于智能化仪器仪表及各种宣传场所, 为嵌入式控制系统提供高灵活、高性价比的解决方案。 关键词:AT89S52单片机;LCD1602液晶显示器;复位电路;时钟电路

目录 第一章前言 (2) 1.1 研究现状 (2) 1.2 研究意义 (2) 第二章系统硬件电路设计 (3) 2.1 AT89S52单片机最小系统 (3) 2.1.1 主要性能 (3) 2.1.2 功能 (3) 2.1.3 引脚说明及实物图 (4) 2.2 LCD1602液晶显示器 (7) 2.2.1功能 (7) 2.2.2 特点 (7) 2.2.3 引脚 (7) 2.3 复位电路 (9) 2.4 时钟电路 (9) 第三章软件设计 (10) 3.1 软件设计思路 (10) 3.1.1 Altium Designer (11) 3.1.2 keil (11) 3.1.3 AVR_fighter (11) 3.2 程序设计 (12) 第四章仿真及硬件电路 (15) 第五章总结与展望 (17) 主要参考文献 (18) 致谢 (19)

4路智力抢答器及原理电路图

1.设计目的 当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,而在竞赛中往往分为几组参加,这时针对主持人提出的问题,如果要是让抢答者用举手等方法,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。比赛中为了准确、公正、直观地判断出第一抢答者,这就要有一种抢答设备作为裁判员,这就必然离不开抢答器。 在数字电路设计的过程中具体的目的如下: 1)巩固和加深对电子电路基本知识的理解,提高综合运用本课程所学知识的能力。 2)培养根据设计需要选学参考书籍,查阅相关手册、图表和文献资料的自学能力,并掌握抢答器的基本原理,掌握4D锁存器、计数器、555定时器的工作原理和使用方法。 3)通过电路方案的分析、论证和比较,设计计算和选取元器件、电路组装、调试和检测等环节,初步掌握简单实用电路的分析方法和工程设计方法。 4)学会简单电路的实验调试和性能指标的测试方法,提高学生动手能力和进行数字电子电路实验的基本技能,学会使用Multisim仿真软件。 2.设计要求及方案论证 2.1设计要求 (1)四组参赛者在进行抢答时(用4组彩灯代表),当抢先者按下面前的按钮时,抢答器能准确地判断出抢先者,并以声、光为标志。要求声响、光亮时间为9秒后自动熄灭。 (2)抢答器应具有互锁功能,某组抢答后能自动封锁其他各组进行抢答。 (3)抢答器应具有限时(抢答时间、回答问题时间)的功能。限时档次分别为30秒、60秒、90秒;时间到时应发出声响。同时,时间数据要用数码管显示出来。 (4)抢答者犯规或违章时,应自动发出警告信号,以提示灯光闪为标志。 (5)系统应具有一个总复位开关。

2.2方案论证 方案一,用优先编码器74LS148和74LS279锁存器实现抢答和锁存功能,用加法器74LS160实现计数功能,但此方案电路繁琐复杂,不做选用。 方案二,用4D触发器74LS175实现抢答并锁存功能,用计数器74LS192实现定时功能,此方案电路相对简单,并且74LS192可以实现减数倒计时功能,所以选用方案二。 3.原理框图 4.单元电路设计 4.1抢答电路设计 4.1.1抢答电路及原理

相关主题
文本预览
相关文档 最新文档