搜档网
当前位置:搜档网 › 51单片机应用实例小制作

51单片机应用实例小制作

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

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

制作:赵建业

2016/12/1

原理图(总体

原理图(芯片

功能说明:

1、通电后进入问候界面。原理图(16x16LED点阵)

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

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

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

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

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

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

注意事项:

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

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

程序代码:

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,2 55,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,

16,8,16,8,16,8,16,8,31,248,0,0,0,0,0,0,0,0,0,0,0,0,31,248,16,8,16,8,16,8,16,8,

8,16,8,16,8,16,15,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,240,8,16,8,16,8,16,

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, 128,0,252,255,4,0,4,8,4,16,252,15,0,0,0,0,0,128,0,64,0,32,0,16,0,12,0,3,192,0,63,0,

192,0,0,3,0,12,0,16,0,32,0,64,0,128,0,0,0,0,248,255,1,0,6,0,0,0,240,31,18,17,18,17,

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,l_la,mi, mi,re,re,

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,

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 *p1[]=world1;//定义world1的自由往左平移指针

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--)

{

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

{

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);

}

基于51单片机系统设计

基于51单片机的多路温度采集控制系统设计 言: 随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。 本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。 我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。 关键词:温度多路温度采集驱动电路 正文: 1、温度控制器电路设计 本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED显示电路等组成。由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。输出驱动控制信号由p1.0输出,4个LED为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。当温度高于上限温度值时,有p1.0输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、LED3亮、LED4灭。外设电路工作后,温度下降,当温度降到正常温度后,LED1亮、LED2亮、LED3灭、LED4灭。温度继续下降,当温度降到下限温度值时,p1.0信号停止输出,外设电路停止工作,同时LED1灭、LED2灭、LED3灭、LED4亮。当外设电路停止工作后,温度开始上升,接着进行下一工作周期。 2、温度控制器程序设计 本软件系统有1个主程序,6个子程序组成。6个子程序为定时/计数器0中断服务程序、温度采集及模数转换子程序ADCON、温度计算子程序CALCU、驱动控制子程序DRVCON、十进制转换子程序METRICCON 及数码管显示子程序DISP。 (1)主程序 主程序进行系统初始化操作,主要是进行定时/计数器的初始化。 (2)定时/计数器0中断服务程序 应用定时计数器0中断的目的是进行定时采样,消除数码管温度显示的闪烁现象,用户可以根据实际环境温度变化率进行采样时间调整。每当定时时间到,调用温度采集机模数转换子程序ADCON,得到一个温度样本,并将其转换为数字量,传送给89C51单片机,然后在调用温度计算子程序CALCU,驱动控制子程序DRVCON,十进制转换子程序MERTRICCON,温度数码显示子程序DISP。

基于-89C51单片机的秒表课程设计汇本

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (4) 2.2设计指标 (4) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计容提要 (4) 3 课程设计报告容 (5) 3.1设计思路 (5) 3.2设计过程 (6) 3.3 程序流程及实验效果 (7) 3.4 实验效果 (16) 4 心得体会 (17)

基于MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计容为以8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求

(完整word版)基于51单片机的温度控制系统设计

基于51单片机的水温自动控制系统 0 引言 在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。 1 设计任务、要求和技术指标 1.1任务 设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。 1.2要求 (1)利用模拟温度传感器检测温度,要求检测电路尽可能简单。 (2)当液位低于某一值时,停止加热。 (3)用AD转换器把采集到的模拟温度值送入单片机。 (4)无竞争-冒险,无抖动。 1.3技术指标 (1)温度显示误差不超过1℃。 (2)温度显示范围为0℃—99℃。 (3)程序部分用PID算法实现温度自动控制。 (4)检测信号为电压信号。 2 方案分析与论证 2.1主控系统分析与论证 根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。 2.2显示系统分析与论证 显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案: 方案一:采用静态显示的方案 采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。 方案二:采用动态显示的方案 由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。 由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。

基于51单片机课程设计

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

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

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

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

51单片机最小系统制作 全过程

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.设计要求 要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。具体设计要求如下: ①数码管或液晶显示屏显示室内当前的温度; ②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键; ③DS18B20温度采集; ④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。 2.方案论证 根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED 数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD 显示模块可以选用RT1602C。

3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。其相互联系如下图1所示: 图1 硬件电路设计框图 单片机时钟电路 形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,如图2所示。 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为~12MHz ,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一 起形成了一个自激振荡电路,为单片机提供时钟源。 复位电路 复位是单片机的初始化操作,其作用是使CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU 工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统 图2 单片机内部时钟方式电路 图3 单片机按键复位电路

跟我学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单片机最小系统设计

基础强化训练任务书 学生姓名:董勇涛专业班级:电子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 电源提供方案 为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择方案二。 2 显示界面方案 该系统要求完成倒计时功能。基于上述原因,我考虑了二种方案:方案一:采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,成本较高。 综上所述,选择方案一。 3 输入方案: 设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。 该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。 方案二:直接在I/O口线上接上按键开关。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。

综上所述,选择方案二。 3.1单片机交通控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示: 图1 交通状态 本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。实现以下功能:

基于stc89c51单片机温控系统设计与制作学位论文

commonly used circuit, makes the whole design is more complete, more flexible. Keywords: DS18B20; STC89C51; MCU; control; simulation

1.绪论 1.1 温度控制系统设计的背景及意义 随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。 温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。因此,各行各业对温度控制的要求都越来越高。可见,温度的测量和控制是非常重要的。 单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生。 1.2 饮水机温度控制系统的目的 饮水机的温度控制系统,能有效的利用水资源和电源。过低的温度或者过高的温度都会使水资源造成浪费,在全球水资源缺乏的今日,我们更应该掌握好水温的控制。本设计为一个单片机的饮水机的温度控制系统,此系统可以实时检测饮水的水温,并且可以通过液晶管显示饮水机的温度,可以通过键盘对饮水机的水进行加热,当低于设定的温度下限时进行加热,本设计是对温度进行实时监测与控制,设计的系统主要实现了以下功能: 1.在液晶显示当前温度的大小,精度为四分之一度,并显示温度控制的上限值和下限值。 2.单位转换,把显示温度的单位从摄氏温标与华氏温标进行互换。 3.温度控制,当温度超出上限值就关闭继电器,当温度低于下限值就启动继电器。 4.温度控制的上限和下限的设置,通过矩阵键盘的输入修改上限值和下限值。 5.蜂鸣器报警,当温度超出上限值蜂鸣器进行报警。 1.3 系统总体设计思想 方案一:使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电

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

教学】单片机最小系统制作方案(适合初学者) 在写本单片机教程前,先自我介绍一下,我今年刚28岁,从事单片机教学二年。教学经验不足,写的不好,还请谅解,但是,我一定会尽力的。同时也希望大家能把我当朋友,共同进退。 本人喜欢上网,不喜欢运动,所以比较胖。我很喜欢在房间里做自己想做的事,如做网站,并建有自己的网站:〖教师吧〗:https://www.sodocs.net/doc/f33470005.html,保证长期有效。QQ是569 43772,E-MAIL:99xsw@https://www.sodocs.net/doc/f33470005.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单片机最小系统学习板的设计与制作

课程设计任务书 (指导教师填写) 课程设计名称电路板设计与制作学生姓名专业班级 设计题目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单片机的多机通信系统设计

单片机多机通信系统 一、引言 随着单片机技术的不断发展,单片机的应用已经从单机向多机互联化方向发展。单片机在实时数据采集和数据处理方面,有着成本低、能满足一般要求、开发周期短等优点,其在智能家居、计算机的网络通信与数据传输、工业控制自动化等方面有着广泛的应用。 本系统是面向智能家居应用而设计的。在初期,采用红外无线通信方式,其传输距离短,适于一般家庭应用,且成本相对较低;待方案成熟、成本允许,可以改用GSM无线通信方式。 二、系统原理及方案设计 1 、系统框架介绍 本系统为基于51单片机的多机红外无线通信系统,由三个51单片机模块组成。其中一个作为主机(即上位机),负责接收来自从机1(即下位机)采集的数据信息,以及向从机2(即下位机)发送控制信息。从机1是数据采集模块,采集温度、光强等室内数据,并将其发送给主机。主机经分析处理,作出相应判断,并给从机2发送控制信息,使由从机2控制的电机作出相应反应,调节室内环境状况。 系统总体框图如下图1所示,图2为红外收发模块简图:

图1 系统总体框图 图2 红外收发模块简图 2 、多机通信原理介绍 在多机通信系统中,要保证主机与从机间可靠的通信,必须要让通信接口具有识别功能,51单片机串行口控制寄存器SCON中的控制位SM2正是为了满足这一要求而设置的。当串行口以方式2或方式3工作时,发送或接收的每一帧信息都是11位的,其中除了包含SBUF 寄存器传送的8位数据之外,还包含一个可编程的第9位数据TB8或RB8。主机可以通过对TB8赋予1或0,来区别发送的是数据帧还是地址帧。 根据串行口接收有效条件可知,若从机的SCON控制位SM2为1,

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

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

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

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

第一章单片机概述 1.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、用来存储

相关主题