当前位置:文档之家› 51单片机应用实例小制作

51单片机应用实例小制作

51单片机应用实例小制作
51单片机应用实例小制作

51单片机应用实例小制作16x16点阵显示屏、蜂鸣器、独立键盘

制作:赵建业

2016/12/1

原理图(芯片)

功能说明:

1、通电后进入问候界面。

2、四个按键(实时有效):

1> GIF :按下后进入动画显示模式。

2> WORLD :按下后进入文字显示模式。

3> MUSIC :按下后进入音乐模式,由于51硬件限制,暂时不能同时显示16x16点阵。

4> NEXT :按下后,切换当前模式的下一个内容。为循环播放。

3、滑动变阻器:音乐模式下调节音量大小。

注意事项:

1、程序代码由于在world 中保存格式原因,复制到编译软件后可能会出现错误。或可以向本人索要源代码。

2、由于本程序内容较多,占用内存较大,89c51的内存放不下,因此需要用89c52或更高版本芯片。它们只是内存大小不容。

原理图(16x16LED 点阵)

程序代码:

main.c

#include

#include

#include"yinfu.h" //自定义音符头文件

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

#define KEY P2

sbit sound=P1^6;

sbit MOSIO = P1^0;

sbit R_CLK = P1^1;

sbit S_CLK = P1^2;

unsigned char Keymun1,Keymun2;//存按键序号

unsigned char Keystay;//按键状态,有按键按下为1,无按键按下为0

unsigned int C;

unsigned char x,y;

uchar code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,

0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};

uchar code hi[]={

0,0,0,0,0,0,3,12,2,12,2,0,2,0,58,14,70,8,66,8,66,8,66,8,66,8,231,62,0,0,0,0

};//开机问候语:“hi”

uchar code jif1[22][32] = {

0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,192,3,64,2,64,2,192,3,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,224,7,32,4,160,5,160,5,32,4,224,7,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,240,15,16,8,208,11,80,10,80,10,208,11,16,8,240,15,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,248,31,8,16,232,23,40,20,168,21,168,21,40,20,232,23,8,16,248,31,0,0,0,0,0,0,

0,0,0,0,252,63,4,32,244,47,20,40,212,43,84,42,84,42,212,43,20,40,244,47,4,32,252,63,0,0,0,0,

0,0,254,127,2,64,250,95,10,80,234,87,42,84,170,85,170,85,42,84,234,87,10,80,250,95,2,64,254,127,0,0,

255,255,1,128,253,191,5,160,245,175,21,168,213,171,85,170,85,170,213,171,21,168,245,175,5,160,253,191,1,128,255,255, 128,1,128,1,128,1,128,1,128,1,128,1,128,1,255,255,255,255,128,1,128,1,128,1,128,1,128,1,128,1,128,1,

1,128,3,192,6,96,12,48,24,24,48,12,96,6,192,3,128,1,192,3,96,6,48,12,24,24,12,48,6,96,3,192,

128,1,128,1,128,1,128,1,128,1,128,1,128,1,255,255,255,255,128,1,128,1,128,1,128,1,128,1,128,1,128,1,

1,128,3,192,6,96,12,48,24,24,48,12,96,6,192,3,128,1,192,3,96,6,48,12,24,24,12,48,6,96,3,192,

128,1,128,1,128,1,128,1,128,1,128,1,128,1,255,255,255,255,128,1,128,1,128,1,128,1,128,1,128,1,128,1,

1,128,3,192,6,96,12,48,24,24,48,12,96,6,192,3,128,1,192,3,96,6,48,12,24,24,12,48,6,96,3,192,

128,1,128,1,128,1,128,1,128,1,128,1,128,1,255,255,255,255,128,1,128,1,128,1,128,1,128,1,128,1,128,1,

64,2,64,2,64,2,64,2,64,2,64,2,127,254,0,0,0,0,127,254,64,2,64,2,64,2,64,2,64,2,64,2,

32,4,32,4,32,4,32,4,32,4,63,252,0,0,0,0,0,0,0,0,63,252,32,4,32,4,32,4,32,4,32,4,

4,32,4,32,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,224,4,32,4,32,

2,64,3,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,192,2,64,

1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,

};//动画一

uchar code jif2[8][32]={

0,0,0,0,0,0,96,6,144,9,8,16,8,16,8,16,16,8,32,4,64,2,128,1,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,96,6,144,9,8,16,8,16,8,16,16,8,32,4,64,2,128,1,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,96,6,144,9,8,16,8,16,8,16,16,8,32,4,64,2,128,1,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,96,6,144,9,8,16,8,16,8,16,16,8,32,4,64,2,128,1,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,96,6,144,9,8,16,8,16,8,16,16,8,32,4,64,2,128,1,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,96,6,144,9,8,16,8,16,8,16,16,8,32,4,64,2,128,1,0,0,0,0,0,0,0,0,

0,0,0,0,56,28,68,34,130,65,2,64,2,64,2,64,4,32,8,16,16,8,32,4,64,2,128,1,0,0,0,0,

0,0,56,28,68,34,130,65,1,128,1,128,1,128,1,128,2,64,4,32,8,16,16,8,32,4,64,2,128,1,0,0

};//动画二:心跳

uchar code jif3[]={

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

160,0,224,0,64,0,64,0,64,0,240,1,188,7,190,15,191,63,191,127,191,63,254,31,249,127,253,143,253,79,255,39, 255,39,254,19,254,19,250,9,225,4,1,6,1,3,134,1,248,0,64,0,64,0,64,0,240,1,224,0,64,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

};//动画三:一箭穿心

uchar code world1[]={

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//

8,16,248,31,128,16,64,0,64,0,64,16,128,31,0,16,0,0,128,12,64,18,64,17,64,17,128,31,0,16,0,0,

64,64,192,127,128,80,64,16,64,16,64,16,128,15,0,0,64,64,192,127,128,80,64,16,64,16,64,16,128,15,0,0, 64,64,192,64,64,71,0,56,0,12,64,3,192,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

8,0,248,31,128,16,64,16,64,16,64,16,128,15,0,0,0,0,64,16,64,16,208,31,0,16,0,16,0,0,0,0,

64,16,64,16,192,31,128,16,64,16,64,0,192,0,0,0,0,0,64,0,64,0,240,15,64,16,64,16,0,0,0,0,

8,16,248,31,128,16,64,0,64,0,64,16,128,31,0,16,0,0,128,15,64,16,64,16,64,16,72,8,248,31,0,16,

0,0,128,12,64,18,64,17,64,17,128,31,0,16,0,0,64,64,192,64,64,71,0,56,0,12,64,3,192,0,64,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

};//happy birthday

uchar code world2[]={

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

128,64,128,64,64,66,32,74,80,114,72,66,68,66,195,127,68,66,72,66,80,98,32,90,64,66,128,64,128,64,0,0,

0,128,0,96,254,31,2,0,18,32,34,16,194,12,2,3,194,12,50,48,2,0,254,15,0,48,0,64,0,248,0,0,

0,64,2,64,130,64,130,64,130,64,130,64,130,64,254,127,130,64,130,64,130,68,130,88,130,64,2,64,0,64,0,0, 16,128,12,247,5,133,85,125,85,85,85,87,5,0,127,10,5,233,213,171,85,165,85,165,5,235,20,8,12,8,0,0,

128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,0,0,

16,8,16,4,16,3,208,0,255,255,144,0,16,3,0,0,254,255,34,66,34,66,34,66,34,66,254,255,0,0,0,0,

64,0,64,128,66,64,204,63,0,64,72,144,68,149,39,149,42,149,146,255,18,149,42,149,38,149,64,144,64,128,0,0, 0,0,0,0,0,88,0,56,0,0,0,0,0,0,0,0,128,0,96,0,248,255,7,0,0,128,250,131,74,70,74,42,

74,18,254,47,74,66,74,66,74,130,250,131,2,128,0,0,0,128,254,127,34,2,34,130,254,255,0,0,64,64,60,66, 16,66,16,66,255,127,16,66,16,66,16,66,0,64,0,0,128,16,136,56,136,20,136,19,255,16,136,20,136,24,136,48,

18,17,242,31,2,0,2,64,2,128,254,127,0,0,0,0,0,128,64,64,66,32,66,16,66,12,194,3,126,0,66,0,

194,63,66,64,66,64,66,64,64,64,64,112,0,0,0,0,144,130,82,154,52,86,16,99,255,34,16,82,52,142,82,0,

128,128,112,64,143,51,8,12,8,51,248,64,8,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

};//金风玉露一相逢,便胜却人间无数。

uchar code world3[]={

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

224,7,16,8,8,16,8,16,8,16,16,8,224,7,0,0,0,0,224,3,24,12,4,16,2,32,0,0,0,0,0,0,

240,31,8,0,4,0,2,0,2,0,2,0,2,0,4,0,8,0,240,31,0,0,0,0,0,32,0,32,0,32,0,32,

0,32,0,32,0,0,0,0,240,31,8,0,4,0,2,0,2,0,2,0,2,0,4,0,8,0,240,31,0,0,0,0,

0,0,2,32,4,16,24,12,224,3,0,0,0,0,224,7,16,8,8,16,8,16,8,16,16,8,224,7,0,0,0,0,

0,0,248,15,8,4,8,4,248,15,64,0,32,127,80,33,72,33,70,33,72,33,80,33,32,127,64,0,0,0,0,0,

0,0,248,15,8,4,8,4,248,15,64,0,32,127,80,33,72,33,70,33,72,33,80,33,32,127,64,0,0,0,0,0,

0,0,12,0,2,0,2,0,4,0,8,0,8,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

};//O(n_n)O~哈哈

uchar code world4[7][32]={

128,0,128,0,128,0,252,31,132,16,132,16,252,31,132,16,132,16,132,16,252,31,132,16,128,64,128,64,0,127,0,0,

0,0,252,15,0,4,0,2,0,1,128,0,128,0,128,32,255,127,128,0,128,0,128,0,128,0,128,0,160,0,64,0,

96,16,30,17,16,18,16,18,127,16,24,17,56,18,84,18,20,112,18,30,209,17,16,16,16,16,16,16,16,16,16,16,

128,16,8,49,48,19,16,9,254,127,2,32,241,23,0,2,0,1,254,127,0,1,0,1,0,1,0,1,64,1,128,0,

0,0,16,0,16,32,240,127,16,0,16,0,240,63,0,32,0,32,0,36,254,47,0,32,0,32,0,18,0,12,0,0,

8,4,8,4,8,4,191,127,8,4,40,4,152,63,140,16,11,17,8,9,8,6,8,6,8,9,136,112,106,32,4,0,

128,0,128,4,128,8,128,0,255,127,128,0,192,1,160,2,160,4,144,8,136,24,132,112,131,32,128,0,128,0,0,0

};//电子科学与技术

unsigned int code f1[]={

so,so,la,so,h_do,si,si,so,so,la,so,h_re,h_do,h_do,so,so,h_so,h_mi,h_do,si,la,la,h_fa,h_fa,h_mi,h_do,h_re,h_do,h_do,

so,so,la,so,h_do,si,si,so,so,la,so,h_re,h_do,h_do,so,so,h_so,h_mi,h_do,si,la,la,h_fa,h_fa,h_mi,h_do,h_re,h_do,h_do,

0xff};//《友谊地久天长》音符,0xff为音符结束标志

unsigned char code JP1[]={

4,4,8,8,8,8,8,4,4,8,8,8,8,8,4,4,8,8,8,8,8,8,4,4,8,8,8,8,16,

4,4,8,8,8,8,8,4,4,8,8,8,8,8,4,4,8,8,8,8,8,8,4,4,8,8,8,8,12

};//《友谊地久天长》节拍

unsigned int code f2[]={

l_so,d_o,d_o,d_o,mi,re,d_o,re,mi,d_o,d_o,mi,so,la,la,so,mi,mi,d_o,re,d_o,re,mi,d_o,l_la,l_la,l_so,

d_o,la,so,mi,mi,d_o,re,d_o,re,la,so,mi,mi,so,la,h_do,so,mi,mi,d_o,re,d_o,re,mi,d_o,l_la,l_la,l_so,d_o,0xff};//生日快乐音符unsigned char code JP2[]={

8,12,4,8,8,12,4,8,8,12,4,8,8,24,8,12,4,8,8,12,4,8,8,12,4,8,8,24,8,12,4,8,8,12,4,8,8,12,4,8,8,24,8,12,4,8,8,12,4,8,8,12,4,8,8,24};/ /生日快乐节拍

unsigned int code djjy1[]={

mi,mi,mi,d_o,d_o,l_so, re,d_o,l_si,d_o,d_o,l_la, mi,mi,mi,mi,d_o,d_o, d_o,re,mi,re,re,l_si,l_la,

l_so,so,so,fa,mi,re, re,d_o,l_si,d_o,d_o,re,mi, fa,mi,d_o,d_o,re,mi,fa, fa,mi,re,re,d_o,re,re, re, l_so,re,mi,

mi,d_o,re,mi,la, la,so,re,l_so,re,mi, mi,d_o,re,mi,h_do, si,h_do,si,si,so,d_o,

la,d_o,l_si,d_o,re,la, so,mi,d_o,l_la,fa, fa,l_la,so,fa,mi,mi, mi,fa,mi,re,re,d_o,d_o,re,

mi,d_o,re,mi,la, la,so,re,l_so,re,mi, mi,d_o,re,mi,h_do, si,h_do,si,si,so,d_o,

la,d_o,l_si,d_o,re,la, so,mi,h_do,h_do,d_o,re,mi, fa,so,fa,mi, mi,re,re,d_o,re,mi,mi,

mi,mi,mi,d_o,d_o,l_so, re,d_o,l_si,d_o,d_o,l_la, mi,fa,mi,mi,d_o,d_o, d_o,re,mi,re,re,l_si,l_la,

0xff};//独家记忆音符01

unsigned int code djjy2[]={

l_so,so,so,fa,mi,re, re,d_o,l_si,d_o,d_o,re,mi, fa,mi,d_o,d_o,re,mi,fa, fa,mi,re,re,d_o,re,re, re, l_so,re,mi,

mi,d_o,re,mi,la, la,so,re,l_so,re,mi, mi,d_o,re,mi,h_do, si,h_do,si,si,so,d_o,

la,d_o,l_si,d_o,re,la, so,mi,d_o,l_la,fa, fa,l_la,so,fa,mi,mi, mi,fa,mi,re,re,d_o,d_o,re,

mi,d_o,re,mi,la, la,so,re,l_so,re,mi, mi,re,d_o,d_o,d_o,re,mi,h_do, si,h_do,h_re,h_re,si,so,

h_do,d_o,l_si,d_o,re,la, so,mi,d_o,d_o,l_la,re,mi, fa,so,fa,mi, mi,re,re,d_o,re,mi,mi,

d_o,d_o,re,

mi,d_o,re,mi,la, la,so,re,l_so,re,mi, mi,d_o,re,mi,h_do, si,h_do,si,si,so,d_o,

la,d_o,l_si,d_o,re,la, so,mi,d_o,l_la,fa, fa,l_la,so,fa,mi,mi, mi,fa,mi,re,re,d_o,d_o,re,

mi,d_o,re,mi,la, la,so,re,l_so,re,mi, mi,re,d_o,d_o,d_o,re,mi,h_do, si,h_do,h_re,h_re,si,so,

h_do,d_o,l_si,d_o,re,la, so,mi,h_do,h_do, h_do,d_o,re,mi, fa,so,fa,mi,

mi,re,re, d_o,d_o,d_o,d_o,

0xff};//独家记忆音符02

unsigned char code djjyJP1[]={

4,4,4,4,4,4, 4,4,4,4,12,4, 8,4,4,4,8,4, 4,4,4,4,8,4,4,

12,4,4,4,4,4, 4,4,4,4,8,4,4, 8,4,4,4,8,4, 4,4,20,

4,4,4,4,4,4, 4,4,4,4,12,4, 8,4,4,4,8,4, 4,4,4,4,8,4,4,

12,4,4,4,4,4, 4,4,4,4,8,4,4, 8,4,4,4,4,4,4,4,8,4,4,4,4,4, 16,

4,4,4,

12,4,4,4,4, 8,8,12,4,4,4, 12,4,4,4,4, 8,4,4,4,8,4,

12,4,4,4,4,4, 8,8,8,4,4, 12,4,4,4,4,4, 4,4,4,4,4,4,4,4,

12,4,4,4,4, 8,8,12,4,4,4, 12,4,4,4,4, 8,4,4,4,8,4,

12,4,4,4,4,4, 8,4,4,8,4,4,4, 16,4,4,4, 4,4,8,4,4,4,16,

4,4,4,4,4,4, 4,4,4,4,12,4, 8,4,4,4,8,4, 4,4,4,4,8,4,4

};//独家记忆节拍01

unsigned char code djjyJP2[]={

12,4,4,4,4,4, 4,4,4,4,8,4,4, 8,4,4,4,4,4,4, 4,8,4,4,4,4,4, 16,

4,4,4,

12,4,4,4,4, 8,8,12,4,4,4, 12,4,4,4,4, 8,4,4,4,8,4,

12,4,4,4,4,4, 8,8,8,4,4, 12,4,4,4,4,4, 4,4,4,4,4,4,4,4,

12,4,4,4,4, 8,8,12,4,4,4, 4,2,2,8,4,4,4,4, 8,4,4,4,8,4,

12,4,4,4,4,4, 8,4,4,8,4,4,4, 16,4,4,4, 4,4,12,4,4,4,16,

4,4,4,

12,4,4,4,4, 8,8,12,4,4,4, 12,4,4,4,4, 8,4,4,4,8,4,

12,4,4,4,4,4, 8,8,8,4,4, 12,4,4,4,4,4, 4,4,4,4,4,4,4,4,

12,4,4,4,4, 8,8,12,4,4,4, 4,2,2,8,4,4,4,4, 8,4,4,4,8,4,

12,4,4,4,4,4, 8,4,4,12, 16,4,4,4, 16,4,4,4,

4,4,12, 4,4,4,12};//独家记忆节拍02

uchar *p2[]=world2;//定义world2的自由往左平移指针

uchar *p3[]=jif3;//定义jif3的自由往左平移指针

uchar *p4[]=world3;//定义world3的自由往左平移指针

void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0);//16x16点阵驱动

void delay(unsigned int q);//定义延时函数

void Delay10ms(unsigned int c);//定义c*10ms函数

void main(void)

{

int k, i, j, ms ,cs;

HC595SendData(0xff,0xff,0,0);//16x16点阵清屏

Keystay=0;//

TMOD=0x10;//定时器1中断模式为1,定时器0中断模式为0。定时器1用于键盘检测,定时器0用于蜂鸣器TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

EA=1;//开总中断

ET1=1;//允许开定时器1

TR1=1;//开定时器1

while(1)

{

for(k = 0; k < 16; k++) //问候语界面

{

HC595SendData(~hi[2*k +1],~hi[2*k],tab0[2*k],tab0[2*k+1]);

if(Keystay==1) goto begin;

}

begin:sound=0;//声音信号为0,即无声音

TR0=0;//关定时器0

TR1=1;//开定时器1

HC595SendData(0xff,0xff,0,0);//16x16清屏

if(Keystay==1)//如果有按键按下

{

Keystay=0;//按键状态归0,必须有

switch(Keymun1)

{

case(0): //GIF界面

if(Keymun2>2)

Keymun2=0;

switch(Keymun2)

{

case(0): //动画一

while(1)

{

i = 40;

for(j=0;j<22;j++)

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

{

HC595SendData(~jif1[j][2*k +1],~jif1[j][2*k],tab0[2*k],tab0[2*k+1]);

if(Keystay==1) goto begin;

}

}

}

case(1): //动画二

while(1)

{

for(cs=0;cs<4;cs++)

{

for(j=0;j<8;j++)

{

for(ms = 20; ms > 0; ms--)

{

for(k = 0; k < 16; k++)

{

HC595SendData(~jif2[j][2*k +1],~jif2[j][2*k],tab0[2*k],tab0[2*k + 1]);

if(Keystay==1) goto begin;

}

}

HC595SendData(0xff,0xff,0,0);

}

delay(20);

}

HC595SendData(0xff,0xff,0,0);

}

case(2): //动画三

while(1)

{

for(j=0;j<3*16;j++)

{

for(ms = 20; ms > 0; ms--)

{

for(k = 0; k < 16; k++)

{

HC595SendData(~tab0[2*k],~tab0[2*k+1],(*(p3[0] + 2*(k+j) + 1)),(*(p3[0] + 2*(k+j) )));

if(Keystay==1) goto begin;

}

HC595SendData(0xff,0xff,0,0);

}

}

HC595SendData(0xff,0xff,0,0);

}

case(1): //WORLD界面

if(Keymun2>3)

Keymun2=0;

switch(Keymun2)

{

case(0): //world1

while(1)

{

for(j=0;j<8*16;j++)

{

for(ms = 20; ms > 0; ms--)

{

for(k = 0; k < 16; k++)

{

HC595SendData(~tab0[2*k],~tab0[2*k+1],(*(p1[0] + 2*(k+j) + 1)),(*(p1[0] + 2*(k+j) )));

if(Keystay==1) goto begin;

}

HC595SendData(0xff,0xff,0,0);

}

}

HC595SendData(0xff,0xff,0,0);

}

case(1): //world2

while(1)

{

for(j=0;j<16*16;j++)

{

for(ms = 10; ms > 0; ms--)

{

for(k = 0; k < 16; k++)

{

HC595SendData(~tab0[2*k],~tab0[2*k+1],(*(p2[0] + 2*(k+j) + 1)),(*(p2[0] + 2*(k+j) )));

if(Keystay==1) goto begin;

}

HC595SendData(0xff,0xff,0,0);

}

}

HC595SendData(0xff,0xff,0,0);

}

case(2): //world3

while(1)

{

for(j=0;j<8*16;j++)

{

for(k = 0; k < 16; k++)

{

HC595SendData(~tab0[2*k],~tab0[2*k+1],(*(p4[0] + 2*(k+j) + 1)),(*(p4[0] + 2*(k+j) )));

if(Keystay==1) goto begin;

}

HC595SendData(0xff,0xff,0,0);

}

}

HC595SendData(0xff,0xff,0,0);

}

case(3): //world4

while(1)

{

for(cs=0;cs<7;cs++)

{

for(j=0;j<8;j++)

{

for(ms = 80; ms > 0; ms--)

{

for(k = 0; k < 16; k++)

{

HC595SendData(~world4[j][2*k

+1],~world4[j][2*k],tab0[2*k],tab0[2*k + 1]);

if(Keystay==1) goto begin;

}

}

HC595SendData(0xff,0xff,0,0);

}

delay(20);

}

HC595SendData(0xff,0xff,0,0);

}

}

case(2): //MUSIC界面

if(Keymun2>2)

Keymun2=0;

switch(Keymun2)

{

case(0): //音乐1

while(1)

{

EA=1; //开总中断

ET0=1; //允许开定时器0

{

if(f1[x]==0)

{

for(y=0;y

{

TR1=0; //关闭定时器1(即键盘检测)以使蜂鸣器稳定发声

if(Keystay==1) goto begin;

delay(10);

TR1=1; //开键盘检测

delay(1); //开键盘检测后延时约10ms,给检测程序提供时间}

goto all1;

}

C=500000/f1[x];

TH0=(8192-C)/32;

TL0=(8192-C)%32;

TR0=1; //开定时器0

for(y=0;y

{

TR1=0; //关闭定时器1(即键盘检测)以使蜂鸣器稳定发声

if(Keystay==1) goto begin;

delay(10);

TR1=1; //开键盘检测

delay(1); //开键盘检测后延时约1ms,给检测程序提供时间}

TR0=0; //关定时器0

all1:x++;

}

sound=0; //蜂鸣器输出信号为0,即不发声

delay(500); //延时约5s,以此表示一首歌播放完毕

}

case(1): //音乐2

while(1)

{

EA=1;

ET0=1;

x=0;

while(djjy1[x]!=0xff)

{

if(djjy1[x]==0)

{

for(y=0;y

{

TR1=0;

if(Keystay==1) goto begin;

delay(1);

}

goto all2;

}

C=500000/djjy1[x];

TH0=(8192-C)/32;

TL0=(8192-C)%32;

TR0=1;

for(y=0;y

{

TR1=0;

if(Keystay==1) goto begin;

delay(10);

TR1=1;

delay(1);

}

TR0=0;

all2:x++;

}

x=0;

while(djjy2[x]!=0xff)

{

if(djjy2[x]==0)

{

for(y=0;y

{

TR1=0;

if(Keystay==1) goto begin;

delay(5);

TR1=1;

delay(1);

}

goto all3;

}

C=500000/djjy2[x];

TH0=(8192-C)/32;

TL0=(8192-C)%32;

TR0=1;

for(y=0;y

{

TR1=0;

if(Keystay==1) goto begin;

delay(10);

TR1=1;

delay(1);

}

TR0=0;

sound=0;

delay(500);

}

case(2): //音乐3

while(1)

{

EA=1;

ET0=1;

x=0;

while(f2[x]!=0xff)

{

if(f2[x]==0)

{

for(y=0;y

{

TR1=0;

if(Keystay==1) goto begin;

delay(10);

TR1=1;

delay(1);

}

goto all4;

}

C=500000/f2[x];

TH0=(8192-C)/32;

TL0=(8192-C)%32;

TR0=1;

for(y=0;y

{

TR1=0;

if(Keystay==1) goto begin;

delay(10);

TR1=1;

delay(1);

}

TR0=0;

all4:x++;

}

sound=0;

delay(500);

}

}

default:sound=0;TR0=0;break;

}

}

}

void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0)

{

uchar i;

for(i=0;i<8;i++) //串口通信每次传输一位,一个字节分8次传输

{

MOSIO = BT3 >> 7 ; //BT3右移7位后赋给MOSIO(从高位到低位传输)

BT3 <<= 1;//BT3等于BT3左移1位

S_CLK = 0;

S_CLK = 1;

}

for(i=0;i<8;i++)

{

MOSIO = BT2 >>7;

BT2 <<= 1;

S_CLK = 0;

S_CLK = 1;

}

for(i=0;i<8;i++)

{

MOSIO = BT1 >> 7;

BT1 <<= 1;

S_CLK = 0;

S_CLK = 1;

}

for(i=0;i<8;i++)

{

MOSIO = BT0 >> 7;

BT0 <<= 1;

S_CLK = 0;

S_CLK = 1;

}

R_CLK = 0; //set dataline low

R_CLK = 1; //片选

R_CLK = 0; //set dataline low

}

void delay(unsigned int q)

{

unsigned char m,n;

for(q;q>0;q--)

for(m=0;m<250;m++)

for(n=0;n<10;n++);

}

{

unsigned char a, b;

for (;c>0;c--)

{

for (b=38;b>0;b--)

{

for (a=130;a>0;a--);

}

}

}

void Time0(void) interrupt 1 //interrupt 1表示中断优先级为1 {

sound=~sound;

TH0=(8192-C)/32;

TL0=(8192-C)%32;

}

void Time1() interrupt 3 //interrupt 3表示中断优先级为3 {

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

KEY=0x0f;

if(KEY!=0x0f)

{

Delay10ms(1);

if(KEY!=0x0f)

{

Keystay=1;

KEY=0X0F;

switch(KEY)

{

case(0X07):Keymun2=Keymun2+1;break;

case(0X0b):Keymun1=2;break;

case(0X0d):Keymun1=1;break;

case(0X0e):Keymun1=0;break;

}

while(KEY!=0x0f)

{

Delay10ms(1);

}

}

}

}

yinfu.h

#ifndef __yinfu_h_

#define __yinfu_h_

#define l_do 262

#define l_re 286

#define l_mi 311

#define l_fa 349

#define l_so 392

#define l_la 440

#define l_si 494

#define d_o 523

#define re 587

#define mi 659

#define fa 698

#define so 784

#define la 880

#define si 987

#define h_do 1046

#define h_re 1174

#define h_mi 1318

#define h_fa 1396

#define h_so 1567

#define h_la 1760

#define h_si 1975

#endif

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

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

基于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单片机最小系统制作 全过程

51单片机最小系统制作 第一章概述 1.1 缘起 1. 给51初学者提供一个简单的DIY的教材。 第二章跑马灯和串口 2.1 第一步:准备 准备一下器件: 1、烙铁(质量好点) 2、焊锡(细) 3、烙铁架(带一个专用海绵) 4、松香块 5、万用表(要有带响的,听听红黑表笔短接时的声音出来快不快) 6、PCB面万用板1块 7、40pin 插座1个 8、11.0592M晶振1个 9、30P瓷片电容2个 10、11个LED 11、电阻排1K 1个到VCC,做跑马灯LED的限流电阻 12、max232或者兼容的芯片 13、16pin的插座上去 14、STC89C51 15、其它杂物 以上的投资加起来,不会超出100元。

价格数量和封装如下: STC的单片机可以串口下载。 解释一下: LED:8个挂在P1口,排电阻是上拉限流的;2个作为串口收发的指示灯;1个LED作为电源指示灯; 独石电容6个:5个是使用在max232上的;一个是使用在单片机上,作为电源去耦的; 10K电阻1个,接在EA上,上拉到5V; 电解电容和电阻构成上电复位电路;(STC单片机不需要)

自己买2个DB9的母头,焊接一根串口电缆; 准备一个3PIN的插座,焊接在PCB的面包板上; 还有电源,Dc5V的电源很多,电源电压差一点问题不大;很多单片机现在电源范围都宽; STC单片机应该可以工作在4V以上,具体查资料。 准备好以上物品,可以准备焊接好了。 来一张全家福: 2.2 第二步:焊接单片机最小系统

2.3 第三步:焊接串口指示灯 2.4 第四步:在P1口上焊接跑马灯

2.5 第五步:焊接Dc5V电源指示灯 2.6 第六步:焊接max232的5个0.1u电容

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)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

基于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单片机(一):单片机最小系统组成与IO输出控制

跟我学51单片机(一):单片机最小系统组成与I/O输出控制 1 单片机是一门实践性较强的技术,很多初学者在学习单片机技术开发的时候往往一头雾水,不知何从下手。为此,笔者结合自己使用单片机多年的经验,特意设计了单片机开发所需的Stud y-c 整机和硬件套件,并结合套件精心编写了单片机从入门到精通系列教程。通过讲述单片机原理、电路设计、应用开发软件工具、编写实验实例让读者全面接触单片机技术。教程编排上由浅入深,循序渐进,内容力求完整、实用、趣味并存,使读者在轻松愉快的学习过程中逐步提高单片机软硬件综合设计水平。 一、内容提要 本讲主要向大家介绍51 系列单片机的最小系统的实现并通过编写程序来实现对单片机IO 口的输出控制。以点亮外部连接的LED(发光二极管)为例,简要的介绍单片机的原理、最小系统的组成,并通过简单的C51 程序设计来讲述编译软件Keil的使用并下载Hex 文件烧写单片机。 二、原理简介 在了解原理之前,首先让我们思考一个问题,什么是单片机,单片机有什么用?这是一个有意思的问题,因为任何人都不能给出一个被大家都认可的概念,那到底什么是单片机呢?普遍来说,单片机又称单片微控制器,是在一块芯片中集成了CPU(中央处理器)、RAM (数据存储器)、ROM(程序存储器)、定时器/ 计数器和多种功能的I/O(输入/ 输出)接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。在这里,我们没必要去找到明确的概念来解析什么是单片机,特别在使用C 语言编写程序的时,不用太多的去了解单片机的内部结构以及运行原理等。从应用的角度来说,通过从简单的程序入手,慢慢的熟悉然后逐步深入精通单片机。 在简单了解了什么是单片机之后,然后我们来构建单片机的最小系统,单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对51 系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、输入/ 输出设备等(见图1)。

51单片机课程设计 AD转换

课程设计报告 华中师范大学武汉传媒学院 传媒技术学院 电子信息工程2011 仅发布百度文库,版权所有.

AD转换 要求: A.使用单片机实现AD转换 B.可以实现一位AD转换,并显示(保留4位数字)设计框图:

方案设计: AD转换时单片机设计比较重要的实验。模数转换芯片种类多,可以满足不同用途和不同精度功耗等。 外部模拟量选择的是简单的电位器,通过控制电位器来改变模拟电压。显示电压值采用一般的四位七段数码管。而AD转换芯片采用使用最广的ADC0809 ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。 下面说明各引脚功能: ?IN0~IN7:8路模拟量输入端。 ?2-1~2-8:8位数字量输出端。 ?ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。?ALE:地址锁存允许信号,输入端,高电平有效。 ?START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 ?EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 ?OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 ?CLK:时钟脉冲输入端。要求时钟频率不高于640KHz。

?REF(+)、REF(-):基准电压。 ?Vcc:电源,单一+5V。 ?GND:地 工作原理: 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC 变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 本次实验采用中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。 首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。 采用中断可以减轻单片机负担。并可以使程序有更多的空间作二次开发。

51单片机_最小系统免费下载

单片机是一门实践性较强的技术,很多初学者在学习单片机技术开发的时候往往一头雾水,不知何从下手。为此,笔者结合自己使用单片机多年的经验,特意设计了单片机开发所需的Study-c 整机和硬件套件,并结合套件精心编写了单片机从入门到精通系列教程。通过讲述单片机原理、电路设计、应用开发软件工具、编写实验实例让读者全面接触单片机技术。教程编排上由浅入深,循序渐进,内容力求完整、实用、趣味并存,使读者在轻松愉快的学习过程中逐步提高单片机软硬件综合设计水平。 一、内容提要 本讲主要向大家介绍51 系列单片机的最小系统的实现并通过编写程序来实现对单片机IO 口的输出控制。以点亮外部连接的LED(发光二极管)为例,简要的介绍单片机的原理、最小系统的组成,并通过简单的C51 程序设计来讲述编译软件Keil的使用并下载Hex 文件烧写单片机。 二、原理简介 在了解原理之前,首先让我们思考一个问题,什么是单片机,单片机有什么用?这是一个有意思的问题,因为任何人都不能给出一个被大家都认可的概念,那到底什么是单片机呢?普遍来说,单片机又称单片微控制器,是在一块芯片中集成了CPU(中央处理器)、RAM(数据存储器)、ROM(程序存储器)、定时器/ 计数器和多种功能的I/O(输入/ 输出)接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。在这里,我们没必要去找到明确的概念来解析什么是单片机,特别在使用C 语言编写程序的时,不用太多的去了解单片机的内部结构以及运行原理等。从应用的角度来说,通过从简单的程序入手,慢慢的熟悉然后逐步深入精通单片机。 在简单了解了什么是单片机之后,然后我们来构建单片机的最小系统,单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对51 系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、输入/ 输出设备等(见图1)。 图1 单片机最小系统框图 三、电路详解 依据上文的内容,设计51 系列单片机最小系统见图2。

基于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单片机最小系统设计

基础强化训练任务书 学生姓名:董勇涛专业班级:电子0902 指导教师:洪建勋工作单位:信息工程学院 题目:基于51单片机最小系统设计 一、训练目的 主要目的就是对学生进行基础课程、基本技能、基本动手能力的强化训练,提高学生的基础理论知识、基本动手能力,提高人才培养的基本素质。 二、训练内容和要求 1、基础课程和基本技能强化训练 (1)设计一个基于51单片机最小系统电路; (2)对所设计电路的基本原理进行分析; 2、文献检索与利用、论文撰写规范强化训练 要求学生掌握基本的文献检索方法,科学查找和利用文献资料,同时要求学生获得正确地撰写论文的基本能力,其中包括基本格式、基本排版技巧和文献参考资料的写法、公式编排、图表规范制作、中英文摘要的写法等训练。 3、基本动手能力和知识应用能力强化训练 (1)学习PROTEL软件; (2)绘制电路的原理图和PCB版图,要求图纸绘制清晰、布线合理、符合绘图规范; 4、查阅至少5篇参考文献,按《武汉理工大学课程设计工作规范》要求撰写基础强化训练报告书,全文用A4纸打印。 三、初始条件 计算机;Microsoft Office Word 软件;PROTEL软件 四、时间安排 1、20011年7 月 11日集中,作基础强化训练具体实施计划与报告格式要求的说明; 学生查阅相关资料,学习电路的工作原理。 2、2011年7 月 12日,电路设计与分析。 3、2011年7 月 13日至2010年7 月 14日,相关电路原理图和PCB版图的绘制。 4、2011年7 月15日上交基础强化训练成果及报告,进行答辩。 指导教师签名:年月日系主任(或责任教师)签名:年月日 目录 摘要.................................................................................................................... 错误!未定义书签。

#基于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个音符,包括中音段的全部音符,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序入口,实

单片机最小系统制作方案(适合初学者)

教学】单片机最小系统制作方案(适合初学者) 在写本单片机教程前,先自我介绍一下,我今年刚28岁,从事单片机教学二年。教学经验不足,写的不好,还请谅解,但是,我一定会尽力的。同时也希望大家能把我当朋友,共同进退。 本人喜欢上网,不喜欢运动,所以比较胖。我很喜欢在房间里做自己想做的事,如做网站,并建有自己的网站:〖教师吧〗:https://www.doczj.com/doc/9f8894592.html,保证长期有效。QQ是569 43772,E-MAIL:99xsw@https://www.doczj.com/doc/9f8894592.html, 单片机最小系统制作 一、确定任务 开发单片机最小系统 二、任务分析: 该系统具有的功能: (1)具有2位LED数码管显示功能。 (2)具有八路发光二极管显示各种流水灯。 (3)可以完成各种奏乐,报警等发声音类实验。 (4)具有复位功能。 三、功能分析 (1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能;(2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能; (3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。 (4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的18、19脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计的。 四、设计框图

五、硬件电路设计 根据本系统的功能,和单片机的工作条件,我们设计出下面的电路图。

六、元件清单的确定: 数码管:共阴极2只(分立) 电解电容:10UF的一只 30PF的电容2只 220欧的电阻9只 4.7K的电阻一只 1.2K的电阻一只 4.7K的排阻一只, 12MHZ的晶振一只 有源5V蜂名器一只 AT89S51单片机一片 常开按钮开关1只 紧锁座一只(方便芯取下来的,绿色的) 发光二极管(5MM红色)8只 万能板电路版15*17CM S8550三极管一只 4.5V电池盒一只,导线若干。 七、硬件电路的焊接 按照原理图把上面的元件焊接好,详细步骤省略。 八、相关程序编写 针对上面的电路原理图,设计出本系统的详细功能: (1)、第一个发光二极管点亮,同时数码管显示“1”。 (2)、第二个发光二极管点亮,同时数码管显示“2”。 (3)、依次类推到第八个发光二极管点亮,同时数码管显示“8”。以上出现的是流水灯的效果

51单片机课程设计实验报告

51单片机课程设计报告 学院: 专业班级: 姓名: 指导教师: 设计时间:

51单片机课程设计 一、设计任务与要求 1.任务:制作并调试51单片机学习板 2.要求: (1)了解并能识别学习板上的各种元器件,会读元器件标示; (2)会看电路原理图; (3)制作51单片机学习板; (4)学会使用Keil C软件下载调试程序; 用调试程序将51单片机学习板调试成功。 二、总原理图及元器件清单 1.总原理图 2.元件清单 三、模块电路分析 1. 最小系统: 单片机最小系统电路分为振荡电路和复位电路, 振荡电路选用12MHz 高精度晶振, 振荡电容选用22p和30p 独石电容;

图 1 图 2 复位电路使用RC 电路,使用普通的电解电容与金属膜电阻即可; 图 3 当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST 为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST 为低电平。正常工作为低电平,高电平复位。 2. 显示模块: 分析发光二极管显示电路: 图 4 发光二极管显示电路分析:它是半导体二极管的一种,可以把电能转化成光能,常简写为

LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,产生自发辐射的荧光。图中一共有五个发光二极管 其中一个为电源指示灯,当学习板通电时会发光以指示状态。其余四个为功能状态指示灯,实际作用与学习板有关 分析数码管显示电路 图 5 数码管显示电路分析:数码管按段数分为七段数码管和八段数码管,图中所用为八段数码管(比七段管多了一个小数点显示位),按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。数码管主要用来显示经电路板处理后的程序的运行结果。图中使用了八个八段数码管,可以显示八个0-15的数字。使用数码管可以直观的得到程序运行所显示的结果.也可以显示预置在学习板上的程序,主要通过16个开关来控制。 四、硬件调试 1、是否短路 用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能 1)检查原理图连接是否正确 2)检查原理图与PCB图是否一致 3)检查原理图与器件的DA TASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DA TASHEET,分析一下时序是否一致,同时分析一下命令字是否正确 6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的 7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,

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单片机最小系统学习板的设计与制作

课程设计任务书 (指导教师填写) 课程设计名称电路板设计与制作学生姓名专业班级 设计题目51单片机最小系统学习板的设计与制作 一、课程设计的任务和目的 任务: 设计并制作51单片机最小系统电路板,包括电路原理图设计、版图规划与设计、系统单面电路板制作。 要求: 1)电路原理图准确、版图结构清晰、布局合理。 2)使用插针型元件,成品PCB板面布局合理,密度适当; 3)板上资源包括LED灯、数码管、蜂鸣器、按钮、串行通讯及USB接口; 4)电路板面积适中便于携带,长度15cm,宽8.5cm。 目的: 1)掌握并完成基本PCB板的设计与制作工艺; 2)学习并掌握实现单片机应用系统的软硬件设计、调试、实现的技能; 3)了解单片机最小系统的工作原理与系统开发方法,锻炼动手能力,为毕业设计做准备。 二、设计内容、技术条件和要求 1.设计并制作具有实际功能的单片机最小系统: 可选择实现的功能⑴.流水灯⑵.电子时钟⑶.数字温度计⑷.交通灯控制器; 2.根据所选电路功能,画出电路框图和原理总图。 3.根据电路所需元件及周边设备规划和设计电路板版图,描画版图。 4.根据版图生成gerber工艺文件,进行电路板制作,包括刻板,钻孔,覆铜等。 5.撰写设计总结报告。 三、时间进度安排 本课程设计共两周时间。 第一周:功能设计与理论学习 周一上午:布置设计任务;提出课程设计的目的和要求;明确对撰写总结报告、手工绘制原理图和电路板版图的要求;安排答疑、实验室开放时间。讲解印制电路板的制板流程,介绍PCB刻板机等制板设备的软硬件操作方法以及注意事项。 周一下午:讲解电路原理图与PCB版图设计方法。 周二至周五:学生查阅资料,确定设计题目;进行功能设计,在实验室完成电路原理图与PCB 版图的设计和绘制,导出电路总原理图及版图文件。期间安排两次答疑,指导学生设计。周五,交设计草图-原理图和版图供老师审阅。 第二周:电路板制作、撰写设计总结报告 周一至周四:分组在电子系统加工及评测实验室(225)操作刻板工具和设备进行电路板成品的加工和制作,成品需通过老师验收。 周五:撰写设计总结报告。 四、主要参考文献 1. 《单片机原理及应用》. 冯文旭等著. 第一版, 2008年8月. 机械工业出版社. 2. 《乐普科快速PCB制板系统操作使用流程》手册。 3. 单片机系统开发和PCB设计的相关参考教材; 指导教师签字:2018年9 月3 日

51单片机课程设计报告

成绩: 单片机原理及应用课程设计 课程名<<单片机原理及应用>> 学部机械与电子信息工程学部 专业移动通信技术 学号 姓名 指导教师 日期

一、设计任务与要求 1.任务:制作并调试51单片机学习板 2.要求: (1)了解并能识别学习板上的各种元器件,会读元器件标示; (2)会看电路原理图; (3)制作51单片机学习板; (4)学会使用Keil C软件下载调试程序; 用调试程序将51单片机学习板调试成功。 二、实验内容 (5)AT89S52芯片工作电路,利用晶振提供控制信号。 (6)10引脚下载口与A T89S52芯片相关引脚相连完成下载电路。 (7)8个10K电阻与AT89S52芯片P0口相连,利用上拉电阻组成上拉电路。 (8)使用开关与5.1K电阻连成外部中断0、1电路和复位电路。 (9)利用16个开关做成键盘,实现输入号对已编程的AT89S52芯片的控制并通过数码管显示0--F。 (10)用2片74HC573N具有锁存功能芯片与8个数码管相连,通过编程的A T89S52位选和段选实现输出信号的显示功能。 (11)使用74HC573N锁存功能结合ULN2003AG芯片8非门芯片和74HC04N6非门芯片与4个2N5551三极管实现对步进电机的控制,和控制步进电机的信号结 合LED输出显示的功能。 (12)6、利用1片74HC573N芯片与8个共阴极LED实现跑马灯功能。 三、总原理图 1.总原理图

四、硬件调试 1、是否短路 用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试-- 另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能 1)检查原理图连接是否正确 2)检查原理图与PCB图是否一致 3)检查原理图与器件的DATASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确 6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的 7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。 五、软件调试 1、设置硬件仿真环境 设置硬件仿真环境的具体操作步骤如下: 首先,点击所建工程:Project菜单中的Options for Target…Targer 1?,出现工程的配置窗口,

51单片机最小系统讲解及应用

51单片机最小系统 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路. 下面给出一个51单片机的最小系统电路图. 说明 复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系 统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典 型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的 取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的, 原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定 量计算,可以参考电路分析相关书籍. 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率, 用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作) 单片机:一片AT89S51/52或其他51系列兼容单片机

特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行.这一点是初学者容易忽略的. 因此可以看出,其实要熟悉51单片机的40个引脚功能也很容易: 总共40个脚,电源用2个(Vcc和GND),晶振用2个,复位1个,EA/Vpp用1个,剩下还有34个.29脚PSEN,30脚ALE为外扩数据/程序存储器时才有特定用处,一般情况下不用考虑,这样,就只剩下32个引脚,对于初学者,这32个引脚就是要经常跟它们打交道的了.它们是: P0端口P0.0~P0.7共8个 P1端口P1.0~P1.7共8个 P2端口P02.0~P2.7共8个 P3端口P3.0~P3.7共8个 使得单片机工作的最小电路 80C51为例 首先,我们在使用protel和proteus的软件画电路图时,你会发现原先40个引脚的芯片变成了38个引脚,那是因为它把第40和第20个引脚VCC和GND隐藏了,所以要是的单片机开始工作至少需要一个VCC(电源)和GND(接地)。 其次,学习过组成原理的同学或者说学习过计算机导论的同学一定知道,计算机的冯·诺依曼体系,什么是冯·诺依曼体系。简单的说就是程序(指令)存储,顺序执行,也就是说指令是一条一条执行的,即CPU从ROM(他可以称为程序存储器,但不准确)中取出指令然后再执行。取指令并执行有严格的先后顺序,那么就需要一个时钟来准确的使CPU 稳定工作。 所以,第二个需要的就一个时钟电路。一个内部时钟电路是由两个电容(CAP)和一个石英晶振(Crystal)组成。CPU的时钟周期(震荡周期)由石英晶振决定(常用6MHZ或12MHZ),两个电容取10~30pF,并把他们接在XTAL1(输入)和XTAL2(输出)两端。

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

目录 目录 (1) 第1章概述 (1) 1.1实验原理 (1) 第2章设计思路及框图 (1) 2.1设计思路 (1) 2.2设计框图 (2) 第3章系统的硬件设计 (2) 3.1主控制部件 (2) 3.2显示模块 (3) 3.3晶振模块 (3) 3.4按键模块 (3) 3.5驱动模块 (4) 第4章电路设计原理图 (4) 4.1电路原理图 (4) 第5章程序设计 (5) 5.1程序流程图 (5) 5.2源程序 (6) 第6章系统的验证及调试 (26) 6.1日期设置显示测试 (26) 6.2秒表测试 (26) 6.3倒计时测试 (27) 第7章总结 (28) 第8章参考文献 (28)

第1章概述 1.1实验原理 单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。 单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。本课题讨论的方波发生器的核心是目前应用极为广泛的 51系列单片机。 利用AT89C51单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为0,每中断一次中断计数初值加1,当加到100时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。 为了将时间在6位LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。 第2章设计思路及框图 2.1设计思路 针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,第一,熟悉AT89S51单片机,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二,设计硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三,画图部分:设计好电路后进行画图。第四,软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,实现想要的功能。

51单片机应用设计课后答案

第一章单片机概述 1.2除了单片机这一名称之外,单片机还可称为(微控制器)和(嵌入式控制器)。 1.3单片机与普通计算机的不同之处在于其将(微处理器)、(存储器)和(各种输入输出接 口)三部分集成于一块芯片上。 4、单片机的发展大致分为哪几个阶段? 答:单片机的发展历史可分为四个阶段: 第一阶段(1974年----1976年):单片机初级阶段。 第二阶段(1976年----1978年):低性能单片机阶段。 第三阶段(1978年----现在):高性能单片机阶段。 第四阶段(1982年----现在):8位单片机巩固发展及16位单片机、32位单片机推出阶段 1.5单片机根据其基本操作处理的位数可分为哪几种类型? 答:单片机根据其基本操作处理的位数可分为:1位单片机、4位单片机、8位单片机、16位 单片机和32位单片机。 1.6 MCS-51系列单片机的基本芯片分别为哪几种?它们的差别是什么? 答:基本芯片为8031、8051、8751。 8031内部包括1个8位cpu、128BRAM,21个特殊功能寄存器(SFR)、4个8位并行I/O 口、1 个全双工串行口,2个16位定时器/计数器,但片内无程序存储器,需外扩EPROM芯片。 8051是在8031的基础上,片内又集成有4KBROM,作为程序存储器,是1个程序不超过4KB 的小系统。 8751是在8031的基础上,增加了4KB的EPROM,它构成了1个程序小于4KB的小系统。用户可以将程序固化在EPROM中,可以反复修改程序。 1.7 MCS-51系列单片机与80C51系列单片机的异同点是什么? 答:共同点为它们的指令系统相互兼容。不同点在于MCS-51是基本型,而80C51采用CMOS 工艺,功耗很低,有两种掉电工作方式,一种是CPU停止工作,其它部分仍继续工作;另 一种是,除片内RAM继续保持数据外,其它部分都停止工作。 1.8 8051与8751的区别是(C) (A、内部数据存储单元数目的不同(B、内部数据存储器的类型不同 (C)内部程序存储器的类型不同(D、内部的寄存器的数目不同 1.9在家用电器中使用单片机应属于微型计算机的(B) (A、辅助设计应用(B、测量、控制应用(C)数值计算应用(D)数据处理应用 1.10说明单片机主要应用在哪些领域? 答:单片机主要运用领域为:工业自动化;智能仪器仪表;消费类电子产品;通信方面;武 器装备;终端及外部设备控制;多机分布式系统。 第二章MCS-51单片机的硬件结构 2.1 MCS-51单片机的片内都集成了哪些功能部件?各个功能部件的最主要的功能是什么?答:功能部件如下:微处理器(CPU);数据存储器(RAM );程序存储器(ROM/EPROM , 8031没有此部件),4个8位并行I/O 口(P0口、P1 口、P2口、P3口);1个全双工的串行口;2个16位定时器/计数器;中断系统;21个特殊功能寄存器(SFR)。 各部件功能:CPU (微处理器)包括了运算器和控制器两大部分,还增加了面向控制的处理 功能,不仅可处理字节数据,还可以进行位变量的处理;数据存储器(RAM、片内为128B (52系列的为256B),片外最多可外扩64KB。数据存储器来存储单片机运行期间的工作变 量、运算的中间结果、数据暂存和缓冲、标志位等;程序存储器(ROM/EPROM、用来存储

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