爽就一个字主要是不累眼睛
到看一下吧,这里有讲解51单片机的
#include<>#include""#define uint unsigned int#define uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;//flag用于读取头文件中的温度值,和显示温度值#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)sbit rs=P1^0;sbit en=P1^2;sbit rw=P1^1; //如果硬件上rw接地,就不用写这句和后面的rw=0了sbit led=P3^7; //LCD背光开关//DS1302时钟芯片与C51之间的引脚连接定义sbit IO=P2^2;sbit SCLK=P2^1;sbit RST=P2^2;sbit ACC0=ACC^0;sbit ACC7=ACC^7;/************************************************************ACC累加器= 就是ACC的第0位。Acc可以位寻址。累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。 ***************************************************************///校时按键与C51的引脚连接定义sbit key1=P2^4; //设置键sbit key2=P2^5; //加键sbit key3=P2^6; //减键sbit buzzer=P2^0;//蜂鸣器,通过三极管9012驱动,端口低电平响/**************************************************************/uchar code tab1[]={"20 - - "}; //年显示的固定字符uchar code tab2[]={" : : "};//时间显示的固定字符//延时函数,后面经常调用void delay(uint xms)//延时函数,有参函数{ uint x,y; for(x=xms;x>0;x--) for(y=120;y>0;y--);}/********液晶写入指令函数与写入数据函数,以后可调用**************//*在这个程序中,液晶写入有关函数会在DS1302的函数中调用,所以液晶程序要放在前面*/write_1602com(uchar com)//****液晶写入指令函数****{ rs=0;//数据/指令选择置为指令 rw=0; //读写选择置为写 P0=com;//送入数据 delay(1); en=1;//拉高使能端,为制造有效的下降沿做准备 delay(1); en=0;//en由高变低,产生下降沿,液晶执行命令}write_1602dat(uchar dat)//***液晶写入数据函数****{ rs=1;//数据/指令选择置为数据 rw=0; //读写选择置为写 P0=dat;//送入数据 delay(1); en=1; //en置高电平,为制造下降沿做准备 delay(1); en=0; //en由高变低,产生下降沿,液晶执行命令}lcd_init()//***液晶初始化函数****{ write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com(0x0c);//开显示不显示光标 write_1602com(0x06);//整屏不移动,光标自动右移 write_1602com(0x01);//清显示 write_1602com(yh+1);//日历显示固定符号从第一行第1个位置之后开始显示 for(a=0;a<14;a++) { write_1602dat(tab1[a]);//向液晶屏写日历显示的固定符号部分 //delay(3); } write_1602com(er+2);//时间显示固定符号写入位置,从第2个位置后开始显示 for(a=0;a<8;a++) { write_1602dat(tab2[a]);//写显示时间固定符号,两个冒号 //delay(3); }}/*********************over***********************//***************DS1302有关子函数********************/void write_byte(uchar dat)//写一个字节{ ACC=dat; RST=1; for(a=8;a>0;a--) { IO=ACC0; SCLK=0; SCLK=1; ACC=ACC>>1; }}uchar read_byte()//读一个字节{ RST=1; for(a=8;a>0;a--) { ACC7=IO; SCLK=1; SCLK=0; ACC=ACC>>1; } return (ACC);}//----------------------------------------void write_1302(uchar add,uchar dat)//向1302芯片写函数,指定写入地址,数据{ RST=0; SCLK=0; RST=1; write_byte(add); write_byte(dat); SCLK=1; RST=0;}uchar read_1302(uchar add)//从1302读数据函数,指定读取数据来源地址{ uchar temp; RST=0; SCLK=0; RST=1; write_byte(add); temp=read_byte(); SCLK=1; RST=0; return(temp);}uchar BCD_Decimal(uchar bcd)//BCD码转十进制函数,输入BCD,返回十进制{ uchar Decimal; Decimal=bcd>>4; return(Decimal=Decimal*10+(bcd&=0x0F));}//--------------------------------------void ds1302_init() //1302芯片初始化子函数(2010-01-07,12:00:00,week4){RST=0;SCLK=0;write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,0x00); //向DS1302内写秒寄存器80H写入初始秒数据00write_1302(0x82,0x00);//向DS1302内写分寄存器82H写入初始分数据00write_1302(0x84,0x12);//向DS1302内写小时寄存器84H写入初始小时数据12write_1302(0x8a,0x04);//向DS1302内写周寄存器8aH写入初始周数据4write_1302(0x86,0x07);//向DS1302内写日期寄存器86H写入初始日期数据07write_1302(0x88,0x01);//向DS1302内写月份寄存器88H写入初始月份数据01write_1302(0x8c,0x10);//向DS1302内写年份寄存器8cH写入初始年份数据10write_1302(0x8e,0x80); //打开写保护}//------------------------------------//温度显示子函数void write_temp(uchar add,uchar dat)//向LCD写温度数据,并指定显示位置{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(er+add);//er是头文件规定的值0x80+0x40 write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0xdf);//显示温度的小圆圈符号,0xdf是液晶屏字符库的该符号地址码 write_1602dat(0x43); //显示"C"符号,0x43是液晶屏字符库里大写C的地址码 }//------------------------------------//时分秒显示子函数void write_sfm(uchar add,uchar dat)//向LCD写时分秒,有显示位置加、现示数据,两个参数{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(er+add);//er是头文件规定的值0x80+0x40 write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 }//-------------------------------------//年月日显示子函数void write_nyr(uchar add,uchar dat)//向LCD写年月日,有显示位置加数、显示数据,两个参数{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(yh+add);//设定显示位置为第一个位置+add write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 }//-------------------------------------------void write_week(uchar week)//写星期函数{ write_1602com(yh+0x0c);//星期字符的显示位置 switch(week) { case 1:write_1602dat('M');//星期数为1时,显示 write_1602dat('O'); write_1602dat('N'); break; case 2:write_1602dat('T');//星期数据为2时显示 write_1602dat('U'); write_1602dat('E'); break; case 3:write_1602dat('W');//星期数据为3时显示 write_1602dat('E'); write_1602dat('D'); break; case 4:write_1602dat('T');//星期数据为4是显示 write_1602dat('H'); write_1602dat('U'); break; case 5:write_1602dat('F');//星期数据为5时显示 write_1602dat('R'); write_1602dat('I'); break; case 6:write_1602dat('S');//星期数据为6时显示 write_1602dat('T'); write_1602dat('A'); break; case 7:write_1602dat('S');//星期数据为7时显示 write_1602dat('U'); write_1602dat('N'); break;}}//****************键盘扫描有关函数**********************void keyscan(){ if(key1==0)//---------------key1为功能键(设置键)-------------------- { delay(9);//延时,用于消抖动 if(key1==0)//延时后再次确认按键按下 { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key1); key1n++; if(key1n==9) key1n=1;//设置按键共有秒、分、时、星期、日、月、年、返回,8个功能循环 switch(key1n) { case 1: TR0=0;//关闭定时器 //TR1=0; write_1602com(er+0x09);//设置按键按动一次,秒位置显示光标 write_1602com(0x0f);//设置光标为闪烁 temp=(miao)/10*16+(miao)%10;//秒数据写入DS1302 write_1302(0x8e,0x00); write_1302(0x80,0x80|temp);//miao write_1302(0x8e,0x80); break; case 2: write_1602com(er+6);//按2次fen位置显示光标 //write_1602com(0x0f); break; case 3: write_1602com(er+3);//按动3次,shi //write_1602com(0x0f); break; case 4: write_1602com(yh+0x0e);//按动4次,week //write_1602com(0x0f); break; case 5: write_1602com(yh+0x0a);//按动5次,ri //write_1602com(0x0f); break; case 6: write_1602com(yh+0x07);//按动6次,yue //write_1602com(0x0f); break; case 7: write_1602com(yh+0x04);//按动7次,nian //write_1602com(0x0f); break; case 8: write_1602com(0x0c);//按动到第8次,设置光标不闪烁 TR0=1;//打开定时器 temp=(miao)/10*16+(miao)%10; write_1302(0x8e,0x00); write_1302(0x80,0x00|temp);//miao数据写入DS1302 write_1302(0x8e,0x80); break; }} }//------------------------------加键key2---------------------------- if(key1n!=0)//当key1按下以下。再按以下键才有效(按键次数不等于零) { if(key2==0) //上调键 { delay(10); if(key2==0) { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key2); switch(key1n) { case 1:miao++;//设置键按动1次,调秒 if(miao==60) miao=0;//秒超过59,再加1,就归零 write_sfm(0x08,miao);//令LCD在正确位置显示"加"设定好的秒数 temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,光标自动右移,所以要指定返回 //write_1602com(0x0b); break; case 2:fen++; if(fen==60) fen=0; write_sfm(0x05,fen);//令LCD在正确位置显示"加"设定好的分数据 temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi++; if(shi==24) shi=0; write_sfm(2,shi);//令LCD在正确的位置显示"加"设定好的小时数据 temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 4:week++; if(week==8) week=1; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:ri++; if(ri==32) ri=1; write_nyr(9,ri);//令LCD在正确的位置显示"加"设定好的日期数据 temp=(ri)/10*16+(ri)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 6:yue++; if(yue==13) yue=1; write_nyr(6,yue);//令LCD在正确的位置显示"加"设定好的月份数据 temp=(yue)/10*16+(yue)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 7:nian++; if(nian==100) nian=0; write_nyr(3,nian);//令LCD在正确的位置显示"加"设定好的年份数据 temp=(nian)/10*16+(nian)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break;} } } //------------------减键key3,各句功能参照'加键'注释--------------- if(key3==0) { delay(10);//调延时,消抖动 if(key3==0) { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key3); switch(key1n) { case 1:miao--; if(miao==-1) miao=59;//秒数据减到-1时自动变成59 write_sfm(0x08,miao);//在LCD的正确位置显示改变后新的秒数 temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 //write_1602com(0x0b); break; case 2:fen--; if(fen==-1) fen=59; write_sfm(5,fen); temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi--; if(shi==-1) shi=23; write_sfm(2,shi); temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 4:week--; if(week==0) week=7; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:ri--; if(ri==0) ri=31; write_nyr(9,ri); temp=(ri)/10*16+(ri)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 6:yue--; if(yue==0) yue=12; write_nyr(6,yue); temp=(yue)/10*16+(yue)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 7:nian--; if(nian==-1) nian=99; write_nyr(3,nian); temp=(nian)/10*16+(nian)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break;} } } }}//-------------------------------void init() //定时器、计数器设置函数{ TMOD=0x11; //指定定时/计数器的工作方式为3 TH0=0; //定时器T0的高四位=0 TL0=0; //定时器T0的低四位=0 EA=1; //系统允许有开放的中断 ET0=1; //允许T0中断 TR0=1; //开启中断,启动定时器}//*******************主函数**************************//***************************************************void main(){ lcd_init(); //调用液晶屏初始化子函数 ds1302_init(); //调用DS1302时钟的初始化子函数 init(); //调用定时计数器的设置子函数 led=0; //打开LCD的背光电源 buzzer=0;//蜂鸣器长响一次 delay(80); buzzer=1; while(1) //无限循环下面的语句: { keyscan(); //调用键盘扫描子函数 }}void timer0() interrupt 1 //取得并显示日历和时间{ //Init_DS18B20();//温度传感器DS18b2初始化子函数,在头文件中 flag=ReadTemperature();//将18b2头文件运行返回的函数结果送到变量FLAG中,用于显示 //读取秒时分周日月年七个数据(DS1302的读寄存器与写寄存器不一样):miao = BCD_Decimal(read_1302(0x81)); fen = BCD_Decimal(read_1302(0x83)); shi = BCD_Decimal(read_1302(0x85)); ri = BCD_Decimal(read_1302(0x87)); yue = BCD_Decimal(read_1302(0x89)); nian=BCD_Decimal(read_1302(0x8d)); week=BCD_Decimal(read_1302(0x8b)); //显示温度、秒、时、分数据: write_temp(12,flag);//显示温度,从第二行第12个字符后开始显示 write_sfm(8,miao);//秒,从第二行第8个字后开始显示(调用时分秒显示子函数) write_sfm(5,fen);//分,从第二行第5个字符后开始显示 write_sfm(2,shi);//小时,从第二行第2个字符后开始显示 //显示日、月、年数据: write_nyr(9,ri);//日期,从第二行第9个字符后开始显示 write_nyr(6,yue);//月份,从第二行第6个字符后开始显示 write_nyr(3,nian);//年,从第二行第3个字符后开始显示 write_week(week);}
这个网址你可以看下,可以先用Proteus仿真一下看效果。 关于制作16*16二极管显示点阵元件,16*16=256个LED 一个双层板(焊这256个LED) 【当然,可以买现成的8*8的点阵代替自己手动焊点阵,然后拼在一起,这样减少很多工作】 一个74LS154(4线16线译码器) 2个74LS373(驱动LED的行或列) 一个单片机,入门的就用AT89S52吧。 再就是单片机最小系统中的分立元件这些。就够了
那个(电子商务评论)你可以尝试看下
写过好多次了。需要的话Q我
其中这些有开题报告 1. 用单片机进行温度的控制及LCD显示系统的设计 2. 基于MultiSim 8的高频电路仿真技术 3. 简易数字电压表的设计 4. 虚拟信号发生器设计及远程实现 5. 智能物业管理器的设计 6. 信号高精度测频方法设计 7. 三相电机的保护控制系统的分析与研究 8. 温度监控系统设计 9. 数字式温度计的设计 10. 全自动节水灌溉系统--硬件部分 11. 电子时钟的设计 12. 全自动电压表的设计 13. 脉冲调宽型伺服放大器的设计 14. 基于虚拟仪器技术的数字滤波及频率测试 15. 基于无线传输技术的室温控制系统设计——温度控制器硬件设计 16. 温度箱模拟控制系统 17. 基于无线传输技术的室温控制系统设计——温度控制器软件设计 18. 基于微控制器的电容器储能放电系统设计 19. 基于机器视觉的构件表面缺陷特征提取 20. 基于单片机的语音提示测温系统的研究 21. 基于单片机的步进电机的控制 22. 单片机的数字钟设计 23. 基于单片机的数字电压表的设计 24. 基于单片机的交流调功器设计 25. 基于SPI通信方式的多通道信号采集器设计 26. 基于LabVIEW虚拟频谱分析仪的设计 27. 功率因数校正器的设计 28. 高精度电容电感测量系统设计 29. 电表智能管理装置的设计 30. 基于Labview的虚拟数字钟设计 31. 超声波测距语音提示系统的研究 32. 斩控式交流电子调压器设计 33. 基于单片机的脉象信号采集系统设计 34. 基于单片机的简易智能小车设计 35. 基于FPGA的18路智力竞赛电子抢答器设计 36. 基于EDA技术的智力竞赛抢答器的设计 37. 基于EDA技术的数字电子钟设计 38. 基于EDA的计算器的设计 39. 基于DDS的频率特性测试仪设计 40. 基于CPLD直流电机控制系统的设计 41. 单色显示屏的设计 42. 扩音电话机的设计 43. 基于单片机的低频信号发生器设计 44. 35KV变电所及配电线路的设计 45. 10kV变电所及低压配电系统的设计 46. 6Kv变电所及低压配电系统的设计 47. 多功能充电器的硬件开发 48. 镍镉电池智能充电器的设计 49. 基于MCS-51单片机的变色灯控制系统设计与实现 50. 智能住宅的功能设计与实现原理研究 51. 用IC卡实现门禁管理系统 52. 变电站综合自动化系统研究 53. 单片机步进电机转速控制器的设计 54. 无刷直流电机数字控制系统的研究与设计 55. 液位控制系统研究与设计 56. 智能红外遥控暖风机设计 57. 基于单片机的多点无线温度监控系统 58. 蔬菜公司恒温库微机监控系统 59. 数字触发提升机控制系统 60. 仓储用多点温湿度测量系统 61. 矿井提升机装置的设计 62. 中频电源的设计 63. 数字PWM直流调速系统的设计 64. 基于ARM的嵌入式温度控制系统的设计 65. 锅炉控制系统的研究与设计 66. 动力电池充电系统设计 67. 多电量采集系统的设计与实现 68. PWM及单片机在按摩机中的应用 69. IC卡预付费煤气表的设计 70. 基于单片机的电子音乐门铃的设计 71. 新型出租车计价器控制电路的设计 72. 单片机太阳能热水器测控仪的设计 73. LED点阵显示屏-软件设计 74. 双容液位串级控制系统的设计与研究 75. 三电平Buck直流变换器主电路的研究 76. 基于PROTEUS软件的实验板仿真 77. 基于16位单片机的串口数据采集 78. 电机学课程CAI课件开发 79. 单片机教学实验板——软件设计 80. 63A三极交流接触器设计 81. 总线式智能PID控制仪 82. 自动售报机的设计 83. 断路器的设计 84. 基于MATLAB的水轮发电机调速系统仿真 85. 数控缠绕机树脂含量自控系统的设计 86. 软胶囊的单片机温度控制(硬件设计) 87. 空调温度控制单元的设计 88. 基于人工神经网络对谐波鉴幅 89. 基于单片机的鱼用投饵机自动控制系统的设计 90. 锅炉汽包水位控制系统 91. 基于单片机的玻璃管加热控制系统设计 92. 基于AT89C51单片机的号音自动播放器设计 93. 基于单片机的普通铣床数控化设计 94. 基于AT89C51单片机的电源切换控制器的设计 95. 基于51单片机的液晶显示器设计 96. 超声波测距仪的设计及其在倒车技术上的应用 97. 智能多路数据采集系统设计 98. 公交车报站系统的设计 99. 基于RS485总线的远程双向数据通信系统的设计 100. 宾馆客房环境检测系统 101. 智能充电器的设计与制作 102. 基于单片机的户式中央空调器温度测控系统设计 103. 基于单片机的乳粉包装称重控制系统设计 104. 基于单片机的定量物料自动配比系统 105. 基于单片机的液位检测 106. 基于单片机的水位控制系统设计 107. 基于VDMOS调速实验系统主电路模板的设计与开发 108. 基于IGBT-IPM的调速实验系统驱动模板的设计与开发 109. HEF4752为核心的交流调速系统控制电路模板的设计与开发 110. 基于87C196MC交流调速实验系统软件的设计与开发 111. 87C196MC单片机最小系统单板电路模板的设计与开发 112. 电子密码锁控制电路设计 113. 基于单片机的数字式温度计设计 114. 列车测速报警系统 115. 基于单片机的步进电机控制系统 116. 语音控制小汽车控制系统设计 117. 智能型客车超载检测系统的设计 118. 直流机组电动机设计 119. 单片机控制交通灯设计 120. 中型电弧炉单片机控制系统设计 121. 中频淬火电气控制系统设计 122. 新型洗浴器设计 123. 新型电磁开水炉设计 124. 基于电流型逆变器的中频冶炼电气设计 125. 6KW电磁采暖炉电气设计 126. 基于CD4017电平显示器 127. 多路智力抢答器设计 128. 智能型充电器的电源和显示的设计 129. 基于单片机的温度测量系统的设计 130. 龙门刨床的可逆直流调速系统的设计 131. 音频信号分析仪 132. 基于单片机的机械通风控制器设计 133. 论电气设计中低压交流接触器的使用 134. 论人工智能的现状与发展方向 135. 浅论配电系统的保护与选择 136. 浅论扬州帝一电器的供电系统 137. 浅谈光纤光缆和通信电缆 138. 浅谈数据通信及其应用前景 139. 浅谈塑料光纤传光原理 140. 浅析数字信号的载波传输 141. 浅析通信原理中的增量控制 142. 太阳能热水器水温水位测控仪分析 143. 电气设备的漏电保护及接地 144. 论“人工智能”中的知识获取技术 145. 论PLC应用及使用中应注意的问题 146. 论传感器使用中的抗干扰技术 147. 论电测技术中的抗干扰问题 148. 论高频电路的频谱线性搬移 149. 论高频反馈控制电路 150. 论工厂导线和电缆截面的选择 151. 论工厂供电系统的运行及管理 152. 论供电系统的防雷、接地保护及电气安全 153. 论交流变频调速系统 154. 论人工智能中的知识表示技术 155. 论双闭环无静差调速系统 156. 论特殊应用类型的传感器 157. 论无损探伤的特点 158. 论在线检测 159. 论专家系统 160. 论自动测试系统设计的几个问题 161. 浅析时分复用的基本原理 162. 试论配电系统设计方案的比较 163. 试论特殊条件下交流接触器的选用 164. 自动选台立体声调频收音机 165. 基于立体声调频收音机的研究 166. 基于环绕立体声转接器的设计 167. 基于红外线报警系统的研究 168. 多种变化彩灯 169. 单片机音乐演奏控制器设计 170. 单目视觉车道偏离报警系统 171. 基于单片机的波形发生器设计 172. 智能毫伏表的设计 173. 微机型高压电网继电保护系统的设计 174. 基于单片机mega16L的煤气报警器的设计 175. 串行显示的步进电机单片机控制系统 176. 编码发射与接收报警系统设计:看护机 177. 编码发射接收报警设计:爱情鸟 178. 红外快速检测人体温度装置的设计与研制 179. 用单片机控制的多功能门铃 180. 电气控制线路的设计原则 181. 电气设备的选择与校验 182. 浅论10KV供电系统的继电保护的设计方案 183. 智能编码电控锁设计 184. 自行车里程,速度计的设计 185. 等精度频率计的设计 186. 基于嵌入式系统的原油含水分析仪的硬件与人机界面设计 187. 数字电子钟的设计与制作 188. 温度报警器的电路设计与制作 189. 数字电子钟的电路设计 190. 鸡舍电子智能补光器的设计 191. 电子密码锁的电路设计与制作 192. 单片机控制电梯系统的设计 193. 常用电器维修方法综述 194. 控制式智能计热表的设计 195. 无线射频识别系统发射接收硬件电路的设计 196. 基于单片机PIC16F877的环境监测系统的设计 197. 基于ADE7758的电能监测系统的设计 198. 基于单片机的水温控制系统 199. 基于单片机的鸡雏恒温孵化器的设计 200. 自动存包柜的设计 201. 空调器微电脑控制系统 202. 全自动洗衣机控制器 203. 小功率不间断电源(UPS)中变换器的原理与设计 204. 智能温度巡检仪的研制 205. 保险箱遥控密码锁 206. 基于蓝牙技术的心电动态监护系统的研究 207. 低成本智能住宅监控系统的设计 208. 大型发电厂的继电保护配置 209. 直流操作电源监控系统的研究 210. 悬挂运动控制系统 211. 气体泄漏超声检测系统的设计 212. FC-TCR型无功补偿装置控制器的设计 213. 150MHz频段窄带调频无线接收机 214. 数字显示式电子体温计 215. 基于单片机的病床呼叫控制系统 216. 基于单片微型计算机的多路室内火灾报警器 217. 基于单片微型计算机的语音播出的作息时间控制器 218. 交通信号灯控制电路的设计 219. 单片机控制的全自动洗衣机毕业设计论文 220. 单片机脉搏测量仪 221. 红外报警器设计与实现
不用写了,电子信息毕业就失业。不像人家修鞋的,还能一个月赚到1500块钱。
呵呵,连这个都能,看来LED发展挺快的!!
用点阵式液晶显示屏吧,网上一大把这样的资料。自己动手找吧。
好的。我能行的
发给你了,查收下!
摘要本设计的温度测量计加热控制系统以AT89S52单片机为核心部件,外加温度采集电路、键盘显示电路、加热控制电路和越限报警等电路。采用单总线型数字式的温度传感器DSI8B20,及行列式键盘和动态显示的方式,以容易控制的固态继电器作加热控制的开关器件。本作品既可以对当前温度进行实时显示又可以对温度进行控制,以使达到用户需要的温度,并使其恒定再这一温度。人性化的行列式键盘设计使设置温度简单快速,两位整数一位小数的显示方式具有更高的显示精度。建立在模糊控制理论控制上的控制算法,是控制精度完全能满足一般社会生产的要求。通过对系统软件和硬件设计的合理规划,发挥单片机自身集成众多系统及功能单元的优势,再不减少功能的前提下有效的降低了硬件的成本,系统操控更简便。实验证明该温控系统能达到℃的静态误差,℃的控制精度,以及只有%的超调量,因本设计具有很高的可靠性和稳定性。关键词:单片机 恒温控制 模糊控制引言温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。 采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。MSP430系列单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。温度传感器将温度信息变换为模拟电压信号后,将电压信号放大到单片机可以处理的范围内,经过低通滤波,滤掉干扰信号送入单片机。在单片机中对信号进行采样,为进一步提高测量精度,采样后对信号再进行数字滤波。单片机将检测到的温度信息与设定值进行比较,如果不相符,数字调节程序根据给定值与测得值的差值按PID控制算法设计控制量,触发程序根据控制量控制执行单元。如果检测值高于设定值,则启动制冷系统,降低环境温度;如果检测值低于设定值,则启动加热系统,提高环境温度,达到控制温度的目的。图形点阵式液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。支持汉字显示的图形点阵液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏就是图形点阵液晶。它与行列式小键盘组成了现代单片机应用系统中最常用的人机交互界面。本文设计了一种基于MSP430单片机的温度测量和控制装置,能对环境温度进行测量,并能根据温度给定值给出调节量,控制执行机构,实现调节环境温度的目的。━、硬件设计1:MSP430系列单片机简介及选型单片机即微控制器,自其开发以来,取得了飞速的发展。单片机控制系统在工业、交通、医疗等领域的应用越来越广泛,在单片机未开发之前,电子产品只能由复杂的模拟电路来实现,不仅体积大,成本高,长期使用后元件老化,控制精度大大降低,单片机开发以后,控制系统变为智能化了,只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品体积变小了,成本也降低了,长期使用也不会担心精度达不到了。特别是嵌入式技术的发展,必将为单片机的发展提供更广阔的发展空间,近年来,由于超低功耗技术的开发,又出现了低功耗单片机,如MSP430系列、ZK系列等,其中的MSP430系列单片机是美国德州仪器(TI)的一种16位超低功耗单片机,该单片机
呵呵,连这个都能,看来LED发展挺快的!!
你也没有联系方式,你留个邮箱?我给你发过去。
可以联系我,专业代作
不知道楼主解决了问题没,我这有一些这方面的论文,给你参考一下吧..单片机应用系统中掉电保护电路的设计研究中文摘要:本文介绍了单片机应用系统中掉电保护的基本原理与设计方法,给出了几种掉电保护电路的设计实例。摘自墨客论文网:基于单片机控制的数字脉冲电火花电源设计中文摘要:根据电火花沉积工艺的特点,设计了基于16位单片机80C196KC控制的脉冲电火花电源。主电路中,采用了半桥逆变电路实现功率的变送。控制电路中,通过PWM脉宽调制实现电压调节。设计采用了多种抗干扰措施,提高了电源系统工作的稳定性。摘自墨客论文网:基于单片机的液晶触摸屏控制系统中文摘要:以触摸屏控制芯片ADS7843和液晶显示控制器SED1335为例,介绍了触摸屏的结构及工作原理,并以实例说明单片机控制触摸屏的典型应用电路和软件。摘自墨客论文网:单片机技术在智能交流接触器实时调控中的应用研究中文摘要:通过对智能交流接触器零电流分断控制原理的分析,发现其零电流分断失败的原因,并在此基础上提出将单片机实时控制系统嵌入传统接触器中,实现零电流分断的智能“无弧”接触器。摘自墨客论文网:于PIC单片机的电动自行车控制系统设计中文摘要:介绍以单片机PIC16F72为核心的电动自行车用无刷直流电动机控制系统的设计。该系统采用电流与速度双闭环控制的结构,其中电流调节器用传统的PI调节器,速度调节器为改进的PI调节器。实验验证了此设计方案的可行性和优越性,即控制电路简洁,器件少,成本低,保护措施可靠,提高了系统的控制精度。该设计对无刷直流电机在其他领域的应用有一定的帮助和借鉴,具有广泛的现实意义。该系统速度环采用改进型的PI调节器控制,且通过软件运用算法测速,实现转速反馈,既简化电路又节省成本。摘自墨客论文网: