首页 > 毕业论文 > 51单片机电子琴毕业论文

51单片机电子琴毕业论文

发布时间:

51单片机电子琴毕业论文

建议你去"幸福校园"看看 里面有些样子 你可以参考 前言传统的数字频率计都是采用纯硬件方式组成(纯数字电路)。它的集成电路(IC)用量较大,因而产品的体积、功耗都较大,生产成本较高。产品定型后不能升级(加入新功能)。而采用单片机和相关可编程智能集成器件制成的现代数字频率计方式情况就不同了,单片机的内核CPU可完成多项工作如计数、读入、译码、驱动和时基的产生等。和纯硬件方式比,它减少了很大一部分的集成电路的用量,还可加入许多的智能操作,这更是纯硬件方式所望尘莫及的。目前市场上的频率计产品很多,但基本上都是采用专用计数芯片(如ICM7240 , ICM7216) 和数字逻辑电路组成,由于这些芯片本身的工作频率不高(如ICM7240 仅有15MHz 左右) ,从而限制了产品的工作频率的提高, 远不能达到在一些特殊的场合需要测量很高的频率的要求,而且测量精度也受到芯片本身极大的限制。自从80年代单片机引入我国之后,单片机已广泛地应用于各行各业的电子设计中,使频率计智能化水平在广度和深度上产生了质的飞跃,数字化也成为了电子设计的必由之路. 运用单片机和高速计数器的组合设计频率计,并采用适当的算法取代传统电路,次方法不仅能解决传统频率计结构复杂、稳定性差、精度不高的弊端,而且性能也将大有提高,可实现精度较高、等精度和宽范围频率计的要求;随着单片机技术的不断发展,可以用单片机通过软件设计直接用十进制数字显示被测信号频率。本设计正是基于此技术进行的传统频率计技术改进。

相关范文:基于单片机监控系统的研究【摘要】文章所设计的基于单片机监控系统汽车行驶记录仪所实现的主要功能:记录汽车停车前2秒内的行驶速度,并能实时地显示汽车行驶的状态信息,同时还对汽车的超速行驶进行报警并记录一天之内的超速次数。【关键词】单片机;模块;监控本文所设计的汽车行驶记录仪是基于两片8051单片机作为控制系统的核心来进行设计的,整个系统分为六大模块分别是:电源模块、速度信号采集模块、时钟模块、单片机模块、存储器模块、显示模块。一、电源模块的设计记录仪作为车载设备,使用汽车电源。汽车上的电源有两个:汽车发电机和蓄电池。记录仪的电源直接取自蓄电池,在发电机转速和用电负载发生较大变化时,可保持汽车电网电压的相对稳定,同时,还可吸收电路中随时出现的瞬时过电压,以保护电子元件不受损害。车辆使用的车载蓄电池标称值有两种 12V的和 24V的,因此为了得到需要的 5V的电压,我选用了 DC-DC 电源转换芯片。二、速度信号采集模块的设计速度信号检测模块的原理是:汽车行驶过程中,车轮经过传感器,单位时间内输出一定的脉冲,传感器输出的脉冲通过差动放大电路的放大与整形,然后送到单片机 8051 的 T0端口进行脉冲计数,与此同时 8051 的 T1 进行计时开始待到定时器产生中断请求后,由计数器得到的脉冲数经过速度计算的公式和里程的计算后得到汽车行驶的速度和里程。从而得到汽车的行驶速度和里程,存储与 8051 的 RAM数据存储区。本系统采用霍尔传感器将速度信号转换为脉冲信号,考虑到传感器的体积要小,便于安装,误差要尽量减小等要求,设计采用车轮旋转一周速度传感器要输出若干个脉冲的方法。本系统采用的是在变速器上安装 3个小磁钢,霍尔传感器可相应的输出 3 个脉冲用于速度信号的采集。速度信号采集模块采用 THS118 型霍尔元件作为速度信号采集部分的速度传感器。三、时钟模块的设计时钟模块主要是用于对时、分、秒、年、月、日和星期的计时。该模块采用的芯片为DS12C887 时钟芯片。此芯片集成度高,其外围的电路设计非常的简单,且其性能非常好,计时的准确性高。DS12C887为双列直插式封装。其具体与单片机的连接如下所述:AD0~AD7双向地址/数据复用线与单片机的P0口相联,用于向单片机交换数据;AS 地址选通输入脚与单片机的 ALE 相联用于对地址锁存,实现地址数据的复用;CS 片选线与单片机的 相联,用于选通时钟芯片;DS 数据选通读输入引脚与单片机的读选通引脚相联,用于实现对芯片数据的读控制;R/W 读/写输入与单片机的写选通引脚相联,用于实现对时钟芯片的写控制;MOT 直接接地,选用 INTEL 时序。IRQ引脚与 8051 的 INT1 相连,用于为时间的采集提供时间基准。四、单片机模块的设计本系统采用两片单片机,两个单片机之间采用串行通讯,用于两者之间的数据交换。其工作时序是由外部晶振电路提供的,本系统采用的晶振频率是 12 兆 HZ。其复位电路为自动上电复位。设计中所采用的单片机为 8051。单片机在系统中主要是用来对其他模块进行控制,是整个系统的核心部件。主单片机主要是用于对速度信号采集模块、时钟模块和存储模块进行控制,同时还要与从单片机进行数据的交换。其外围的 I/O口主要与这些模块的中心芯片的数据总线或地址总线相连,其控制总线与这些模块的控制线相连。从单片机主要是用于对显示和校时的控制,因此其 I/O口主要与 LCD显示器的 I/O口相连,其控制线与 LCD显示器的控制线相连。由于从单片机的外部中断源只有两个,而我所设计的对时钟的校时主要是通过外部中断完成的,所以要对从单片机的外部中断源进行扩展。本系统采用了 8259A 进行中断源的扩展,从而实现对时钟的校时。五、储模块的设计汽车行驶记录仪对系统存储数据的实时性及长久性要求很高,因此本系统我采用了ATMEL 生产的 AT29C010A Flash 性存储器。其存储空间为 16K,能够满足设计的要求。AT29C010A是一种 5V在线闪速可电擦除的存储器,具有掉电保护功能;方便的在线编程能力不需要高的输入电压,指令系统在 5V 电压下即可控制对 AT29C010A 的读取数据,这与对 EEPROM 的操作相似。再编程能力是以每一分区为单位的,128 字节的数据装入AT29C010A 的同时完成编程。在一个再编程周期里,存储单元的寻址和 128 字节的数据通过内部锁存器可释放地址和数据总线,这样可为其它操作提供地址和数据总线。编程周期开始后,AT29C010A会自动擦除分区的内容,然后对锁存的数据在定时器作用下进行编程。六、示模块的设计显示器主要是为人机交互提供即时的信息,能让人们与机器进行很好的交流。在众多种类的显示器中,越来越多的仪器仪表及人机交互界面采用液晶显示器。LCD 可分为段位式LCD、字符式 LCD和点阵式 LCD。其中段位式和字符式只能用于数字和字符的简单的显示,不能满足图形曲线和汉字显示的要求;而点阵式不仅能够显示字符和数字,还可以显示各种图形、曲线及汉字,可以实现屏幕的上下左右滚动等功能。七、键的设计本系统的按键主要是用于对时钟的校对,现对按键的功能简述如下:按键 1~7是用于对秒分时日月年星期校时的中断申请;按键 8 是用于对校时进行加一的操作,键 9 是用于对校时进行减一的操作;按键 10 是用于实现对超速报警监控功能的复位。八、系统软件流程图的设计由于本设计主要是完成系统的硬件电路设计,因此我对系统的软件设计只进行了系统部分软件流程图的绘制。设计的流程图有:记录仪总体软件设计流程图、速度信号采集模块软件设计流程图、时钟模块软件设计流程图、外部中断软件设计流程图和 LCD 显示实现的软件设计流程图。【参考文献】[1]戴佳,苗龙,陈斌.51单片机应用系统开发典型实例[M].中国电力出版社.[2]周航慈.单片机应用程序设计技术[M].北京航空航天大学出版社.[3]胡汉才.单片机原理及其接口技术[M].清华大学出版社.[4]余发山.单片机原理及应用技术[M].中国矿业大学出版社.仅供参考,请自借鉴希望对您有帮助

楼主我这里有电子琴的单片机程序,做毕业设计那个我觉得还是自己做得好,因为你没懂的话论文答辩是过不了的。简易电子琴#include<> //包含51单片机寄存器定义的头文件sbit P14=P1^4; //将P14位定义为引脚sbit P15=P1^5; //将P15位定义为引脚sbit P16=P1^6; //将P16位定义为引脚sbit P17=P1^7; //将P17位定义为引脚unsigned char keyval; //定义变量储存按键值sbit sound=P3^7; //将sound位定义为 int C; //全局变量,储存定时器的定时常数unsigned int f; //全局变量,储存音阶的频率//以下是C调低音的音频宏定义#define l_dao 262 //将“l_dao”宏定义为低音“1”的频率262Hz#define l_re 286 //将“l_re”宏定义为低音“2”的频率286Hz#define l_mi 311 //将“l_mi”宏定义为低音“3”的频率311Hz#define l_fa 349 //将“l_fa”宏定义为低音“4”的频率349Hz#define l_sao 392 //将“l_sao”宏定义为低音“5”的频率392Hz#define l_la 440 //将“l_a”宏定义为低音“6”的频率440Hz#define l_xi 494 //将“l_xi”宏定义为低音“7”的频率494Hz//以下是C调中音的音频宏定义#define dao 523 //将“dao”宏定义为中音“1”的频率523Hz#define re 587 //将“re”宏定义为中音“2”的频率587Hz#define mi 659 //将“mi”宏定义为中音“3”的频率659Hz#define fa 698 //将“fa”宏定义为中音“4”的频率698Hz#define sao 784 //将“sao”宏定义为中音“5”的频率784Hz#define la 880 //将“la”宏定义为中音“6”的频率880Hz#define xi 987 //将“xi”宏定义为中音“7”的频率53//以下是C调高音的音频宏定义#define h_dao 1046 //将“h_dao”宏定义为高音“1”的频率1046Hz#define h_re 1174 //将“h_re”宏定义为高音“2”的频率1174Hz#define h_mi 1318 //将“h_mi”宏定义为高音“3”的频率1318Hz#define h_fa 1396 //将“h_fa”宏定义为高音“4”的频率1396Hz#define h_sao 1567 //将“h_sao”宏定义为高音“5”的频率1567Hz#define h_la 1760 //将“h_la”宏定义为高音“6”的频率1760Hz#define h_xi 1975 //将“h_xi”宏定义为高音“7”的频率1975Hz/**************************************************************函数功能:软件延时子程序**************************************************************/void delay20ms(void) {unsigned char i,j;for(i=0;i<100;i++)for(j=0;j<60;j++);}/*******************************************函数功能:节拍的延时的基本单位,延时200ms******************************************/void delay() {unsigned char i,j;for(i=0;i<250;i++)for(j=0;j<250;j++);}/*******************************************函数功能:输出音频入口参数:F******************************************/void Output_Sound(void){C=(46083/f)*10; //计算定时常数TH0=(8192-C)/32; //可证明这是13位计数器TH0高8位的赋初值方法TL0=(8192-C)%32; //可证明这是13位计数器TL0低5位的赋初值方法TR0=1; //开定时T0delay(); //延时200ms,播放音频TR0=0; //关闭定时器sound=1; //关闭蜂鸣器keyval=0xff; //播放按键音频后,将按键值更改,停止播放}/*******************************************函数功能:主函数******************************************/ void main(void){ EA=1; //开总中断ET0=1; //定时器T0中断允许ET1=1; //定时器T1中断允许TR1=1; //定时器T1启动,开始键盘扫描TMOD=0x10; //分别使用定时器T1的模式1,T0的模式0TH1=(65536-500)/256; //定时器T1的高8位赋初值TL1=(65536-500)%256; //定时器T1的高8位赋初值 while(1) //无限循环{switch(keyval){case 1:f=dao; //如果第1个键按下,将中音1的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 2:f=l_xi; //如果第2个键按下,将低音7的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 3:f=l_la; //如果第3个键按下,将低音6的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 4:f=l_sao; //如果第4个键按下,将低音5的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 5:f=sao; //如果第5个键按下,将中音5的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 6:f=fa; //如果第6个键按下,将中音4的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 7:f=mi; //如果第7个键按下,将中音3的频率赋给fOutput_Sound(); //转去计算定时常数 break; case 8:f=re; //如果第8个键按下,将中音2的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 9:f=h_re; //如果第9个键按下,将高音2的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 10:f=h_dao; //如果第10个键按下,将高音1的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 11:f=xi; //如果第11个键按下,将中音7的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 12:f=la; //如果第12个键按下,将中音6的频率赋给fOutput_Sound(); //转去计算定时常数 break; case 13:f=h_la; //如果第13个键按下,将高音6的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 14:f=h_sao; //如果第14个键按下,将高音5的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 15:f=h_fa; //如果第15个键按下,将高音4的频率赋给fOutput_Sound(); //转去计算定时常数 break;case 16:f=h_mi; //如果第16个键按下,将高音3的频率赋给fOutput_Sound(); //转去计算定时常数 break; } } } /**************************************************************函数功能:定时器T0的中断服务子程序,使引脚输出音频方波**************************************************************/ void Time0_serve(void ) interrupt 1 using 1 {TH0=(8192-C)/32; //可证明这是13位计数器TH0高8位的赋初值方法TL0=(8192-C)%32; //可证明这是13位计数器TL0低5位的赋初值方法 sound=!sound; //将引脚取反,输出音频方波}/**************************************************************函数功能:定时器T1的中断服务子程序,进行键盘扫描,判断键位**************************************************************/ void time1_serve(void) interrupt 3 using 2 //定时器T1的中断编号为3,使用第2组寄存器{TR1=0; //关闭定时器T0P1=0xf0; //所有行线置为低电平“0”,所有列线置为高电平“1”if((P1&0xf0)!=0xf0) //列线中有一位为低电平“0”,说明有键按下{delay20ms(); //延时一段时间、软件消抖if((P1&0xf0)!=0xf0) //确实有键按下{P1=0xfe; //第一行置为低电平“0”(输出低电平“0”)if(P14==0) //如果检测到接引脚的列线为低电平“0”keyval=1; //可判断是S1键被按下if(P15==0) //如果检测到接引脚的列线为低电平“0”keyval=2; //可判断是S2键被按下if(P16==0) //如果检测到接引脚的列线为低电平“0”keyval=3; //可判断是S3键被按下if(P17==0) //如果检测到接引脚的列线为低电平“0”keyval=4; //可判断是S4键被按下P1=0xfd; //第二行置为低电平“0”(输出低电平“0”)if(P14==0) //如果检测到接引脚的列线为低电平“0”keyval=5; //可判断是S5键被按下if(P15==0) //如果检测到接引脚的列线为低电平“0”keyval=6; //可判断是S6键被按下if(P16==0) //如果检测到接引脚的列线为低电平“0”keyval=7; //可判断是S7键被按下if(P17==0) //如果检测到接引脚的列线为低电平“0”keyval=8; //可判断是S8键被按下P1=0xfb; //第三行置为低电平“0”(输出低电平“0”)if(P14==0) //如果检测到接引脚的列线为低电平“0”keyval=9; //可判断是S9键被按下if(P15==0) //如果检测到接引脚的列线为低电平“0”keyval=10; //可判断是S10键被按下if(P16==0) //如果检测到接引脚的列线为低电平“0”keyval=11; //可判断是S11键被按下if(P17==0) //如果检测到接引脚的列线为低电平“0”keyval=12; //可判断是S12键被按下P1=0xf7; //第四行置为低电平“0”(输出低电平“0”)if(P14==0) //如果检测到接引脚的列线为低电平“0”keyval=13; //可判断是S13键被按下if(P15==0) //如果检测到接引脚的列线为低电平“0”keyval=14; //可判断是S14键被按下if(P16==0) //如果检测到接引脚的列线为低电平“0”keyval=15; //可判断是S15键被按下if(P17==0) //如果检测到接引脚的列线为低电平“0”keyval=16; //可判断是S16键被按下}}TR1=1; //开启定时器T1TH1=(65536-500)/256; //定时器T1的高8位赋初值TL1=(65536-500)%256; //定时器T1的高8位赋初值 }

电子琴单片机毕业论文

相关范文:基于单片机监控系统的研究【摘要】文章所设计的基于单片机监控系统汽车行驶记录仪所实现的主要功能:记录汽车停车前2秒内的行驶速度,并能实时地显示汽车行驶的状态信息,同时还对汽车的超速行驶进行报警并记录一天之内的超速次数。【关键词】单片机;模块;监控本文所设计的汽车行驶记录仪是基于两片8051单片机作为控制系统的核心来进行设计的,整个系统分为六大模块分别是:电源模块、速度信号采集模块、时钟模块、单片机模块、存储器模块、显示模块。一、电源模块的设计记录仪作为车载设备,使用汽车电源。汽车上的电源有两个:汽车发电机和蓄电池。记录仪的电源直接取自蓄电池,在发电机转速和用电负载发生较大变化时,可保持汽车电网电压的相对稳定,同时,还可吸收电路中随时出现的瞬时过电压,以保护电子元件不受损害。车辆使用的车载蓄电池标称值有两种 12V的和 24V的,因此为了得到需要的 5V的电压,我选用了 DC-DC 电源转换芯片。二、速度信号采集模块的设计速度信号检测模块的原理是:汽车行驶过程中,车轮经过传感器,单位时间内输出一定的脉冲,传感器输出的脉冲通过差动放大电路的放大与整形,然后送到单片机 8051 的 T0端口进行脉冲计数,与此同时 8051 的 T1 进行计时开始待到定时器产生中断请求后,由计数器得到的脉冲数经过速度计算的公式和里程的计算后得到汽车行驶的速度和里程。从而得到汽车的行驶速度和里程,存储与 8051 的 RAM数据存储区。本系统采用霍尔传感器将速度信号转换为脉冲信号,考虑到传感器的体积要小,便于安装,误差要尽量减小等要求,设计采用车轮旋转一周速度传感器要输出若干个脉冲的方法。本系统采用的是在变速器上安装 3个小磁钢,霍尔传感器可相应的输出 3 个脉冲用于速度信号的采集。速度信号采集模块采用 THS118 型霍尔元件作为速度信号采集部分的速度传感器。三、时钟模块的设计时钟模块主要是用于对时、分、秒、年、月、日和星期的计时。该模块采用的芯片为DS12C887 时钟芯片。此芯片集成度高,其外围的电路设计非常的简单,且其性能非常好,计时的准确性高。DS12C887为双列直插式封装。其具体与单片机的连接如下所述:AD0~AD7双向地址/数据复用线与单片机的P0口相联,用于向单片机交换数据;AS 地址选通输入脚与单片机的 ALE 相联用于对地址锁存,实现地址数据的复用;CS 片选线与单片机的 相联,用于选通时钟芯片;DS 数据选通读输入引脚与单片机的读选通引脚相联,用于实现对芯片数据的读控制;R/W 读/写输入与单片机的写选通引脚相联,用于实现对时钟芯片的写控制;MOT 直接接地,选用 INTEL 时序。IRQ引脚与 8051 的 INT1 相连,用于为时间的采集提供时间基准。四、单片机模块的设计本系统采用两片单片机,两个单片机之间采用串行通讯,用于两者之间的数据交换。其工作时序是由外部晶振电路提供的,本系统采用的晶振频率是 12 兆 HZ。其复位电路为自动上电复位。设计中所采用的单片机为 8051。单片机在系统中主要是用来对其他模块进行控制,是整个系统的核心部件。主单片机主要是用于对速度信号采集模块、时钟模块和存储模块进行控制,同时还要与从单片机进行数据的交换。其外围的 I/O口主要与这些模块的中心芯片的数据总线或地址总线相连,其控制总线与这些模块的控制线相连。从单片机主要是用于对显示和校时的控制,因此其 I/O口主要与 LCD显示器的 I/O口相连,其控制线与 LCD显示器的控制线相连。由于从单片机的外部中断源只有两个,而我所设计的对时钟的校时主要是通过外部中断完成的,所以要对从单片机的外部中断源进行扩展。本系统采用了 8259A 进行中断源的扩展,从而实现对时钟的校时。五、储模块的设计汽车行驶记录仪对系统存储数据的实时性及长久性要求很高,因此本系统我采用了ATMEL 生产的 AT29C010A Flash 性存储器。其存储空间为 16K,能够满足设计的要求。AT29C010A是一种 5V在线闪速可电擦除的存储器,具有掉电保护功能;方便的在线编程能力不需要高的输入电压,指令系统在 5V 电压下即可控制对 AT29C010A 的读取数据,这与对 EEPROM 的操作相似。再编程能力是以每一分区为单位的,128 字节的数据装入AT29C010A 的同时完成编程。在一个再编程周期里,存储单元的寻址和 128 字节的数据通过内部锁存器可释放地址和数据总线,这样可为其它操作提供地址和数据总线。编程周期开始后,AT29C010A会自动擦除分区的内容,然后对锁存的数据在定时器作用下进行编程。六、示模块的设计显示器主要是为人机交互提供即时的信息,能让人们与机器进行很好的交流。在众多种类的显示器中,越来越多的仪器仪表及人机交互界面采用液晶显示器。LCD 可分为段位式LCD、字符式 LCD和点阵式 LCD。其中段位式和字符式只能用于数字和字符的简单的显示,不能满足图形曲线和汉字显示的要求;而点阵式不仅能够显示字符和数字,还可以显示各种图形、曲线及汉字,可以实现屏幕的上下左右滚动等功能。七、键的设计本系统的按键主要是用于对时钟的校对,现对按键的功能简述如下:按键 1~7是用于对秒分时日月年星期校时的中断申请;按键 8 是用于对校时进行加一的操作,键 9 是用于对校时进行减一的操作;按键 10 是用于实现对超速报警监控功能的复位。八、系统软件流程图的设计由于本设计主要是完成系统的硬件电路设计,因此我对系统的软件设计只进行了系统部分软件流程图的绘制。设计的流程图有:记录仪总体软件设计流程图、速度信号采集模块软件设计流程图、时钟模块软件设计流程图、外部中断软件设计流程图和 LCD 显示实现的软件设计流程图。【参考文献】[1]戴佳,苗龙,陈斌.51单片机应用系统开发典型实例[M].中国电力出版社.[2]周航慈.单片机应用程序设计技术[M].北京航空航天大学出版社.[3]胡汉才.单片机原理及其接口技术[M].清华大学出版社.[4]余发山.单片机原理及应用技术[M].中国矿业大学出版社.仅供参考,请自借鉴希望对您有帮助

单片机应用技术》课程的内 我知道的跟多

问:毕业设计做单片机应该怎么做?答:在心中建立一个基本模型,知道应该需要些什么知识,而自己又掌握了多少,并根据一定的灵感开始搜索资料,上面的资料基本上能满足初学者的需求了。选择完成单片机论文后,基于这个方向进行相关资料查找,一般来写作是有自己的基本方法的。先写序论序列部分的话,主要是阐述一下,你的单片机领域之前人干了什么情况,然后存在什么缺点。基于这些缺点你要做什么改进,然后把你目前这个行业内要改进的东西进行写一下,分别通过下述4个章节进行阐述,一般来说主要是把你的硬件选型和为什么这么选型的部分给讲清楚。第3章就是基本的硬件设计这块的话需要画电路图。问:单片机毕业设计那个方向比较好过?答:单片机好过,在实际中应用很广泛问:写有关单片机的毕业论文 可以写控制什么答:单片机的毕业论我理解,但是你没有具体题目功能我怎么半你发哪里问:单片机毕业论文有哪些题目可以参考?答:单片机控制自动恒温箱的设计(电路图+原理图+程序)双坐标步进电机控制系统的设计(论文) 原材料仓物位智能检测系统的设计 单片机多用宽频转速计的设计智能家居安防红外报警器设计(附protel文件)基于单片机的多功能信号发生器设计(新品)数字示波器的设计(AVR单片机)(新品)基于单片机的中文输入系统设计(程序+电路原理图+PCB图)农业暖棚(温室)温湿度控制系统的设计基于单片机喷泉控制系统的设计参考地址:问:跪求单片机相关毕业论文答:单片机类毕业设计·基于单片机的变频恒压供水控制系统的设计·基于单片机的恒压供水系统的设计·基于AT89S51单片机的数字温度计设计·基于单片机的温室大棚测控系统研究·基于单片机的温度测量系统设计·基于单片机温湿度控制系统·基于单片机的自动化点焊控制系统·红外声控报警系统的设计·红外防盗报警器的设计·基于AT89S51单片机的出租车计价器·煤气报警器的设计

单片电子琴毕业论文

22. 电子琴 1. 实验任务 (1. 由4X4组成16个按钮矩阵,设计成16个音。 (2. 可随意弹奏想要表达的音乐。 2. 电路原理图 图 3. 系统板硬件连线 (1. 把“单片机系统”区域中的端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 把“单片机系统“区域中的-端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上; 4. 相关程序内容 (1. 4X4行列式键盘识别; (2. 音乐产生的方法; 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示 音符 频率(HZ) 简谱码(T值) 音符 频率(HZ) 简谱码(T值)低1 DO 262 63628 # 4 FA# 740 64860#1 DO# 277 63731 中 5 SO 784 64898低2 RE 294 63835 # 5 SO# 831 64934#2 RE# 311 63928 中 6 LA 880 64968低 3 M 330 64021 # 6 932 64994低 4 FA 349 64103 中 7 SI 988 65030# 4 FA# 370 64185 高 1 DO 1046 65058低 5 SO 392 64260 # 1 DO# 1109 65085# 5 SO# 415 64331 高 2 RE 1175 65110低 6 LA 440 64400 # 2 RE# 1245 65134# 6 466 64463 高 3 M 1318 65157低 7 SI 494 64524 高 4 FA 1397 65178中 1 DO 523 64580 # 4 FA# 1480 65198# 1 DO# 554 64633 高 5 SO 1568 65217中 2 RE 587 64684 # 5 SO# 1661 65235# 2 RE# 622 64732 高 6 LA 1760 65252中 3 M 659 64777 # 6 1865 65268中 4 FA 698 64820 高 7 SI 1967 65283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据 低音0-19之间,中音在20-39之间,高音在40-59之间 TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0 DW 0,63731,63928,0,64185,64331,64463,0,0,0 DW 0,64580,64684,64777,64820,64898,64968,65030,0,0 DW 0,64633,64732,0,64860,64934,64994,0,0,0 DW 0,65058,65110,65157,65178,65217,65252,65283,0,0 DW 0,65085,65134,0,65198,65235,65268,0,0,0 DW 0 2、音乐的音拍,一个节拍为单位(C调) 曲调值 DELAY 曲调值 DELAY调4/4 125ms 调4/4 62ms调3/4 187ms 调3/4 94ms调2/4 250ms 调2/4 125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。 下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。 在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。 5. 程序框图 图 6. 汇编源程序KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HORG 00HLJMP STARTORG 0BHLJMP INT_T0 ;T0中断入口START: MOV TMOD,#01H ;T0工作方式1SETB ET0 SETB EAWAIT:MOV P3,#0FFH ;输入口置1准备工作CLR A,P3 ;读键盘ANL A,#0FH ;保持低四位XRL A,#0FH ;JZ NOKEY1LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY1MOV A,P3ANL A,#0FHCJNE A,#0EH,NK1MOV KEYBUF,#0LJMP DK1NK1: CJNE A,#0DH,NK2MOV KEYBUF,#1LJMP DK1NK2: CJNE A,#0BH,NK3MOV KEYBUF,#2LJMP DK1NK3: CJNE A,#07H,NK4MOV KEYBUF,#3LJMP DK1NK4: NOPDK1:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK1A: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0NOKEY1:MOV P3,#0FFHCLR A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY2LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY2MOV A,P3ANL A,#0FHCJNE A,#0EH,NK5MOV KEYBUF,#4LJMP DK2NK5: CJNE A,#0DH,NK6MOV KEYBUF,#5LJMP DK2NK6: CJNE A,#0BH,NK7MOV KEYBUF,#6LJMP DK2NK7: CJNE A,#07H,NK8MOV KEYBUF,#7LJMP DK2NK8: NOPDK2:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK2A: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK2ACLR TR0NOKEY2:MOV P3,#0FFHCLR A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY3LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY3MOV A,P3ANL A,#0FHCJNE A,#0EH,NK9MOV KEYBUF,#8LJMP DK3NK9: CJNE A,#0DH,NK10MOV KEYBUF,#9LJMP DK3NK10: CJNE A,#0BH,NK11MOV KEYBUF,#10LJMP DK3NK11: CJNE A,#07H,NK12MOV KEYBUF,#11LJMP DK3NK12: NOPDK3:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK3A: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK3ACLR TR0NOKEY3:MOV P3,#0FFHCLR A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY4LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY4MOV A,P3ANL A,#0FHCJNE A,#0EH,NK13MOV KEYBUF,#12LJMP DK4NK13: CJNE A,#0DH,NK14MOV KEYBUF,#13LJMP DK4NK14: CJNE A,#0BH,NK15MOV KEYBUF,#14LJMP DK4NK15: CJNE A,#07H,NK16MOV KEYBUF,#15LJMP DK4NK16: NOPDK4:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK4A: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK4ACLR TR0NOKEY4:LJMP WAITDELY10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINT_T0:MOV TH0,STH0MOV TL0,STL0CPL : DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HTABLE1: DW 64021,64103,64260,64400DW 64524,64580,64684,64777DW 64820,64898,64968,65030DW 65058,65110,65157,65178END7. C语言源程序#include <>unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned char temp;unsigned char key;unsigned char i,j;unsigned char STH0;unsigned char STL0;unsigned int code tab[]={64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178};void main(void){TMOD=0x01;ET0=1;EA=1;while(1){P3=0xff;P3_4=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp & 0x0f;if (temp!=0x0f){temp=P3;temp=temp & 0x0f;switch(temp){case 0x0e:key=0;break;case 0x0d:key=1;break;case 0x0b:key=2;break;case 0x07:key=3;break;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}P3=0xff;P3_5=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp & 0x0f;if (temp!=0x0f){temp=P3;temp=temp & 0x0f;switch(temp){case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=7;break;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}P3=0xff;P3_6=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp & 0x0f;if (temp!=0x0f){temp=P3;temp=temp & 0x0f;switch(temp){case 0x0e:key=8;break;case 0x0d:key=9;break;case 0x0b:key=10;break;case 0x07:key=11;break;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}P3=0xff;P3_7=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp & 0x0f;if (temp!=0x0f){temp=P3;temp=temp & 0x0f;switch(temp){case 0x0e:key=12;break;case 0x0d:key=13;break;case 0x0b:key=14;break;case 0x07:key=15;break;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}}}void t0(void) interrupt 1 using 0{TH0=STH0;TL0=STL0;P1_0=~P1_0;}

用AT89C51单片机做比较简单配上按键键盘,三极管驱动一个喇叭就能实现,下面是我调试过的单片机程序供参考;DIAN ZI QIN 电子琴 SPK EQU FKEY EQU DI EQU 71H GAO EQU 72H KEY_NO EQU 73H NO EQU 74H TC EQU 75H OUTBIT EQU 08002H OUTSEG EQU 08004H IN EQU 08001H ORG 0000H JMP BEGIN ORG 0BH JMP TO_INT BEGIN: MOV TMOD,#00000000B MOV IE ,#10000010B MOV R4,#1 MOV R3,#1 CALL PLAY MOV R4,#2 MOV R3,#1 CALL PLAY JMP RUN JMP $ PLAY: CALL LOAD_VALUE CALL SOUND_ON PL1: MOV R5,#30 CALL DELAY DJNZ R3,PL1 CALL SOUND_OFF MOV R5,#3 CALL DELAY RET PLAY_SONG1: MOV TC,#0 PA0: MOV DPTR,#SONG1 MOV A,TC MOVC A,@A+DPTR MOV R4,A CJNE A,#0FFH,PA1 RET PA1: MOV DPTR,#LEN MOV A,TC MOVC A,@A+DPTR MOV R3,A CALL PLAY INC TC JMP PA0 RET PLAY_SONG2: MOV TC,#0 PB0: MOV DPTR,#SONG2 MOV A,TC MOVC A,@A+DPTR MOV R4,A CJNE A,#0FFH,PB1 RET PB1: MOV DPTR,#LEN MOV A,TC MOVC A,@A+DPTR MOV R3,A CALL PLAY INC TC JMP PB0 RET SOUND_ON: SETB TR0 RET SOUND_OFF: CLR TR0 RET LOAD_VALUE: MOV DPTR,#HI_LIST MOV A,R4 MOVC A,@A+DPTR MOV GAO,A MOV DPTR,#LO_LIST MOV A,R4 MOVC A,@A+DPTR MOV DI,A RET TO_INT: MOV TL0,DI MOV TH0,GAO CPL SPK RETI HI_LIST: DB 0,226,229,232,233,236,238,240 LO_LIST: DB 0,4,13,10,20,3,8,6 SONG1: DB 1,2,3,4,5,6,7,0FFH SONG2: DB 7,6,5,4,3,2,1,0FFH LEN: DB 2,2,2,2,2,2,2,0FFH DELAY: MOV R6,#50 D1:MOV R7,#50 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET TABLE_DIG: DB 16H,15H,14H,0FFH DB 13H,12H,11H,10H DB 0DH,0CH,09H,0AH DB 0EH,03H,06H,0FH DB 08H,02H,05H,0BH DB 00H,01H,04H,07H SCAN: MOV DPTR ,#OUTBIT MOV A,#0 MOVX @DPTR,A MOV DPTR,#IN MOVX A,@DPTR CPL A ANL A,#0FH RET GET_KEY: MOV DPTR,#OUTBIT MOV P2,DPH MOV R0,#LOW(IN) MOV R1,#00100000B MOV R2,#6 KLOOP: MOV A,R1 CPL A MOVX @DPTR,A CPL A RR A MOV R1,A MOVX A,@R0 CPL A ANL A,#0FH JNZ GOON1 DJNZ R2,KLOOP MOV R2,#0FFH SJMP EXIT GOON1: MOV R1,A MOV A,R2 DEC A RL A RL A MOV R2,A MOV A,R1 MOV R1,#4 LOOPC: RRC A JC EXIT INC R2 DJNZ R1,LOOPC EXIT: MOV A,R2 MOV DPTR,#TABLE_DIG MOVC A,@A+DPTR MOV R2,A MOV KEY_NO,A RET SO: MOV R3,#1 CALL PLAY RET SOP: CJNE A,#1,A1 MOV R4,#1 CALL SO RET A1: CJNE A,#2,A2 MOV R4,#2 CALL SO RET A2: CJNE A,#3,A3 MOV R4,#3 CALL SO RET A3: CJNE A,#4,A4 MOV R4,#4 CALL SO RET A4: CJNE A,#5,A5 MOV R4,#5 CALL SO RET A5: CJNE A,#6,A6 MOV R4,#6 CALL SO RET A6: CJNE A,#7,A7 MOV R4,#7 CALL SO RET A7: CJNE A,#0FH,A8 CALL PLAY_SONG1 RET A8: CJNE A,#0BH,A9 CALL PLAY_SONG2 RET A9: RET RUN: LOOP: CALL SCAN JZ LOOP CALL GET_KEY MOV A,KEY_NO CALL SOP LJMP LOOP END

下面的都是毕业论文范文,有用的话,请给我红旗LMX2350/LMX2352芯片简介及电路设计基于LMX2306/16/26 芯片简介及应用电路设计 基于LT5500f 的 GHzLNA/混频器电路设计基于LT5517 40MHZ到90NHZ 积分解调器的设计基于LT5527的400MHz至高信号电平下变频混频器电路设计基于LT5572的芯片简介及应用电路设计基于LT5516的芯片简介及应用电路设计 基于MAX2039的芯片简介及应用电路设计 基于MAX2102/MAX2105芯片简介及应用电路设计基于MAX2106 芯片简介及应用电路设计 基于MAX2323/MAX2325 的芯片简介及应用电路设计 基于MAX2338芯片简介及应用电路设计 基于MAX2511的芯片简介及应用电路设计 基于MAX2685的芯片简介及应用电路设计 基于MAX2753的芯片简介及应用电路设计基于MAX9981芯片简介及应用电路设计基于MAX9994的芯片简介及应用电路设计 基于MAX9995的芯片简介及应用电路设计基于MC12430的芯片简介及应用电路设计基于MC88920芯片简介及应用电路设计基于MPC97H73的简介及电路设计基于MPC9229 芯片简介及应用电路设计 基于mpc9239芯片简介及应用电路设计 基于MPC9992 芯片简介及应用电路设计基于mpc92433芯片的简介及应用电路设计基于TQ5121的无线数据接收器电路设计基于TQ5135的芯片简介及应用电路设计基于TQ5631 3V PCS波段CDMA射频放大混频器电路设计语音信号处理技术及应用网络文档发放与认证管理系统网络配置管理对象分析与应用三维激光扫描仪中图像处理快速算法设计基于分形的自然景物图形的生成图像压缩编码基于奇异值分解的数字图像水印算法研究数字图象融合技术汽车牌照定位与分割技术的研究焦炉立火道温度软测量模型设计加热炉的非线性PID控制算法研究直接转矩控制交流调速系统的转矩数字调节器无线会议系统的设计温度检测控制仪器简易远程心电监护系统基于LabVIEW的测试结果语音表达系统程控交换机房环境监测系统设计单片机控制的微型频率计设计基于DSP的短波通信系统设计(射频单元)等精度数字频率计不对称半桥直直变换器仿真研究基于MATLAB的直流电动机双闭环调速系统无线传输应变型扭矩仪模糊控制在锅炉焊接过程中的应用三层结构的工作流OA的应用与实现基于的永磁直线电机的有限元分析及计算音频信号的数字水印技术低压CMOS零延迟1:11时钟发生器基于ADF4116/4117/4118的芯片简介及应用电路设计ADF4193芯片简介及应用电路设计LMX2310U/LMX2311U/LMX2312U/LMX2313U芯片简介及应用电路设计MAX2754芯片简介及应用电路设计MPC92432芯片简介及应用电路设计高增益矢量乘法器基于400MSPS 14-Bit,直接数字合成器AD9951基于900MHz低压LVPECL时钟合成器的电路设计基于 MAX2450芯片简介及应用电路设计基于AD831低失真有源混频器的电路设计基于AD7008的芯片简介及应用电路设计基于AD8341 芯片简介及应用电路设计基于AD8348的50M-1000M正交解调器基于AD8349的简介及应用电路设计基于AD9511的简介及电路应用基于AD9540的芯片简介及电路设计基于AD9952的芯片简介和应用电路设计基于ADF436的集成数字频率合成器与压控振荡器基于ADF4007简介及电路设计基于ADF4110/ADF4111/ADF4112/ADF4113上的应用电路设计基于ADF4154的芯片简介及应用电路设计基于ADF4360-0的芯片简介及应用电路设计基于ADF4360-3电路芯片简介及应用电路设计基于ADF4360-6的简介及应用电路设计基于ADF4360-7的集成整形N合成器的压控振荡器基于ADL5350的简介及应用电路设计基于CMOS 200 MHZ数字正交上变频器设计基于CMOS 的AD9831芯片数字频率合成器的电路设计基于CX3627ERDE的芯片简介及应用电路设计基于CXA3275Q的芯片简介及应用电路设计基于CXA3556N的芯片简介及应用电路设计基于IMA-93516的芯片简介及应用电路设计VPN技术研究UCOSII在FPGA上的移植IPTV影音信号传输网络设计GSM移动通信网络优化的研究与实现 FSK调制系统DSP处理GPS接收数据的应用研究Boot Loader在嵌入式系统中的应用ADS宽带组网与测试基于FPGA的IIR滤波器设计MP3宽带音频解码关键技术的研究与实现基本门电路和数值比较器的设计编码器和译码器的设计智力竞赛抢答器移位寄存器的设计与实现四选一数据选择器和基本触发器的设计四位二进制加法器和乘法器数字钟的设计与制作数字秒表的设计数控分频器及其应用汽车尾灯控制器的设计交通灯控制器的设计简易电子琴的设计简单微处理器的设计DSP最小系统的设计与开发基于消息队列机制(MSMQ)的网络监控系统基于DSP的电机控制的研究基于数学形态学的织物经纬密度的研究纱条均匀度测试的研究 图像锐化算法的研究及其DSP实现 手写体数字识别有限冲击响应滤波器的设计及其DSP实现 同步电机模型的MATLAB仿真USB通信研究及其在虚拟仪器中的应用设计WLAN的OFDM信道估计算法研究采用S12交换机支持NGN下MEGACO呼叫流程的设计基于语音信号预测编码的数据压缩算法的研究与实现基于小波变换数字图像水印盲算法基于小波变换和神经网络的短期负荷预测研究嵌入式系统建模仿真环境PtolemyII的研究与应用分布式计算环境的设计与实现复合加密系统中DES算法的实现大学自动排课算法设计与实现基于AES的加密机制的实现基于AES算法的HASH函数的设计与应用基于DM642的视频编码器优化和实现基于Huffman编码的数据压缩算法的研究与实现基于internet的嵌入式远程测控终端研制基于Matlab的FMCW(调频连续波)的中频正交处理和脉冲压缩处理 基于MATLAB的对称振子阻抗特性和图形仿真基于windows的串口通信软件设计基于粗糙集和规则树的增量式知识获取算法自适应蚁群算法在DNA序列比对中的应用远程监护系统的数据记录与传输技术研究基于分布式体系结构的工序调度系统的设计基于活动图像编码的数据压缩算法的设计与实现基于宽带声音子带编码的数据压缩算法的设计与实现基于网络数据处理XML技术的设计基于小波变换的数据压缩算法的研究与实现基于小波变换的配电网单相接地故障定位研究及应用英特网上传输文件的签名与验证程序

简单的说就是按键触发信号发给处理器,再由处理器调用音色库音色通过功放电路输出或者通过数码接口进行数字输出。控制面板上的按钮来选择处理器对音色、音量、输出方式、伴奏的控制。 玩具和简单的老式电子琴就简单得多,按键做为开关接通内部发声单元,进行固定频率的发声。或者由初级的单片机处理发声频率。 电子琴的工作原理一般有FM(调频)模式和PCM(采样)模式。 现在常用的电子琴的常见品牌有YANMAHA 和CASIO,海南的乐手比较喜欢使用YAMAHA的产品,因为它的设置比较合理,现场使用非常 方便;音色比较真实,使用效果更佳。 单独用一具电子琴,就可以现场作出类似一支完整乐队的效果。所以现在一些演出场合中,比较流行一具电子琴(有些会再加上一具合成器)的单人编制(简称单编),或一具电子琴和一把吉他的双人编制(简称双编)。搞单编需要乐手具备较高的电子琴操作和演奏水平。本版中的“啊方十指琴魔”就是这样的单编高手之一。搞单编或双编对电子琴的要求也较高,在YAMAHA的电子琴系列中,一般要PSR 410以上级别的产品才能达到乐手们常说的“能用”的水平。 电振荡乐 器 以电振荡作为激励声源的乐器,称为电振荡乐器 。 目前人们能见到的各种电子琴、电子合成器、电子鼓机等都属于电振荡 乐器。 说明:当演奏者按下键盘中的某一琴键时,琴键下面的电路就将信号传 送给振荡器 1 和振荡器2,产生相应的音高振荡频率;手指触键的力度信号 也会同时传给包络发生器 1 和包络发生器2,并通知滤波器和放大器产生相 应的音量及音色的变化;最后,声音信号通过放大器输出。图中低频振荡器 的作用,是能够根据演奏者的需要,对所有其它部分——振荡器、滤波器和 放大器——进行调制,从而使合成器能够发出颤音的效果。 目前,国外生产的电子合成器以及较高档的电子琴都有MIDI 接口,相互 间可串接使用。目前较流行的使用方法是用一台计算机通过MIDI 接口来控制 所有相关的电子乐器和音响效果发生器,从而能够方便地产生丰富多彩的音 乐音响效果。

电子毕业论文单片机

程序设计内容

(1). 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。

(2). 密码的输入问题:  由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。

(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。

C语言源程序

#include unsigned char code ps[]={1,2,3,4,5};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,                               

0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

unsigned char pslen=9; unsigned char templen;

unsigned char digit; unsigned char funcount;

unsigned char digitcount;

unsigned char psbuf[9];

bit cmpflag;

bit hibitflag;

bit errorflag;

bit rightflag;

unsigned int second3;

unsigned int aa;

unsigned int bb;

bit alarmflag;

bit exchangeflag;

unsigned int cc;

unsigned int dd;

bit okflag;

unsigned char oka;

unsigned char okb;

void main(void)

{  

unsigned char i,j;  

P2=dispcode[digitcount];  

TMOD=0x01;  

TH0=(65536-500)/256;  

TL0=(65536-500)%6;  

TR0=1;  

ET0=1;  

EA=1;  

while(1)   

  {      

if(cmpflag==0)        

{          

if(P3_6==0) //function key           

  {              

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

for(j=248;j>0;j--);      

         if(P3_6==0)                

{                

   if(hibitflag==0)       

              {     

                  funcount++;  

                     if(funcount==pslen+2)

                        {  

                         funcount=0;

                          cmpflag=1;

                         }

                       P1=dispcode[funcount];

                    }

                    else

                      {

                         second3=0;

                      }  

                 while(P3_6==0);

                }

            }

          if(P3_7==0) //digit key

            {

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

              for(j=248;j>0;j--);

              if(P3_7==0)

                {

                  if(hibitflag==0)

                    {

                      digitcount++; 

                  if(digitcount==10)

                        {

                          digitcount=0;

                        }

                      P2=dispcode[digitcount];

                      if(funcount==1)

                        {

                          pslen=digitcount;                          

templen=pslen;

                        }

                        else if(funcount>1)

                          {  

                           psbuf[funcount-2]=digitcount;

                          }

                    }

                    else

                      {

                        second3=0;

                      }

                  while(P3_7==0);

                }

            }

        }  

       else

          {

            cmpflag=0;

            for(i=0;i

              {  

               if(ps[i]!=psbuf[i])

                  {

                    hibitflag=1;

                    i=pslen;

                    errorflag=1;

                    rightflag=0;

                    cmpflag=0;

                    second3=0;

                    goto a;  

                 }

              }   

          cc=0;  

           errorflag=0;  

           rightflag=1;

            hibitflag=0;

a:   cmpflag=0;

          }

}

}

void t0(void)

interrupt 1 using 0 {   TH0=(65536-500)/256;  

TL0=(65536-500)%6;  

if((errorflag==1) && (rightflag==0))  

{

      bb++;

      if(bb==800)

        {

          bb=0;

          alarmflag=~alarmflag;

        }

      if(alarmflag==1)

        {

          P0_0=~P0_0;

        }

      aa++;

      if(aa==800)

        {

          aa=0;

          P0_1=~P0_1;

        }

      second3++;

      if(second3==6400)

        {

          second3=0;

          hibitflag=0;

          errorflag=0;

          rightflag=0;

          cmpflag=0;

          P0_1=1;  

         alarmflag=0;

          bb=0;  

         aa=0;  

       }

    }

  if((errorflag==0) && (rightflag==1))

    {

      P0_1=0;

      cc++;

      if(cc<1000)

        {

          okflag=1;

        }

        else if(cc<2000)

          {

            okflag=0;

          }

          else

            {

              errorflag=0;

              rightflag=0;

              hibitflag=0;

              cmpflag=0;

              P0_1=1;

              cc=0;  

             oka=0;

              okb=0;

              okflag=0;  

             P0_0=1;  

           }

      if(okflag==1)

        {  

         oka++;  

         if(oka==2)

            {

              oka=0;

              P0_0=~P0_0;

            }

        }

        else

          {

            okb++;

            if(okb==3)

              {

                okb=0;

                P0_0=~P0_0;

              }  

         }

    }

}

单片机毕业论文答辩陈述

难忘的大学生活将要结束,毕业生都要通过最后的毕业论文,毕业论文是一种有计划的检验大学学习成果的形式,那么毕业论文应该怎么写才合适呢?以下是我为大家收集的单片机毕业论文答辩陈述,仅供参考,希望能够帮助到大家。

单片机毕业论文答辩陈述

各位老师好!我叫刘天一,来自**,我的论文题目是《基于AVR单片机的GSM—R基站天线倾角测量系统》。在这里,请允许我向宁提纲老师的悉心指导表示深深的谢意,向各位老师不辞劳苦参加我的论文答辩表示衷心的感谢。

下面我将从论文的背景意义、结构内容、不足之处三个方面向各位老师作一大概介绍,恳请各位老师批评指导。

首先,在背景和意义上,移动通信网络建设初期,基站站间距大、数量少、站型也不大,并且频率资源相对比较丰富。在这一阶段的网络规划时很少对天线的倾角做详细的规划,基站功率常常以满功率发射。对于越区覆盖则主要通过增加邻区的办法予以解决。

但随着网络的迅速发展,城市中的基站越来越密集,在一个中等城市通常分布着数十个基站,在省会城市更是达到了数百个基站之多,并且基站的密度越来越高,站型也越来越大,如果对越区覆盖的问题仍然釆用老办法解决,那么网络质量将难以保证。因此有必要在规划阶段就对基站天线的倾角、基站静态发射功率等进行更加细化合理的规划,从而减轻优化阶段的工作量。

合理设置天线下倾角不但可以降低同频干扰的影响,有效控制基站的覆盖范围,而且可以加强本基站覆盖区内的信号强度。通常天线下倾角的设定有两方面侧重,一方面侧重于干扰抑制,另一方面侧重于加强覆盖。这两方面侧重分别对应不同的下倾角算法。一般而言,对基站分布密集的地区应该侧重于考虑干扰抑制(大下倾角);而基站分布比较稀疏的地方则侧重于考虑加强覆盖(小下倾角)。

规划阶段进行的倾角设计,在实际施工过程中会出现一定的偏差,在使用的过程中,由于季节变化或风、雨、雪、温度、湿度等自然条件影响,基站天线倾角会发生变化,进而影响场强质量。而移动通信已经是人类日常生活中不可或缺的一部分,正常的通信离不开基站的建设与维护,因此,基站天线倾角的实时、精确测量就显得尤为重要了。但现阶段移动通信基站的天线方位角、下倾角等基本是依靠人工现场通过罗盘、坡度仪等仪器进行测量得到的,而且由于基站的数量巨大,因而测量耗费了大量的时间、人力、物力,并且存在较大的测量人员人身安全隐患。因此,实现一种省时、省力的自动化测量仪器是非常亟需的。

为此,拟研发GSM—R基站天线倾角测量系统,实现不登塔作业即可完成基站天线倾角的测量工作,并可对各基站测试点进行联网,实现对基站天线倾角的实时监测。本系统可以大大降低GSM—R系统现场维护作业的人身安全风险和作业难度、强度,具有很高的实用性和安全性。

其次,在结构内容上,论文主要对基站倾角测量系统进行设计,主要研宄内容为:

(1)根据控制要求,选用倾角测量模块;学会使用并通过使用手册深入学习其特性及原理。

(2)采用ATmegal62作为控制芯片,进行倾角测量系统的硬件电路设计。整个系统分为主板和从板,通过芯片内置的TWI串行总线传输接口进行通信,由主板将数据通过无线模块发送给手持终端。

(3)采用JZ863数传模块,将其与上位机控制芯片、下位机控制芯片的异步串行接收/发送器USART连接,进行上位机与下位机的无线数据通信。

(4)在硬件平台基础上根据模块化思想进行倾角测量系统的软件程序设计。

(5)在设计好的软硬件平台上进行相关实验,实现控制系统设计目标和要求。

本文各章节安排如下:

第1章“引言”,对倾角测量系统进行了简要概述,介绍了研宄背景,并对本文的内容作了简介。

第2章“倾角测量传感器”,主要分析了本系统比较重要的倾角测量模块的原理以及SCA100T—D01倾角测量芯片,对其各个引脚的功能以及通信协议等进行了阐述,为后面的具体实现打下了基础。

第3章“ATmegal62微处理器结构及原理”,分析了本毕设使用的核心单片机芯片ATmegal62,包括它的各个引脚以及I/O端口,并且分析了本论文主要使用的通信协议,即同步串行SPI接口和USART串行口。

第4章“倾角测量系统软硬件实现”,本章首先对系统的总体设计进行了实现,包括主要的技术指标、主要的功能模块等。接着进行了本系统的硬件实现和软件实现。硬件实现包括各个功能模块的具体电路设计以及最后的PCB电路板制作,软件实现包括各个功能模块的程序设计。

第5章“倾角测量系统调试及实验”,本章主要进行了硬件电路的调试,并介绍了通过AVR Studio进行软件仿真以及下载,最后在搭建的系统软硬件平台的基础上,进行调试和实验,以此来验证基站倾角测量系统的硬件与软件设计。

第6章“结论”,本章主要总结了本论文的研究结果,并阐述了系统的不足之处和对以后工作的展望。

最后,在不足之处上,这篇论文的写作以及修改的过程,也是我越来越认识到自己知识与经验缺乏的过程。虽然,我尽可能地收集材料,竭尽所能运用自己所学的知识进行论文写作,但论文还是存在许多不足之处,有待改进。请各位评委老师多批评指正,让我在今后的学习中学到更多。

[知识拓展]

论文答辩提问方式

在毕业论文答辩会上,主答辩老师的提问方式会影响到组织答辩会目的的实现以及学员答辩水平的发挥。主答辩老师有必要讲究自己的提问方式。

1、提问要贯彻先易后难原则。主答辩老师给每位答辩者一般要提三个或三个以上的问题,这些要提的问题以按先易后难的次序提问为好。所提的第一个问题一般应该考虑到是学员答得出并且答得好的问题。学员第一个问题答好,就会放松紧张心理,增强“我”能答好的信心,从而有利于在以后几个问题的答辩中发挥出正常水平。反之,如果提问的第一个问题就答不上来,学员就会背上心理包袱,加剧紧张,产生慌乱,这势必会影响到对后面几个问题的答辩,因而也难以正确检查出学员的答辩能力和学术水平。

2、提问要实行逐步深入的方法。为了正确地检测学员的专业基础知识掌握的情况,有时需要把一个大问题分成若干个小问题,并采取逐步深入的提问方法。如有一篇《浅论科学技术是第一生产力》的论文,主答辩老师出的探测水平题,是由以下四个小问题组成的。

(1)什么是科学技术?

(2)科学技术是不是生产力的一个独立要素?在学员作出正确回答以后,紧接着提出第三个小问题:

(3)科学技术不是生产力的一个独立要素,为什么说它也是生产力呢?

(4)你是怎样理解科学技术是第一生产力的?通过这样的提问,根据学员的答辩情况,就能比较正确地测量出学员掌握基础知识的扎实程度。如果这四个小问题,一个也答不上,说明该学员专业基础知识没有掌握好;如果四个问题都能正确地回答出来,说明该学员基础知识掌握得很扎实;如果能回答出其中的2—3个,或每个小问题都能答一点,但答得不全面,或不很正确,说明该学员基础知识掌握得一般。倘若不是采取这种逐步深入的提问法,就很难把一个学员掌握专业基础知识的情况准确测量出来。假如上述问题采用这样提问法:请你谈谈为什么科学技术是第一生产力?学员很可能把论文中的主要内容重述一遍。这样就很难确切知道该学员掌握基础知识的情况是好、是差、还是一般。

3、当答辩者的观点与自己的观点相左时,应以温和的态度,商讨的语气与之开展讨论,即要有“长者”风度,施行善术,切忌居高临下,出言不逊。不要以“真理”掌握者自居,轻易使用“不对”、“错了”、“谬论”等否定的断语。要记住“是者可能非,非者可能有是”的格言,要有从善如流的掂量。如果作者的观点言之有理,持之有据,即使与自己的观点截然对立,也应认可并乐意接受。倘若作者的观点并不成熟、完善,也要善意地、平和地进行探讨,并给学员有辩护或反驳的平等权利。当自己的观点不能为作者接受时,也不能以势欺人,以权压理,更不要出言不逊。虽然在答辩过程中,答辩老师与学员的地位是不平等的(一方是审查考核者,一方是被考核者),但在人格上是完全平等的。在答辩中要体现互相尊重,做到豁达大度,观点一时难以统一,也属正常。不必将自己的观点强加于人,只要把自己的观点亮出来,供对方参考就行。事实上,只要答辩老师讲得客气、平和,学员倒愈容易接受、考虑你的观点,愈容易重新审视自己的观点,达到共同探索真理的目的。

4、当学员的回答答不到点子上或者一时答不上来的问题,应采用启发式、引导式的提问方法。参加过论文答辩委员会的老师可能都遇到过这样的情况:学员对你所提的问题答不上来,有的就无可奈何地“呆”着;有的是东拉西扯,与你绕圈子,其实他也是不知道答案。碰到这种情况,答辩老师既不能让学员尴尬地“呆”在那里,也不能听凭其神聊,而应当及时加以启发或引导。学员答不上来有多种原因,其中有的是原本掌握这方面的知识只是由于问题完全出乎他的意料而显得心慌意乱,或者是出现一时的“知觉盲点”而答不上来。这时只要稍加引导和启发,就能使学员“召回”知识,把问题答好。只有通过启发和引导仍然答不出或答不到点子上的,才可判定他确实不具备这方面的知识。

【拓展】

单片机毕业论文开题报告参考

1. 课题名称:

数字钟的设计

近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋广泛,特别是工业测控、尖端武器和日常家用电器等领域更是因为有了单片机而生辉增色,不少设备、仪器已经把单片机作为核心部分。单片机应用技术已经成为一项新的工程应用技术。尤其是Intel公司生产的MCS-51系列单片机,由于其具有集成度高、处理功能强、可靠性高、系统结构简单、价格低廉等优点,在我国得到了广泛的`应用,在智能仪器仪表机电一体化等方面取得了令人瞩目的成果。现在单片机可以说是百花齐放,百家争鸣,世界上各大芯片制造公司都推出了自己的单片机,从8位,16位,到32位,数不胜数,应有尽有由于主流C51兼容的,也有不兼容的,但他们各具特色,互成互补,为单片机的应用提供了广泛的天地。在高节奏发展的现代社会,以单片机技术为核心的数字钟越来越彰显出它的重要性。

3. 设计目的和意义:

单片机的出现具有划时代的意义。它的出现使得许多原本花费很高的复杂电路以及繁多的电气元器件都被取缔,取而代之的是一块小小的芯片。伴随着计算机技术的不断发展,单片机也得到了相应的发展,而且其应用的领域也得到更好的扩展。在民用,工用,医用以及军用等众多领域上都有所应用。为了,能够更好的适应这日新月异的社会,我们应当充实我们的知识面,方能不被时代的潮流踩在脚下。

介于单片机的重要性,我们应当对单片机的原理,发展以及应用有着一定的了解。所以,我们应当查阅相关资料,从而能够对单片机有个全方位的了解。进而将探讨的领域指向具体的国内,从而能够在科技与经济飞速发展的当今社会更好的应用这项技术。事实上,该项技术在国内有着极为广泛的发展前景,因此,通过对本课题的研究,我们因当能够充分认识到单片机技术的重要性,对单片机未来的发展趋势有所展望。

单片机的形成背景:

1.随着微电子技术的不断创新和发展,大规模集成电路的集成度和工艺水平不断提高。硅材料与人类智慧的结合,生产出大批量的低成本、高可靠性和高精度的微电子结构模块,推动了一个全新的技术领域和产业的发展。在此基础上发展起来的器件可编程思想和微处理(器)技术可以用软件来改变和实现硬件的功能。微处理器和各种可编程大规模集成专用电路、半定制器件的大量应用,开创了一个崭新的应用世界,以至广泛影响着并在逐步改变着人类的生产、生活和学习等社会活动。

2.计算机硬件平台性能的大幅度提高,使很多复杂算法和方便使用的界面得以实现,大大提高了工作效率,给复杂嵌入式系统辅助设计提供了物理基础。

3.高性能的EDA综合开发工具(平台)得到长足发展,而且其自动化和智能化程度不断提高,为复杂的嵌入式系统设计提供了不同用途和不同级别集编辑、布局、布线、编译、综合、模拟、测试、验证和器件编程等一体化的易于学习和方便使用的开发集成环境。

4.硬件描述语言HDL(Hardware Description Language)的发展为复杂电子系统设计提供了建立各种硬件模型的工作媒介。它的描述能力和抽象能力强,给硬件电路,特别是半定制大规模集成电路设计带来了重大的变革。

5.软件技术的进步,特别是嵌入式实时操作系统EOS(Embedded Operation System)的推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台。EOS是一种功能强大、应用广泛的实时多任务系统软件。它一般都具有操作系统所具有的各种系统资源管理功能,用户可以通过应用程序接口API调用函数形式来实现各种资源管理。用户程序可以在EOS的基础上开发并运行。

单片机的发展历史:20世纪70年代,微电子技术正处于发展阶段,集成电路属于中规模发展时期,各种新材料新工艺尚未成熟,单片机仍处在初级的发展阶段,元件集成规模还比较小,功能比较简单,一般均把CPU、RAM有的还包括了一些简单的I/O口集成到芯片上,它还需配上外围的其他处理电路方才构成完整的计算系统。类似的单片机还有Z80微处理器。

1976年INTEL公司推出了MCS-48单片机,这个时期的单片机才是真正的8位单片微型计算机,并推向市场。它以体积小,功能全,价格低赢得了广泛的应用,为单片机的发展奠定了基础,成为单片机发展史上重要的里程碑。

在MCS-48的带领下,其后,各大半导体公司相继研制和发展了自己的单片机。到了80年代初,单片机已发展到了高性能阶段,象INTEL公司的MCS-51系列,Motorola公司的6801和6802系列等等,此外,日本的著名电气公司NEC和HITACHI都相继开发了具有自己特色的专用单片机。

80年代,世界各大公司均竞相研制出品种多功能强的单片机,约有几十个系列,300多个品种,此时的单片机均属于真正的单片化,大多集成了CPU、RAM、ROM、数目繁多的I/O接口、多种中断系统,甚至还有一些带A/D转换器的单片机,功能越来越强大,RAM和ROM的容量也越来越大,寻址空间甚至可达64kB,可以说,单片机发展到了一个全新阶段,应用领域更广泛,许多家用电器均走向利用单片机控制的智能化发展道路。

1982年以后,16位单片机问世,代表产品是INTEL公司的MCS-96系列,16位单片机比起8位机,数据宽度增加了一倍,实时处理能力更强,主频更高,集成度达到了12万只晶体管,RAM增加到了232字节,ROM则达到了8kB,并且有8个中断源,同时配置了多路的A/D转换通道,高速的I/O处理单元,适用于更复杂的控制系统。

九十年代以后,单片机获得了飞速的发展,世界各大半导体公司相继开发了功能更为强大的单片机。美国Microchip公司发布了一种完全不兼容MCS-51的新一代PIC系列单片机,引起了业界的广泛关注,特别它的产品只有33条精简指令集吸引了不少用户,使人们从INTEL的111条复杂指令集中走出来。PIC单片机获得了快速的发展,在业界中占有一席之地。

随后的事情,熟悉单片机的人士都比较清楚了,更多的单片机种蜂拥而至,MOTOROLA公司相继发布了MC68HC系列单片机,日本的几个著名公司都研制出了性能更强的产品,但日本的单片机一般均用于专用系统控制,而不象INTEL等公司投放到市场形成通用单片机。例如NEC公司生产的uCOM87系列单片机,其代表作uPC7811是一种性能相当优异的单片机。MOTOROLA公司的MC68HC05系列其高速低价等特点赢得了不少用户。

1990年美国INTEL公司推出了80960超级32位单片机引起了计算机界的轰动,产品相继投放市场,成为单片机发展史上又一个重要的里程碑。

我国开始使用单片机是在1982年,短短五年时间里发展极为迅速。1986年在上海召开了全国首届单片机开发与应用交流会,有的地区还成立了单片微型计算机应用协会,那是全国形成的第一次高潮。截止今日,单片机应用技术飞速发展,我们上因特网输入一个“单片机”的搜 索,将会看到上万个介绍单片机的网站,这还不包括国外的。随着微电子技术的高速发展,单片机在国民经济的各个领域得到了广泛的应用。首先,单片机技术不断进步,出现了许多新的技术和新的产品。本文以Intel MCS-51系列单片机为模型,阐述单片机的一般原理、应用以及单片机的影响,较为详细地介绍当前主要单片机厂家的产品系列及发展动向。主要内容包括:单片机的基本原理、硬件结构、发展趋势以及具体的应用介绍。本文主要目的是想让大家对单片机有一个更为深入的了解。

科技的进步需要技术不断的提升。试想,曾经一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不管在您今后开发或是工作上,一定会带来意想不到的惊喜。

数字钟的发展:1350年6月6日,意大利人乔万尼·德·党笛制造了世界上第一台结构简单的机械打点多功能数字钟,由于数字钟报价便宜,功能齐全,因此很快受到众多用户的喜爱。1657年,荷兰人惠更斯率先把重力摆引入机械钟,进而才创立了摆钟。

到了20世纪以后,随着电子工业的快速发展,电池驱动钟、交流电钟、电机械表、指针式石英电子钟表以及数字显示式石英钟表相继问世,数字钟报价非常合理,再加上产品的不断改良,多功能数字钟的日差已经小于秒,因此受到广大用户的青睐。尤其是原子钟的出现,它是使用原子的振动来控制计时的,是目前世界上最精准的时钟,即使经过将近100万年,其偏差也不可能超过1秒钟。

多功能数字钟最早是在欧洲中世纪的教堂,属于完全机械式结构,动力使用重锤,打点钟声完全使用人工进行撞击铸钟,所以当时一个多功能数字钟工程在建筑与机械结构方面是非常复杂的,进而影响了数字钟报价。进入电子时代以后,电子多功能数字钟也相继问世。我国电子多功能数字钟行业从80年代开始渐渐成长壮大,目前不仅数字钟报价合理,在技术和应用水平上也已经达到世界同类水平。

4. 国内外现状和发展趋势:

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

1.低功耗CMOS化

MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。

2.微型单片化

现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。

此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

3.主流与多品种共存

现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。

1、 基于RTOS的单片机方波信号发生器设计与实现 摘 要随着计算机技术的迅速发展和芯片制造工艺的不断进步,嵌入式系统的应用日益广泛:从民用的电视、手机等电路设备到军用的飞机、坦克等武器系统,到处都有嵌入式系统的身影。在嵌入式系统的应用开发中,采用... 类别:毕业论文 大小: MB 日期:2008-07-13 2、 [电子信息工程]基于单片机的电器遥控器设计 摘要:通过对设计要求地认真分析和研究,拿出了几种可行方案,最终选定了一个最佳方案。该方案是采用先进的单片机技术实现遥控的主要手段。我们所设计的遥控器能控制5个电器的电源开关,并且可对一路电灯进行亮度的... 类别:毕业论文 大小:242 KB 日期:2008-07-06 3、 基于单片机无线收发控制的交通信号灯模型 摘 要利用AT89C51单片机控制交通信号灯的工作原理及其硬件电路设计。文章对AT89C51单片机芯片及本交通信号灯模型作了较详细介绍。最后简单介绍了本系统可改进的地方。关键词:AT8... 类别:课题课程 大小:158 KB 日期:2008-07-06 4、 基于单片机的多人智能比赛记分抢答器 摘 要 本设计是采用单片机设计的多人比赛用记分抢答器系统。它具有电路简单、功能齐全、制作成本低、性价比高等特点,是一种经济、实用的比赛用抢答器。硬件部分主要由单片机、 74LS377锁存器、CC... 类别:毕业论文 大小:243 KB 日期:2008-07-06 5、 基于AT89C51的新一代单片机多功能数字钟 一、题目 1二、课程设计目的 1三、课程设计系统环境 1四、课程设计要求 1五、系统功能说明 2六、原理图 2七、程序框图 3八、源程序 5九、参考资料 7 类别:课题课程 大小:84 KB 日期:2008-07-06 6、 [电气工程]用单片机实现分频段测量信号频率 摘 要 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面... 类别:毕业论文 大小:207 KB 日期:2008-07-03 7、 基于MCS 51单片机车用数字仪表设计与实现 摘 要:随着科技进步,车用显示仪表由指针式向数字式发展。数字显示仪表是采用的微处理器测控和传感器测量技术,通过控制数字显示器发光二极管和发光组合来显示车速、里程、用条段表示油量多少,并辅助显示速度大小... 类别:毕业论文 大小:179 KB 日期:2008-07-02 8、 [信息安全]基于AVR单片机的嵌入式心率提取算法 2008-06-11 13:39 188,416 外文翻译.doc2007-11-16 11:28 352,955 外文翻译原文.pdf2008-06-10... 类别:毕业论文 大小: MB 日期:2008-06-30 9、 基于单片机与VC串口通信的温度采集系统设计 摘 要温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。随着科学技术的发展,由单片集成电路构成的温度传感器的种类越来越多,测量的精度越来越高,响应时间越来... 类别:毕业论文 大小:480 KB 日期:2008-06-26

一、毕业设计题目及要求 (2个) 1、基于单片机控制的电动机Y-△启动的设计 要求:1)控制器为单片机,电动机为三相异步电动机;2)启动时间为3秒;3)由按键设置电动机Y-△运行、停止。 2、基于单片机控制的可调直流稳压电源的设计 要求:1)控制器为单片机,电压输出范围为0-10V,电压精度为;2)通过数码管显示电压值;3)由按键设置电压值。 二、毕业设计用到的主要软件(及功能) 毕业设计用到的主要软件(及功能):Keil 51(源程序编译),Proteus(电路仿真),AutoCAD(绘图), Visio(绘流程图), Protel 99SE(原理图电路设计,PCB板制作) 三、单片机方面毕业设计要求 1、学会编写程序(用C语言或汇编语言),用Keil 51软件对源程序进行编译。 2、学会用Proteus电路仿真软件对所设计的硬件电路进行仿真。 3、在写毕业论文时,学会用Word、AutoCAD, Visio,Protel 99SE等软件对程序流程图、电路原理图等进行绘制。 相关答案 ↓位朋友,以51单片机为例。51现在很多都是用仿真器来进行在线调试的,而每个公司的仿真器都会有自带的编程软件,当然,跟keil是差不了多少的。 步骤大体如下: 1.新建,进行程序的编写 2.连上仿真器或烧写器,这一步有可能要对仿真器或烧写器进行设置,具体可看它们的使用说明 3.对程序进行编译,这一步会自动检测你的程序有没错,如果有错,是不能进入下一步的.如果你用的是仿真器,这一步编译成功后就可以直接运行进行在线调试了。 4.如果用的是烧写器,那就进行烧写 各个软件和调试方法会有些不同,但大体就是这样,一些调试工具的说明书也有很详细的说明。 学参数测量技术涉及范围广,特别是微电压、微电流、高电压以及待测信号强弱相差极大的情况下,既要保证弱信号的测量精度又要兼顾强信号的测量范围,在技术上有一定的难度。传统的低成本仪表在测量电压、电阻时都采用手动选择档位的方法来转换量程。在使用中,当忘记转换档位时,会造成仪表测量精度下降或损坏。 现代电子测量对系统的精度要求越来越高且智能化程度也越来越高。全量程无档自动量程转换电压表和电阻表是在保证测量精度不下降的前提条件下省去手动转换量程的工作,得到了广泛应用。 本文介绍了一种基于AT89S52 单片机 的智能多用表。该表能在单片机的控制下完成直流电压、电阻和直流电流的测量。测量电流部分采用了简单的I/V转换电路完成测试;测量电压部分结合模拟开关CD4051和运算放大器OP07构成程控放大器,实现了自动量程转换;测量电阻部分也由模拟开关CD4051和运算放大器OP07相结合,在单片机控制下完成了自动量程转换。电流、电压和电阻的最终测量信号都在单片机的控制下由12位A/D转换器TLC2543进行采集,采集的信号经单片机数据处理后通过LCD(12864)显示出来,测量结果还可以由带有串行EEPROM的CPU存储器和监控器的X25045进行多个数据保存。 关键词:TLC2543 自动量程转换 程控增益放大器 电压 电阻 电流 目录 摘要1 Abstract 2 第一章 绪论 5 1. 1 概述 5 1. 2 智能仪器/仪表国内外发展概况 5 1. 3 课题研究目的及意义 6 第二章 系统结构及功能介绍 8 2. 1 系统功能和性能指标 8 2. 1. 1 仪表功能 8 2. 1. 2 性能指标 8 2. 1. 3 本机特色 8 2. 1. 4 系统使用说明 9 2. 2 系统工作原理概述 9 第三章 方案设计与论证 11 3. 1 量程选择的设计与论证 11

51单片机风扇毕业论文

很简单的问题,最好使用18B20来做;使用一个字节保存温度上限,一个字节保存下限。每次测量之后,将测温结果与这两数字做比较就行了。具体的控制量自己根据要求决定。

学了4年,毕业就做个这个!还跪求!!!!悲哀

本科生有啥钱啊,楼上的,这点钱也想赚。。。既然是本科毕业设计,那还是老老实实自己做吧,也算对自己有个交代

单片机温度控制系统的设计 摘 要 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。 随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会目前,单片机控制器在从生活工具到工业应用的各个领域,例如生活工具的电梯、工业生产中的现场控制仪表、数控机床等。尤其是用单片机控制器改造落后的设备具有性价比高、提高设备的使用寿命、提高设备的自动化程度的特点。 现代工业设计、工程建设及日常生活中常常需要用到温度控制,早期温度控制主要应用于工厂中,例如钢铁的水溶温度,不同等级的钢铁要通过不同温度的铁水来实现,这样就可能有效的利用温度控制来掌握所需要的产品了。 随着社会的发展,人们对食品温度的控制要求也越来越高,对于低温冷藏车的温度控制也就相应的不断提高,而我设计的低温冷藏车就是为了达到这样的温度控制要求而进行设计的。我所采用的控制芯片为AT89C51,此芯片功能强大,能够满足设计要求。通过对电路的设计,对芯片的外围扩展,来达到对冷藏车温度的控制和调节功能。 关键字:AT89C51单片机、温度 、软件设计 目 录 摘 要………………………………………………………………………………6 目 录………………………………………………………………………………7 第一章 绪 论 1-1概述………………………………………………………………………………9 1-2温度控制的总体设计和思路……………………………………………………9 1-3温度控制方框图…………………………………………………………………10 1-4温度巡回测量控制仪基本要求…………………………………………………10 1-5发挥部分…………………………………………………………………………10 第二章 单片机AT89C51的结构和原理 2-1 AT89C51单片机的结构…………………………………………………………11 2-2 AT89C51单片机主要特性………………………………………………………11 2-3 AT89C51单片机引脚功能说明…………………………………………………11 2-4复位电路…………………………………………………………………………12 2-5时钟电路…………………………………………………………………………13 第三章 温度控制的硬件设备 3-1采样系统及温度传感器的选择 3-1-1采样系统…………………………………………………………………15 3-1-2温度传感器的选择………………………………………………………15 3-2集成运放的选择 3-2-1放大系统. ………………………………………………………………16 3-2-2集成运放的选择…………………………………………………………16 3-3控制系统及光电耦合器的选择 3-3-1控制系统…………………………………………………………………17 3-3-2光电耦合器的选择………………………………………………………17 3-4 A/D转换器的选择及介绍………………………………………………………18 3-5 显示系统及显示器的选择 3-5-1显示系统…………………………………………………………………18 3-5-2显示器的选择……………………………………………………………19 3-6电源电路…………………………………………………………………………20 第四章 温度控制的软件设计 4-1程序模块化处理………………………………………………………………22 4-2内RAM资源配置………………………………………………………………22 4-3程序清单 4-3-1程序入口地址……………………………………………………………22 4-3-2主程序……………………………………………………………………22 4-3-3显示程序…………………………………………………………………23 4-3-4定时器中断子程序………………………………………………………26 4-3-5温度检测子程序…………………………………………………………27 4-3-6温度控制子程序…………………………………………………………28 4-3-7报警子程序………………………………………………………………29 4-3-8键盘子程序用于调节设定值……………………………………………29 第五章 调试及小结 5-1单片机温度控制系统的工作原理……………………………………………32 5-2温度检测和A/D转换电路图……………………………………………………32 5-3测试报告………………………………………………………………………32 小 结………………………………………………………………………………34 致 谢………………………………………………………………………………35 参考文献……………………………………………………………………………36

  • 索引序列
  • 51单片机电子琴毕业论文
  • 电子琴单片机毕业论文
  • 单片电子琴毕业论文
  • 电子毕业论文单片机
  • 51单片机风扇毕业论文
  • 返回顶部