为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

电工电子实习创新设计

2018-05-30 15页 doc 189KB 347阅读

用户头像 个人认证

拍拍£宝贝

有多年的行政人事工作经验,现负责公司员工招聘,筛选,面试,培训等管理

举报
电工电子实习创新设计项目名称基于51单片机的自行车测速器项目简介本项目以51单片机为基础,通过光电传感器进行采样,将信号引入单片机外部中断口,51单片机经过每秒钟中断次数计算自行车的速度,我们用LCD1602液晶屏显示时间,行驶速度,行驶距离。本项目设计简单,方便用户使用。设计方案硬件设计我们以51单片机系统为基础,在P3.0,P3.1,P3.3三个口接三个按键,用来设定时间,分别是调时间移位键,+键,-键。P3.2口是外部中断口,用来接光电测速传感器。软件设计按键调时程序voidkeyscan(){ rd=0; if(s1==0) { de...
电工电子实习创新设计
项目名称基于51单片机的自行车测速器项目简介本项目以51单片机为基础,通过光电传感器进行采样,将信号引入单片机外部中断口,51单片机经过每秒钟中断次数计算自行车的速度,我们用LCD1602液晶屏显示时间,行驶速度,行驶距离。本项目简单,方便用户使用。设计方案硬件设计我们以51单片机系统为基础,在P3.0,P3.1,P3.3三个口接三个按键,用来设定时间,分别是调时间移位键,+键,-键。P3.2口是外部中断口,用来接光电测速传感器。软件设计按键调时程序voidkeyscan(){ rd=0; if(s1==0) { delay(5); if(s1==0) { s1num++; while(!s1); if(s1num==1) { TR0=0; write_com(0x80+0x40+7); write_com(0x0f); } } if(s1num==2) { write_com(0x80+0x40+4); } if(s1num==3) { write_com(0x80+0x40+1); } if(s1num==4) { s1num=0; write_com(0x0c); TR0=1; } } if(s1num!=0) { if(s2==0) { delay(5); if(s2==0) { while(!s2); if(s1num==1) { miao++; if(miao==60) miao=0; write_sfm(7,miao); write_com(0x80+0x40+7); } if(s1num==2) { fen++; if(fen==60) fen=0; write_sfm(4,fen); write_com(0x80+0x40+4); } if(s1num==3) { shi++; if(shi==24) shi=0; write_sfm(1,shi); write_com(0x80+0x40+1); } } } if(s3==0) { delay(5); if(s3==0) { while(!s3); if(s1num==1) { miao--; if(miao==-1) miao=59; write_sfm(7,miao); write_com(0x80+0x40+7); } if(s1num==2) { fen--; if(fen==-1) fen=59; write_sfm(4,fen); write_com(0x80+0x40+4); } if(s1num==3) { shi--; if(shi==-1) shi=23; write_sfm(1,shi); write_com(0x80+0x40+1); } } } }}定时中断程序voidtimer0()interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++;if(count>18) { count=0; miao++; vone=vtwo; vthr=vone; vtwo=vthr; vone=distance; v=(150*(vone-vtwo)); if(miao>60) { miao=0; fen++; if(fen>60) { fen=0; shi++; if(shi>24) { shi=0; } } } } }外部中断程序voidinterrupt_lcd()interrupt0{ times++; }主程序voidmain(){ init(); while(1) { distance=(50*times); write_dis(distance); if(distance==1000) { distance=0; kilo++; } write_space(v); write_kilo(kilo); write_sfm(1,shi); write_sfm(4,fen); write_sfm(7,miao); keyscan(); }}电路图创新点与实用性应用单片机进行自行车的测速,简单方便,设计精妙。可以用在平时的自行车上,在测速,测距离上很方便。学习收获最大的收获是程序编程方面,因为中断服务程序太长,导致响应中断的时候时间暂停时间过长,影响了时间,给我们造成了很大的困扰,最后我们把除了计数的程序放入主程序,往LCD中写数据也放入主程序后很好的调节了这个问附录#include<reg52.h>#defineucharunsignedchar #defineuintunsignedintsbitdula=P2^6;sbitwela=P2^7;sbitrs=P1^0;sbitrw=P1^1;sbitlcden=P2^5;sbits1=P3^0;sbits2=P3^1;sbits3=P3^2;sbitrd=P3^7;ucharcount,s1num,t0=0,kilo=0,ts=0,cnt=0;charmiao,shi,fen;ucharv=0;uintspace=0,distance=0,times=0;uintvone=0,vtwo=0,vthr=0;ucharcodetable[]="v:00m/ss:0000m";ucharcodetable1[]="00:00:00000km";voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voidwrite_com(ucharcom){ rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; }voidwrite_date(uchardate){ rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; }voidinit(){ ucharnum; dula=0; wela=0; lcden=0; rw=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num<15;num++) { write_date(table[num]); delay(5); } write_com(0x80+0x40); for(num=0;num<15;num++) { write_date(table1[num]); delay(5); } TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; EX0=1; IT0=1; ET0=1; TR0=1;}voidwrite_sfm(ucharadd,uchardate){ ucharshi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge);}/*****************************************************///显示米voidwrite_dis(uintdistance){ uintqian=0,bai=0,shi=0,ge=0; qian=distance/1000; if(qian>1) qian=0; bai=distance%1000/100; if(bai>9) bai=0; shi=distance%100/10; if(shi>9) shi=0; ge=distance%10; if(ge>9) ge=0; write_com(0x80+0x0a); write_date(0x30+qian); write_date(0x30+bai); write_date(0x30+shi); write_date(0x30+ge);}/*****************************************************///显示千米voidwrite_kilo(ucharkilo){ ucharbaik=0,shik=0,gek=0; baik=kilo/100; if(baik>1) baik=0; shik=kilo%100/10; if(shik>9) shik=0; gek=kilo%10; if(gek>9) gek=0; write_com(0x80+0x40+0x0a); write_date(0x30+baik); write_date(0x30+shik); write_date(0x30+gek);}/************************************************************///显示速度voidwrite_space(ucharspace){ ucharshis=0,ges=0; shis=space/10; if(shis>9) shis=0; ges=space%10; if(ges>9) ges=0; write_com(0x80+0x02); write_date(0x30+shis); write_date(0x30+ges);}voidkeyscan(){ rd=0; if(s1==0) { delay(5); if(s1==0) { s1num++; while(!s1); if(s1num==1) { TR0=0; write_com(0x80+0x40+7); write_com(0x0f); } } if(s1num==2) { write_com(0x80+0x40+4); } if(s1num==3) { write_com(0x80+0x40+1); } if(s1num==4) { s1num=0; write_com(0x0c); TR0=1; } } if(s1num!=0) { if(s2==0) { delay(5); if(s2==0) { while(!s2); if(s1num==1) { miao++; if(miao==60) miao=0; write_sfm(7,miao); write_com(0x80+0x40+7); } if(s1num==2) { fen++; if(fen==60) fen=0; write_sfm(4,fen); write_com(0x80+0x40+4); } if(s1num==3) { shi++; if(shi==24) shi=0; write_sfm(1,shi); write_com(0x80+0x40+1); } } } if(s3==0) { delay(5); if(s3==0) { while(!s3); if(s1num==1) { miao--; if(miao==-1) miao=59; write_sfm(7,miao); write_com(0x80+0x40+7); } if(s1num==2) { fen--; if(fen==-1) fen=59; write_sfm(4,fen); write_com(0x80+0x40+4); } if(s1num==3) { shi--; if(shi==-1) shi=23; write_sfm(1,shi); write_com(0x80+0x40+1); } } } }}voidmain(){ init(); while(1) { distance=(50*times); write_dis(distance); if(distance==1000) { distance=0; kilo++; } write_space(v); write_kilo(kilo); write_sfm(1,shi); write_sfm(4,fen); write_sfm(7,miao); keyscan(); }}voidtimer0()interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++;if(count>18) { count=0; miao++; vone=vtwo; vthr=vone; vtwo=vthr; vone=distance; v=(150*(vone-vtwo)); if(miao>60) { miao=0; fen++; if(fen>60) { fen=0; shi++; if(shi>24) { shi=0; } } } } }voidinterrupt_lcd()interrupt0{ times++; }
/
本文档为【电工电子实习创新设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索