首页

> 学术论文知识库

首页 学术论文知识库 问题

单片机毕业设计论文查重好过吗

发布时间:

单片机毕业设计论文查重好过吗

挺严格的,先用免费软件都查查,后边要花钱查

一般只看结果,没人在意程序细节,最多答辩问几个问题

查重的,而且程序一旦重复,改都没办法改。最好的办法是做成图片,或者做成嵌入式word这样,知网查重时就不会查了。

近年来,由于学术不端行为屡见不鲜,所以如今对于查重要求越来越严格,论文查重好过吗?以下就跟paperfre小编一起深入的了解。 许多高校在论文查重时都指定了论文查重系统,大家对论文查重系统也是有一定了解的,论文查重系统主要是检测论文查重率,防止学术不端行为。每个人都希望论文顺利通过查重,在论文写作过程中,一定要坚持原创,否则在查重过程中你的重复性肯定会严重偏高。 在当今的大环境下,整个教育系统对论文的原创性要求很高,大家在论文写作过程中,也要运用一些技巧,有效地降低论文的查重率。关于论文的总体布局,大家一定要按照我们论文查重检测系统的一些规定和要求,比如说,在论文格式上大家必须注意引证的部分,参考格式一定要标注好,如果引用的部分格式没有标注好,这一部分就算重复率。引证时如有大量引用,大家不能原封不动地照抄,引用部分仍需作适当的修改。在修改过程中每个人都必须注意保证句子表达的意思一致,修改过的内容要通顺。 在写作过程中如果大家有发现经常会出现一些常用词汇,对于这些常用词汇大家一定要适当减少,或者用其它同义词来代替,这样可以保证你这篇文章的重复率不会偏高。因此每个人在写作过程中都要注意,现在我们的论文查重很难。

单片机类毕业论文设计

会单片机的,比如参加过竞赛的,一个星期就可以完成毕业设计什么都不会的,除了抄,就是买,要不就来蒙混过关按您的说法,估计你不太会单片机,这个真的自己做,多向老师同学请教,也至少需要数月吧。否则作出“实物”,不太现实。这个过程下来,你也可以了解下单片机是什么东西,看你自己愿意在实验室呆几个月,还是出去找一个适合自己的工作....买一个是有钱人的上策!

单片机类毕业设计 ·基于单片机的变频恒压供水控制系统的设计·基于单片机的恒压供水系统的设计·基于AT89S51单片机的数字温度计设计·基于单片机的温室大棚测控系统研究·基于单片机的温度测量系统设计·基于单片机温湿度控制系统·基于单片机的自动化点焊控制系统·红外声控报警系统的设计·红外防盗报警器的设计·基于AT89S51单片机的出租车计价器·煤气报警器的设计·单片机交通灯控制系统设计--带仿真的

这个课题不难,可以说是单片机的基本知识。单片机可以采用51系列的单片机就足够了,温度测量的终端采用数字温度头,几块钱一个不贵,语音播报系统建议采用个蜂鸣器就可以了,要是要播放录制的WAV格式的语音可能就稍微麻烦点。

单片机的毕业设计,不同的设计要求,难度不一样。你的课题是温度测量与语音播报系统。这个课题的设计思路:(1)温度测量与语音播报系统的电路设计———— 主要需要完成单片机最小系统电路+LCD液晶显示电路+温度传感器采集电路+语音播报电路+报警电路(2)温度测量与语音播报系统的软件程序:———— 主要需要完成LCD液晶显示电路的驱动程序+温度传感器采集电路的驱动程序+语音播报电路的驱动程序+报警电路的驱动程序(3)温度测量与语音播报系统的实物调试———— 购买有关温度测量与语音播报系统的电路设计所需要的电子器件,结合软件程序来调试有关的功能。头像账号也是腾讯账号。有问题可以添加@生活不止有眼前的苟且,还有诗和远方

单片机温度计毕业论文设计

这是我自己用DS18B20做的温度检测程序,复制给你看看,我这是通过串口可以在电脑上的串口助手上显示出实时的温度:#include<>#include<>#define uint unsigned int#define uchar unsigned charsbit ds=P1^0;bit flag;uchar count_t0;float f_temp;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=122;y>0;y--);}void init() // 串口初始化{TMOD=0x21;SCON=0x50;TH0=0x4c;TL0=0x00;TH1=0xf3;TL1=0xf3;EA=1;ET0=1;TR0=1;TR1=1;}void timer0() interrupt 1{TH0=0x4c;TL0=0x00;if(++count_t0>=20){count_t0=0;flag=1;}}void dsreset(){uint i;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bit read_bit(){uint i;bit dat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return dat;}uchar read_byte(){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=read_bit();dat=(j<<7)|(dat>>1);}return dat;}void write_byte(uchar dat){uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb){ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;i=8;while(i>0)i--;ds=1;i++;i++;}}}void begin_change(){dsreset();delay(1);write_byte(0xcc);write_byte(0x44);}float get_temp(){uchar a,b;uint temp;float f_temp;dsreset();delay(1);write_byte(0xcc);write_byte(0xbe);a=read_byte();b=read_byte();temp=b;temp<<=8;temp=temp|a;f_temp=temp*;temp=f_temp*10+;f_temp=f_temp+;return f_temp;}void main(){init();while(1){if(flag==1){flag=0;begin_change();TI=1;printf("The tempeature is %f\n",get_temp());while(!TI);TI=0;}}}

我做的课程设计,用的数码管,也做了protues仿真,你有需要的话,我邮箱是。希望对你有帮助,#include<>sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;/////数码管1断码控制///////////////sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;sbit P32=P3^2;/////数码管2段码控制////////////////sbit up=P3^7;sbit down=P3^6; ////按键操作端口//////////////////sbit P35=P3^5; ////////控制晶闸管端口/////////sbit DQ =P3^3; ///////温度传感器端口///////// #define THCO 0xee#define THLO 0x00unsigned char code duan[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,}; //////////////////////////////////////////int b=0;char pwm=0;int k;char r=0,q=0;static char wendu_1;char hao=20;//////////////////////////////////////////////void delay(unsigned int i){while(i--);}//////////////////////////////////////////Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位delay(8); //稍做延时DQ = 0; //单片机将DQ拉低delay(80); //精确延时 大于 480usDQ = 1; //拉高总线delay(14);x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);}////////////////////////////////////////////ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(4);}return(dat);}////////////////////////////////////////////////WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}//delay(4);}/////////////////////////////////////////////////DS18B20程序读取温度ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*;return(t);}xianshi(){/////////////////当前温度显示///////////////////////////// P11=1; P0=duan[wendu_1/1000]; for(k=0;k<1000;k++); P1=0;P12=1; P0=duan[wendu_1/100%10]; for(k=0;k<1000;k++); P1=0;P13=1; P0=duan[wendu_1%100/10]; for(k=0;k<1000;k++); P1=0;P14=1; P0=duan[wendu_1%10]; for(k=0;k<1000;k++); P1=0; ///////////////////////////目标电压显示/////////////// P15=1; P2=duan[hao/1000]; for(k=0;k<1000;k++); P1=0;P16=1; P2=duan[hao/100%10]; for(k=0;k<1000;k++); P1=0;P17=1; P2=duan[hao%100/10]; for(k=0;k<1000;k++); P1=0;P32=1; P2=duan[hao%10]; for(k=0;k<1000;k++); P32=0;////////////////////////////////////////////////////////// }/////////////////////////////////////////////////////////// main(void){ P11=0; P12=0; P13=0; P14=0; P15=0; P16=0; P17=0; P32=0; P35=0; /////////////////////////////////////////////////////////// while(1){ wendu_1=ReadTemperature()/16;//读温度 xianshi(); ///显示系统数据/////////////////////////////////////操作函数//////////////////////////////////// if(down==0) {hao--;} if(up==0){hao++;} ///////////////////////////////////////////////////////////////////hao为理想温度/////wendu_1为实际环境温度/////////////////////////////////////////////////////////////////P35为高时 led灯工作///////////////////////////////////// P35=0; pwm=hao-wendu_1; if(pwm>0) {P35=1;} if(pwm<0) {P35=0;} if(pwm==0) {P35=0;}///////////////////////////////////////////////////////////////// }}

AT89C51单片机那可以的要求的撒

#include <>#define uchar unsigned char#define uint unsigned intsbit DS=P2^2; //define interfaceuint temp; // variable of temperatureuchar flag1; // sign of the result positive or negativesbit dula=P2^6;sbit wela=P2^7;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef};void delay(uint count) //delay{ uint i; while(count) { i=200; while(i>0) i--; count--; }}void dsreset(void) //send reset and initialization command{ uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--;}bit tmpreadbit(void) //read a bit{ uint i; bit dat; DS=0;i++; //i++ for delay DS=1;i++;i++; dat=DS; i=8;while(i>0)i--; return (dat);}uchar tmpread(void) //read a byte date{ uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tmpreadbit(); dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里 } return(dat);}void tmpwritebyte(uchar dat) //write a byte to ds18b20{ uint i; uchar j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) //write 1 { DS=0; i++;i++; DS=1; i=8;while(i>0)i--; } else { DS=0; //write 0 i=8;while(i>0)i--; DS=1; i++;i++; } }}void tmpchange(void) //DS18B20 begin change{ dsreset(); delay(1); tmpwritebyte(0xcc); // address all drivers on bus tmpwritebyte(0x44); // initiates a single temperature conversion}uint tmp() //get the temperature{ float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp<<=8; //two byte compose a int variable temp=temp|a; tt=temp*; temp=tt*10+; return temp;}void display(uint temp) //显示程序{ uchar A1,A2,A2t,A3; A1=temp/100; A2t=temp%100; A2=A2t/10; A3=A2t%10; dula=0; P0=table[A1]; //显示百位 dula=1; dula=0; wela=0; P0=0x7e; wela=1; wela=0; delay(1); dula=0; P0=table1[A2]; //显示十位 dula=1; dula=0; wela=0; P0=0x7d; wela=1; wela=0; delay(1); P0=table[A3]; //显示个位 dula=1; dula=0; P0=0x7b; wela=1; wela=0; delay(1);}void main(){ uchar a; do { tmpchange(); for(a=10;a>0;a--) { display(tmp()); } } while(1);}

单片机课程设计毕业论文

随着人们自身素质提升,报告的用途越来越大,我们在写报告的时候要注意逻辑的合理性。那么报告应该怎么写才合适呢?以下是我为大家整理的电子信息工程毕业论文开题报告,希望能够帮助到大家。

毕业设计的内容和意义

毕业设计内容:

1.熟悉单片机系统设计方法,独立完成电路和程序设计。

2.用PROTEUS进行系统调试和仿真。

3.设计、制作并调试硬件系统。

4.完成相关软件文档资料。

毕业设计应完成的技术文件:

字以上毕业设计开题报告,2000字以上英文参考文献的中文译文。

2.毕业设计论文(15000字以上)。

3.提供设计原理图和相应程序。

毕业设计意义:

随着时代的发展,现代化建设步伐不断加快,对道路照明及道路亮化工程需求也更大,而能源的供需矛盾也越来越突出,节电节能、绿色照明的要求越来越迫切,越来越高。现在再采用那些传统的手控、钟控照明系统的方法已不能满足要求。如何充分利用高科技手段解决上述矛盾也就成为当前照明控制领域一个新的和紧要的课题。路灯照明是日常生活中必不可少的公共设施。路灯照明耗电量约占总耗电量的15%,全国各地无不面对电力紧张带来的各种问题。面对供电紧张形势,路灯巡查对于国家来讲是一项需要耗费大量人力的工作,各种临时应急节电措施被广泛采用:夜晚间隔关灯、调整路灯开关的时间、在用电紧张的日子里关闭景观照明等等,当用电高峰过后,这些措施可能就被束之高阁,明年的用电高峰来临,一切又会重新开始。这样的节电措施,在缓解用电紧张的同时,却带来资源的浪费和对人们日常生活的负面影响。缓解用电紧张的最佳和有效的办法是对用电实施智能化管理,减少浪费,使我们的每一度电都能物尽其用!启用先进路灯监控系统,可以对路灯实施统一启闭,对夜间照明系统和路灯的实时监控和管理,确保高效稳定,全天候运行,控制不必要的“全夜灯照明”,有效节约电能消耗。对于学校公共照明系统来说,采用智能化的管理系统是实现能源节约、减少资源浪费、满足人们生活要求、显示现代化校园的科学解决方案。

目前已有一小部分校园参考了公路路灯的节能措施,到了后半夜将电灯亮度调低,或采取等间隔亮灯的方式来节约用电,但是这样一个方法却带来路灯过亮或过暗的问题:

1.控制落后

开关灯方式落后:当前路灯控制,还停留在手动、光控、钟控方式。受季节、天气和人为因素影响,自动化管理水平低,经常该亮时不亮,该灭时不灭,极易造成极大的能源浪费,增加了财政负担。

2.操控不便

调节操控能力不足,无法远程修改开关灯时间,不能根据实际情况(天气突变,重大事件,节日)及时校时和修改开关灯时间。

3.灯况不明

不具备路灯状况监测,现有的照明设施管理工作主要采用人工巡查模式,不仅工作量大,还浪费人力、物力、财力。故障依据主要来源于巡视人员上报和市民投诉缺乏主动性、及时性和可靠性,不能实时、准确、全面地监控全城的路灯运行状况缺乏有效的故障预警机制。

4.不能很好的应用在前半夜

因为其前半夜6个小时以上全部采取正常亮度,这样就会出现在没有行人、车辆经过校园道路时的电力资源浪费这一现象,而除了晚上6点-9点人车流高峰期以外其余时间人车流量确实相对较少,所以我们认为校园照明有更大的节能潜力。

针对以上现有节能情况分析,我们设计了一种高效率的智能节能路灯,路灯控制器内应同时设有光控和时控模块,该模块先服从光度控制,再服从时间控制,能满足达到一定光度开关路灯和达到特定时间开关路灯的要求。同时,我们认为路灯应改进为为红外感测路灯。针对校园人、车流量的高低峰时段对路灯分为节能状态和标准状态。在人车流量的高峰期如清晨上班时间和傍晚18点—21点,路灯要保持持续标准亮度,而在深夜路灯将转为节能状态,通过红外感测,只在有人、车通过时才变亮。使用红外感测,与声控相比,感应精度更高,避免了一些噪音而使灯无效闪烁。将所有的路灯连接到单片机上,单片机和计算机通信,用计算机控制路灯工作状态。可设定自动控制方式和人工控制方式。自动控制方式可根据地太阳活动规律,并结合实际情况控制路灯的工作方式。当夜幕降临,或光线已经较暗时,虽然未达到设定时间,也能自动开启。交通高峰期,应达到持续满额亮度;高峰期后,进入红外感应,实现智能和节能的控制。人工控制方式可随时设定开关时间、路灯开启比例或单独控制路灯的开与关。另外通过路灯的工作状态可对路灯损坏实现实时报警,并可显示具体的位置,提醒维修人员及时维修,中心控制器带有时钟芯片,该时钟芯片带有EEPROM,可以保持单片机工作参数,即使通信发生错误,路灯也能按照最后的程序进行工作。

文献综述

一、设计方案

本设计选用STC89C52单片机作为系统的核心部件,实现系统的控制和处理的功能。各模块所包含的功能如下:(1)红外模块:夜晚进行检测是否有行人。(2)显示模块12864:显示相应的时间和日期信息。(3)时钟模块:手动切换时间,自己设定开灯时间。(4)光敏电阻传感器模块:用于检测周围环境光强度,若光强低于标准值则开启路灯。

二、硬件电路设计

1.主控制器STC89C52

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

2.红外模块

本设计采用HC-SR501红外模块,它是基于红外线技术的'自动控制模块,采用德国原装进口LHI778探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。该模块用于检测夜晚是否有行人路过,因此产生高地电平,并通过软件的方法来处理电平信号。

3.光敏电阻传感器模块

本设计采用3线制光敏电阻传感器模块,是一款灵敏型光敏电阻传感器,用比较器输出,信号干净,波形好,驱动能力强,超过15mA。同时配有可调电位器可调节检测光线亮度,用于检测周围环境光强度,若光强低于标准值则开启路灯。

4.显示模块

本设计采用液晶显示器12864显示时间和日期。液晶显示屏的第一行显示年月日,第二行显示的实时时钟,硬件电路中的12864的数据端口接到单片机P1口,数码管的4,5,6管脚分别与单片机的相连,通过单片机的信息处理,从而在液晶显示屏上显示各段信息。

四、软件设计

主程序主要设计各个部分子程序的调用,子程序有时钟程序和显示子程序两部分。程序初始化后,红外模块子程序判断有没有行人,输出一个信号,经软件处理。12864液晶显示子程序主要通过接收主程序发出的信号,将其设置输入为模式子函数形成,并初始化LCD子函数,显示日期子函数,显示时间子函数。

五、仿真实现

该系统的软件仿真采用Proteus软件,当系统开机时,系统进入初始化界面,液晶显示第一行为时间信息,第二行为日期信息,当白天的时候,打开光强和红外判断,同时成立才开启路灯。设定按钮可手动改变时间信息。

参考文献:

1.胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社.

2.周润景等.Proteus在MCS-51&ARM7系统中的应用[M].北京:电子工业出版社.

3.侯玉宝等.基于Proteus的51系列单片机设计与仿真[M].北京:电子工业出版社.

4.张靖武等.单片机系统的PROTEUS设计与仿真[M].北京:电子工业出版社.

5.楼然苗等.单片机课程设计指导[M].北京:北京航空航天大学出版社.

6.周向红等.51系列单片机应用与实践教程[M].北京:北京航空航天大学出版社.

7.李林功.单片机原理与应用—基于实例驱动和Proteus仿真[M].北京:科学出版社.

8.薛钧义,张彦斌.MCS-系列单片微机计算机及其应用[M].西安:西安交通大学出版社.1997

9.何利民.单片机应用系统设计.[M]北京航空航天大学出版社.1995

研究内容

红外模块的使用

单片机读取时钟芯片

用液晶显示相关数据

绘出逻辑图

研究计划

第一周——第二周:下毕业设计任务书,明确设计要求。查阅、搜集毕业设计相关资料。着手翻译相关英文资料,并熟悉PROTEUS软件和单片机的相关开发知识。

第三周——第四周:对查阅的文献资料归纳综述撰写开题报告。完成毕业设计需求分析,确定系统框图。

第五周——第六周:方案论证,设计硬件电路。分析设计的电路,提出软件设计思路;毕业设计初期检查。

第七周——第八周:在PROTEUS中实现软、硬件设计与调试。分析调试中的问题,改进并重新调试达到技术要求。

第九周——第十周:软、硬件电路进行整体测试,修改并完善程序;毕业设计中期检查。

第十一周——第十二周:设计并制作印制电路板;完成硬件的安装和调试。完成整个系统的软件、硬件的调试。

第十三周——第十四周:研究工作总结,撰写毕业论文。

第十五周——第十六周:论文修改及评阅,论文答辩。

特色与创新

路灯控制器内应同时设有光控和时控模块,该模块先服从光度控制,再服从时间控制,能满足达到一定光度开关路灯和达到特定时间开关路灯的要求。同时,路灯为红外感测路灯。针对校园人、车流量的高低峰时段对路灯分为节能状态和标准状态。在人车流量的高峰期如清晨上班时间和傍晚18点—23点,路灯要保持持续标准亮度,而在深夜路灯将转为节能状态,通过红外感测,只在有人、车通过时才变亮。

不知道楼主解决了问题没,我这有一些这方面的论文,给你参考一下吧..单片机应用系统中掉电保护电路的设计研究中文摘要:本文介绍了单片机应用系统中掉电保护的基本原理与设计方法,给出了几种掉电保护电路的设计实例。摘自墨客论文网:基于单片机控制的数字脉冲电火花电源设计中文摘要:根据电火花沉积工艺的特点,设计了基于16位单片机80C196KC控制的脉冲电火花电源。主电路中,采用了半桥逆变电路实现功率的变送。控制电路中,通过PWM脉宽调制实现电压调节。设计采用了多种抗干扰措施,提高了电源系统工作的稳定性。摘自墨客论文网:基于单片机的液晶触摸屏控制系统中文摘要:以触摸屏控制芯片ADS7843和液晶显示控制器SED1335为例,介绍了触摸屏的结构及工作原理,并以实例说明单片机控制触摸屏的典型应用电路和软件。摘自墨客论文网:单片机技术在智能交流接触器实时调控中的应用研究中文摘要:通过对智能交流接触器零电流分断控制原理的分析,发现其零电流分断失败的原因,并在此基础上提出将单片机实时控制系统嵌入传统接触器中,实现零电流分断的智能“无弧”接触器。摘自墨客论文网:于PIC单片机的电动自行车控制系统设计中文摘要:介绍以单片机PIC16F72为核心的电动自行车用无刷直流电动机控制系统的设计。该系统采用电流与速度双闭环控制的结构,其中电流调节器用传统的PI调节器,速度调节器为改进的PI调节器。实验验证了此设计方案的可行性和优越性,即控制电路简洁,器件少,成本低,保护措施可靠,提高了系统的控制精度。该设计对无刷直流电机在其他领域的应用有一定的帮助和借鉴,具有广泛的现实意义。该系统速度环采用改进型的PI调节器控制,且通过软件运用算法测速,实现转速反馈,既简化电路又节省成本。摘自墨客论文网:

程序设计内容

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

              }  

         }

    }

}

一般课题设计,毕业设计做到温度的都使用到DS18B20传感器。我的blog,欢迎学习交流!

单片机通信毕业论文设计

单片机的毕业设计,不同的设计要求,难度不一样。你的课题是温度测量与语音播报系统。这个课题的设计思路:(1)温度测量与语音播报系统的电路设计———— 主要需要完成单片机最小系统电路+LCD液晶显示电路+温度传感器采集电路+语音播报电路+报警电路(2)温度测量与语音播报系统的软件程序:———— 主要需要完成LCD液晶显示电路的驱动程序+温度传感器采集电路的驱动程序+语音播报电路的驱动程序+报警电路的驱动程序(3)温度测量与语音播报系统的实物调试———— 购买有关温度测量与语音播报系统的电路设计所需要的电子器件,结合软件程序来调试有关的功能。头像账号也是腾讯账号。有问题可以添加@生活不止有眼前的苟且,还有诗和远方

这个课题不难,可以说是单片机的基本知识。单片机可以采用51系列的单片机就足够了,温度测量的终端采用数字温度头,几块钱一个不贵,语音播报系统建议采用个蜂鸣器就可以了,要是要播放录制的WAV格式的语音可能就稍微麻烦点。

以上我都会,要来找我,我发编程软件和仿真软件给你和程序以及电路图

你可以上网搜一搜有关单片机无线、红外、总线、串口通信的文章,找找相关的读一读。你的同步/异步、编解码、TDMA/CDMA、加密等等都用得上另外论文题目不都是指导教师给你的吗?你有题目没有啊?你要是没接触过单片机和硬件电路的话,还是不要写这个了,现在只有几个月的时间了,对你论文答辩不利高分就给偶吧,以身相许就免了,这可是偶GF的禁令啊

相关百科

热门百科

首页
发表服务