单片机俄罗斯方块游戏设计大全(设计思路大全,程序大全)

单片机俄罗斯方块游戏设计大全(设计思路大全,程序大全)
单片机俄罗斯方块游戏设计大全(设计思路大全,程序大全)

目录

摘要 (1)

1 方案论证……………………………………………………………………….

1.1 开发意义…………………………………………………………………

1.2 功能介绍………………………………………………………………….

2 设计思路…………………………………………………………………………

.

3 硬件电路………………………………………………………………………

2.1 74HC573驱动芯片电路…………………………………………………….

2.2 8*8LED点阵的接口电路…………………………………………………..

2.3单片机最小系统电路………………………………………………………..

2.4整体电路图………………………………………………………………….

4 系统调试………………………………………………………………………..

3.1硬件调试………………………………………………………………………

3.2软件调试……………………………………………………………………..

5 作品展示………………………………………………………………………….

6 元器件清单……………………………………………………………………..

7 结束语……………………………………………………………………………..

致谢……………………………………………………………………………

参考文献………………………………………………………………………….

游戏机的制作:俄罗斯方块

摘要:

近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,应用到各个领域。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

我做的题目是一个用51单片机制作的游戏机,大致分位软件和硬件2大部分,硬件主要通过5按键、1个8*8LED点阵屏、一个单片机系统,实现积木的左、右、下、变化、复位五个模式,完全达到俄罗斯方块所实现的功能。

次项目用专门的PROTUES仿真,而采用KEIL软件程序进行程序调试关键词:AT89S52单片机芯片;74HC573驱动芯片;GYXM-1558ASR-LED点阵屏

1 方案论证

1.1 开发意义:

充分理解点阵显示的原理,已经动态扫描的应用,对生活中的产品有了个全新的认识,不但懂得理论与实际的差距,也时对自己思维的一次强有力的挑战,做出这个东西让我收获良多。

1.2 功能介绍:

开始让他显示个积木,在按键没实现控制的时候,每隔1S下移一次,有触底处理功能,当碰到底的时候图形不能下移,判断能否消行,能消行则消行,不能再判断是否到顶,到底则从新开始,没到底产生下个随即数,中间有5个按键控制,一个实现图形左移,一个实现图形右移,一个实现下移,一个实现旋转,一个复位。

2 设计思路

图形的上下移动:根据点阵理论可通过图形数据的左右移动和地址变化来实现。

图形的变化:可通过地址变化来得到。即把需要变化的数据送到一固定地址,通过地址变化再送回显示的地址里面。

图形的碰边处理:可通过各个边上的数据判断是否到边来实现。

与原有图形相遇:可通过与原有图形数据进行比较处理来实现。:

图形的旋转:在固定地址里面实现旋转比较容易,但是在行进中的图形旋转就比较费脑筋,我是用一个地址计数下移的次数,再用一个地址计数左移右移的次数。再根据这些次数确定图形的地址,再把这些地址送到图形变化的一个固定的地址中,变化后再送回到显示的地址中去显示。

图形的碰边处理:如果不对图形进行边框处理,图形就会一直移动,看不到我们想要的效果。我是用把边框数据与图形数据进行位运算。再判断这些数据就可以得到图形是否到边。

3 硬件电路

2.1 74HC573驱动芯片电路

此芯片时个锁存器,也可以做驱动芯片驱动LED点阵屏幕,这里面的电源和地系统附加了但是实际中的加上去,不然芯片不能工作。

2.2 8*8LED点阵的接口电路

上面的是仿真的图上端接数据下端开片选但是实际中引脚很不规则,所有的花时间去测用一节干电池,或者用指针万用表打到电阻10K档。

2.3 单片机最小系统电路

2.4 整体电路图以及仿真效果

但是里面的电源、地、晶振、复位、EA等在仿真中系统自动加的要是在实际生活中的加进去。

4 系统调试

3.1 硬件调试

第一检查单片机的最小系统是否正常,包括检查晶振、单片机2端电压、复位电路已经EA

第二看驱动芯片是否工作正常、接法是否正确,再检查LED点阵是否接的正确,可以用一节干电池测,也可以用指针万用表打到电阻10K档位测。

3.2 软件调试

流程图

程序代码

;========================================================= ;俄罗斯方块,采用移片选的方法.

;编译时间:09年1月15

;编译者:谭华

;实现功能:俄罗斯方块的旋转,左移,右移

; 消行碰边触底产生随即数等基本实现右移的基本功能

;==============初始化自定义======================================== pianxuan equ p2

shuchu equ p1

bt0 equ 20h.0

bt1 equ 20h.1

bt2 equ 20h.2

bt3 equ 20h.3

bt4 equ 20h.4

bt5 equ 20h.5

bt6 equ 20h.6

bt8 equ 21h.0

bt9 equ 21h.1

bt10 equ 21h.2

bt11 equ 21h.3

;============================================

org 0000h

ajmp start

org 0bh

ljmp intt0

org 30h

;=============主程序初始化================================ start: mov sp, #60h

mov tmod, #21h

mov th0, #0b1h

mov tl0, #0e0h

mov th1, #25

mov tl1, #25

mov r1, #00

call chushihua

call chuzhi

setb ea

setb et0

setb tr0

setb tr1

clr bt0

clr bt1

clr bt2

clr bt3

clr bt4

clr bt5

clr bt8

clr bt9

clr bt10

clr bt11

setb bt6

mov 35h, #0feh

mov r2, #00

mov r4, #00

;=====================================================

; 主程序

;======================================================

main:

jnb bt0, main

clr bt0

call saomiao ;扫描按键

call xianshi0 ;调用下移显示画面子程序

call xianshi ;调用触边后静态图形显示的子程序

jb bt10, loop ;判断是否触顶,=1,游戏结束,跳到满屏显示

call chudi ;调用触底子程序

call xiaohang ;调用消行判断子程序

call yanshi_40ms ;调用延时40ms消抖子程序,40ms到,BT5置1 jnb bt5, xia0

clr bt5

call panduan ;调用按键判断处理子程序

xia0: jnb bt9, xia ;图形快速下落标志位,=1快速下落

clr bt9

call xialuo ;调用图形下落子程序

ajmp main

xia: call yanshi_1s ;延时1s子程序.1s到,BT1=1

jnb bt1, main

clr bt1

call xialuo

ajmp main

loop: call yanshi_500ms ;调用延时500ms子程序,500ms到bt11=1 jnb bt11, main

clr bt11

call manping ;调用满屏全亮子程序

ajmp main

;=====================================================

; 按键扫描

;===================================================== saomiao:

jb p3.2, qq0

setb bt2

ajmp qq

qq0: jb p3.1, qq1

setb bt3

ajmp qq

qq1: jb p3.0, qq2

setb bt4

ajmp qq

qq2: jb p3.3, qq4

setb bt8

ajmp qq

qq4: setb bt6

clr bt2

clr bt3

clr bt4

clr bt8

qq: ret

;===================================================== ; 图形下移子程序

;===================================================== xialuo:

mov a, 35h

rl a

mov 35h, a

ret

;============================================

; 判断子程序

;===================================================== panduan:

jnb bt2, ww0

clr bt2

jnb bt6, ww0

clr bt6

call youyi

ajmp ww

ww0: jnb bt3, ww1

clr bt3

jnb bt6, ww1

clr bt6

call zuoyi

ajmp ww

ww1: jnb bt4, ww2

clr bt4

jnb bt6, ww2

clr bt6

call zhuan

ajmp ww

ww2: jnb bt8, ww

clr bt8

jnb bt6, ww

clr bt6

call kuaixia

ww: ret

;============================================================ ; 快速下落子程序

;============================================================= kuaixia: setb bt9

ret

;============================================================ ; 满屏子程序

;============================================================ manping: mov 41h, #0ffh

mov 42h, #0ffh

mov 43h, #0ffh

mov 44h, #0ffh

mov 45h, #0ffh

mov 46h, #0ffh

mov 47h, #0ffh

mov 48h, #0ffh

ret

;============================================================ ; 清屏子程序

;============================================================ qingping: mov 41h, #00h

mov 42h, #00h

mov 43h, #00h

mov 44h, #00h

mov 45h, #00h

mov 46h, #00h

mov 47h, #00h

mov 48h, #00h

ret

;============================================

; 下移显示

;===================================================== xianshi0: mov a, 35h

mov p1, 31h

mov p2, a

call delay

rl a

mov p1, #00

mov p1, 32h

mov p2, a

call delay

rl a

mov p1, #00

mov p1, 33h

mov p2, a

call delay

mov p1, #00

ret

;===================================================== ; 图形右移子程序

;===================================================== zuoyi:

mov a, 31h

jnb acc.0, dd1

ajmp dd

dd1: mov a, 32h

jnb acc.0, dd2

ajmp dd

dd2: mov a, 33h

jnb acc.0, dd3

ajmp dd

dd3: mov a, 35h

cjne a,#0feh,sa0

call sad0

ajmp dd

sa0: mov a, 35h

cjne a,#0fdh,sa1

call sad1

ajmp dd

sa1: mov a, 35h

cjne a,#0fbh,sa2

call sad2

ajmp dd

sa2: mov a, 35h

cjne a,#0f7h,sa3

call sad3

ajmp dd

sa3: mov a, 35h

cjne a,#0efh,sa4

call sad4

ajmp dd

sa4: mov a, 35h

cjne a,#0bfh,dd

call sad5

ajmp dd

dd: ret

sad0: mov a, 33h rr a

mov 39h,#00

mov 39h, a

anl a,43h

cjne a,#00,dd4

mov 33h, 39h

mov a, 32h

rr a

mov 39h,#00

mov 39h, a

anl a,42h

cjne a,#00,dd4

mov 32h, 39h

mov a, 31h

rr a

mov 39h,#00

mov 39h, a

anl a,41h

cjne a,#00,dd4

mov 31h, 39h

dec 51h

dd4: ret

sad1: mov a, 33h rr a

mov 39h,#00

mov 39h, a

anl a,44h

cjne a,#00,dd5

mov 33h, 39h

mov a, 32h

rr a

mov 39h,#00

mov 39h, a

anl a,43h

cjne a,#00,dd5

mov 32h, 39h

mov a, 31h

rr a

mov 39h,#00

mov 39h, a

anl a,42h

cjne a,#00,dd5

mov 31h, 39h

dec 51h

dd5: ret

sad2: mov a, 33h rr a

mov 39h,#00

mov 39h, a

anl a,45h

cjne a,#00,dd6

mov 33h, 39h

mov a, 32h

rr a

mov 39h,#00

mov 39h, a

anl a,44h

cjne a,#00,dd6

mov 32h, 39h

mov a, 31h

rr a

mov 39h,#00

mov 39h, a

anl a,43h

cjne a,#00,dd6

mov 31h, 39h

dec 51h

dd6: ret

sad3: mov a, 33h rr a

mov 39h,#00

mov 39h, a

anl a,46h

cjne a,#00,dd7

mov 33h, 39h

mov a, 32h

rr a

mov 39h,#00

mov 39h, a

anl a,45h

cjne a,#00,dd7

mov 32h, 39h

mov a, 31h

rr a

mov 39h,#00

mov 39h, a

anl a,44h

cjne a,#00,dd7

mov 31h, 39h

dec 51h

dd7: ret

sad4: mov a, 33h rr a

mov 39h,#00

mov 39h, a

anl a,47h

cjne a,#00,dd8

mov 33h, 39h

mov a, 32h

rr a

mov 39h,#00

mov 39h, a

anl a,46h

cjne a,#00,dd8

mov 32h, 39h

mov a, 31h

rr a

mov 39h,#00

mov 39h, a

anl a,45h

cjne a,#00,dd8

mov 31h, 39h

dec 51h

dd8: ret

sad5: mov a, 33h rr a

mov 39h,#00

mov 39h, a

anl a,48h

cjne a,#00,dd9

mov 33h, 39h

mov a, 32h

rr a

mov 39h,#00

mov 39h, a

anl a,47h

cjne a,#00,dd9

mov 32h, 39h

CAM编程的基本实现过程

CAM编程的基本实现过程 数控(简称NC)编程技术包含了数控加工与编程、金属加工工艺、CAD/CAM软件操作等多方面的知识与经验,其主要任务是计算加工走刀中的刀位点(简称CL点)。根据数控加工的类型,数控编程可分为数控铣加工编程、数控车加工编程、数控电加工编程等,而数控铣加工编程又可分为2.5轴铣加工编程、3轴铣加工编程和多轴(如4轴、5轴)铣加工编程等。3轴铣加工是最常用的一种加工类型,而3轴铣加工编程是目前应用最广泛的数控编程技术。 提示:本书中所提及的数控加工和编程,如无特别注明,均指2.5轴铣数控加工和编程或3轴铣数控加工和编程。 数控编程经历了手工编程、APT语言编程和交互式图形编程三个阶段。交互式图形编程就是通常所说的CAM软件编程。由于CAM软件自动编程具有速度快、精度高、直观性好、使用简便、便于检查和修改等优点,已成为目前国内外数控加工普遍采用的数控编程方法。因此,在无特别说明的情况下,数控编程一般是指交互式图形编程。交互式图形编程的实现是以CAD技术为前提的。数控编程的核心是刀位点计算,对于复杂的产品,其数控加工刀位点的人工计算十分困难,而CAD技术的发展为解决这一问题提供了有力的工具。利用CAD技术生成的产品三维造型包含了数控编程所需要的完整的产品表面几何信息,而计算机软件可针对这些几何信息进行数控加工刀位的自动计算。因此,绝大多数的数控编程软件同时具备CAD 的功能,因此称为CAD/CAM一体化软件。 由于现有的CAD/CAM软件功能已相当成熟,因此使得数控编程的工作大大简化,对编程人员的技术背景、创造力的要求也大大降低,为该项技术的普及创造了有利的条件。事实上,在许多企业从事数控编程的工程师往往仅有中专甚至高中的学历。 目前市场上流行的CAD/CAM软件均具备了较好的交互式图形编程功能,其操作过程大同小异,编程能力差别不大。不管采用哪一种CAD/CAM软件,NC编程的基本过程及内容可由图1-1表示。 .1 获得CAD模型 CAD模型是NC编程的前提和基础,任何CAM的程序编制必须有CAD模型为加工对象进行编程。获得CAD模型的方法通常有以下3种: (1)打开CAD文件。如果某一文件是已经使用MasterCAM进行造型完毕的,或是已经做过编程的文件,那么重新打开该文件,即可获得所需的CAD模型。 (2)直接造型。MasterCAM软件本身就是一个CAD/CAM软件,具有很强的造型功能,可以进行曲面和实体的造型。对于一些不是很复杂的工件,可以在编程前直接造型。 (3)数据转换。当模型文件是使用其他的CAD软件进行造型时,首先要将其转换成MasterCAM专用的文件格式(MC9文件)。通过MasterCAM的数据转换功能,MasterCAM可以读取其他CAD软件所做的造型。MasterCAM提供了常用CAD软件的数据接

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。 A)< B)+ C)&& D)!= 4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表 达式是(C)。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

(完整版)基于51单片机的电子八音盒详细设计步骤

一、设计目的 利用8052单片机结合内部定时器设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。 二、设计要求 其基本功能为:1,使用LED显示器来显示目前演奏的歌曲编号;2,具有8个按键操作来选择演奏哪一首歌曲;3,内建8首歌曲旋律,按下单键可以演奏歌曲。 三、设计器材 T89C52单片机、晶振、八个按键、二位一体共阳极数码管、电阻电容若干、导线。 四、设计方案及分析 设计思路: (1)选择8052单片机,通过T0定时中断,并配合P2.0引脚输出音频频率。 (2)P2.0引脚输出接蜂鸣器。 (3)通过P0口接LED。 (4)P1口接键盘,输入歌曲号。 音符产生方法: 不同的音调有不同的频率。频率不同,音调也就不同。 利用定时器,使其工作在模式1,定时中断,然后控制P2.0引脚的输出每次取反,就可以在P2.0的引脚输出相应的方波频率。改变计数初值,就改变了频率。定时器的定时时间等于半个周期,定时时间到就输出脉冲取反,重复此过程,就可在P2.0引脚得到一音频的脉冲。 如:中音1的频率=523HZ,周期T=1/523=1912us; 定时器的定时时间为:T/2=1912/2us=956us; 计算得TH0,TL0的计数初值THTL=64580 下面是个音符计数初值

节拍产生方法: 音乐中的节拍用延时时间产生。假设1/4拍执行一次延时程序,这1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是他的倍数。为方便记谱,将节拍数也进行编码,如下: 建立曲谱编码表: 编谱用8位编码,高4位代表音符,低4位代表节拍。如5 6中音5,中音6,都是1/2拍,则编码为:82H 92H 程序清单: #include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long sbit SPEAK = P2^0;//接蜂鸣器管脚 uchar th0_f; uchar tl0_f;

C++程序设计基础课后答案 第五章

5.1 阅读下列程序,写出执行结果 1.#include < iostream.h > struct data { int n ; float score ; } ; void main() { data a[3] = { 1001,87,1002,72,1003,90 } , *p = a ; cout << (p++)->n << endl ; cout << (p++)->n << endl ; cout << p->n++ << endl ; cout << (*p).n++ << endl ; } 2.#include < iostream.h > struct employee { char name[ 20 ] ; char sex ; } ; void fun( employee *p ) { if( (*p).sex == 'm' ) cout << (*p).name << endl ; }

void main() { employee emp[5] = { "Liming", 'm', "Wangxiaoping", 'f', "Luwei", 'm' } ; int i ; for( i=0; i<3; i++ ) fun( emp+i ) ; } 3. #include < iostream.h > struct node { char * s ; node * q ; } ; void main() { node a[ ] = { { "Mary", a+1 }, { "Jack", a+2 }, { "Jim", a } } ; node *p = a ; cout << p->s << endl ; cout << p->q->s << endl ; cout << p->q->q->s << endl ; cout << p->q->q->q->s << endl ; } 4.#include < iostream.h > class A

基于51单片机数字音乐盒的设计

单片机实物设计 题目: 单片机音乐盒设计 班级: K0312416-17 姓名:湛俊朱斌杨裕庆 学号:K031241705 K031241632 K031241737

摘要 本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。本音乐盒共有四首歌曲,用4个按键控制。播放歌曲时,蜂鸣器发出某个音调。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS 仿真软件对硬件进行仿真调试,节约了设计时间。 【关键词】STC89C51RC 按键蜂鸣器 LCD1602液晶

目录 前言 ................................................................................................................................. 第一章工作原理 .............................................................................................................. 1.1设计目标 ............................................................................................................... 第二章软件设计与分析................................................................................................... 2.1 软件设计的组成................................................................................................... 2.2 各部分软件分析 ................................................................................................. 2.2.1 延时165MS,即十六分音符子函数 .......................................................... 2.2.2 延时1MS子函数...................................................................................... 2.2.3 定时器0中断子函数 .............................................................................. 2.2.4 播放音乐子函数...................................................................................... 2.5 定时器1中断子函数.................................................................................. 2.6 按键扫描子函数 ......................................................................................... 2.2.7 主函数..................................................................................................... 2.3 总源程序 ............................................................................................................ 第三章软件仿真 .............................................................................................................. 3.仿真图...................................................................................................................... 3.1 元件清单 ............................................................................................................... 总结 ..................................................................................................................................... 参考文献..............................................................................................................................

C程序设计(第四版)_谭浩强_第五章_课后习题答案

循环结构程序设计 P115 5.1 用while计算1至100的合. #include int main() { int i=1,sum=0; while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定. { sum=sum+i; i++; } printf("The sum is %d .\n",sum); return 0; } #include int main() { int i=1,sum=0; do// do-while可以做的事,用while都可以做到. { //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行. sum=sum+i; i++; }while(i<=100); printf("The sum is %d .\n",sum); return 0; } P118 5.3 比较do-while与while的差别. #include

{ int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0. while(i<=10) { sum=sum+i; i++; } printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11. do { sum=sum+i; i++; }while(i<=10); //此重点在于理解二者的差别. printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,b=0,a,c; for(i=0;i<=1000;i++) { printf("Please input amount :"); //循环体内套有输出语句以及跳出语句. scanf("%d",&a); b=b+a; if(b>=100)

基于单片机的音乐盒设计_毕业设计

毕业设计 基于单片机的音乐盒设计 【摘要】本设计是一个基于A T89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计3种。播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。 【关键字】音乐盒;A T89C51单片机;KEIL;PROTEUS;音调

Design Of Music Box Based On SCM Li Kun (Grade06,Class1, Major Computer Science and Technology, Computer Science and Technology Dept,Shaanxi University Of Technology,Hanzhong 723003,Shaanxi) Tutor: FENG Yong-Zheng Abstract:This design is a series based on A T89C51 microcontroller Music Box, based on principles of SCM technology, through the production of hardware and software compilation, designed a multi-function music box. Mainly by the keys of the music box circuit, reset circuit, clock circuit and the buzzer composition. Using two buttons control music box, one to switch songs, and the other is used to switch the 8 LED pattern changes, the music box has two songs, a total of three kinds of pattern light pattern. Play a song, the buzzer sounded a tone, corresponding LED lights up. This design using KEIL programming software to program the music box and debug source code, with the PROTEUS simulation software to simulate hardware, debugging, saving design time. Key Words: Music Box ;A T89C51 SCM; KEIL; PROTEUS; TONE

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

运动控制-M法T法测速单片机程序设计

M法、T法测速单片机程序设计 摘要 本设计为M法、T法测速的单片机程序设计。使用STC89C52单片机作为控制器,使用该单片机的外部中断和定时器对编码器的输出的脉冲进行采样来计算出电机的转速。可以使用按键输入来调整M法、T法测速法中Z、Tc和Tt等参数以及测速方法的选择,以此来增强本设计的适应性。参数选择结果和电机转速计算结果均显示在LCD1602上。 关键字:STC89C52,M法、T法测速,LCD1602,电机转速 Ⅰ

Abstract This design as m, t-law velocity measurement of single-chip computer programming. Using STC89C52 single-chip computer as the controller, using the microcontroller's external interrupts and timers for encoder output pulse is sampled to calculate the speed of the motor. Can be adjusted using touchtone m, t law Velocimetry parameters such as z, Tt and Tc, as well as in speed measurement method of choice, as a way to enhance the adaptability of this design. Parameter selection and calculation of motor speed results are available on LCD1602. Keywords:STC89C52,M、T method, the LCD1602, Motor speed Ⅱ

PIC系列单片机程序设计基础

1、PIC单片机程序的基本格式 先介绍二条伪指令: EQU ——标号赋值伪指令 ORG ——地址定义伪指令 PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为: PIC16C54/55:1FFH PIC16C56:3FFH PIC16C57/58:7FFH 一般来说,PIC单片机的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式供参考。 TITLE This is …… ;程序标题 ;-------------------------------------- ;名称定义和变量定义 ;-------------------------------------- F0 EQU 0 RTCC EQU 1 PC EQU 2 STATUS EQU 3 FSR EQU 4 RA EQU 5 RB EQU 6 RC EQU 7 ┋ PIC16C54 EQU 1FFH ;芯片复位地址 PIC16C56 EQU 3FFH PIC16C57 EQU 7FFH ;----------------------------------------- ORG PIC16C54 GOTO MAIN ;在复位地址处转入主程序 ORG 0 ;在0000H开始存放程序

;----------------------------------------- ;子程序区 ;----------------------------------------- DELAY MOVLW 255 ┋ RETLW 0 ;------------------------------------------ ;主程序区 ;------------------------------------------ MAIN MOVLW B‘00000000’ TRIS RB ;RB已由伪指令定义为6,即B口 ┋ LOOP BSF RB,7 CALL DELAY BCF RB,7 CALL DELAY ┋ GOTO LOOP ;------------------------------------------- END ;程序结束 注:MAIN标号一定要处在0页面内。 2、PIC单片机程序设计基础 1) 设置 I/O 口的输入/输出方向 PIC16C5X单片机的I/O 口皆为双向可编程,即每一根I/O 端线都可分别单独地由程序设置为输入或输出。这个过程由写I/O控制寄存器TRIS f来实现,写入值为“1”,则为输入;写入值为“0”,则为输出。 MOVLW 0FH ;0000 1111(0FH) 输入输出 TRIS 6 ;将W中的0FH写入B口控制器,

基于AT89C51单片机的带彩灯外观音乐盒设计

基于AT89C51单片机的带彩灯外观音乐盒设计

基于AT89C51单片机的带彩灯外观音乐盒设计 摘要 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以AT89C51单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏音乐,功能多,外观效果多彩,配有彩灯,使用方便,本音乐盒有三个按键,key1控制彩灯,key2控制音乐,key3为总开关,可同时关闭音乐与彩灯。具有一定的商业价值。 关键字:AT89C51;音乐盒;按键;彩灯

Abstract Along with the development of human society, people of vision, hearing things put forward higher request. Small music box can bring good memories and improve people's spiritual culture. Traditional music box is heavy mechanical type, size, pronunciation and drab, cannot achieve batch production. Music box designed in this paper based on AT89C51 microcontroller as the core element of electronic music box, small size, light weight, can play music, multi-function, appearance and colorful, with a lantern,easy to use. The music box with three buttons , The key1 control Lantern, key2 control music, key3 total switch can turn off the music and lanterns. Have some commercial value. Keywords: AT89C51, music boxes, buttons, Lantern

利用单片机AT89C52采用程序设计方法产生锯齿波

1 引言 本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz的波形。通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。 2设计方案 2.1系统硬件设计概述 经过考虑,我们确定方案如下:利用AT89C52单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。 2.2、设计要求 1)、利用单片机采用软件设计方法产生四种波形 2)、四种波形可通过键盘选择 3)、波形频率可调

4)、需显示波形的种类及其频率 2.1.2方案设计与论证 1.2.1 信号发生电路方案论证 方案一:通过单片机控制D/A,输出四种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。 方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。 方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。但此方案成本高,程序复杂度高。 以上三种方案综合考虑,选择方案一。 1.2.2 单片机的选择论证 方案一:AT89C52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。 方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有

编写程序的步骤 教学设计

编写程序的步骤教学设计 【研究的问题】 在中小学信息技术教学中,程序设计一直是师生倍感头疼的内容。程序设计难教难学,源于计算机语言本身高度的抽象性和严密的逻辑性。虽然,Visual Basic语言较之其它语言要易学好懂一点,但它仍需要必要的抽象思维能力和数学知识作为支撑。如何“蹲下身来让大部分学生能够得着“ ,让学生学得轻松、有效,是我们在本学期一直应关注的问题。 【设计依据】 教材简析: 《编写程序的步骤》位于省编教材的选修部分第一单元《走进程序设计》的第二节。在初中信息技术教学中,程序设计部分始终是教师觉得难教,学生觉得难学的部分,而这一节中的“算法与算法描述“更是这一单元的重中之重。学好这一节,能为整个VB的学习奠定一个良好的基础。 本课是程序设计的第一课时(第1节《程序设计与计算机软件》,我们让学生自学了解,没有占用课时。),起始课的好坏将直接影响整个单元的后继教学。例如一部优秀的电影一般都有一个精彩的开头,一开始就抓住观众的心,使他们有动机、有兴趣往下观赏。 学情分析: 初二的学生虽具备了一定的计算机使用经验,但大多数是与软件的使用和网络应用有关,程序设计对他们是崭新的、具有挑战性的知识。而且这个时期的学生正处于感性思维向理性思维过渡的时期,很多时候仍需要感性思维的支撑。因此在教学中应强调程序设计与生活的关系,注重启蒙和兴趣的培养,并以趣味性的练习、富有引导性的教学语言、明白流畅的教学思路调动学生的情感,在晦涩的程序设计和学生之间架起一座桥梁。 【教学目标】 知识与技能 1、了解利用计算机解决问题的基本过程,认识算法的地位和作用。 2、初步掌握使用自然语言或流程图对算法进行描述。 过程与方法 1、通过实例让学生体会程序设计的基本过程与方法,理解算法思想,会用自然语言或流程图表达一些具体问题的算法。 2、通过对现实问题的分析与解决,让学生认识到生活中到处是程序,而程序解决的往往就是

第五章程序设计基础习题及参考答案

第五章程序设计基础 一、选择题 1.在各类程序设计语言中,相比较而言,(D)程序的执行效率最高。 A.汇编语言 B.面向对象的语言 C.面向过程的语言 D.机器语言 2.下列关于程序设计语言的说法中正确的是(C)。 A.高级语言程序的执行速度比低级语言程序快 B.高级语言就是自然语言 C.高级语言与机器无关 D.计算机可以直接识别和执行用高级语言编写的源程序 3.在算法分析中,评判算法的好坏不必考虑(D)。 A.正确性 B.需要占用的计算机资源 C.易理解 D.编程人员的爱好 4. 一般认为,计算机算法的基本性质有(A)。 A.确定性、有穷性、可行性、输入、输出 B.可移植性、可扩充性、可行性、输入、输出 C.确定性、稳定性、可行性、输入、输出 D.确定性、有穷性、稳定性、输入、输出 5.计算机硬件唯一能直接理解的语言是(A)。 A.机器语言 B.汇编语言 C.高级语言 D.面向过程语言 6.结构化程序设计方法的3种基本结构是(C)。

A.程序、返回、处理 B.输入、输出、处理 C.顺序、选择、循环 D.I/O、转移、循环 7.在面向对象方法中,一个对象请求另一个对象为其服务的方式是发送(D)。 A.调用语句 B.命令 C.口令 D.消息 8.以下不是面向对象思想中的主要特征的是(D)。 A.多态 B.继承 C.封装 D.垃圾回收 9.(C)不是程序的3种翻译方式之一。 A.汇编 B.编译 C.结构化 D.解释 10.软件工程中的各种方法是完成软件工程项目的技术手段,它们支持软件工程的(A)阶段。 A.各个 B.前期 C.中期 D.后期 11.在软件生命周期中,工作量所占比例最大的阶段是(D)阶段。 A.需求分析 B.设计 C.测试 D.维护 12.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象是(C)的一种表现。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 二、填空题 1.C++语言运行性能高,且与C语言兼容,已成为当前主流的面向(对象)的程序设计语言之一。 2.对象的基本特点包括(唯一性)、分类性、多态性、封装性和模块独立性5个特点。

基于单片机STC89C52的数字音乐盒设计

基于单片机STC89C52的数字音乐盒设计 一、引言 1.1设计的目的 通过课程设计,让学生熟悉单片机微机应用系统开发、研制的过程,软硬 件设计的工作方法、工作内容、工作步骤。对学生进行基本技能训练,例如: 组成系统、编程、调试、查阅资料、焊接电路板等。使学生理论联系实际,提 高动手能力和分析问题、解决问题的能力。 1.2 设计的基本要求 (1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏不同的乐曲(至少3首歌曲); (2)采用七段数码管显示当前播放的歌曲序号; (3)可通过功能键选择乐曲,暂停,播放,上一首,下一首; 扩展功能:利用一个循环跟每一个音调同步,每改变一个音调就变换一下彩灯,从而实现音乐控制彩灯的功能。 二、总体设计 2.1基本工作原理 1、播放音乐的原理 发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低 频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初 步的了解。 音符的发音主要靠不同的音频脉冲。利用单片机的内部定时器/计数器0, 使其工作在模式1,定时中断,只要算出某一音频的周期(1/频率),然后将 此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计

时到后就将输出脉冲的I/O 反相,然后重复计时此半周期时间再对I/O 反相,就可在I/O 脚上得到此频率的脉冲。 2、音符频率的产生 音符及定时器的初值: 例如:中音1(DO )的音频=523HZ,周期T=1/523s=1912s μ 定时器/计数器0的定时时间为:T/2=1912/2s μ=956s μ 定时器956s μ的计数值=定时时间/机器周期=956s μ/1s μ=956(时钟频率=12MHZ) 计算得到定时器0的初值为65536-956=64580,将初值装入T0的寄存器里,启动T0后,每计数956次后就溢出中断,进入中断服务程序后,只要将I/O 口的输出值取反,就可以得到中音1(DO )的音符音频。只要改变计数初值,就能得到不同频率的音符。表(1)是C 调各音符频率与计数初值的对照表:

单片机程序设计方法总结.doc

单片机程序设计方法总结 程序设计是单片机开发最重要的工作程序设计就是利用单片机的指令系统根据应用系统即目标产品的要求编写单片机的应用程序其实我们前面已经开始这样做过了这一课我们不是讲如何来设计具体的程序而是教您设计单片机程序的基本方法不过在讲解之前还是有必要先了解一下单片机的程序设计语言这里的语言与我们通常理解的语言是有区别的它指的是为开发单片机而设计的程序语言如果 您没有学过程序设计可能不太明白我给大家简单解释一下您知道微软的VB VC 吗VB VC 就是为 某些工程应用而设计的计算机程序语言通俗地讲它是一种设计工具只不过这种工具是用来设计计 算机程序的要想设计单片机的程序当然也要有这样一种工具说设计语言更确切些单片机的设计 语言基本上有三类: 1 .完全面向机器的机器语言 机器语言就是能被单片机直接识别和执行的语言计算机能识别什么以前我们讲过--是数字0 或1 所以机器语言就是用一连串的0 或1 来表示的数字比如MOV A 40H 用机器语言来表示就是 11100101 0100000 很显然用机器语言来编写单片机的程序不太方便也不好记忆我们必须想办法 用更好的语言来编写单片机的程序于是就有了专门为单片机开发而设计的语言 2. 汇编语言 汇编语言也叫符号化语言它使用助记符来代替二进制的0 和1 比如刚才的MOV A40H 就是汇编语言 指令显然用汇编语言写成的程序比机器语言好学也好记所以单片机的指令普遍采用汇编指令来编写 用汇编语言写成的程序我们就叫它源程序或源代码可是计算机不能识别和执行用汇编语言写成的程 序啊怎么办当然有办法我们可以通过翻译把源代码译成机器语言这个过程就叫做汇编,汇编工作现在 都是由计算机借助汇编程序自动完成的不过在很早以前它是靠手工来做的. 值得注意的是:汇编语言也是面向机器的,它仍是一种低级语言每一类计算机都有它自己的汇 编语言比如51 系列有它的汇编语言;PIC 系列也有它的汇编语言微机也有它自己的汇编语言它 们的指令系统是各不相同的也就是说不同的单片机有不同的指令系统它们之间是不通用的,这就

基于AT89C51单片机的音乐盒的设计

1 前 言 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智 能仪器仪表设备。实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着FPGA 集成度的提高,价格下降,EDA 设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA 软件工具来应付这些问题,并不是一件简单的事情。FPGA 预装了很多已构造好的参数化库单元LPM 器件。通过EDA 软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。 本文介绍在EDA 开发平台上利用单片机及汇编语言设计音乐硬件演奏电路,并定制单片机存储音乐数据,以十首乐曲为例,将音乐数据存储到单片机,就达到了以纯硬件的手段来实现乐曲的演奏效果。只要修改单片机所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新连接到程序中就可以实现其它乐曲的演奏。

目录 摘要 (4) 第1章概述 (5) 第2章音乐盒的发音原理 (6) 2.1 播放音乐的原理 (6) 2.2 音符频率的产生 (6) 2.3 节拍频率的产生 (8) 第3章硬件电路设计 (9) 3.1 硬件电路 (9) 3.2 整体硬件电路 (10) 3.3 原理说明 (11) 2 2.4 键盘按键 (11) 第4章软件设计 (12) 4.1 程序设计流程 (12) 4.2 设计源程序代码 (12)

第5章仿真及调试 (13) 5.1 调试 (13) 5.2 仿真 (13) 5.3 程序调试中出现的问题及解决的办法 (15) 第6章设计小结及建议 (17) 致谢 (18) 参考文献 (19) 附录一元器件清单 (20) 附录二部分源程序代码 (21) 3

相关文档
最新文档