51单片机电子设计制作444彩色光立方

51单片机电子设计制作444彩色光立方
51单片机电子设计制作444彩色光立方

课程设计开题报告

课程名称:单片机应用实训教程

设计题目: 51单片机电子设计制作4*4*4彩色光立方学院:

专业班级:

学号:

姓名:

指导教师:

设计时间:

目录

1. 设计要求 (3)

2. 设计方案 (4)

3. 电路图 (5)

3.1 单片机程序 (6)

设计要求

1.设计论文中心突出,内容充实,论据充分,论证有力,数据可靠,结构紧凑,层次分明,图表清晰,格式规范,字迹工整,结论正确。

2.设计制作一个4*4*4的三维发光二极管显示方阵,能够通过编写程序来实现对每一个发光二极管控制,从而来显示多种多样的图案。控制显示输出至少二十种显示效果。

3.通过大量编写程序调试实验现象结果分析研究数据形成规律,对规律总结得出结论并初步确定算法。

设计方案

本设计根据二极管点阵的原理由单片机I/O口控制点亮不同的二极管从而组成出不同的画面,根据人眼的视觉暂留现象即当物体移去时视觉神经对物体的印象不会立即消失而是要延续0.1-0.4秒的时间,来设置每幅画面的延迟时间是连续的一系列画面呈现动态。每一个层面的二极管阳极接在一起受一路I/O口的控制,实际电路中该路I/O 口输出的控制信号通过5V继电器的吸合和断开来控制的,再输入发光二极管的阳极使其驱动。每一个二极管的阴极分别受单片机扩展后的I/O控制。每个灯都是由片选端口和控制端口共同决定亮或灭。因此,我们可以随意的来点亮光立方中任意一处的灯,来构建多种多样的图案。

/*

*程序功能:cube4光立方彩色版本,实现各种动画效果,配套取模软件

*作者:牛盾

*

*/

#include

#include

#define uint unsigned int

#define uchar unsigned char

#define MAX_Delay 8

#define MIN_Delay 1

sbit S_1 = P1 ^ 1;

sbit S_2 = P1 ^ 2;

unsigned int pwm;

unsigned char TimeDelay = 10;

unsigned char Mode = 1;

unsigned char code tabP2[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //扫描uchar s=0;

void DELAY_MS (uchar i){

// unsigned int i;

// while( --a != 0){

// for(i = 0; i < 600; i++);

// }

uchar x,j;

for(j=0;j

for(x=0;x<=148;x++);

}

void Adc_Delay (uint a){

uint i;

while( --a != 0){

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

}

}

void Delay(uint z)

{

uint x,y;

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

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

}

void timer1_init()

{

TMOD |= 0x10;

TH1 = 0;

TL1 = 0;

ET1 = 1;

TR1 = 1;

EA = 1;

/****************************************************************************** *

********************** AD转换函数**************/

/****************************************************************************** /

unsigned char Read (unsigned char CHA)

{

unsigned char AD_FIN=0; //存储A/D转换标志

CHA &= 0x07; //选择ADC的8个接口中的一个(0000 0111 清0高5位)ADC_CONTR = 0x00; //ADC转换的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置)

_nop_();

ADC_CONTR |= CHA; //选择A/D当前通道

_nop_();

ADC_CONTR |= 0x80; //启动A/D电源

Adc_Delay(1); //使输入电压达到稳定(1ms即可)

ADC_CONTR |= 0x08; //启动A/D转换(0000 1000 令ADCS = 1)

_nop_();

_nop_();

_nop_();

_nop_();

while (AD_FIN ==0)

{ //等待A/D转换结束

AD_FIN = (ADC_CONTR & 0x10); //0001 0000测试A/D转换结束否

}

ADC_CONTR &= 0xE7; //1111 0111 清ADC_FLAG位, 关闭A/D转换,

return (ADC_RES); //返回A/D转换结果(8位)

}

/****************************************************************************** *

************* AD电容式触摸按键检测程序******************/

/****************************************************************************** ***************/

//bit 1表示有感应物,0表示没有感应物S1

/****************************************************************************** ****************/

bit S1(void)

{

unsigned char R,mm=0,i,j,k;

bit aa;

j=0;k=0;

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

{ //一次采集数据的数量

Adc_Delay(3);

R=Read(1); //读对应的口,触发对应的触摸按键

if(R<0x2f)

{ //此参数可调整感应灵敏度值在0x01到0x2F

k++;

}

if(R == 0xFF)

{

j++;

}

}

if(k>1 && j>1)

{

mm++;

}

else

{

mm=0;

}

if(mm>0)

{

aa =1;

}

else

{

aa=0;

}

return(aa);

}

/****************************************************************************** ***************/

// S2

/****************************************************************************** ****************/

bit S2(void)

{

unsigned char R,mm=0,i,j,k;

bit aa;

j=0;k=0;

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

{ //一次采集数据的数量

Adc_Delay(3);

R=Read(2);

if(R<0x2F)

{ //此参数可调整感应灵敏度值在0x01到0x2F

k++;

}

if(R == 0xFF)

{

j++;

}

}

if(k>1 && j>1)

{

mm++;

}

else

{

mm=0;

}

if(mm>0)

{

aa =1;

}

else

{

aa=0;

}

return(aa);

}

//结束呼吸灯专用

uchar code table[]={

0,0,1,2,3,4,5,6,7,8,9,10,

11,12,13,14,15,16,17,18,

19,20,21,22,23,24,25,26,27,

28,29,30,31,32,33,34,35,36,

37,38,39,40,41,42,43,44,45,

46,47,48,49,50,51,52,53,54,

55,56,57,58,59,60,61,62,63,

64,65,66,67,68,69,70,71,72,

73,74,75,76,77,78,79,80,81,82,

83,84,85,86,87,88,89,90,91,

92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,

110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,1 32,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,

};

void PwmUp(uint a, uchar c)

{

uchar i;

if(c == 1)

P3 = 0X00;

else

P0 = 0X00;

P2 = 0X00;

i = table[a];

Delay(i);

if(c == 1)

P3 = 0XFF;

else

P0 = 0XFF;

P2 = 0X00;

Delay(150-i);

}

void PwmDown(uint a,uchar c)

{

uchar i;

if(c == 1)

P3 = 0XFF;

else

P0 = 0XFF;

P2 = 0X00;

i = table[a];

Delay(i);

if(c == 1)

P3 = 0X00;

else

P0 = 0X00;

P2 = 0X00;

Delay(150-i);

}

void PwmAllon(uchar c)

{

int i;

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

{

PwmDown(i,c);

}

if(c == 1)

P3 = 0X00;

else

P0 = 0X00;

P2 = 0X00;

}

void PwmOff(uchar c)

{

int i;

// P3 = 0XFF;

// P2 = 0X00;

// Delay(100);

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

{

PwmUp(i,c);

}

//P3 = 0X00;

}

void Allfalloff(uchar c,uchar time) //由全亮到下落关闭只剩一排{

unsigned char code tabP0[5][8]={

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},

{0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF},

{0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF},

{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

};

int j,k,i;

if(c==1)

P3 = 0X00;

else if(c==2)

P0 = 0X00;

else

{

P3 = 0XFF;

P0 = 0XFF;

}

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

{

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

{

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

{

// P0=0;

P2=tabP2[i];

if(c == 1)

P0=tabP0[j][i];

else if(c == 2)

P3 = tabP0[j][i];

else

P0=tabP0[j][i];

DELAY_MS(time);

}

}

}

}

void Randomlight(uchar c,uchar time) //随机亮完{

unsigned char code tabP0[38][8]={

{0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00},

{0x00,0x20,0x00,0x00,0x00,0x00,0x10,0x00},

{0x00,0x20,0x00,0x00,0x00,0x02,0x10,0x00},

{0x00,0x20,0x04,0x00,0x00,0x02,0x10,0x00},

{0x00,0xA0,0x04,0x00,0x00,0x02,0x10,0x00},

{0x00,0xA0,0x24,0x10,0x00,0x02,0x10,0x00},

{0x40,0xA0,0x24,0x10,0x00,0x02,0x10,0x00},

{0x40,0xA0,0x24,0x10,0x20,0x02,0x10,0x00},

{0x40,0xA0,0x24,0x10,0x20,0x22,0x10,0x00},

{0x40,0xA0,0x24,0x10,0x20,0x22,0x14,0x42},

{0x40,0xA0,0x24,0x10,0x20,0x26,0x14,0x42},

{0x40,0xA0,0x25,0x10,0x20,0x26,0x14,0x42},

{0x44,0xA0,0x25,0x10,0x20,0x26,0x14,0x42},

{0x44,0xA0,0x25,0x50,0x20,0x26,0x14,0x42},

{0x44,0xA0,0x25,0x50,0xA0,0x26,0x14,0x42},

{0x44,0xA0,0x25,0x50,0xA0,0x27,0x14,0x43},

{0x44,0xA0,0x25,0x50,0xA0,0x27,0x14,0x53},

{0x44,0xA0,0x65,0x50,0xA0,0x27,0x54,0x53},

{0x44,0xA0,0x65,0x50,0xA0,0xA7,0x54,0x53},

{0x44,0xA0,0x65,0x50,0xA8,0xA7,0x54,0x53}, {0x44,0xA0,0x65,0x50,0xA8,0xA7,0x56,0x5B}, {0x46,0xA0,0x67,0x52,0xA8,0xA7,0x56,0x5B}, {0x46,0xA1,0x67,0x52,0xA8,0xA7,0x56,0x5B}, {0x46,0xB1,0x67,0x52,0xA8,0xA7,0x56,0x5B}, {0x46,0xB1,0x67,0x5A,0xA8,0xA7,0x56,0x5B}, {0x56,0xB1,0x67,0x5A,0xA8,0xA7,0x56,0x5B}, {0x56,0xB1,0x67,0x5A,0xA8,0xE7,0x56,0x5B}, {0x56,0xB1,0x67,0x5A,0xAA,0xE7,0x56,0x5F}, {0x56,0xB1,0x67,0x5A,0xAA,0xE7,0x56,0x7F}, {0x56,0xF9,0x67,0x7A,0xAA,0xE7,0x56,0x7F}, {0x56,0xF9,0x67,0x7A,0xAE,0xE7,0x5E,0x7F}, {0x5E,0xFD,0x67,0x7B,0xAE,0xE7,0x5E,0x7F}, {0x5E,0xFD,0x67,0x7B,0xEE,0xE7,0xDE,0xFF}, {0xDE,0xFD,0xE7,0xFB,0xEF,0xE7,0xFF,0xFF}, {0xDE,0xFD,0xF7,0xFB,0xFF,0xF7,0xFF,0xFF}, {0xDE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF} };

int j,k,i;

if(c==1)

P3 = 0X00;

else if(c==2)

P0 = 0X00;

else

{

P3 = 0XFF;

P0 = 0XFF;

}

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

{

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

{

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

{

// P0=0;

P2=tabP2[i];

if(c == 1)

P0=tabP0[j][i];

else if(c == 2)

P3 = tabP0[j][i];

else

{

P3 = tabP0[j][i];

P0=tabP0[j][i];

}

DELAY_MS(time);

}

}

}

}

void Randomoff(uchar c,uchar time) //随机灭完{

unsigned char code tabP0[23][8]={

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},

{0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xDF},

{0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xED,0xDF},

{0xFF,0xF7,0xDD,0xFF,0xFF,0xFF,0xED,0xDF},

{0xFF,0xF7,0xDD,0xEF,0xFF,0xDF,0xED,0xDF},

{0xFF,0xF7,0x5D,0xAF,0xFD,0xDF,0xED,0xDF},

{0xFF,0xF7,0x5C,0xAF,0xDD,0xDF,0xED,0xDF},

{0xFF,0xE7,0x5C,0xAF,0xDD,0xDF,0x6D,0xDD},

{0xFF,0xE7,0x5C,0x2F,0xDD,0xD7,0x6D,0x9D},

{0xFF,0xE5,0x5C,0x2F,0xDD,0xD7,0x69,0x9D},

{0xFF,0xA5,0x5C,0x2B,0xDD,0x57,0x69,0x9D},

{0xFF,0xA5,0x5C,0x29,0xDD,0x57,0x69,0x8D},

{0xBD,0x85,0x5C,0x29,0xDD,0x57,0x69,0x8D},

{0xBD,0x85,0x54,0x29,0xDD,0x53,0x48,0x8D},

{0x9D,0x85,0x54,0x29,0xDD,0x53,0x08,0x8D},

{0x9D,0x81,0x54,0x09,0xDD,0x13,0x08,0x8D},

{0x95,0x81,0x54,0x09,0xDD,0x12,0x08,0x85},

{0x95,0x01,0x54,0x09,0xC9,0x12,0x08,0x85},

{0x95,0x01,0x54,0x01,0x89,0x12,0x08,0x84},

{0x95,0x01,0x40,0x01,0x89,0x02,0x08,0x80},

{0x95,0x00,0x40,0x01,0x88,0x02,0x08,0x00},

{0x94,0x00,0x00,0x00,0x88,0x00,0x08,0x00},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, };

int j,k,i;

if(c==1)

P3 = 0X00;

else if(c==2)

P0 = 0X00;

else

{

P3 = 0XFF;

P0 = 0XFF;

}

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

{

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

{

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

{

// P0=0;

P2=tabP2[i];

if(c == 1)

P0=tabP0[j][i];

else if(c == 2)

P3 = tabP0[j][i];

else

P0=tabP0[j][i];

DELAY_MS(time);

}

}

}

}

void Righttoleft(uchar c,uchar time) //右面平移到左面{

unsigned char code tabP0[4][8]={

{0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F},

{0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0},

{0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00},

{0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00}

};

int j,k,i;

if(c==1)

P3 = 0X00;

else if(c==2)

P0 = 0X00;

else

{

P3 = 0XFF;

P0 = 0XFF;

}

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

{

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

{

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

{

// P0=0;

P2=tabP2[i];

if(c == 1)

P0=tabP0[j][i];

else if(c == 2)

P3 = tabP0[j][i];

else

{

P0=tabP0[j][i];

P3 = tabP0[j][i];

}

DELAY_MS(time);

}

}

}

}

void Lefttoright(uchar c,uchar time) //左面平移到右面{

unsigned char code tabP0[4][8]={

{0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00},

{0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00},

{0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0},

{0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F}

};

int j,k,i;

if(c==1)

P3 = 0X00;

else if(c==2)

P0 = 0X00;

else

{

P3 = 0XFF;

P0 = 0XFF;

}

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

{

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

{

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

{

// P0=0;

P2=tabP2[i];

if(c == 1)

P0=tabP0[j][i];

else if(c == 2)

P3 = tabP0[j][i];

else

P0=tabP0[j][i];

基于AT89C51单片机的多音阶电子琴的设计

重庆三峡学院 单片机课程设计报告书 学院: 年级专业: 学号: 学生姓名: 指导教师: 教师职称: 成绩: 制作日期2012年11月29日

基于AT89C51单片机的多音阶电子琴的设计 重庆三峡学院 摘要 单片机是电子、计算机及机电专业的一门重要的必修课程。要求我们掌握单片机的基本组成和工作原理、会变程序的一般编写方法、常用接口电路的软硬件设计方法,具备基本的单片机系统应用与开发能力。 随着科技的快速发展,单片机的应用日益普遍。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本单片机系统设计应用单片机控制技术,用AT89C51单片机为核心控制元件根据本学期所学的单片机知识结合设计了一套单片机控制的电子琴系统。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在现代音乐扮演着重要的角色。 本次设计首先对单片机设计简易电子琴仔细分析,接着制作硬件电路和编写软件的程序,最后进行软硬件的调试运行。并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。利用单片机产生不同频率来获得我们要求的音阶,实现高、中、低共21个音符的发音和显示和音乐播放时的控制显示,并且能自动播放程序中编排的音乐。系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比高等,具有一定的使用和参考价值。 关键词:单片机、电子琴、AT89C51、独立键盘、

目录 第 1 章引言......................................................................................................................... 1. 1. 1 设计背景 (1) 1.2 设计任务 (1) 1.3 设计目的 (1) 1.4 设计思路 (1) 第 2 章方案论证 (1) 2.1 方案论证 (1) 第 3 章硬件系统设计 (2) 3.1时钟电路 (2) 3.2 复位电路 (3) 3.3 原理框图 (3) 3. 4 显示部分设计 (3) 3.5 按键部分设计 (4) 3.6 发音部分设计 (5) 第 4 章软件系统设计 (5) 4.1 系统分析 (5) 4.2 参数计算 (7) 4.3 程序设计 (8) 第 5 章实验结果 (10) 5.1硬件调试 (10) 5.2 软件调试 (10) 5.3 仿真结果 (10) 5.4 结果分析 (11) 第 6 章总结 (11) 附录一:系统整体电路图 (12) 附录二:元器件清单 (12) 附录三:源程序代码 (13) 参考文献 (19)

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

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

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

随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高,具有一定的实用和参考价值。 关键词:AT89C51单片机;数码管;电子琴

1 系统方案设计 (1) 1.1 设计指标 (1) 1.2 系统方案综述 (1) 1.3 系统设计思路 (1) 2 硬件设计 (2) 2.1 电路图 (2) 2.2 单片机AT89C51简介 (2) 2.3 单片机的工作过程 (4) 2.4 键盘电路 (5) 2.5 显示电路 (5) 2.6 声音电路 (7) 3 系统软件设计 (7) 3.1延时程序设计 (9) 3.2定时器初始化及其中断函数 (9) 3.3示例音乐播放程序 (10) 3.4单独按键中断处理函数 (10) 4 实验结果与分析 (10) 4.1 Proteus软件简介 (10) 4.2仿真调试 (12) 5 设计心得 (13) 6 参考文献 (14) 附录 (15) 附录A 元件清单、器件识别与检测 (15) 附录B 程序源代码 (16)

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

基于multisim的51单片机控制电子琴电路

基于multisim的51单片机控制电子琴电路 程序:#include sbit pf=P0^4; void scan_key() { if(P0==0xfe) key=1; if(P0==0xfd) key=2; if(P0==0xfb) key=3; if(P0==0xf7) key=4;

if(P0==0xef) key=5; if(P0==0xdf) key=6; if(P0==0xbf) key=7; if(P0==0x7f) key=8; } void delay(unsigned char i) {unsigned int j; for(i;i>0;i--) for(j=250;j>0;j--); } void main() { scan_key(); if(key==1) { while(1) { pf=1; delay(100); pf=0; delay(100);

} } if(key==2) { while(1) { pf=1; delay(200); pf=0; delay(200); } } if(key==3) { while(1) { pf=1; delay(300); pf=0; delay(300); } } if(key==4) { while(1) { pf=1; delay(400); pf=0; delay(400); }

} if(key==5) { while(1) { pf=1; delay(500); pf=0; delay(500); } } if(key==6) { while(1) { pf=1; delay(600); pf=0; delay(600) } } if(key==7) { while(1) { pf=1; delay(700); pf=0;delay(700) } }

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

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

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

学号: 毕业设计 G RADUATE T HESIS 论文题目:基于51单片机的电子秤的设计 学生姓名: 专业班级: 学院: 指导教师: 2017年06月12日

第一章功能说明 本设计系统以单片机AT89S52为控制核心,实现电子秤的基本控制功能。在设计系统时,为了更好地采用模块化设计法,分步设计了各个单元功能模块。 系统的硬件部分包括最小系统部分、数据采集部分、人机交互界面和系统电源四大部分。最小系统部分主要包括AT89S52和扩展的外部数据存储器;数据采集部分由称重传感器,信号的前期处理和A/D转换部分组成,包括运算放大器AD620和A/D转换器ICL7135;人机界面部分为键盘输入,四位LED数码显示器,可以直观的显示重量的具体数字以及方便的输入数据,使用方便;系统电源以LM317和LM337为核心设计电路以提供系统正常工作电源。 系统的软件部分应用单片机C语言进行编程,实现了该设计的全部控制功能。该电子秤可以实现基本的称重功能(称重范围为0~9.999Kg,重量误差不大于±0.005Kg),并发挥部分的显示购物清单的功能,可以设置日期和设定十种商品的单价,还具有超量程和欠量程的报警功能。 本系统设计结构简单,使用方便,功能齐全,精度高,具有一定的开发价值。称重传感器原理 即由非电量(质量或重量)转换成电量的转换元件,它是把支承力变换成电的或其它形式的适合于计量求值的信号所用的一种辅助手段。 按照称重传感器的结构型式不同,可以分直接位移传感器(电容式、电感式、电位计式、振弦式、空腔谐振器式等)和应变传感器(电阻应变式、声表面谐振式)或是利用磁弹性、压电和压阻等物理效应的传感器。 对称重传感器的基本要求是:输出电量与输入重量保持单值对应,并有良好的线性关系;有较高的灵敏度;对被称物体的状态的影响要小;能在较差的工作条件下工作;有较好的频响特性;稳定可靠。 传感器下的定义是:“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。其中敏感元件指传感器中能直接感受被测量的部分,转换元件指传感器中能将敏感元件输出量转换为适于传输和测量的电信号部分。此外传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。 称重传感器在电子秤中占有十分重要的位置,被喻为电子秤的心脏部件,它的性能好坏很大程度上决定了电子秤的精确度和稳定性。通常称重传感器产生的误差约占电子秤整机误差的50%~70%。若在环境恶劣的条件下(如高低温、湿热),传感器所占的误差比例就更大,因此,在人们设计电子秤时,正确地选用称重传感器非常重要。 称重传感器的种类很多,根据工作原理来分常用的有以下几种:电阻应变式、电容式、压磁式、压电式、谐振式等。(本设计采用的是电阻应变式)电阻应变式称重传感器包括两个主要部分,一个是弹性敏感元件:利用它将被测的重量转换为弹性体的应变值;另一个是电阻应变计:它作为传感元件将弹性体的应变,同步地转换为电阻值的变化。电阻应变片所感受的机械应变量一般

基于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单片机简易电子琴的设计

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

基于51单片机电子秤设计

摘要 电子秤是日常生活中常用的称重设备,广泛应用于超市、大中型商场、物流配送中心。电子秤在结构和原理上取代了以杠杆平衡为原理的传统机械式称量工具。相比传统的机械式称量工具,电子秤具有称量精度高、装机体积小、应用范围广、易于操作使用等优点,在外形布局、工作原理、结构和材料上都是全新的计量衡器。 微电子技术的发展为电子秤提出了改进的空间。电子秤向着简单、便宜发展,智能化、精确的电子秤成为了人们的追求。本简易电子秤以常见的AT89C51为核心,以电阻应变片采集应变数据,通过HX711放大并进行AD转换供单片机处理,用LCD1602显示所测量的重量,同时本电子秤系统还提供单价设置进行求价格的计算以及去皮功能,通过一些简单低成本的元器件就完成了一个功能齐全的电子秤的制作,将传统电子秤的成本进行了缩减。 关键词:电阻应变片 AT89C51 HX711 电子秤

第一章方案与论证 一、方案类型 (一)方案一 通过单片机为主控芯片,用应变片采集应变数据,通过专用仪表放大器INA128对采集到的信号进行放大,在配上模数转换芯片对放大了的模拟信号转化为数字信号,传入单片机中进行数据处理,找出函数关系并转化关系。通过数字信号转化为重量值显示在LDC1602上,同时通过键盘进行数据输入,输入单价、去皮等功能。通过蜂鸣器和二极管实现超额报警功能。 (二)方案二 以单片机为主控芯片,应变片采集应变数据,将放大和模数转换用HX711芯片来同时进行实现,将模拟量传入主控芯片单片机中进行数据转换,通过函数关系转换为重量显示到LED 上或者LCD1602上,同时通过键盘按键进行数据输入,输入单价、去皮等功能,并通过蜂鸣器进行数据处理。 (三)方案三 运用PLC作为主控制器,PLC运用广泛,它具有接线简单,通用性好,编程简单,使用方便,可连接为控制网络系统,易于安装,便于维护等优点。 二、方案论证与选定 运用51单片机作为主控芯片,AT89C51是一种高效微控制器。它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。但方案一中,放大和AD转换模块为独立模块,它们的独立设计费事费力且还会存在误差较大的情况。相比于方案一,方案二一HX711作为放大和AD 转换芯片,简化了电路结构。HX711是一款专为高精度电子秤设计的24位AD转换器芯片。与同类型其他芯片相比,该芯片集成了包括文雅电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。精度方面很好的满足了题目中的要求,相比于方案一,方案二根据可行性。 方案三采用PLC作为主控芯片,但其价格昂贵,违背了我们制作电子秤的简单、便捷、便宜的原则,所以我们并没考虑选用PLC作为主控芯片。 综合考虑后,我们决定选择方案二来进行本简易电子秤系统的设计与制作。通过精度、价格、简单程度出发考虑,方案二是最合适的。

基于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单片机电子琴

摘要 本设计对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。 电子琴音色优美,音域较宽,和声丰富,表现力极其丰富。它可模仿多种音色,还可随意配上类似打击乐音响的节拍伴奏,适合于演奏节奏性较强的现代音乐。它还能够作为独奏乐器出现,具有鲜明的时代特色,深受广大音乐爱好者的喜爱,又是我国广大中小学生学习音乐的重要工具,而且电子琴容易制作,价格便宜,有很好的市场前景。随着科技的不断发展,电子产品也在不断的进步。现在的电子产品越来越接近智能化,性能也精益求精。现阶段,单片机发展日益成熟,且发展迅猛,以单片机为核心部件的电子琴将会比以555定时器为核心部件电子琴的性能更加稳定,而且依靠单片机强大的编程功能更易实现电子琴各音节所对应频率的产生。所以此次设计具有很现实的意义。 本次设计的目的主要是复习并运用我们所学的单片机知识,同时通过本次设计能够对电子电路以及作图软件等方面的知识有进一步的认识并掌握;熟悉AT89S52 单片机的内部结构和功能,合理利用其功能实现简单设计,能够完成相关软件编程设计工作;掌握一般的简单电子电路的设计方法。本次设计的主要内容是利用单片机编程设计出具有发出标准高中低的Dou,Ruai,Mi,Fa、Sou,La,Si,Dou(高音)21个音的功能并能通过9个按键控制的电子琴。它包括数码显示电路、时钟电路、复位电路、发声电路以及键盘接口电路。

目录 1 概述 ............................................................................................................... 错误!未定义书签。 电子琴功能模式介绍 ..................................................................... 错误!未定义书签。 系统设计的任务与要求.................................................................. 错误!未定义书签。 2 系统总体方案及硬件设计 ........................................................................... 错误!未定义书签。 2. 1 系统总体方案........................................................................... 错误!未定义书签。 定时/计数器的设计和状态字定义 .............................................. 错误!未定义书签。 音调数据表.................................................................................... 错误!未定义书签。 总体硬件组成框图......................................................................... 错误!未定义书签。 主要芯片简介................................................................................ 错误!未定义书签。 子系统模块一................................................................................ 错误!未定义书签。 子系统模块二................................................................................ 错误!未定义书签。 子系统模块三................................................................................ 错误!未定义书签。 AT89S52复位模块 ........................................................................ 错误!未定义书签。 AT89S52晶振模块 ........................................................................ 错误!未定义书签。 3 软件设计 ....................................................................................................... 错误!未定义书签。 系统软件设计 ................................................................................ 错误!未定义书签。 内置歌曲输出.................................................................................. 错误!未定义书签。 音阶键识别........................................................................................ 错误!未定义书签。 系统总流程图 ................................................................................ 错误!未定义书签。 4 Proteus软件仿真........................................................................................... 错误!未定义书签。 程序仿真 ....................................................................................... 错误!未定义书签。 proteus仿真 .................................................................................. 错误!未定义书签。5课程设计体会 ................................................................................................ 错误!未定义书签。参考文献............................................................................................................ 错误!未定义书签。附1 源程序代码 ............................................................................................ 错误!未定义书签。附2 系统原理图 ............................................................................................ 错误!未定义书签。

51单片机的电子秤设计

万方数据

51单片机的电子秤设计 作者:郭伦伦 作者单位:江汉大学文理学院,湖北,武汉,430056 刊名: 科技创业月刊 英文刊名:PIONEERING WITH SCIENCE & TECHNOLOGY MONTHLY 年,卷(期):2010,23(4) 被引用次数:0次 参考文献(1条) 1.张培仁.基于C语言编程MCS-51单片机原理及应用[M].北京:清华大学出版社,2003 相似文献(10条) 1.期刊论文周华鹏.毛建国.顾筠.李芳培.柏方超.卢文玉.ZHOU Hua-peng.MAO Jian-guo.GU Jun.LI Fang-pei.BO Fang-chao.LU Wen-yu高精度电容式压力传感器测量方法-传感器与微系统2010,29(2) 提出了一种高精度、低成本的电容式压力传感器的测量方法.用RC振荡器将电容式传感元件的变化调制为时变频率信号,用SSP1492芯片测量该频率变化量,并送入C8051F021单片机,用高阶多项式完成频率变化到压力变化的解算,实现了高精度压力测量.实验结果显示:该方法用于电容式压力传感器的测量精度优于0.02%FS. 2.学位论文张翼飞基于压力传感器的风速风压测量与无线数据传输2008 风速和风压的测量在很多领域都有很重要的作用,对于航海、航空、渔业和农业以及风力发电站等部门来说,风压和风速则更为重要。在工业生产中,监测和控制系统均离不开数据信息的传输,很多情况下,由于条件所限,采用普通有线电缆引出信号是无法满足要求或者跟本无法实现的。 本文设计了用MCS-52系列单片机设计的监测风压风速的数据采集和处理系统。该系统采用单片机技术,以AT89S52为核心,把压力传感器安装在步进电机上,使步进电机带动传感器转动来测量风压,由压力传感器采集数据,单片机接收并处理数据,LED数码管显示测量风压值。在软件上采用的是由孙以材教授提出的归十法的算法。来改进测量数据的准确性。描述了系统的硬件设计及软件实现,给出了程序编制的基本流程图,从而降低了系统成本,提高了测量精度。 本文设计了具有无线数据传输功能的测压装置、包括硬件结构设计、软件系统工作流程及实验结果,该装置以单片机为核心,利用发射器芯片、接收器芯片构成的无线收发模块PTR8000,设计出数据采集与无线传输系统。该系统的无线数据采集模块体积小、功耗低、电路构造简单,可以方便地嵌入被监测系统中,利用上位机实现对被测数据的实时监测。 3.期刊论文张翼飞.孙以材.潘国峰.Zhang Yi-fei.SUN Yi-cai.PAN Guo-feng基于压力传感器的风速风压测量系统与无线数据传输-传感器世界2009,15(3) 本文介绍了用MCS-52系列单片机设计的监测风压风速的数据采集和处理系统.该系统采用单片机技术,以AT89S52为核心, 把高性能低量程压力传感器安装在步进电机上,使步进电机带动传感器转动来测量风压.另外将无线收发模块PTR800应用于该系统,实现测量系统所测数据的无线传输,用户可在接收端对系统进行控制.该系统避免了复杂的现场连线,应用灵活,提高了工作效率,降低了工作成本. 4.学位论文李国玉智能压力传感器的设计2004 压阻型扩散硅压力传感器以其低价格得到广泛应用,基于单片机技术的智能压力传感器以其使用方便,测量精确而得以推广.压力传感器的核心是扩散硅电阻桥,智能压力传感器应用单片机技术采集数据、处理并输出显示结果.扩散硅的压阻系数是温度的函数,所以存在灵敏度温漂,而影响温度的因素是多方面的:测量环境的变化,测量电路产生的热量的影响等等,所以要想得到比较精确的压力值,必须对压力传感器进行校正.压力传感器的零点存在热漂移、电漂移和时间漂移,减小压力传感器的热零点漂移的措施是各力敏电阻的电阻值及其温度系数的相等性.本论文应用曲线拟合方法,神经网络算法和多项式拟合的规范化方法校正零点,降低成本且精确度提高.压力传感器的压力灵敏度与压阻系数成比例关系,而压阻系数是温度的函数,所以非线性补偿的实质是消除温度对灵敏度的影响.可应用的方法很多:二极管补偿法,恒流源补偿法,热敏电阻补偿法等.本论文利用集成的温度传感器AD590获得温度信息,应用曲线拟合技术,融入温度信息,得出带有温度信息的压力解析表达式,此方法简化硬件电路且可实现自校正自补偿功能.本论文根据压力传感器零点补偿与非线性补偿原理,设计出了测量压力传感器的硬件电路及C51软件编程,应用单片机技术测量电路简单,成本低,应用面广,但是由于自身的稳定性其测量结果仍存在误差. 5.期刊论文刘元宾.靳世久.陈世利.Liu Yuanbin.Jin Shijiu.Chen Shili压力传感器SP12在胎压监视系统中的应用-电子测量技术2008,31(2) 汽车胎压是汽车安全行驶的重要保证之一.本文详细介绍了在胎压监视系统中应用的压力传感器SP12的功能、特点、数据传输格式;设计了SP12与单片机的硬件接口电路,对电路组成、功能以及SPI串口通信协议进行了说明;给出了软件控制流程图以及软件程序编写中应注意的问题. 6.期刊论文张劼.景博.谢红星基于振筒式压力传感器的某型检测系统设计-传感器技术2005,24(1) 针对飞行器全静压系统的检测需求,设计实现了以80C552单片机为控制核心、基于振筒式压力传感器的自动检测系统,论述了系统的总体构成,重点设计了提高振筒式传感器测量准确度配套电路和测量显示组件.系统的实现提高了飞行器全静压系统的检测自动化程度,具有检测速度快、准确度高、判读直观、可靠性高和操作简单的特点,在实际测试中运行良好,性能稳定. 7.期刊论文陈延奎智能压阻压力传感器的设计-中国测试技术2008,34(4) 为克服传统压阻压力传感器的不足,设计出一种智能型压阻压力传感器.根据智能传感器的系统组成和应用范围,在充分考虑各元器件之间连接的参数配合的基础上,选择实用性好,可靠性高,成本低的元器件组成整个测量系统,该系统在89C51单片机的控制和处理下,同时具备温度和压力参数的自动测量、放大、A/D转换和结果显示,而且具有自检、自动补偿和现场通讯等功能. 8.期刊论文王瑜.WANG Yu基于C8051F020单片机的多路压力测量仪-国外电子元器件2008,16(11) 介绍了一种基于C8051F020单片机的多路压力测量仪.该测量仪选用电阻应变式压力传感器采集压力信号,并经放大电路处理后送入C8051F020单片机,再由C8051F020单片机内部的A/D转换器将采集到的压力信号进行模数转化,然后分别对数据进行存储和显示.该测量仪能测量6路压力信号,并且各测量点都能单独检测和设置.由于采用了C8051F020单片机,简化了硬件电路,增强了抗干扰能力,使得测量仪具有测量精度高,冲击小等特点. 9.学位论文刘新月压力传感器温度漂移补偿的电路设计2006 压阻型扩散硅压力传感器以其低价格得到广泛应用,基于单片机技术的智能压力传感器以其使用方便,测量精确高而得以推广。

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

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

51单片机简易电子琴

基于51单片机简易电子琴设计 院系;电气信息工程学院 班级;10通信工程三班 姓名:张瑞 指导老师: 设计周数:一周

一设计题目: 设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等七个音符。 使用元件:AT89C51、LM324,喇叭,按键等 二设计目的 (1)能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。 (2)熟悉8051单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。 (3)为实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。 (4)对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。 三设计思路 在本次课程设计中,根据复杂程序设计思想——模块化程序设计,分析和确定程序总体设计目标:电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块(子程序,具体可见下)。 程序设计的思路按以下顺序进行: 1.分析与确定程序总体设计目标 2.将总体目标划分为若干模块 3.定义每个模块的具体任务,明确它与其他模块间的通信方式 4.编写源程序,进行调试 四、设计原理、思路及流程图 设计原理 (1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。 各音阶标称频率值:

(2)由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。 原理: 系统硬件图

相关文档
最新文档