当前位置:文档之家› 单片机课程设计

单片机课程设计

单片机课程设计
单片机课程设计

单片机课程设计—八音盒

专业自动化

学号1062510233

学生姓名张成振

指导教师黄皎

摘要

本设计是基于STC90C516RD+单片机设计的八音盒,按下按键可以演奏预先设定的歌曲旋律。通过本设计,可以学习MCS-51系列单片机定时器、外部中断、按键扫描、数码管显示以及蜂鸣器控制等程序设计,从而对51系列单片机有直观的认识。

本设计设定中7音和高7音,通过矩阵键盘可以控制蜂鸣器发出某一对应音调,可以弹奏乐曲,实现电子琴的功能。通过外部中断可实现演奏预先设定的歌曲的功能。同时,数码管动态显示歌曲对应曲目或音调对应音高。

通过反复调试,各项功能均能准确无误的实现,实现基本部分和提高部分要求。通过本次课程设计,加深了对单片机原理课程的理解,强化了责任意识,增强了团队合作,达到了预期目的和效果。

关键词:51单片机八音盒定时器外部中断按键扫描数码管显示

一、绪论

1.1 课程设计背景

《单片机》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。不论理论学习还是实际应用,都离不开实验课教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节,学习与应用脱节的局面。

1.2 课程设计目的

让同学们在理论学习的基础上,通过完成一小系统的设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些传感器应用系统的开发设计工作打下一定的基础。

1.3 课程设计任务

1.3.1 基本部分要求

利用蜂鸣器和K20-K27制作一个八音盒,内存八首乐曲,当按下不同的按键时,奏出不同的乐曲。其中《茉莉花》是必选曲目,其他任意。例如:按下K20奏出《茉莉花》。(提示:利用定时器产生不同的音调,需要查do,re,mi等音调的频率。)

1.3.2 提高部分要求

把其他按键当作琴键,可以弹奏乐曲。

1.4 课程设计意义

通过自己动手设计单片及组成的器件,在软件及硬件上进一步了解单片机的原理,深入了解了单片机C51语言的实际应用,能更深地理解课堂上所学的内容,巩固C语言程序编写,体会作为一名设计人员所需要具备的各种能力,学会理论知识联系实际,提高发现问题,分析问题,解决问题和实践动手的能力。

二、系统整体设计

2.1 系统设计原理

2.1.1 音乐发生器设计流程及思路

在进行设计前,首先要对音乐知识有基本的理解,其次要明白单片机产生音乐脉冲的原理,最后完成硬件原理图和相关程序的设计。

音作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人耳,听觉系统将神经冲动传达给大脑,进而产生听觉。人耳能听到的声音频率大约在11~20000Hz,而音乐中使用的音一般在27~4100Hz。

乐音体系中各音级的名称叫做音名,被广泛采用的是C D E F G A B(do re mi fa so la si则多用于歌唱,称为唱名)。乐音体系中音高关系的最小尽量单位叫做半音,两个半音构成一个全音。乐音中有几十个高低不同的音,但是最基本的只有这七个音,其他高、低音的音名都是在这个基础上变化出来的。

在乐谱表上用来表示正在进行的音的长短的符号,叫做音符。不同的音符代表不同的长度。音符有一下几种:全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分音符。

此外,还有一种附点音符,它就是指带附点的音符,所谓附点就是记载音符右边的小圆点,表示增加前面音符时值的一半。

音持续的长短即时值,一般用拍数表示,休止符表示暂停发音。音符与节拍数之间的对应关系如表1所示。

表1 音符与节拍数之间的对应关系表

音符节拍数音符节拍数

x--(全音符) 4拍 x ·(附点八分音符) 3/4拍 x-(二分音符) 2拍 x ·(附点十六分音符) 3/8拍 X (四分音符) 1拍 000(三分休止符) 休止3拍 X (八分音符) 1/2拍 00(二分休止符) 休止2拍 X (十六分音符) 1/4拍 0(四分休止符) 休止1拍 x ·(附点四分音符)

1.5拍

0(八分休止符)

休止1/2拍

一首音乐及时由许多不同的音符组成的,而每一个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延时来构成不同的音乐。 2.1.2 音频脉冲和音乐节拍的实现

音乐是由不同的音乐脉冲和音乐节拍配合产生的,因此设计之前,首先要对它们进行了解。 2.1.3 音频脉冲的产生

音乐的产生需要不同频率的音频脉冲,对于单片机而言,可以利用它的定时/计数器产生这样的方波频率信号。具体地说,只要知道某一音频的频率,求得它的周期,然后将次周期除以2,得到半周期的时间,利用定时/计数器计时这半个周期,计时到后就将输出脉冲的I/O 反相。就可以在I/O 端口上得到此脉冲。

单片机工作在12MHz 时钟频率下,其时钟周期为1us ,因此可以利用89C51的内部定时/计数器T0,使其工作模式为1,工作在计数器状态下[9],改变计数初值TH0和TL0以产生不同频率的脉冲信号。T 的值决定了计数初值TH0和TL0的值,TH0=T/256,TL0=T%256。

计数值公式如下:

2622100000065536265536÷÷-=÷÷-=r i F F T

式中,i F :单片机内部时钟周期为1us ,所以其频率为1MHz 。 r F :产生音符所需的频率。

通过上式计算,可以求得各个音符频率的计数值T 。 2.1.4 音乐节拍的产生

节拍是指音乐持续的长短,是除音符之外音乐的另一关键组成部分,在单片机系统中可以通过延时来实现。

如果1/4拍的延时设为0.2s ,则1拍的时间为0.8s 。以此类推,可以求出

其余节拍的值,节拍的延时时间值与音乐的曲调值有相对应的关系,表2所示为不同曲调下的1/4和1/8节拍的时间设定。

如果单片机要实现自己播放音乐,那么必须在程序设计中考虑到节拍的设置,在89C51中,可以用一个直接存储一个音符,其中低4位是节拍码。节拍数和节拍码的对照表如表3所示。

表2 各调节拍的时间设定

曲调值(1/8节拍)DELAY 曲调值(1/4节拍)DELAY 调4/4 62ms 调4/4 125ms

调3/4 94ms 调3/4 185ms

调2/4 125ms 调2/4 250ms

表3 节拍数与节拍码的对照

节拍码节拍数节拍码节拍数

1 1/4拍 1 1/8拍

2 2/4拍 2 1/4拍

3 3/4拍 3 3/8拍

4 1拍 4 1/2拍

5 1.25拍 5 5/8拍

6 1.5拍 6 3/4拍

8 2拍8 1拍

A 2.25拍 A 1.25拍

C 3拍 C 1.5拍

F 3.75拍

2.1.5 音频功放

音乐的播放最后是通过扬声器完成的,但是直接用单片机产生的音频脉冲不足以直接驱动扬声器来完成音乐的播放,因此这就要求在单片机端口与扬声器之间链接功率放大电路,以实现最终的目的。

评定功率放大电路有3个重要的指标,即输出功率、效率、非线性失真。总的来说,要求功率放大器在保证系统安全运用的情况下,获得尽可能大的输出功率、尽可能高的效率和尽可能小的非线性失真[10]。为了简化设计,这里用了基

于三极管的音频功放电路。驱动电路如图1所示。

图1 音频驱动电路

2.2 系统硬件设计

2.2.1 51单片机最小系统设计

音乐发生器设计电路包括51系列单片机系统图和音频功放电路以及显示电路。单片机输出的音频脉冲信号比较微弱,一般只有几个微安,经过三极管的放大可以直接驱动喇叭发声。硬件电路原理图如图2所示。

图2 硬件设计图

2.2.2 键盘接口电路

如图2-2所示,为键盘接口电路,包含行列式键盘和独立式按键输入电路。 P20-P23为行,P24-P27为列,构成4×4行列式键盘。按键编号规律为S2+行号+列号。例如S226表示P22行和P26列跨接处的按键。

K20-K27构成独立式按键,分别接在P20-P27上,当按键按下时,对应的口线输入0,同时相应的LED 点亮。D20-D27构成P20-P27的状态指示,当某口线输出0,相应的LED 点亮。有4个用途:1、当行列式键盘逐行扫描时,可做为正在被扫描的行的指示。2、当行列式键盘逐行扫描时,可做为已按下键的指示。例:当S215键按下,扫到P21行时,D21和D25会被点亮。3、可做为独立式按键被按下的指示。见上一段。4、当P2口不做为键盘输入时,D20-D27可做为输出器件,实现流水灯等功能。 2.2.3 数码管显示电路

如图2-3所示,为数码管显示电路。这部分电路由4位共阴的数码管LED1、单个数码管LED2和8个独立发光二极管L1-L7组成。这3个部分都是共阴结构,并联在一起,连接在P0口上。

LED1用于完成LED 动态显示实验,各个位选线为P24-P27,段码由P0口输出;LED2的COM 端接地,完成LED 静态显示实验;L1-L7,可以方便地读出P0输出的二进制数据,亦可做流水灯实验。

图2-2 键盘接口电路

7407在此起驱动作用。

2.2.4 外部中断0触发电路

图2-4所示的电路为NE555和电容组成的单稳电路。

当S_INT0按钮按下后产生一个低电平单稳信号送单片机的INT0,同时D_PLUS1亮一次,做为外部中断请求信号。

图2-3 数码管显示电路

图2-4 外部中断0触发电路

2.3 系统软件设计

2.3.1 14音调的确定

通过前文所说的方法,可以确定各音调所对应的中断半周期,从而确定各音调对应的定时器中断初值。具体如下:

uchar code cuzhi[]={ 0xff,0xff, //占位

0xFC,0x8E, //中央C调1-7

0xFC,0xED,

0xFD,0x43,

0xFD,0x6A,

0xFD,0xB3,

0xFD,0xF3,

0xFE,0x2D,

0xFE,0x47, //高八度1-7

0xFE,0x76,

0xFE,0xA1,

0xFE,0xC7,

0xFE,0xD9,

0xFE,0xF9,

0xFF,0x16 };

2.3.2 音乐播放函数

音乐播放函数主要实现音乐的播放,同时在音乐切换或者模式切换时能快速实现终止当前播放的音乐。具体如下:

void Song()//唱歌函数

{

uint temp;

uchar jianpu;//jp是简谱

uchar i = 0;

TR0 = 1;

while((i<=200)) ///key_flag

{

if(song_number_last != song_number)

{i = 0; song_number_last = song_number;}

switch(song_number)

{

case 0: temp = song0[i]; break;

case 1: temp = song1[i]; break;

case 2: temp = song2[i]; break;

case 3: temp = song3[i]; break;

case 4: temp = song4[i]; break;

case 5: temp = song5[i]; break;

case 6: temp = song6[i]; break;

case 7: temp = song7[i]; break;

default: break;

}

if(temp == 0xff)

break;

jianpu = temp/16; //取数的高4位

if(jianpu != 0)

{

timeh = cuzhi[jianpu*2];

timel = cuzhi[jianpu*2+1];

}

else

{

TR0 = 0;

SPEAKER = 1;//关蜂鸣器

}

delay(temp%16); //取数的低4位

TR0 = 0;

SPEAKER = 1;

delay1(10); //唱完一个音停10MS

TR0 = 1;

i++;

}

TR0 = 0;

SPEAKER = 1;

}

2.3.3 音调播放函数

音调播放函数主要实现单个音调的播放,实现电子功能。具体如下:void Song_single()//音调函数

{

TR0 = 1;

timeh = cuzhi[key_number*2];

timel = cuzhi[key_number*2+1];

delay(3); //取数的低4位

TR0 = 0;

SPEAKER = 1;

}

2.3.4 数码管显示函数

通过对数码管的控制,实时显示歌曲对应的曲目或音调对应的音高。具体如下:

void Number_play(uchar number) //显示歌曲对应的数字

{

NUMBER_wei = 0xff;

NUMBER_wei = Number_wei[0]; // 位选

NUMBER = 0x00;//去除遗辉

NUMBER = Number[number];// 段选

delayms(1); //延时

}

2.3.5 中断函数

中断函数包括T0定时器和外部中断0中断函数,T0定时器中断产生一定频率的方波,控制蜂鸣器发出不同的音调。外部中断控制歌曲曲目的变换。具体如下:

void timer0() interrupt 1 //定时器0服务函数//用于产生各种音调

{

TH0 = timeh;

TL0 = timel;

SPEAKER = ~SPEAKER;

}

void interrupt0(void) interrupt 0 using 3 //外部中断0服务程序

{

//delayms(1);//保留,提高部分按键电子琴部分使用

song_number++;

song_number = song_number % 8;

}

三、实验结果及分析

3.1 调试过程

通过了解音阶和节拍的特点后,我们搜集了各音调对应的频率,经计算后烧入单片机发现效果不太好,噪音很大,各音调很难区分,经检查,发现是蜂鸣器存在问题,通过调换多个试验箱后,终于找到噪声较小的蜂鸣器。

各音调可以正常发出后,我们发现,歌曲的节拍存在问题,与实际歌曲相比偏快,经分析是延时间隔函数存在问题,经不断调整后,节拍正常。

在选择歌曲是,我们选择了大家耳熟能详的儿歌、流行歌曲及必选曲目《茉莉花》,在编曲时,主要由我们小组音乐素养较高的沈洁同学负责。

3.2 调试结果

经过小组讨论,我们小组确定了矩阵键盘控制音调,外部中断控制歌曲的设计方案,达到了课程设计的基本要求,也完成了发挥部分的内容。

四收获与心得

课程设计结束了,我收获了很多在课堂上无法学到的知识,不仅有设计方案的确定,还有解决问题的方法硬件发设计能力,以及编程的规范性等多方面的能力也得到了大幅度的提高。

通过本次课程设计将课本的知识实体化,化抽象为具体,激发了我们的兴趣。通过这次课程设计,我们不仅深入的学习了单片机,还学到了很多课本上没有的知识。

1)担当。做人做事要敢于担当,在课程设计期间,我负责班级的几个同学,每天督促他们及时独立完成实验,对于他们出现的问题,也尽自己所能给予解答。一个集体中,个人的强大不是真的强大,集体的强大才是真的强大。同时,在帮助同学的同时,我也巩固了自己的理论知识,增强了同他人交流的能力,收益匪浅。

2)团队合作。一个团队,只有团结一心才能发挥1+1>2的效果。在课程设计期间,我们小组共同讨论制定了最终的设计方案,同时,我们合理分工,各自发挥自己所长,团结合作。例如我主要负责软件设计、音乐素养较高的沈洁同学负责音调的确定及歌曲的编曲、常杰同学负责上网搜集资料,对于出现的问题及时给与解决。

3)解决问题的能力。对于在课程设计期间出现的问题,我们小组集体讨论,查找资料,大家齐心协力,共同思考,互相启发,最终解决问题。

总的来说,这次课程设计我受益匪浅,不仅巩固了我的基础知识,也进一步培养了动手实践的能力。最后说一句,单片机真的很有意思。

附录一:软件程序

#include

#define uchar unsigned char

#define uint unsigned int

#define NUMBER P0 //P0段选

#define NUMBER_wei P2 //位选自左刀右

sbit SPEAKER=P3^7;//蜂鸣器连续的IO口

uchar code Number[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, //数码管段选

0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

uchar code Number_wei[] = {0x7f,0xbf,0xdf,0xef}; //数码管位选

uchar hang = 0,lie = 0,song_number = 0,key_number = 0;//歌曲编号

uchar timeh,timel;//定时器初值

uchar key_number_last = 0,song_number_last = 0;//按键标志位0表示有键值改变按下,1无

//---------------------------简谱---------------------------------------

//编程规则:字节高位是简谱,低位是持续时间,代表多少个十六分音符

//1-7代表中央C调,8-E代表高八度,0代表停顿,最后的0是结束标志

uchar code song1[]={0x31,0x21,0x31,0x51,0x61,0x51,0x81,0x61,0x51,0x31,0x54,0x62,0x82,0x91,0xA1,0x 91,0x81,0x61,0x81,0x58, //茉莉花

0x51,0x31,0x54,0x62,0x82,0x91,0xA1,0x91,0x61,0x52,0x52,0x22,0x31,0x51,0x31,0x21,0x 11,0xD1,0x16,

0x31,0x21,0x12,0x23,0x31,0x52,0x61,0x81,0x62,0x52,0x51,0x31,0x22,

0x31,0x51,0x31,0x21,0x11,0x21,0xD4,0x12,0x23,0x31,0x11,0x21,0x11,0xD1,0x11,0xD1,0x C6,

0x31,0x21,0x12,0x23,0x31,0x52,0x61,0x81,0x62,0x52,0x51,0x31,0x22,

0x31,0x51,0x31,0x21,0x11,0x21,0xD4,0x12,0x23,0x31,0x11,0x21,0x11,0xD1,0x11,0xD1,0x C6,

0x31,0x21,0x31,0x51,0x61,0x51,0x81,0x61,0x51,0x31,0x54,0x62,0x82,0x91,0xA1,0x91,0x 81,0x61,0x81,0x58,

0x51,0x31,0x54,0x62,0x82,0x91,0xA1,0x91,0x61,0x52,0x52,0x22,0x31,0x51,0x31,0x21,0x 11,0xD1,0x16,

0x31,0x21,0x12,0x23,0x31,0x52,0x61,0x81,0x62,0x52,0x51,0x31,0x22,

0x31,0x51,0x31,0x21,0x11,0x21,0xD4,0x12,0x23,0x31,0x11,0x21,0x11,0xD1,0x11,0xD1,0x C6,

0x31,0x21,0x12,0x23,0x31,0x52,0x61,0x81,0x62,0x52,0x51,0x31,0x22,

0x31,0x51,0x31,0x21,0x11,0x21,0xD4,0x12,0x23,0x31,0x11,0x21,0x11,0xD1,0x11,0xD1,0x C6,

0x31,0x21,0x31,0x51,0x61,0x51,0x81,0x61,0x51,0x31,0x54,0x62,0x82,0x91,0xA1,0x91,0x 81,0x61,0x81,0x58,

0x51,0x31,0x54,0x62,0x82,0x91,0xA1,0x91,0x61,0x52,0x52,0x22,0x31,0x51,0x31,0x21,0x 11,0xD1,0x16,

0x31,0x21,0x12,0x23,0x31,0x52,0x61,0x81,0x62,0x52,0x51,0x31,0x22,

0x31,0x51,0x31,0x21,0x11,0x21,0xD4,0x12,0x23,0x31,0x11,0x21,0x11,0xD1,0x11,0xD1,0x C6,

0x31,0x21,0x12,0x23,0x31,0x52,0x61,0x81,0x62,0x52,0x51,0x31,0x22,

0x31,0x51,0x31,0x31,0x21,0x11,0x21,0xD4,0x82,0x23,0x31,0x81,0x91,0x81,0x61,0x51,0x 61,0x81,0xA1,0x91,0x81,0x61,0x81,0x58,

0xff};

uchar code song0[]={0x12,0x22,0x32,0x12,0x12,0x22,0x32,0x12,0x32,0x42,0x54,0x32,0x42,0x54,0x51,0x6 1, //两只老虎

0x51,0x41,0x32,0x12,0x51,0x61,0x51,0x41,0x32,0x12,0x32,0x52,0x14,0x32,0x52,0x14,0x32,0x 52,0x14,0xff};

uchar code song2[]={0x12,0x12,0x14,0x54,0x32,0x32,0x34,0x14,0x12,0x32,0x54,0x54,0x42,// 新年快乐

0x32,0x28,0x22,0x32,0x44,0x44,0x32,0x22,0x34,0x14,0x12,0x32,

0x24,0x54,0x72,0x22,0x18,0xff };

uchar code song3[]={0x12,0x12,0x52,0x52,0x62,0x62,0x54,0x42,0x42,0x32,0x32,0x22,0x21,0x14, //小星星

0x52,0x52,0x42,0x42,0x32,0x32,0x24,0x52,0x52,0x42,0x42,0x32,0x32,0x24,

0x12,0x12,0x52,0x52,0x62,0x62,0x64,0x42,0x42,0x32,0x32,0x22,0x22,0x14,0xff};

uchar code song4[]={0x32,0x32,0x42,0x52,0x52,0x42,0x32,0x22,0x12,0x12,0x22,0x32,0x33,0x21,0x24,//欢乐颂

0x32,0x32,0x42,0x52,0x52,0x42,0x32,0x32,0x12,0x12,0x22,0x32,0x23,0x11,0x14,

0x22,0x22,0x32,0x12,0x22,0x31,0x41,0x32,0x12,0x22,0x31,0x41,0x32,0x12,0x12,

0x22,0x52,0x32,0x32,0x42,0x52,0x52,0x41,0x32,0x22,0x12,0x12,0x22,0x32,0x22,0x11,0x1 4,0xff};

uchar code song5[]={0x12,0x12,0x12,0x32,0x52,0x52,0x52,0x52,0x62,0x62,0x62,0x82,0x54,0x42,0x42,//小毛驴

0x42,0x62,0x32,0x32,0x32,0x32,0x22,0x22,0x22,0x22,0x54,0x54,0x12,0x12,0x12,

0x32,0x52,0x52,0x52,0x52,0x62,0x62,0x62,0x82,0x54,0x42,0x42,0x44,0x64,0x32,

0x32,0x34,0x34,0x34,0x34,0x24,0x24,0x24,0x34,0x14,0xff};

uchar code song6[]={ //寂寞沙洲冷

0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,0x21,0x31,0x51,0x52,

0x31,0x52,0x61,0x15,0x14,0x51,0x52,0x31,0x52,0x62,0x13,0x11,

0x13,0x32,0x28,0x08,0x28,0x31,0x32,0x31,0x32,0x11,0x21,0x51,

0x52,0x51,0x52,0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,

0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,

0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,0x32,

0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,

0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,0x31,0x81,0x81,

0x81,0x61,0x91,0x82,0x51,0x51,0x51,0x51,0x31,0x61,0x53,0x21,

0x11,0x21,0x11,0x22,0x11,0x21,0x26,0x32,0x61,0x51,0x51,0x31,

0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,0x31,0x31,0x81,

0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,0x32,0x32,0x81,0x81,

0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,0x21,

0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff};

uchar code song7[]={0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,0x61,0x71,0x82,0x71,0x62,0x52,0x31,

//千年之恋

0x36,0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,0x42,0x63,0x83,0x83,0x91,

0x91,0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,0x61,0x71,0x82,0x71,0x62,0x52,

0x31,0x36,0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,0x42,0x82,0x88,0x02,

0x74,0x93,0x89,0xff };

//简谱音调对应的定时器初值,适合11.0592M的晶振

uchar code cuzhi[]={0xff,0xff, //占位

0xFC,0x8E, //中央C调1-7

0xFC,0xED,

0xFD,0x43,

0xFD,0x6A,

0xFD,0xB3,

0xFD,0xF3,

0xFE,0x2D,

0xFE,0x47, //高八度1-7

0xFE,0x76,

0xFE,0xA1,

0xFE,0xC7,

0xFE,0xD9,

0xFE,0xF9,

0xFF,0x16 };

void delayms(uint x)//延时0.2ms*x

{

uint n_count;

for(x;x>0;x--)

for(n_count=200;n_count>0;n_count--);

}

void Number_play(uchar number) //显示歌曲对应的数字

{

NUMBER_wei = 0xff;

NUMBER_wei = Number_wei[0]; // 位选

NUMBER = 0x00;//去除遗辉

NUMBER = Number[number];// 段选

delayms(1); //延时

}

void delay(uint z) //延时165MS,即十六分音符

{ uint x,y;

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

for(y=19000;y>0;y--);

}

void delay1(uint z) //延时1MS

{ uint x,y;

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

for(y=112;y>0;y--);

}

void keyscan()//键盘扫描程序

{

P2=0xf0;

if((P2&0xf0)!=0xf0)

{

switch(P2)

{

case 0x70:hang = 0;break;

case 0xb0:hang = 1;break;

case 0xd0:hang = 2;break;

case 0xe0:hang = 3;break;

default: break;

}

delayms(1);

P2 = 0x0f;

if((P2&0x0f)!=0x0f)

{

switch(P2)

{

case 0x07:lie = 0;break;

case 0x0b:lie = 1;break;

case 0x0d:lie = 2;break;

case 0x0e:lie = 3;break;

default: break;

}

}

}

key_number = (hang+lie*4);

}

void Song()//唱歌函数

{

uint temp;

uchar jianpu;//jp是简谱

uchar i = 0;

TR0 = 1;

while((i<=200)) ///key_flag

{

if(song_number_last != song_number)

{i = 0; song_number_last = song_number;} switch(song_number)

{

case 0: temp = song0[i]; break;

case 1: temp = song1[i]; break;

case 2: temp = song2[i]; break;

case 3: temp = song3[i]; break;

case 4: temp = song4[i]; break;

case 5: temp = song5[i]; break;

case 6: temp = song6[i]; break;

case 7: temp = song7[i]; break;

default: break;

}

if(temp == 0xff)

break;

jianpu = temp/16; //取数的高4位

if(jianpu != 0)

{

timeh = cuzhi[jianpu*2];

timel = cuzhi[jianpu*2+1];

}

else

{

TR0 = 0;

SPEAKER = 1;//关蜂鸣器

}

delay(temp%16); //取数的低4位

TR0 = 0;

SPEAKER = 1;

delay1(10); //唱完一个音停10MS

TR0 = 1;

i++;

}

TR0 = 0;

SPEAKER = 1;

}

void Song_single()//音调函数

{

TR0 = 1;

timeh = cuzhi[key_number*2];

timel = cuzhi[key_number*2+1];

delay(3); //取数的低4位

TR0 = 0;

SPEAKER = 1;

}

void main()

{

EA=1;//开总中断

EX0=1;//开外部中断0

IT0=1;//外部中断0下降沿触发方式

TMOD=0x01;//定时器0工作在方式1

TH0 = 0;

TL0 = 0;

ET0 = 1;

//TR0 = 1;

while(1)

{

if(song_number_last != song_number)

{ Number_play( song_number );Song();song_number_last = song_number;} if(key_number_last != key_number)

{ Number_play( key_number );Song_single();key_number_last = key_number;}

keyscan();

Number_play( song_number );

}

}

void timer0() interrupt 1 //定时器0服务函数//用于产生各种音调

{

TH0 = timeh;

TL0 = timel;

SPEAKER = ~SPEAKER;

}

void interrupt0(void) interrupt 0 using 3 //外部中断0服务程序

{

//delayms(1);//保留,提高部分按键电子琴部分使用

song_number++;

song_number = song_number % 8;}

单片机课程设计指导书

单片机原理及应用课程设计指导书 一、课程设计目的 《单片机原理及应用》是一门技术性,应用性、实践性很强的学科。课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的和任务就是配合单片机的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 二、课程设计要求 1、每个学生可以从下面的课程设计题目中任选一个(也可以根据自己的兴趣选题,但选题必须是和单片机应用有关的其他控制或测试系统,同时要通过指导老师确认),选题后按任务书的要求查阅资料,完成系统的总体设计和各个模块的设计。具体实现可以用Proteus仿真,也可以用硬件。 2、进入实验室以后应根据前面的设计在2周内独立完成仿真和调试任务。课程设计过程中,要认真记录资料来源、出现的问题和解决方法。 3、不同的学生如果选题相同,相互之间可以相互探讨,但杜绝抄袭。如果发现,按零分计算。 4、设计完成后学生要按要求认真撰写课程设计报告,并于设计完成后一周内交指导老师评阅。同时准备设计测试和答辩。

三、时间安排 1、13周之前完成分组和选题,并根据选题向指导老师要任务书 2、14周根据任务书的设计要求,查阅相关的资料,完成系统总体方案设计及各模块的软硬件设计 3、15周进入实验室进行仿真、调试,并馔写设计报告,并于16周周一交给指导教师,并准备系统测试和答辩。 四、设计作品提交 1、课程设计报告书 2、proteus仿真程序(对于用proteus仿真的学生) 3、硬件实物及单片机源程序文件 五、设计报告的撰写 1、设计报告采用统一的格式,封面包括:课程设计名称、班级、姓名、学号、设计时间,具体参考设计摸板。 2、设计报告书写规范,系列分以下几个部分进行书写: 1、绪论:介绍设计的背景和意义 2、系统总体方案设计:给出系统设计硬件框图,说明实现的基本原理 3、硬件系统设计:针对框图中的硬件模块,分别介绍选择的具体元器件型号,并介绍这些器件的性能及和单片机的连接图,最后画出详细的这个系统硬件原理图。 4、系统软件设计:根据设计的功能划分模块,画出主程序和主程序的软件流程图。 5、系统调试及仿真 写出调试方法和运行结果 6、设计总结 六、课程设计内容及提示

单片机课程设计题目

《单片机原理与应用》课程设计题目 1.基于单片机的电子秒表 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。 要求按键输入采用中断方式,按键A接INT0,按键B接INT1。 2.智能电动百叶窗 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,用一台直流电机控制百叶窗叶片的旋转(正转/反转),用一个光敏电阻传感器测量室内光强度,并用两位数码管显示测量结果,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。 设置两个极限位置保护行程开关,用于保护百叶窗叶片:当正转到极限位置压下行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。 按键输入采用中断方式,按键中断请求信号接INT0. 单片机根据设定光强S1和S2(S2 > S1)和实测光强P控制电机M的动作:当P<=S1时,控制M正转以增加进光量; 当P>S2时,控制M反转以减少进光量; 当S1S+1时,控制R断开电加热回路; 当S-1

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

单片机课程设计选题

单片机课程设计选 题

单片机原理与接口技术课程设计题目 以下题目任选其一,1-2人一组,自由组合,组内各人必须有明确的分工,原则上同一组最多一个同学得优。 可使用任何单片机或ARM,1-4要求自己设计全部硬件和焊接电路板,5-10题可用现成的单片机开发板,5-6题亦可用proteus仿真。自拟题的根据题目难度由指导老师决定能否用现成的单片机开发板。 一、PC机看门狗(每班最多6人选此题,难度系数:低) 功能:当PC机死机时能自动使其重新启动。 硬件:可使用串口或USB与PC机通讯。 软件:PC机上软件编程可选用任何一种面向对象开发软件,如VC,Delphi等。 实现原理:PC机正常时,每隔一段时间经过串口向单片机发送一些固定的数据,单片机如果收到此数据,说明PC机正常,如果超时未收到,则控制PC机重新启动。 二、电子琴设计(每班最多6人选此题,难度系数:中) 使用4×4行列式键盘和蜂鸣器实现电子琴的功能。键盘符号定义如下: 按下1-7,实验箱上的蜂鸣器发出对应的音调(中音),当同时按下L和1-7时是,蜂鸣器发出低音,同时按下H和1-7时,蜂鸣

器发高音。只要按键没松开,蜂鸣器一直发声,直到松开按键。 扩展功能:在彩屏LCD上显示电子琴图片,用触摸屏控制发音,就像真正弹电子琴一样。 三、自行车测速仪 (难度系数:中偏高) 基本功能:能实时显示自行车的行驶速度 附加功能:实时时钟,行驶里程累计 要求具备一定的实用价值,即要考虑如下问题(也是答辩时的考察和评分指标): 1、体积要做到尽量小 2、为了省电,要使用低电压工作的单片机,比如使用2.0-3.3V 工作电压的单片机 3、供电采用可充电的聚合物锂电池(普通手机电池),一次充 电后的使用时间最少12小时 4、最好能直接用单车轮子的旋转为电池充电(选做)。 四、计算器设计 1、使用4×4行列式键盘和1602液晶(其它液晶亦可)或数码 管,实现普通十进制计算器的功能,键盘符号定义如下:

单片机课程设计指导书

单片机课程设计指导书

单片机应用 课程设计指导书 中原工学院信息商务学院信息工程系 课程名称:单片机应用 适用对象:测控技术与仪器 学分/学时:3/3 选修课程:单片机应用与接口技术

一、课程设计目的 大学本科学生动手能力的培养和提高是大学本科教育的一个重要内容。如何让学生在学好基础知识的同时,迅速掌握应用技术,实验与课程设计环节起着非常重要的作用。本课程设计的目的,是让测控、自动化专业学生通过课程设计,首先建立起单片机应用系统的概念,根据实际的系统设计要求,掌握初步的单片机系统设计方法,从硬件系统和软件系统设计两个方面得到实际的提高,为今后的毕业设计打下良好的基础。 二、课程设计基本要求 1、17周:运用51系列单片机,根据设计要求绘制系统原理图(要 求用protel 或altium designer软件绘制); 2、18周:设计系统软件流程图(要求用visio绘制)、根据系统流 程图编制程序,进行运行调试;然后软硬件联机调试仿真(运用仿真软件proteus)。 3、19周:检查仿真结果,最后编写课程设计报告。 4、课程设计应由学生本人独立完成,严禁抄袭(对自己的设计不 熟悉,读不懂设计中的关键功能部分,对设计的结构不清楚,对设计的功能不了解等),一经验收教师认定其抄袭行为,成绩即为不及格。 5、认真编写课程设计报告,课程设计报告的书写格式见附录1 三、课程设计题目要求

1请设计一个基于单片机的电子时钟,画出硬件电路图、编写程序,完成电子时钟的任务,并进行proteus仿真。该控制任务应该完成下列功能: 1)电子时钟显示用LED数码管显示,格式为: XX XX XX,由左向右分别为:时、分、秒,比如:23 20 40表示23时20分40秒,刚开始工作时应该显示为:年、月、日、学号; 2)实现对时、分、秒进行校准; 3)具有闹铃功能,闹钟时间到,启动蜂鸣器。 2 题目所提供要求为基本功能要求,学生可根据实际情况,在程 序设计和实现功能上做进一步的扩展,如:具有语音播报时间功能、秒表功能等。 四、时间安排计划 时间安排:2013~2014学年下学期17周~19周,具体细分: 1、17周周一布置课设任务,查阅收集资料 周三检查系统框图,绘制打印版 周四检查系统原理图,绘制打印版 2、18周周一检查系统软件流程图,绘制打印版 周三、四检查系统源程序,电子档,自备电脑 3、19周周一、三检查仿真结果,电子档,自备电脑 周四上交课程设计报告 上交地点:传感器实验室 注意:1、本次课设要求1人/组,独立完成课设任务。 2、整个课设分大组分时进行检查,请大家按时到场。(具

单片机课程设计实习报告

【最新】单片机课程设计实习报告 单片机课程设计实习报告 实训任务: 做单一灯的左移右移,八个发光二极管l1-l8分别接在单片机的p1.0 p1.2 p1.3┅ p1.7 p1.6 ┅ p1.0亮,重复循环3次.然后左移2次,右移2次,闪烁2次(延时的时间0.2秒). 一. 实训目的和要求: (1)熟练掌握keil c51集成开发环境的使用方法 (2)熟悉keil c51集成开发环境调试功能的使用和dp?https://www.doczj.com/doc/f111642597.html,单片机仿真器.编程器.实验仪三合一综合开发平台的使用. (3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口. (4)了解掌握单片机芯片的烧写方法与步骤. (5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用. (6)掌握利用protel 99 se绘制电路原理图及pcb图. (7)了解pcb板的制作腐蚀过程. 二.实训器材: pc机(一台)http://shi_i.e_am8/ pcb板(一块) 5_ 电阻(八只) 10k电阻(一只) led发光二极管(八只) 25v 10 f电容(一只) 单片机ic座(一块) at89c51单片机芯片(一块) 热转印机(一台) dp?https://www.doczj.com/doc/f111642597.html,单片机仿真器.编程器.实验仪三合一综合开发平台(一台) 三.实训步骤: (1)根据原理图(下图所示),用导线把单片机综合开发平台a2区的j61接口与d1区的j52接口相连.

(2)将流水灯程序编写完整并使用tkstudy ice调试运行. (3)使用导线把a2区j61接口的p1口7个口分别与j52接口的八个led 相连. (4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求. (5)观察运行结果,若能实现功能,则将正确编译过的he_文件通过easypro51编程器写入mcu片内存储器,然后将烧写的芯片a2区的圆孔ic座进行最终实验结果的演示. (6)制板.首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净. (7)焊接.将所给元器件根据原理图一一焊至pcb板相应位置. _3下一页

单片机课程设计教案

《单片机技术及其应用》课程设计教案 一、课程设计的目的 课程设计是在学完《单片机原理及接口技术》课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础. 1.了解并掌握单片机的原理、结构、指令、接口及应用。 2.提高综合运用所学的理论知识独立分析和解决问题的能力。3.掌握汇编语言程序设计和调试。 4. 掌握C51语言的设计和调试。 二、课程设计的要求 1.根据设计要求,画出硬件接线图及程序的总体流程图,然后进行各控制模块的硬件设计及软件设计。 2.掌握如何应用单片机仿真器来开发应用系统及仿真调试的过程。 三、课程设计的安排 1.时间安排,课程设计时间分为三个阶段: 第一阶段(8学时):主要是学生接受课程设计的准备阶段。包括:1)学生集中介绍课程设计的具体内容和具体要求,学生选题。(4学时) 2)安排学生收集相关资料,确定课程设计的总体方案。(4学时)第二阶段(20学时):主要是学生具体课程设计的过程。包括:学生做的工作 1)确定电路中使用的电子元器件(包括元件名称和及参数值)

2)软件设计与仿真(画出软件流程图,并编写具体的代码) 老师做的工作 1)辅导学生解决在制作过程中出现的问题 2)协助学生购买设计中需要的电子元器件 3)辅导学生焊接电路板和相关元器件 4)辅导学生完成程序的烧写和硬件测试 提供烧写器给学生,由学生能够进行软件仿真调试程序。学生在焊接完毕后,将程序下载到主芯片里并测试电路。由辅导老师辅导学生调试硬件和软件部分,共同解决测试过程中出现的问题,使学生在测试过程进一步学习。 第三阶段(8学时):主要是文档资料整理和答辩 1)安排学生交课程设计报告并总结 2)每组随机抽取3个人进行答辩,取平均成绩作为小组每个人的答辩成绩 课程设计结束后,将学生的设计的实物做课程设计汇报,在实验中心1楼做一个展览。 2. 分组安排 学生可以自由组合,3-6名学生成立一个小课题组,选一名组长,确定课题后由组长进行分工。 3.课题选择 以小组为单位,一组选择一个课题,可以自己选定题目,也可以在指导教师提供的课题中选择。 四、可供选择的课题 1、抢答器的设计

单片机课程设计计算器

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:四位数加法计算器的设计学院名称:电气信息学院 专业班级: 学生学号:

学生姓名: 学生成绩: 指导教师: 课程设计时间:至

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 系统通过4x4的矩阵键盘输入数字及运算符。 2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。 3. 可以进行加法以外的计算(乘、除、减)。 4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

单片机课程设计

浙江工业大学之江学院 题目:数字时钟逻辑电路课程设计 班级:测控901 学号:200920540104 姓名:侯晓明 指导老师:刘勤贤 时间:2011年12月26日-2012年1月3日

设计课题:电子时钟课程设计 设计任务与要求根据应用电路的功能,确定封面上的题目,然后完成以下任务: 1、分析电路由几个部分组成,并用方框图对它进行整体描述; 2、对电路的每个部分分别进行单独说明,画出对应的单元电路,分析电路原理、 元件参数、所起的作用、以及与其他部分电路的关系等等; 3、用简单的电路图绘图软件绘出整体电路图,在电路图中加上自己的班级名称、 学号、姓名等信息; 4、对整体电路原理进行完整功能描述; 设计步骤1、查阅相关资料,开始撰写设计; 2、先给出总体方案并对工作原理进行大致的说明; 3、依次对各部分分别给出单元电路,并进行相应的原理、参数分析计算、功能以及与 其他部分电路的关系等等说明; 4.总体电路的绘制及总体电路原理相关说明; 5、列出设计中所涉及的所有参考文献资料。 设计说明书字数不得少于3000字。 参考文献【1】单片微型计算机原理与应用蔡菲娜浙江大学出版社2009年 【2】数字电子技术2黄瑞浙江大学出版社2008年 【3】单片机课程设计指导楼然苗,李光飞北京航空航天大学出版社2007年

设计背景 数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。 单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。 课程设计目的 (1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力; (2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力; (3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。 89C51及各管脚介绍:带4K字节闪烁可编程可擦除只读存储器低电压、高性能CMOS8位微处理器

单片机课程设计题目汇总(全)

单片机课程设计题目汇总(一) 说明:为便于同学提前探讨开发思路,自学相关内容,特将本课程设计的可选题目发给大家。本次题目为其一部分,稍后会有另一部分。鼓励大家自己设计题目。 要求:每个小组2-3人,每个题目最多限两个小组选;课程设计考核内容包括:C51源程序;现场显示结果;设计报告文档(文档的格式稍后公布,请注意查收)。 一、基于单片机的交通灯显示系统(一) 设计内容:1、东西方向、南北方向均有红、黄、绿三种信号灯;(30分) 2、带紧急制动按钮,按钮按下,所有方向亮红灯;再次按下, 恢复正常显示(20分) 3、夜间模式按钮按下,所有方向显示黄灯闪烁(20分) 4、实时提醒绿灯亮的剩余时间(30分) 图示: 二、基于单片机的交通灯显示系统(二) 设计内容:1、东西干道和南北干道的通行分左行、右行、直行,其中左行、右行固定15秒;直行固定30秒(40分) 2、信号灯分绿灯(3种)、红灯、黄灯,每次绿灯换红灯时,黄 灯亮3秒钟。(30分) 3、东西干道和南北干道交替控制,每次干道绿灯交替时,有3 秒钟所有干道的交通灯都是黄灯闪烁3秒钟,提示已经进入路口的车辆迅速通过。(30分) 4、其他创新内容。(10分) 图示: 三、基于单片机的波形发生器设计 设计内容:1、设计一款能产生3种以上波形的波形发生器(30分) 2、设计波形选择按钮(采用3个独立按键)(10分) 3、点阵显示波形图案(20分) 4、能同时输出两种波形(30分)

5、显示频率(10分) 图示: 四、基于单片机的LED点阵广告牌设计 设计内容:1、能显示不同字符、图形的LED点阵广告牌(30分) 2、用独立按键控制不同字符的切换效果(如闪烁、静止、平移) (30分) 3、可通过串口从电脑下载更新需要显示的字符(30分) 4、其他创新功能(10分) 图示:略 五、基于单片机的篮球计分器设计 设计内容:1、设计LCD显示篮球比分牌(30分) 2、通过加分按钮可以给A队或B队加分(20分) 3、设计对调功能,A队和B队分数互换,意味着中场交换场地。 (20分) 4、显示比赛倒计时功能(20分) 5、创新内容:如显示第几小节(10分) 显示: 六、基于单片机的电子贺卡设计 设计内容:1、设计基于单片机的伴奏乐曲(30分) 2、设计基于单片机的彩屏图片(30分) 3、通过矩阵键盘按键显示不同彩屏图片,并伴有不同乐曲(30 分) 4、创新部分(自主设计)(10分) 显示:(略) 七、电风扇模拟控制系统设计 设计内容:1、3个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并在数显管上显示出区别(30分) 2、每种类型风可以根据按下独立按键次数分为4个档的风力调 节。(30分) 3、设计风扇的过热保护,用继电器实现。即当风扇运行一段时 间后,暂停10秒。(30分) 4、其他创新内容(如报警提示)(10分)

单片机课程设计 数字电压表设计

《单片机原理及应用》课程设计报告书 课题名称数字电压表设计 名姓 学号 专业

指导教师 机电与控制工程学院月年日 1 任务书 电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。本系统以8051单片机为核心,以逐次逼近式A/D转换器ADC0809、LED显示器为主体,设计了一款简易的数字电压表,能够测量0~5V的直流电压,最小分辨率为0.02V。 该设计大体分为以下几个部分,同时,各部分选择使用的主要元器件确定如下: 1、单片机部分。使用常见的8051单片机,同时根据需要设计单片机电路。 2、测量部分。该部分是实验的重点,要求将外部采集的模拟信号转换成数字信号,通过单片机的处理显示在显示器上,该部分决定了数字电压表的精度等主要技术指标。根据需要本设计采用逐次逼近型A∕D转换器ADC0809进行模数转换。 3、键盘显示部分。利用4×6矩阵键盘的一个按键控制量程的转换,3或4位LED显示。其中一位为整数部分,其余位小数部分。 关键词:8051 模数转换LED显示矩阵键盘 2 目录

1 绪论 (1) 2 方案设计与论证 (2) 3 单元电路设计与参数计算 (3) 4 总原理图及参考程序 (8) 5 结论 (14) 6 心得体会 (15) 参考文献16 (7) 3 1.绪论 数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优

点。 电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D 转换的方式可分为两类:积分式和逐次逼近式。 积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。 逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。 在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以8051单片机为核心,以逐次比较型A/D转换器ADC0809、LED 显示器为主体,构造了一款简易的数字电压表,能够测量1路0~5V直流电压,最小分辨率0.02V。 4 2.方案设计与论证 基于单片机的多路数字电压表电路的基本组成如图3.1所示。

基于51单片机课程设计报告

单片机课程设计 课题:基于51单片机的交通灯设计 专业:机械设计制造及其自动化 学号: 指导教师:邵添 设计日期:2017/12/18 成绩: 大学城市科技学院电气学院 基于51单片机数字温度计设计报告

一、设计目的作用 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度围-55°C~+125°C。在-10~+85°C围,精度为±0.5°C。18B20的精度较差,为±2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。 二、设计要求 (1).利用DS18B20传感器实时检测温度并显示。 (2).利用数码管实时显示温度。 (3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。 (4).能够手动设置上限和下限报警温度。 三、设计的具体实现 1、系统概述 方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案设计框图如下:

STC12C5A60S2单片机课程设计报告

一、课程设计基本情况介绍 1.1课程设计的基本目的与任务 本课程设计旨在驾驭本专业学生理论指导实践能力以及电子产品工程设计与开发能力。本实践课所要达到的主要目的是: 1、通过本次课程设计,是对学生综合能力的检,提高学生综合运用专业知识,强化单片机 应用系统设计与防震能力。 2、本次课程设计是在生产实习所完成的“单片机核心板+电子钟模块+MP3模块+RFID模块+无线传输模块+GPS模块+脉搏传感模块”的基础上设计该硬件系统的工作程序。 1.2课程设计的基本内容 1、在生产实习设计单片机硬件系统的基础上,设计相应的应用软件系统。 2、在LCD1602上显示学号程序设计。 3、基于DS1302的实时时钟软件设计。 4、基于DS18B20的温度测量软件设计。 5、基于TL1838A的红外遥控解码软件设计。 6、设计应用软件系统框图和流程图,完成所设计软件的调试。 1.3课程设计的教学要求 1、通过资料查阅及学习了解单片机应用系统的软件设计方法及单片机编程、软硬件联机调 试技巧。 2、独立设计并编写下列应用程序: (1)LCD1602学号显示程序; (2)DS1302实时时钟程序; (3)DS18B20温度测量程序; (4)TL1838A红外遥控解码程序; 3、独立完成所设计程序与硬件系统的联机仿真。 二、整机系统框图(硬件、软件) 该设计方案是以STC12C5A60S2单片机为核心,采用LCD液晶屏幕显示模块、实时时钟模块、温度测量模块、红外遥控解码等模块所构建的系统,能在LCD1602液晶屏上显示当前的日期(年、月、日)、时间(时、分、秒)数据、当前环境温度值和红外遥控解码值。用户可通过遥控器或单片机核心板上的按键来进行日期和时间的设置。本系统设计大部分功能由软件来实现,电路简单明了,系统稳定性也得到大大提高。 1、总体硬件设计框架图: 2、总体软件设计框架图 /////// 三、整机硬件电路原理图(见99SE图) 1、核心板电路原理图 2、蜂鸣器驱动电路 3、按键电路 4、单片机复位电路 5、LCD1602液晶显示电路 6、电子钟模块接口电路 四、软件系统设计思想 //////////// 五、系统软件资源分配表(调试程序、工作程序) ////////////// 六、显示学号的调试程序流程图、程序源代码

单片机课程设计要求及参考题目

《单片机原理与应用》课程设计大纲 一、目的: 本课程设计是《单片机原理与应用》课程的综合、设计性实验,作为课堂教学和课内正常实验的补充和提高。通过对《单片机原理与应用》课程的学习,学生已初步掌握51单片机的基本原理,以及并行口、串行口、中断、定时等基本原理及应用,课内实验主要以实验指导书为参考,难以充分发挥学生自主设计动手能力。通过《单片机原理与应用》课程设计,加强学生自主学习,巩固学习成果,提高学生综合应用单片机技术的实践能力和创造思维。为后续相关专业课程学习打好基础,培养学生专业知识的综合应用能力,与就业需求相接轨。 二、实验安排: ●课程设计内容和要求的安排与讲解在课程设计之初进行。 ●上机机时安排:共32个课内机时,不足部分自行安排。 三、课程设计说明: ●本次课程设计平台使用课程单片机开发实验箱(或学生自购单 片机开发板)+实验室PC.,对于有特殊要求的学生,可以自行 购买元件,焊接电路板,达到实验要求。

●课程设计结束后,每个小组提交课程设计成果如下: ?系统完成后,要求演示效果,演示时采用答辩形式,由各 小组同学边演示边讲解思路。 ?课程设计报告一份,报告中可不包括源代码(程序代码刻 录光盘)。 四、成绩评分内容 ●课设考勤情况 ●系统运行效果 ●系统讲解和问题回答情况 ●设计报告完成情况。 五、参考题目 以下题目根据难度,分为ABC三个等级。请自行选择。 A级满分为100分。 B级满分为90分。 C级满分为80分。 1.交通灯(C) 要求利用实验箱上的LED灯模拟十字路口交通灯 (1)东西方向显示绿灯时,南北方向显示红灯,持续10秒钟后,绿灯变为黄灯并持续3秒钟; (2)然后东西方向显示红灯,南北方向显示绿灯,持续10秒钟后,绿灯变黄灯并持续3秒钟,如此反复。 2.电子显示屏(B)

单片机课程设计模板2017

课程设计(论文)课程名称单片机应用课程设计 题目 院(系) 专业班级 姓名 学号 指导教师 年月日

西安建筑科技大学课程设计(论文)任务书 专业班级:电子1302 学生姓名:王玖玲指导教师(签名): 一、课程设计(论文)题目 正弦波信号发生器设计 二、本次课程设计(论文)应达到的目的 本次课程设计是自动化专业学生在学习了《单片机原理及应用》课程及《模拟电子线路》、《数字电子线路》等专业基础课程之后进行的一次综合训练,其主要目的是加深学生对单片机软硬件技术和相关理论知识的理解,进一步熟悉51单片机系统设计的基本理论、方法和技能;掌握工程应用的基本内容和要求,力争做到理论与实际的统一;同时培养学生分析问题、解决问题的能力和独立完成系统设计的能力,并按要求编写相关的技术文档和设计报告等。 三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 1.设计内容 (1)选择51单片机,晶振采用12MHz。 (2)设计一个能产生0至50HZ正弦波信号。通过0832D/A芯片完成数模转换。 (3)频率值由键盘输入。 (4)将频率值由LED数码管上显示(两位)。 2.设计要求 (1)按照任务书的要个求完成系统分析及方案设计。 (2)完成硬件原理图的设计,并选择相关元器件。 (3)完成控制软件流程图的设计,编写相应的单片机控制程序。 (4)撰写设计报告。 3. 成果要求 (1)在proteus中实现仿真。 (2)提交课程设计报告。 四、应收集的资料及主要参考文献: 1.李建忠.单片机原理及应用.西安电子科技大学出版社,2008 2.杨居义.单片机课程设计指导.清华大学出版社,2009 3.李海滨等.单片机技术课程设计与项目实例.中国电力出版社,2009 以及与51系列单片机相关的文献及教材。 五、审核批准意见 教研室主任(签字)

单片机课程设计报告书----电子秤

一、设计任务及要求: 设计任务: 完成一个简单的使用数字电子秤的硬件与软件部分的设计。 设计要求: 1.利用单片机实现对所设计的电子秤的各项功能的控制。 2.电子秤能够LCD液晶显示出商品的名称、价格,重量、总价等信息。 3.电子秤具有储存几种简单商品价格的功能。 4.电子秤的测量范围要求达到5KG,测量精度要求达到0.001。 5.电子秤能够自动完成商品的价格计算。 指导教师签名: 2010 年6月16 日二、指导教师评语: 指导教师签名: 2010 年7月3日三、成绩 验收盖章 2010 年7 月日

基于单片机的实用电子秤的设计 1 设计目的 单片机以其功能强,体积小,功耗低,易开发等很多优势被广泛应用。本 次数字电子秤的设计就是需要通过选择合适的单片机来进行主控,再结合A/D 转换、键盘、液晶显示、复位电路和蜂鸣器报警驱动电路的知识,同时在软件 的设计过程中用到键盘扫描、液晶显示驱动、模数转换程序及汉字库的的设计, 做到对我们所学数电、模电、单片机等知识的综合应用,最终实现所设计数字 电子秤的各项功能,达到“巩固知识,培养技能,学而用之”的实践目的。通过这次课程设计,不但要提高我们在工作中的学习能力、探究能力、应用能力和动 手能力,还要历练我们不畏艰难、不懂便学、有漏必补的认真严谨的工作态度,强化我们的社会适应力和社会竞争力,为走向社会提前试水,完善自我。 2 设计的主要内容及要求 本设计主要完成一个简单实用数字电子秤的硬件电路部分和软件部分的设计。硬件部分包括数据采集、最小系统板、人机交互界面三大部分。其中,数 据采集部分由压力传感器和A/D 转换部分组成;人机界面部分为键盘输入、 液晶显示。软件部分应用单片机 C 语言实现了本设计的全部控制功能。本设 计的数字电子秤要求能够显示商品的名称、价格、总量、总价等;能够自动完 成商品的价格计算;能够储存几种简单商品的价格;能够具有超重提醒功能, 一旦重量超出了自身重量的测量的范围,发出警报;同时对数字电子秤的测量 范围要达到5KG,测量精度要求达到0.001。 3 整体设计方案 整个数字电子秤电路由压力传感电路(ADC0832采样)、模数转换系统、单 片机主控制电路、LM4229显示电路、蜂鸣器报警电路和4*4键盘电路6 个部

推荐-基于单片机多功能秒表课程设计任务书 精品

单片机课程设计课题:多功能秒表 系别:电气与电子工程 专业:电子信息工程 姓名:吴腾飞 学号:093411143 河南城建学院 20XX年1月1日

成绩评定· 一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。 二、评分 课程设计成绩评定

目录 第一章设计目的 第二章设计任务要求 .................................. 第三章总体设计 ...................................... 3.1 任务分析................................................. 3.2 方案确定................................................. 3.3 单片机概述............................................... 3.3.1 单片机的特点 ........................................... 3.3.2 STC89C51单片机简介 3.3.3 STC89C51功能特性概述:................................. 第四章各部分电路设计 4.1 显示原理................................................. 4.2 键盘及读数原理............................................ 4.3 复位电路................................................. 4.4 按键电路................................................. 4.5 时钟电路................................................. 4.6 驱动显示电路............................................. 第五章整体电路图 .................................... 5.1相应程序.................................................. 5.2 硬件实物调试............................................. 5.3 硬件调试.................................................. 5.4软件调试.................................................. 5.5系统联调.................................................. 5.6现场调试.................................................. 第六章设计总结 6.1设计过程中遇到的问题及解决方法............................ 6.2设计体会 .................................................

单片机课程设计

《单片机原理及实训教程》 课程设计 设计题目单片机智能流水灯控制器 院系电子电气工程学院 班级 12级电气(一)班 姓名侯东伟学号 2012481015 设计地点实验楼 指导教师翟红程职称副教授 指导教师签字 设计日期 14年6月16——14年6月22

目录 封面-------------------------------1 目录-------------------------------2 前言-------------------------------3 一、设计要求及M C S-51单片机简介-----------4 二、硬件组成-----------------------5 三、电源提供系统-------------------6 四、程序流程图---------------------7 五、晶振延时计算-------------------8 六、源程序-------------------------8 七、元件清单---------------------10 结束语----------------------------11 参考文献---------------------------11

前言 自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式市发展速度,成为日后此系统中的核心部分。由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。 本文主要用的是单片机,课题名称为单片机智能流水灯控制。通过本课题的设计以后,使我了解到了单片机的许多方面的应用。本课程设计介绍了一种由MCS-89C51集成块编程实现的控制电路,它完成了单片机流水灯控制功能,并给出了具体的硬件电路和相应的程序。这种控制电路可靠性,灵活性高,使用范围广,特别适合中小城市的交通灯、霓虹灯等的应用。而且,它对其他类似系统的开发具有一定的借鉴意义。 通过本次实训实习,使我掌握了一定的电子产品设计、制作技能和调试技术,巩固电子技术的理论知识,锻炼和提高自己的动手能力和综合运用知识解决实际问题的能力及实践动手能力。 关键词:LED 单片机控制系统流水灯

单片机课程设计任务书

1. 音乐播放系统设计 设计一个音乐播放系统,要求: (1)利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由喇叭发出声音; (2)学会音乐在单片机系统中的转换方法及设置; (3)可自动选取某段音乐令单片机连续播放。 3. 医院住院病人呼叫器的设计 (1)设计一个8 床位的无线呼叫器,供医院住院病人(或静脉点滴病人)呼叫医护人 员时使用; (2)病人可通过按动自己床边的按钮,向医护人员发出呼叫信号;(3)当有病人呼叫信号时,医护人员值班室设置的显示器可显示出该病人的床位编号, 同时扬声器发出声音信号,提示值班的医护人员。 5. 自动电梯控制电路的设计 设计一个8 层楼房的电梯自动控制电路,要求: (1)电梯内设有对外报警开关,可以在紧急情况下报警。报警装置设在电梯外; (2)每层楼梯门边设有上、下楼的请求开关及指示灯,电梯内设有可选择楼层的开关 及相应指示灯; (3)设有表示电梯所处上升或下降的状态标志,以及电梯正位于哪层楼的指示显示; (4)能记忆电梯外的所有请求信号,并按照电梯的运行规则对信号分批处理,每个请 求信号一直保持到处理后才能撤除。电梯运行规则如下: ①电梯上升时,仅响应电梯所在位置以上层的上楼请求信号,依 楼层次序逐个执行, 直到最后一个请求执行完毕。然后升到有下楼请求的最高层,开始执行下楼请求; ②电梯下降时,仅响应电梯所处位置以下层的下楼请求信号,依 楼层次序逐个执行, 直到最后一个请求执行完毕。然后降到有上楼请求的最低层,开始执行上楼请求; ③一旦电梯执行完全部请求信号后,应在原位置停止,等待新的请求信号到来时再

处理。 (5)电梯运行速度为5 秒/层; (6)电梯到达有请求的楼层停下时,该层指示灯亮。经1 秒后,电梯门自动打开,经 10 秒后,电梯门自动关闭(指示灯显示)。电梯到达新楼层后,原楼层指示灯灭。 7. 自动往返电动车的设计 设计一台自动往返电动车,要求: (1)电动车自主前进、遇到障碍后返回; (2)电动车行驶过程中不能出现擦墙行驶,或撞墙故障; (3)自动测量显示里程数、行车时间; (4)误差要求:总里程数:<3%; 行车时间:<3%; 识别距离:5~15cm 。 9. 消毒柜控制电路的设计 设计一台消毒柜控制系统,要求: (1)显示消毒柜温度、保持时间; (2)可以键盘设定消毒柜温度、定时时间; (3)可以实现实时中断功能; (4)消毒后自动关机; (5)测温误差:<0.5 ℃; (6)定时误差:<20 秒/月。 11. 低频信号发生器 设计制作低频信号发生器,要求利用单片机产生正弦波、方波及三角波等波形。 (1)正弦波 用单片机实现正弦波的输出; 输出的波形有1Hz、10Hz、100Hz、1kHz、10kHz 5种可选频率; 输出电压范围为0~5V可调(峰峰值); 用6位数码管显示频率; 频率误差<1%。

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