当前位置:文档之家› 基于51单片机模拟射击类游戏

基于51单片机模拟射击类游戏

基于51单片机模拟射击类游戏
基于51单片机模拟射击类游戏

基于51单片机模拟射击类游戏

上海大学王凯

(抄袭必纠)

摘要

电子游戏机,又俗称电玩,电动,不同于电脑。自从问世以来,在全球范围内吸引了无数人的热潮,在每个国家都能找到众多的游戏发烧友,它无疑是当今社会上炙手可热的产品,基于这个广大的应用前景,本文着手研究电子模拟射击训练游戏。

本文主要通过使用51单片机来模拟简单的射击游戏。在像素为160*128的LCD显示屏上显示模拟的手枪,并且可以用按键控制手枪的上下移动以及射出子弹,判断子弹是否击中移动的目标,最后统计得分显示结果。当目标被击中时,蜂鸣器就会发出声音,并且设置有重新开始按键,即得分清零,子弹恢复初始值。本设计通过K1、K2、K3、K4四个按键对游戏进行控制,分别为“向上”键,“向下”键,“发射”键,“子弹复位”键。通过控制上下键使射击器与射击目标保持同一水平线上,然后开始射击,此时蜂鸣器发出发射音效,如射中即可获得一分得分,否则得分不变。当子弹弹数为0时,按“子弹复位”键使游戏中的子弹数目恢复,就重新开始新的游戏。本课题是基于单片机应用技术和LCD液晶显示屏的广泛应用而提出的,本课题所做的设计是以AT89S52单片机结合JM160128A显示器,通过proteus画图软件和keil的C 语言编程软件,达到实现模拟射击游戏的目的。

通过将AT89S52单片机与JM160128A LCD结合应用,在仿真软件和硬件上都能很好地模拟常见的简单射击游戏,实现预期目标。在游戏运行过程中,能够通过上下键移动枪支,射击目标,并能够实现上弹复位的目的。这对于更深层次的单片机开发应用有着重要的意义。

关键词:AT89S52单片机,LCD液晶显示屏,C语言,射击游戏

Abstract

Electronic games, also known as electric toys (video games, electric), separated from the home computer. Since the advent of a sensation around the world, we can find a group of ingenious enthusiasts on every foot in the Earth's. It is undoubtedly one of

today's most computer products of the customers, based on the vast number of potential applications, the paper started studying electronic analog shooting training game.

This paper is mainly using combination design which includes MCU AT89S52 and 160*128LCD to simulate simple shooting training game ,displaying the simulate pistol’s graphics in pixels for 160*128LCD and through pressing the button to control pistol and to move up and down and then decide whether it has hit the target ,then statistic scores and display it .every time when hitting the target ,buzzer will issue hit sound ,otherwise restart key works .By this design, there are K1, K2, K3, K4 four control buttons on the game, namely "up" key, "down" key, the "transmit" button, "bullet Reset" button. By controlling the up and down keys to keep shooting target and pistol on the same level, then start shooting target, at the same time , the buzzer sounds emitted, the score will add one if you shot, otherwise the score unchanged. When the bullet shells is zero, press the "bullet Reset" key to restore the number of bullets in the game, the game can start again, a new round of challenges begin. This paper proposed is based on the wide range of applications of single-chip technology and JM160128A.In order to simulate shooting training game, AT89S52 single-chip is served as the core , combined JM160128A display, then together with ISIS_7_Professional and Micro-controller Development kit,also named KEIL ,to achieve the goal of simulating shooting training game.

By combining AT89S52 MCU with JM160128A LCD applications,we can achieve the desired objectives and can can well simulate common simple shooting game both in software and hardware. In the course of the game running,we can shoot target by moving guns with up and down keys and have the ability to achieve the purpose of the missile reset. This has very real implications for the development of SCM deeper applications. Keywords: AT89S52MCU, LCD, C language ,shooting game

目录

第一章绪论 (5)

1.1 系统设计背景及意义 (5)

1.2 国内外研究现状 (5)

1.3 系统设计任务 (6)

1.4 本章小结 (6)

第二章射击训练游戏系统方案设计 (7)

2.1 系统工作原理 (7)

2.2 系统组成框图 (8)

2.3 硬件的选型 (8)

2.3.1.单片机概述 (8)

2.3.2.单片机最小系统 (8)

2.3.3.单片机选型 (9)

2.3.4.LCD的选型 (10)

2.4 本章小结 (10)

第三章射击训练游戏器件介绍 (11)

3.1 AT89S52单片机 (11)

3.2 PG160128A (13)

3.3 74LS20与非门 (15)

3.4 74HC04 (16)

第四章射击训练游戏硬件电路设计 (17)

4.1 晶振和复位电路 (17)

4.2 按键与单片机接口电路 (17)

4.3 单片机与LCD显示屏接口电路 (18)

第五章射击训练游戏系统软件设计与仿真 (19)

5.1 系统的软件控制流程 (19)

5.2 主要功能模块软件设计 (20)

5.2.1 开机游戏封面图像 (20)

5.2.2 枪支图像 (21)

5.2.3 按键子程序流程图 (21)

5.2.4 汉字显示主程序 (23)

5.3 系统的软件仿真 (24)

5.3.1 仿真软件 (24)

5.3.2 软件仿真过程 (24)

5.3.3 软件仿真结果 (25)

第六章实物制作与调试 (27)

6.1 所需原件 (27)

6.2 焊接 (27)

6.3 程序的烧录 (28)

第七章总结 (28)

致谢 ..................................................................................................... 错误!未定义书签。参考文献 .. (29)

第一章绪论

1.1 系统设计背景及意义

1988年,随着自动售货机的面试,一个叫斯托维克的德国人根据其原理设计了一种叫做“自动产蛋机”的机器,自此游戏机在世界范围内风行起来。在世界范围内,无论是大城市还是小村庄,无论是在国内还是在国外,每时每刻都在进行着这样的“奋斗”。随着时间的推移,人们的生活已经离不开游戏机了,在大街小巷能看见各种各样的游戏机。然而,游戏机狂潮为什么能够席卷全世界呢?从游戏机的发展历史我们不难看出,科学技术的快速进步在游戏机发展过程中起到了至关重要的作用。然而,科学技术水平的快速发展并不是游戏机在全世界风行的唯一因素。随着我们对终端设备的开发,使得娱乐终端的游戏机同时也获得了很大程度的发展。这也是导致游戏机全世界风靡的一个重要因素。因此我们对于游戏机的研究具有很重要的意义,这也是我们对于本课题研究的背景和意义。

用51单片机设计一个游戏,与现如今那些大型游戏和手机游戏不同,也与单片机控制的其他程序有所区别,因为它要求游戏编写者对单片机的构造原理、工作的模式、指令系统和数据在内存中的分配以及信息的传递都要有着很深刻的理解,特别是游戏运行的时候对外部按键中断的处理以及各个子程序调用的先后顺序,代码的复杂程度也比一般的单片机程序要复杂很多。如果我们编写的游戏程序能够如预期一样的稳定运行,我们将对单片机有着更深的理解,对编写游戏的复杂程度有更切身的体会。同时也将大大提高我们的编程能力以及逻辑思维能力,也将再一次的体会到C语言的适用性,高效性和易移植性,也将使我们对C语言有更深刻的理解。

1.2 国内外研究现状

目前国内的游戏公司已经发展到了几百家的规模,市场上运营的游戏亦达到了250多款,但是与欧美、韩国等科技强国的游戏发展程度还存在一定的差距。我国有广阔的游戏市场,无限的发展前景,还有日益庞大的玩家队伍。随着互联网的兴起,巨大的市场需求量使中国的游戏市场在短短几年内,从无到有,从陌生到熟悉,从掌握到运用。现如今,游戏俨然已经成为了一种体育项目,更是衍生出了电竞圈。电竞

也像足球那样有自己的俱乐部,有自己的战队,玩家们还可以代表国家参加国际大赛,我国的战队游戏水平更是在世界巅峰,就在最近英雄联盟季中赛上,中国战队Edward Gaming打败了统治多年的韩国队,为国争光。对于国外,电子游戏机的发展也非常迅速,尤其是发展到现在的高档游戏机成为电子游戏发烧友的最爱,跟着家电小型化和超大型化的开展潮流,日本任地狱公司率先于1989年4月推出GAME BOY液晶8位机。次年,美国雅利达公司出售ATARI LYNK彩电液晶8位机,运用3.4英寸五颜六色液晶显现板。接着,日本的NEC与SEGA公司也别离推出了相应的NEC PC、SEGA GAME GEAR16位五颜六色液晶机,并可观看电视节目,其液晶显现屏别离为2.6英寸与3.2英寸。游戏在将来很有可能成为网络竞争中的主角,而且其产生的商业价值与利益无法估量。游戏产业发展很快,游戏种类不断变化。由此可见,世界游戏机发展前景一片大好,我们应该加大力度开发游戏。

1.3 系统设计任务

利用51单片机设计一个模拟射击训练游戏机。程序启动时在像素为160*128的液晶屏幕上显示游戏封面,然后显示游戏区,默认弹药为20发,K1,K2键用于向上或向下移动枪支,跟踪目标,K3键用于发射并模拟枪声,在每次发射时,如果击中则加1分,在击中后若目标物体尚未移动就发射并击中,程序不重复加分,弹药用完可按下K4键重新开始,也可按键更改默认弹药数。本设计通过K1、K2、K3、K4四个按键对游戏进行控制,分别为“向上”键,“向下”键,“发射”键,“子弹复位”键。通过控制上下键使射击器与射击目标保持同一水平线上,然后开始射击,此时蜂鸣器发出发射音效,如射中即可获得一分得分,否则得分不变。当子弹弹数为0时,按“子弹复位”键使游戏中的子弹数目恢复,游戏可重新开始,进行新一轮的挑战。

1.4 本章小结

本章主要介绍了本课题的研究背景,即游戏机的发展历程,以及国内外对于本课题的研究现状,国内外游戏机的发展,主要说明了本设计的任务,利用51单片机来模拟射击游戏,通过按键控制手枪的移动和射击,击中加一分。本设计将使我们对单片机最小系统有更深刻的理解,将所学的知识应用到实践当中。

第二章射击训练游戏系统方案设计

2.1 系统工作原理

整个硬件电路由AT98S52单片机及单片机最小系统的晶振电路和复位电路外接JM128*160LCD液晶屏、4个独立按键以及蜂鸣器和一个双4输入与非门74LS20 和一个74HC04非门组成。

系统工作原理:系统启动后首先由160*128 LCD显示屏初始化,然后从左上角开始清屏,接着显示预先设置好的游戏开机界面:

图2.1 游戏开机界面

在开机界面显示五秒后再次清屏,在屏幕第一行显示“射击训练游戏”,中间显示游戏主图像,左下角显示得分,右下角显示剩余弹药。随后打开定时器T0,定时器T1和外部中断INT0。其中定时器T0控制屏幕每秒通过函数刷新被击目标随机出现的位置,定时器T1模拟目标被击中后的枪声,在LCD显示屏上显示得分和剩余弹药的数量。游戏进行时的界面如下:

图2.2 正在游戏的界面

2.2 系统组成框图

本系统硬件主要由51单片机与蜂鸣器、按键中断、JM160128ALCD液晶显示模块、单片机晶振和复位电路连接组成。其组成框图如下:

图2.3 系统组成框图

本次课题设计硬件部分由中央处理器,控制部分,显示部分组成,AT89S52单片机为中央处理器,4个独立按键为控制部分,LCD显示屏为显示部分。软件部分的主要内容是通过keil软件进行编写游戏程序以及在Proteus中调试来实现射击移动目标的功能。游戏机系统通过数据在各个部分之间的传送使整个游戏最后能够稳定的运行。

2.3 硬件的选型

2.3.1.单片机概述

单片机是一种集成芯片,一个小而完善的微型计算机系统。它通过采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、多种I/O口和中断系统、随机存储器RAM、只读存储器ROM、定时器/计数器等功能(可能还包括A/D转换器、模拟多路转换器、脉宽调制电路、显示驱动电路等电路)集成到一块硅片上。

2.3.2.单片机最小系统

单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对于51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路,如下图所示即单片机最小系统。

图2.4 单片机最小系统

2.3.3.单片机选型

目前市面上的单片机种类有很多,通用型单片机如果按位数分主要有4位机,8位机,16位机和32位机等等。如果按厂家分类的话就更多。目前我国市面上常见的单片机有如下几家:Inter公司生产的MCS51系列和MCS96系列,Atmel公司生产的MCS51内核的AT89系列,Motorola公司生产的68HCXX系列,Microchip公司生产的PIC系列,Philips公司生产的MCS内核的87、80系列,Zilog公司生产的Z86系列,NEC公司生产的78系列,Siemens公司生产的MCS51内核的SAB80系列,每种单片机的内部都有所不同,包括I/O口的个数、数据/程序存取区的大小、定时/计数器的个数、有无A/D转化、有无看门狗中断等。

由于本次课题设计的游戏只用到了不到20个I/O口,2个定时器中断。因此我们选择了Atmel公司的AT89S51单片机/AT89S52单片机。

具体参数如下:

1、基于8051的全静态CMOS工艺控制器;

2、32个I/O口;

3、3级流水线指令执行构架;

4、6个中断源;

5、2个定时/计数器;

6、128字节的片内数据存取器;

7、4K的闪存程序储存器;

由于市面上AT89S51单片机近乎淘汰了,且AT89S52在功能上与51单片机一致,52是51的增强型,S52比C5多了个,定时器T2,RAM多128B,ROM多4K,中断多2个,多一个看门狗,在掉电、数据指针等方面还有一些改进。由此可知,AT89S52单片机完全满足本次课题设计的要求。

2.3.4.LCD的选型

液晶显示屏的英文名称是Liquid Crystal Display(Device),简称LCD。根据LCD所采用的材料构造,液晶显示屏主要分为TN、STN、TFT等三大类,然而根据目前的技术原理又可以将它们分为TN、STN、FSTN、DSTN、TFT等诸多类别。

我们经常用到的LCD液晶显示屏主要包括:AMPIRE128*64,LGM12641BSIR,LM016L,LM020L,LM017L等。前面两种是64行128列不带字库的汉字、图形点阵液晶屏,它们能显示4行8列32个16*16点阵汉字或4行16列64个16*8点阵字符,还有一种最大128*64的点阵图形。也有市面上最常见的带字库的12864,功能都是一样的。后几种则是带字库的字符点阵,不能显示图形。

由以上介绍可知:后3种液晶不能显示图形,最先排除;前2种液晶虽然可以显示图形,但屏幕较小不能完整的显示所有的游戏界面的内容,单单是地图显示就需要128*144点阵的屏幕,而这两种都是液晶屏的分辨率都只是128*64,所以我们需要一种更大的液晶显示屏。

因此本课题我们选择PG160128A液晶屏。这块液晶屏是160*128点阵的屏幕,不仅可以满足基本的图像显示,还可以显示其他的记录信息,如游戏机常见的步数显示(推箱子游戏)、时间显示、关数显示等,完全满足设计要求。

2.4 本章小结

本章主要介绍了系统的工作原理,系统的组成部分,由单片机最小系统外接蜂鸣器,显示部分与按键部分构成。在完成本设计所需要用到的单片机以及LCD的选择。

第三章射击训练游戏器件介绍

3.1 AT89S52单片机

由于市面上的AT89S51单片机近乎淘汰了,更多的是采用AT89S52代替。AT89S52是一种功耗低但是性能高的8位单片机,单片机内带有一个4KB的Flash可反复擦写的只读存储器,它采用了CMOS工艺以及ATMEL公司的高密度非易失性存储器技术,兼容标准MCS-51指令系统。片内的存储器允许用常规的非易失性存储器编程器来编程或者也可以在线编程,同时还具有三级程序存储器保密的性能。在市面上众多的52系列单片机中我们选择了ATMEL公司的AT89S52,因为它不仅指令、管脚和MCU-51系列单片机能够完全兼容,而且它还将在线可编程Flash和通用CPU集成在一个芯片上。这种单片机对于我们开发设备的要求并不高,也会大大的缩短开发时间。

图3.1 AT89S52引脚图

主要性能参数:

·4.0---5.5V 的工作电压范围

·4k字节在线系统编程(ISP)Flash闪速存储器

·1000次反复擦写周期

·全静态工作模式:0Hz---33MHz

·128×8 字节内部 RAM

·三级程序加密锁

·2个16位定时/计数器和6个中断源

·全双工串行UART通道

·低功耗空闲与掉电模式

·看门狗(WDT)及双数据指针

·中断可从空闲模式唤醒系统

·灵活的在线系统编程(ISP一字节或页写模式)

·掉电标识和快速编程特性

AT89S52功能特性概述:

AT89S52单片机的标准功能:字节内部RAM和字节Flash闪速存储器,4k字节在线系统编程Flash闪速存储器,32个I/O口线,看门狗(WDT),两个数据指针,一个全双工串行通信口,一个5向量两级中断结构,两个16位定时(计数)器,片内振荡器和时钟电路。同时,AT89S52可降至0Hz的全静态工作模式操作,并且还支持两种软件可选的节电工作的模式。空闲的时候停止CPU的工作,但允许定时(计数)器,中断系统,RAM以及定串行通信口继续工作。掉电方式下会保存RAM中的内容,但是振荡器会停止工作并且禁止其它所有部件的工作,直至下一个硬件复位。

AT89S52引脚功能说明:

·P0口(P0.0~P0.7):P0口是由一组8位漏极开路型双向I/O口组成,从32脚~39脚,作为地址和数据总线复用口。当P0作为输出口用的时候,每位可以驱动8个TTL逻辑门电路,对端口写‘1’即作为高阻抗输入端使用。当访问外部程序和数据存储器时,P0 口也被作为低8 位地址/数据复用,并且会激活内部上拉电阻。在程序校验得时候,其输出指令字节,并且会外接上拉电阻,而在Flash编程时P0口就会接收指令字节。

·P1口(P1.0~P1.7):P1口是由一个带内部上拉电阻的8位双向I/O口组成,从1脚~8脚,由输出缓冲级P1P1驱动的4个TTL逻辑门电路。作为输入口用时,对端口写‘1’,上拉电阻端口通过内部的时候会被拉到高电平,因为此时内部存在上拉电阻,某个引脚被外部信号拉低,会输出一个电流(In)。程序校验和Flash编程的时

候P1将接收低8位地址。

·P2口(P2.0~P2.7):P2口是由一个带有内部上拉电阻的8位双向I/O口组成的,从21脚~28脚,P2输出缓冲器可驱动(吸收或输出电流)4个TTL逻辑门电路。当对端口写‘1’时,P2口将通过内部的上拉电阻把端口拉至高电平,此时可作输入口,当P2口作为输入口使用的时候,因为内部上拉电阻的存在,某个引脚会被外部信号拉低,此时便输出一个电流(In)。在访问外部程序存储器或者16位地址的外部数据存储器(例如执行MOVX @DPTR指令)时,P2口将输出高8位的地址数据。P2在执行例如MOVX @Ri指令时就会访问8位地址的外部数据存储器,P2口输出P2锁存器的内容。在Flash编程和校验时,P2 口也接收高8位地址字节和一些控制信号。

·P3口(P3.0~P3.7):P3口是由一组包含内部上拉电阻的8位双向I/O口组成的,从10脚~17脚,其输出缓冲器能驱动(吸收或输出电流)4个TTL逻辑门电路。当对P3口写入“1”的时候,端口会被内部上拉电阻拉高并且可作为输入。当P3口作为输入端时,被外部拉低的端口将用上拉电阻输出电流(In)。P3口除了作为一般的 I/O 口外还有更重要的用途就是它的第二功能。P3口还接收一些程序校验以及Flash 闪速存储器编程的控制信号。

·RST:复位输入。引脚为第9脚,在晶振工作时,RST脚持续两个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO 位可以使此功能无效。在DISRTO 默认状态下,复位高电平有效。

3.2 PG160128A

PG160128A是一个由128行160列的点阵组成的液晶屏。它可以显示各种图形、字符、也可以显示10×8个(16×16点阵)汉字。由于T6963C内核的控制,并且自带字符库,同时也可以自己建立汉字、图形库。

主要技术参数和性能:因为模块内自带-15负压,所以可以用于LCD的驱动电压

1.电源VDD:+5V;

2.显示内容:160(列)×128(行)点

3.全屏幕点阵

4.十三种指令

5.与CPU接口采用8位数据总线并行输入输出

6.占空比1/128

7.工作温度:-10℃∽+55℃,存储温度:-20℃∽+70℃ PG160128A在Proteus中的元器件的图形如图所示:

图3.2 PG160128A元件图

各种引脚的功能描述如下表所示:

表 3.1 PG160128A引脚功能表

T6963C与其指令集:

T6963C是一个LCD控制器,是一个数据显示和LCD控制驱动芯片的存取器。该控制器有一个8位并行数据总线,可以通过微控制器接口来对控制线实现读取和写入,它也可以直接连接至TMPZ80微处理器中。T6963C控制器有一个128字节的字符发生器,可作为外部显示RAM中数据的控制,达到64K字节。图形与配置的文字以及外部字符发生器RAM数据都能很容易地控制其在窗口中显示,也能够自由移动、分配内存范围。该器件支持的字符格式很广泛,LCD显示器允许通过编程设置选择不同的组合。它可以用于文字与图形结合的文本模式及其他属性的功能。T6963C控制器总共分为十大类,有26条指令,详细信息如下表:

表3.2 T6963C指令集

3.3 74LS20与非门

74ls20是常见的双4输入与非门集成电路,是功能很简单的芯片,其包含两个4

输入与非门。第一组:1,2,4,5引脚为输入,6脚为输出。第2组:9,10,12,13引脚为输入,8脚为输出。

引脚图如下所示:

图3.3 74LS20引脚图

功能表如下:

表3.4 74LS20功能表

3.4 74HC04

74HC04是一种高速的硅栅CMOS器件,并且能够兼容低功耗肖特基的TTL(LSTTL)非门(逆变器)。

74HC04的功能作用:74HC04是六反相器,既一个集成块上有六个反相器,即1A 输入高电平,1Y输出低电平。其驱动电流要比74LS04的大。

其引脚图如下所示:

图3.4 74HC04引脚图

第四章射击训练游戏硬件电路设计

4.1 晶振和复位电路

晶振电路:片内振荡电路的输入端与输出端分别为XTAL1和XTAL2,电容一般取20~47pF。当电路工作时,其产生的振荡脉冲在经过内部触发器时进行二分频,而后作为单片机的时钟脉冲信号,提供单片机的一个基本时钟信号。本系统采用的晶体的振荡频率为12MHz。

复位电路:由电阻与电容的串联构成,根据"电容电压不能突变"的性质和电路图可知,系统一旦供电,复位脚将会出现高电平,并且高电平持续的时间是由电路中的RC值来决定.一般来说,51单片机中当RST脚的高电平持续两个机器周期以上就将复位。因此,可靠的复位就需要组合适当的RC值。

下图即为晶振、复位电路:

图4.1 晶振、复位电路

4.2 按键与单片机接口电路

控键与单片机接口电路:74LS20的四输入与门输入端分别与K1,K2,K3,K4四个按键的左触点连接,同时按键的右触点需要并联接地。从74LS20的输入端引出四根引线1、2、3、4分别与单片机的P1.4~P1.7口相连,当有按键按下时,74LS20输出为低电平同时进入外部中断0的服务子程序,在子程序中具体判断1、2、3、4引线中的哪根线为低电平,从而判断出哪个键按下并做出相应的响应。

下图为单片机与按键接口电路:

图4.2 按键与单片机接口电路

4.3 单片机与LCD显示屏接口电路

即160*128LCD液晶屏与74HC04非门的接口电路。160128LCD的1、2引脚即FG、VSS端接地,引脚3即VDD端接+5V的高电平,引脚4级COM悬空,引脚5即WR、引脚6即RD,8号引脚C/D通过总线分别与单片机的P3.6,P3.7,P2.0相连,7号引脚CE端通过反相器74HC04后与单片机的P2.7相连,11~19号引脚也就是单片机的D0 数据端通过总线分别与单片机的 P0.0~P0.7相连。,

图4.3 液晶显示屏与单片机接口电路

到此,游戏的硬件电路结构及连线全部完成,其整体电路图如下图所示:

图4.4 系统整体电路

第五章射击训练游戏系统软件设计与仿真

5.1 系统的软件控制流程

利用AT89S51单片机和PF160128A液晶显示屏以及按键控制模块相连,当有按键按下时,74LS20输出为低电平,进入外部中断0(INTO)服务子程序,在子程序中具体判断是1,2,3,4的哪个引线为低电平从而判断K1、K2、K3、K4哪个键按下并进行相应的响应。并在PF160128A液晶显示屏中显示出来。整个过程中应用了液晶显示屏的图像、文字、字符显示和其清屏及初始化功能。

软件控制整体流程图如下:

图 5.1 软件整体流程图5.2 主要功能模块软件设计

5.2.1 开机游戏封面图像

开机界面图像绘制流程图如下图所示:

图5.2开机界面绘制流程图

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

基于51单片机电子密码锁设计

一、设计目的 1.1课题简介 如何实现防盗是很多人关心的问题,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,使人们的人身及财产安全受到很大威胁。电子密码锁是一种依靠电子电路来控制电磁锁的开和闭的装置,开锁需要输入正确密码,若密码泄露,用户可以随时更改密码。因此其保密性高,使用灵活性好,安全系数高,可以满足广大用户的需要,现在广泛使用的有红外遥控电子密码锁,声控密码锁,按键密码锁等。 1.2课题研究目的 本设计是一种基于单片机的密码锁方案,根据基本要求规划单片机密码锁的硬件电路和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储单元的分配等都有注释。现在很多地方都需要密码锁,电子密码锁的性能和安全性大大超过了机械锁,为了提高密码的保密性,必须可以经常更改密码,以便密码被盗时可以修改密码。 本次设计的密码锁具备的功能:LED数码管显示初始状态“——————”,用户通过键盘输入密码,每输入一位密码,LED数码管相应有一位变为“P”,若想重新输入密码,只需按下“CLR”键。密码输入完毕后按确认键“#”,密码锁控制芯片将输入的密码和密码锁控制芯片中存储的密码相比,若密码错误,则不开锁,会有红灯亮提示,同时显示“Error”。若正确,则开锁,会有绿灯亮提示,同时显示“PASS”。用户可以根据实际情况随意改变密码值或密码长度,密码输入正确后可以按下“CHG”修改密码,输入新密码时每输入一位新密码相应有一位变为“H”,以便提示用户此时输入的是新密码,修改新密码时若想重新输入新密码只需按下“CLR”键即可。输入新密码后按确认键即修改成功,新密码写入单片机内部RAM中,以便以后用来确认密码的正确性。按下复位键,系统恢复初始状态,密码也恢复初始密码,本设计中初始密码是“096168”。 本次设计中硬件主要由我完成,软件主要由张振完成。 二、硬件设计 2.1概述 本系统主要由单片机最小系统、电源电路、输入键盘电路、输出显示电路、开锁电路等组成,系统框图如图1所示:

基于51单片机的模拟打地鼠游戏设计

. 《现代通信技术》课程设计基于51单片机的模拟打地鼠游戏设计 院系:工学院 专业班级:通信工程10秋2班 姓名:钟丽薇 学号:10032202 小组成员:陆韵 指导教师:徐振、赵兰 完成日期2013年10月

目录 1 设计任务 (1) 1.1设计题目及材料 (1) 1.2设计要求 (1) 1.3设计进度安排 (2) 2 总体方案 (3) 2.1硬件设计 (3) 2.1.1 主控芯片 (3) 2.1.2 数码管模块 (4) 2.1.3 LED模块 (5) 2.1.4 独立按键模块 (5) 2.2软件设计 (6) 3 功能调试 (7) 3.1调试过程 (7) 3.2调试中遇到的问题 (7) 4 设计总结 (8) 5 致谢 (9)

1 设计任务 通过本次课程设计,运用已学的课程知识,自主设定题目及要求,进行软硬件系统的设计和调试,对《现代通信技术》课程中涉及的芯片结构、控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使应用知识能力、设计能力、调试能力以及报告撰写能力等方面有显著提高。 1.1 设计题目及材料 我们的课程设计选题定为《基于51单片机的模拟打地鼠游戏设计》。 将所掌握的的元器件组合在一起,设计出具有可玩性的实用小制作,不仅巩固了已学习的知识,更能拓展自己的思维能力。 所用到的材料: 表1.1 材料列表 STC89C52单片机开发板1块 4位8段数码管(共阳)1个 LED灯5个 轻触按键5个 100Ω电阻5个 0.5kΩ电阻4个 9013三极管4个 杜邦线若干 1.2 设计要求 要求作品完成后,可以实现简易打地鼠游戏的功能。 具体如下:接通电源后,游戏开始,数码管显示“0”,同时随意点亮一个LED,在2秒时间内按下对应的按键,则数码管示数加一,游戏继续;

基于51单片机简易电子琴的课程设计

基于51单片机简易电子琴 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块

基于51单片机电子万年历设计

基于51单片机电子万年历设计 专业:机电设备维修与管理姓名:杜洪浦指导老师: 摘要电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分和秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3到5V电压供电。 万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路以及串口下载电路等组成。在单片机的选择上使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用液晶LCD1602。软件方面主要包括日历程序、液晶驱动程序,显示程序等。程序采用汇编语言编写。所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。 关键词时钟电钟,DS1302,液晶LCD1602,单片机 目录 1设计要求与方案论证 (2) 1.1 设计要求 (2) 1.2 系统基本方案选择和论证 (2) 1.2.1单片机芯片的选择方案和论证 (2) 1.2.2 显示模块选择方案和论证 (3) 1.2.3时钟芯片的选择方案和论证: (3) 1.3 电路设计最终方案决定 (3) 2系统的硬件设计与实现 (3) 2.1 电路设计框图 (4) 2.2 系统硬件概述 (4) 2.3 主要单元电路的设计 (4) 2.3.1单片机主控制模块的设计 (4)

51单片机模拟PWM输出占空比可调

#include #define UINT unsigned int #define UCHAR unsigned char sbit pwm=P1^0; //pwm输出口 sbit plus=P3^6;//按键调节增加输出脉宽 sbit reduce=P3^7;//按键调节减小输出脉宽 sbit duan=P2^6;// 数码管的段选 sbit wei=P2^7; //数码管的位选 UCHAR code SEG[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f }; UINT i; char j,k=5; void timer_init() //定时器0,8位自动重装 { TMOD=0x02; TH0=56; TL0=56; IE=0x82; TR0=1; } void delayms(UINT x) //延时 { UINT i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void show(int a) //数码管显示 { int shi,ge; shi=a/10; ge=a%10; duan=1; P0=SEG[shi]; duan=0;

P0=0xff; wei=1; P0=0xfe; wei=0; delayms(3); duan=1; P0=SEG[ge]; duan=0; P0=0xff; wei=1; P0=0xfd; wei=0; delayms(3); } void timer0() interrupt 1 //定时器中断{ i++; if(i==5000) { i=0; j++; j=j%10; } if(j

基于51单片机的电子琴设计课程设计

目录 前言 (2) 第1章基于51单片机的电子琴设计 (3) 1.1 电子琴的设计要求 (3) 1.2 电子琴设计所用设备及软件 (3) 1.3 总体设计方案 (3) 第2章系统硬件设计 (5) 2.1 琴键控制电路 (5) 2.2 音频功放电路 (6) 2.3 时钟-复位电路 (6) 2.4 LED显示电路 (6) 2.5 整体电路 (6) 第3章电子琴系统软件设计 (7) 3.1 系统硬件接口定义 (7) 3.2 主函数 (8) 3.2.1 主函数程序 (8) 3.3 按键扫描及LED显示函数 (9) 3.3.1 键盘去抖及LED显示子程序 (10) 3.4 中断函数 (11) 3.4.1 中断程序 (12) 第4章电子琴和调试 (12) 4.1 调试工具 (12) 4.2 调试结果 (13) 4.3 电子琴设计中的问题及解决方法 (14) 第5章电子琴设计总结 (15) 参考文献 (16) 附录 (17)

前言 音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色)展示的乐队音响效果的特点。结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力。目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备。以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值。这就为电子琴的普及提供了方便。 二、电子琴设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成2大功能:音乐自动播放、电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

51单片机教程

原作:平凡的单片机

1、何谓单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。 天!PC中的CPU一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只8只引脚。为什么会这样呢?功能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种芯片的生产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。既然如此,单片机的功能肯定不强,干吗要学它呢?话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用PIII?应用的关键是看是否够用,是否有很好的性能价格比。所以8051出来十多年,依然没有被淘汰,还在不断的发展中。 2、MCS51单片机和8051、8031、89C51等的关系我们平常老是讲8051,又有什么8031,现在又有89C51,它们之间究竟是什么关系? MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL 公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL 公司开发生产的。以后我们将用89C51来完成一系列的实验。 一、单片机的外部结构 拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2、振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了,按图1接上即可。3、复位引脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA引脚:EA引脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工作了。 我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个引脚相连,否则单片机就没法控制它了,那么和哪个引脚相连呢?单片机上除了刚才用掉的5个引脚,还有35个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻) 按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚我们要能够控制,也就是说,我们要能够让1引脚按要求变为高或低电平。即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不可以由我们来更改。

基于51单片机电子闹钟的设计(1)

单片机原理与接口技术课程设计题目:多功能电子闹钟 院系:电气与电子工程系 专业:电气工程及其自动化 班级:电气工程1503 姓名: 学号: 指导教师: 二零一七年十二月

多功能电子闹钟 摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。 本设计以AT89C51芯片为核心,辅以必要的外围电路,设计了一个结构简单,功能齐全的电子时钟,它由5V直流电源供电。在硬件方面,除了CPU外,使用八个七段LED数码管来进行显示,LED采用的是动态扫描显示,使用74LS245芯片进行驱动。通过LED能够较为准确地显示时、分、秒。四个简单的按键实现对时间的调整。软件方面采用C语言编程。整个电子钟系统能完成时间的显示、调时、校时和三组定时闹钟的功能。 选用单片机最小系统应用程序,添加比较程序、时间调整程序及蜂鸣程序,通过时间比较程序触发蜂鸣,实现闹钟功能,完成设计所需求的软件环境。介绍并使用Keil 单片机模拟调试软件,测试程序的可行性并用Proteus进行仿真。 关键词:单片机定时器中断闹钟 LED

目录 第1章方案的选择和论证 (1) 1.1单片机型号的选择 (1) 1.2按键的选择 (1) 1.3显示器的选择 (1) 1.4计时部分的选择 (1) 1.5发音部分的设计 (2) 1.6显示器驱动电路 (2) 1.7电源的选择 (2) 第2章数字电子钟的设计原理和方法 (3) 2.1设计原理 (3) 2.2硬件电路的设计 (3) 2.2.1 AT89C51单片机简介 (3) 2.2.2 键盘电路的设计 (3) 2.2.3 段码驱动电路 (4) 2.2.4 蜂鸣器驱动电路 (4) 2.3软件部分的设计 (5) 2.3.1 主程序部分的设计 (5) 2.3.2 中断定时器的设置 (5) 2.3.3 闹钟子函数 (6) 2.3.4 计时函数 (6) 2.3.5 键盘扫描函数 (8) 2.3.6 时间和闹钟的设置 (8) 第3章实验结果 (10) 总结 (11) 致谢 (12) 参考文献 (13) 附录 (14)

基于51单片机的模拟电梯控制系统

目录 摘要............................................................................. II 目录.............................................................................. I 第1章绪论.. (1) 1.1电梯的研究背景及意义 (1) 1.2 电梯的国内外发展状况 (1) 第2章电梯设计任务与要求 (2) 2.1设计任务 (2) 2.2设计要求 (2) 第3章总体设计方案 (3) 3.1设计思路 (3) 3.2总体设计框图 (3) 第4章电梯控制系统 (4) 4.1电梯控制系统 (4) 4.2主要硬件设计器件介绍 (5) 4.3 软件设计 (9) 第5章个人心得体会 (12) 参考文献 (13) 致谢 (14) 附录I: (15) 附录II: (17)

摘要 本文介绍了基于单片机的电梯控制系统,硬件部分主要由单片机最小系统模块、电梯内外电路按键模拟检测模块、电梯外请求发光管显示模块、楼层显示数码管模块、电梯上下行模块及模拟传感器模块等5部分组成。该系统采用单片机(AT89C51)作为控制核心,内外均使用按键按下与否引起的单片机相应端口电平变化的原理,作为用户请求信息发送到单片机,单片机根据判断的结果最终驱动步进电机做相应的运动,在运动的过程中,单片机依照请求信息通过模拟的传感器使步进电机停止运动,并利用彩灯作为上升和下降的状况显示,七段数码管实时显示当前楼层,完成整个请求和响应的过程。 软件部分使用汇编语言实现,利用查询方式来检测用户请求的按键信息。根据电梯运行到相应楼层时,模拟按键引起的电平变化,进行判断和执行实现电梯的控制,并且将程序模块化,方便了修改和调用。硬件设计简单可靠,结合软件,基本实现了四层电梯的模拟运行。 关键词:单片机,AT89C51,电梯控制,步进电机

单片机课程设计——基于51单片机的温度监控系统设计

单片机课程设计报告 题目:温度监控系统设计 学院:能源与动力工程学院 专业:测控技术与仪器专业 班级: 2班 成员:魏振杰 二〇一五年十二月

一、引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 二、实验目的和要求 2.1学习DS18B20温度传感芯片的结构和工作原理。 2.2掌握LED数码管显示的原理及编程方法。 2.3掌握独立式键盘的原理及使用方法。 2.4掌握51系列单片机数据采集及处理的方法。 三、方案设计

基于51单片机的电子表设计

1 绪论 电子表是20世纪50年代才开始出现的新型计时器。最早的一款电子表被称做“摆轮游丝电子表”,它诞生于1955年。这种手表用电磁摆轮代替发条驱动,以摆轮游丝作为振荡器,微型电池为能源,通过电子线路驱动摆轮工作。它的走时部分与机械手表完全相同,被称为第一代电子手表。1960年,美国布洛瓦公司最早开始出售“音叉电子手表”。这种手表以金属音叉作为振荡器,用电子线路输出脉冲电流,使机械音叉振动。它比摆轮式电子手表结构简单,走时更精确,被称为第二代电子手表。1969年,日本精工舍公司推出了世界上最早的石英电子表。石英电子表的出现,立刻成为了钟表界主流产品,它走时精确,结构简单,轻松地将一、二代电子表,甚至机械表淘汰出局。石英表又称“水晶振动式电子表”,因为它是利用水晶片的“发振现象”来计时的。当水晶受到外部的加力电压,就会产生变形和伸缩反应;如果压缩水晶,便会使水晶两端产生电力。这样的性质在很多结晶体上也可见到,称为“压电效果”。石英表就是利用周期性持续“发振”的水晶,为我们带来准确的时间。 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8为单片机,发展到现在的32位300M的高速单片机。 1.1 单片机的介绍 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提

51单片机模拟spi串行接口程序

51单片机模拟spi串行接口程序 51单片机模拟spi串行接口程序,在keilc51下编写 sbit CS=P3^5; sbit CLK= P1^5; sbit DataI=P1^7; sbit DataO=P1^6; #define SD_Disable() CS=1 //片选关 #define SD_Enable() CS=0 //片选开 unsigned char SPI_TransferByte(unsigned char val) { unsigned char BitCounter; for(BitCounter=8; BiCounter!=0; BitCounter--) { CLK=0; DataI=0; // write if(val&0x80) DataI=1; val<<=1; CLK=1; if(DataO)val|=1; // read } CLK=0; return val; }sbit CLK= P1^5; sbit DataI=P1^7;

sbit DataO=P1^6; #define SD_Disable() CS=1 //片选关 #define SD_Enable() CS=0 //片选开 unsigned char SPI_TransferByte(unsigned char val) { unsigned char BitCounter; for(BitCounter=8; BiCounter!=0; BitCounter--) { CLK=0; DataI=0; // write if(val&0x80) DataI=1; val<<=1; CLK=1; if(DataO)val|=1; // read } CLK=0; return val; } sbit CLK= P1^5; sbit DataI=P1^7; sbit DataO=P1^6; #define SD_Disable() CS=1 //片选关 #define SD_Enable() CS=0 //片选开

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

#基于51单片机简易电子琴

1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块 电子琴设有8个按键,其中7个作为音符输入,另外一个作为模式转换按键,实现用户存放的自动播放歌曲。7个按键分别代表7个音符,包括中音段的全部音符,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序入口,实

基于51单片机模拟射击类游戏

基于51单片机模拟射击类游戏 大学王凯 (抄袭必纠) 摘要 电子游戏机,又俗称电玩,电动,不同于电脑。自从问世以来,在全球围吸引了无数人的热潮,在每个国家都能找到众多的游戏发烧友,它无疑是当今社会上炙手可热的产品,基于这个广大的应用前景,本文着手研究电子模拟射击训练游戏。 本文主要通过使用51单片机来模拟简单的射击游戏。在像素为160*128的LCD显示屏上显示模拟的手枪,并且可以用按键控制手枪的上下移动以及射出子弹,判断子弹是否击中移动的目标,最后统计得分显示结果。当目标被击中时,蜂鸣器就会发出声音,并且设置有重新开始按键,即得分清零,子弹恢复初始值。本设计通过K1、K2、K3、K4四个按键对游戏进行控制,分别为“向上”键,“向下”键,“发射”键,“子弹复位”键。通过控制上下键使射击器与射击目标保持同一水平线上,然后开始射击,此时蜂鸣器发出发射音效,如射中即可获得一分得分,否则得分不变。当子弹弹数为0时,按“子弹复位”键使游戏中的子弹数目恢复,就重新开始新的游戏。本课题是基于单片机应用技术和LCD液晶显示屏的广泛应用而提出的,本课题所做的设计是以AT89S52单片机结合JM160128A显示器,通过proteus画图软件和keil的C语言编程软件,达到实现模拟射击游戏的目的。 通过将AT89S52单片机与JM160128A LCD结合应用,在仿真软件和硬件上都能很好地模拟常见的简单射击游戏,实现预期目标。在游戏运行过程中,能够通过上下键移动枪支,射击目标,并能够实现上弹复位的目的。这对于更深层次的单片机开发应用有着重要的意义。 关键词:AT89S52单片机,LCD液晶显示屏,C语言,射击游戏 Abstract Electronic games, also known as electric toys (video games, electric), separated from the home computer. Since the advent of a sensation around the world, we can find a group of ingenious enthusiasts on every foot in the Earth's. It is

(完整版)基于51单片机的4人抢答器课程设计

基于51单片机的4人抢答器设计 设计要求: 以单片机为核心,设计一个4位竞赛抢答器:同时供4名选手或4个代表队比赛,分别用4个按钮S0~S3表示。 设置一个系统清除和抢答控制开关S,开关由主持人控制。 抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。 当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 工作原理: 通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。

#include #define uchar unsigned char #define uint unsigned int uchar num; //定义中断变量,num计满20表示1秒时间到uchar num1; //十秒倒计时显示初始值 uchar flag1,flag2; //清零键及开始键按下标志位 uchar flag3,flag4=0; //定义键盘按下标志位 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; //数码管编码

51单片机电子密码锁

目录 第1节引言 (1) 1.1 电子密码锁述 (1) 1.2 本设计主要任务 (1) 1.3 系统主要功能 (2) 第2节系统硬件设计 (3) 2.1 系统的硬件构成及功能 (3) 2.2 AT89C2051单片机及其引脚说明 (3) 第3节系统软件设计 (5) 3.1 系统主程序设计(流程图) (5) 3.2 软件设计思想 (5) 3.3 储单元的分配 (5) 3.4 系统源程序 (6) 3.5 系统应用说明 (9) 3.6 小结 (9) 结束语 (10) 参考文献 (11) 附录 (12)

电子密码锁 第1节引言 1.1 电子密码锁概述 随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。 很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。 设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。 1.2 本设计主要任务 (1)共8位密码,每位的取值范围为1~8。 (2)用户可以自行设定和修改密码。 (3)按每个密码键时都有声、光提示。 (4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。

51单片机IO口模拟串口通讯C源程序

51单片机IO口模拟串口通讯C源程序 #include sbit BT_SND =P1^0; sbit BT_REC =P1^1; /********************************************** IO 口模拟232通讯程序 使用两种方式的C程序占用定时器0 **********************************************/ #define MODE_QUICK #define F_TM F0 #define TIMER0_ENABLE TL0=TH0; TR0=1; #define TIMER0_DISABLE TR0=0; sbit ACC0= ACC^0; sbit ACC1= ACC^1; sbit ACC2= ACC^2; sbit ACC3= ACC^3; sbit ACC4= ACC^4; sbit ACC5= ACC^5; sbit ACC6= ACC^6; sbit ACC7= ACC^7; void IntTimer0() interrupt 1 { F_TM=1; } //发送一个字符 void PSendChar(unsigned char inch) { #ifdef MODE_QUICK ACC=inch; F_TM=0; BT_SND=0; //start bit TIMER0_ENABLE; //启动 while(!F_TM); BT_SND=ACC0; //先送出低位

F_TM=0; while(!F_TM); BT_SND=ACC1; F_TM=0; while(!F_TM); BT_SND=ACC2; F_TM=0; while(!F_TM); BT_SND=ACC3; F_TM=0; while(!F_TM); BT_SND=ACC4; F_TM=0; while(!F_TM); BT_SND=ACC5; F_TM=0; while(!F_TM); BT_SND=ACC6; F_TM=0; while(!F_TM); BT_SND=ACC7; F_TM=0; while(!F_TM); BT_SND=1; F_TM=0; while(!F_TM); TIMER0_DISABLE; //停止timer #else unsigned char ii; ii=0; F_TM=0; BT_SND=0; //start bit

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