跑步机控制器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

通达学院2016/2017学年第一学期课程设计实验报告模块名称51单片机课程设计专业通信工程学生班级130006学生学号13000624学生姓名陈扬指导教师林建中设计题目跑步机控制器设计任务要求基本要求:观察和了解一台实际跑步机的功能和状态,设计一模拟跑步机用键设定跑步速度(用两位LED/LCD)设计启动,停止,加速/减速,升高/降底,紧急停止等键用LED/LCD合理安排数据显示具有倒计时运行功能发挥部分:速度变化编成运行模式高度变化编成运行模式速度+高度混合编程运行模式计数热量消耗参数实验设备及软件1.微型计算机2.Proteus;Keil3.德飞莱51单片机实验板同组人员学号及姓名13000623沈烨参考文献《Proteus教程》《Proteus电子电路设计及仿真》报告内容一、实验目的:本课程设计是在理论课程学习和软件设计的基础上,对51单片机硬件系统进行了解和研究,使学生更深入的掌握51单片机开发技术,培养学生面对实际课题,发现问题、分析问题和解决问题,提高学生的实验动手能力。设计根据实验大纲提供的题目要求,选择适当的课题,并通过课题资料收集、原理分析、理论计算、实际编程、系统调试、测试和故障排除,解决在实际设计中的问题,使设计系统能正常工作,有能力的同学可以超出题目要求任意发挥设计。二、实验要求:基本要求:观察和了解一台实际跑步机的功能和状态,设计一模拟跑步机用键设定跑步速度(用两位LED/LCD)跑步启动后计算和显示跑步时间和距离设计启动,停止,加速/减速,升高/降底,紧急停止等键用LED/LCD合理安排数据显示具有倒计时运行功能发挥部分:速度变化编成运行模式高度变化编成运行模式速度+高度混合编程运行模式计数热量消耗参数显示格式:8LED数码管显示格式见下图LCD屏显示方法自定三、实验设备以及软件:1.微型计算机一台2.Proteus;Keil3.德飞莱51单片机实验板四、实验原理1.AT89C51单片机引脚及其功能AT89C51有40条引脚,与其他51系列单片机引脚是兼容的。这40条引脚可分为I/O端口线、电源线、控制线、外接晶体线四部分。其封装形式有两种:双列直插封装(DIP)形式和方形封装形式,如图所示。2.1I/O端口功能1.P0口P0口有八条端口线,命名为P0.0~P0.7,其中P0.0为低位,P0.7为高位。每条线的结构组成如图2-3所示。它由一个输出锁存器,两个三态缓冲器,输出驱动电路和输出控制电路组成。P0口是一个三态双向I/O口,它有两种不同的功能,用于不同的工作环境。2.P1口P1口有八条端口线,命名为P1.0~P1.7,每条线的结构组成如图所示。P1口是一个准双向口,只作普通的I/O口使用,其功能与P0口的第一功能相同。作输出口使用时,由于其内部有上拉电阻,所以不需外接上拉电阻;作输入口使用时,必须先向锁存器写入“1”,使场效应管T截止,然后才能读取数据。3.P2口P2口有八条端口线,命名为P2.0~P2.7,每条线的结构如图所示。P2口也是一个准双向口,它有两种使用功能:一种是当系统不扩展外部存储器时,作普通I/O口使用,其功能和原理与P0口第一功能相同,只是作为输出口时不需外接上拉电阻;另一种是当系统外扩存储器时,P2口作系统扩展的地址总线口使用,输出高8位的地址A7~A15,与P0口第二功能输出的低8位地址相配合,共同访问外部程序或数据存储器(64KB),但它只确定地址并不能像P0口那样还可以传送存储器的读写数据。4.P3口P3口有八条端口线,命名为P3.0~P3.7,每条线的结构如图所示。P3口是一个多用途的准双向口。第一功能是作普通I/O口使用,其功能和原理与P1口相同。第二功能是作控制和特殊功能口使用,这时八条端口线所定义的功能各不相同,如表1所示。表1P3口各位的第二功能12345678910111213141516171819204039383736353433323130292827262524232221(T2)P1.0(T2EX)P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST(RXD)P3.0(TXD)P3.1(T0)P3.4(T1)P3.5XTAL2XTAL1GND(TNT0)P3.2(TNT1)P3.3(WR)P3.6(RD)P3.7VCCP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)P2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)EA/VPPALE/PROGPSENP1.5P1.6P1.7RST(RXD)P3.0NC(TXD)P3.1(INT0)P3.2(INT1)P3.3(T0)P3.4(T1)P3.5P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VPPNCALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)789101112131415161739383736353433323130291819202122232425262728P1.4P1.3P1.2P1.1(T2EX)P1.0(T2)NCVCCP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)(WR)P3.6(RD)P3.7XTAL2XTAL1GNDNC(A8)P2.0(A9)P2.1(A10)P2.2(A11)P2.3(A12)P2.46543214443424140(a)(b)5.I/O口的读写P0~P3口都可作为普通I/O口来使用。当作为输入口使用时,必须先向该口的锁存器中写入“1”,然后再从读引脚缓冲器中读入引脚状态,这样的读入结果才正确。2.2控制线AT89C51单片机的控制线有以下几种:(1)RST:复位输入端,高电平有效。(2)ALE/:地址锁存允许/编程线。(3):外部程序存储器的读选通线。(4)/VPP:片外ROM允许访问端/编程电源端2.LCD管脚说明LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。+6EE(或EN)端为使能(enable)端,写操作时,下降沿使能。读操作时,E高电平有效7DB0低4位三态、双向数据总线0位(最低位)PROGPSENEA8DB1低4位三态、双向数据总线1位9DB2低4位三态、双向数据总线2位10DB3低4位三态、双向数据总线3位11DB4高4位三态、双向数据总线4位12DB5高4位三态、双向数据总线5位13DB6高4位三态、双向数据总线6位14DB7高4位三态、双向数据总线7位(最高位)(也是busyflag)15BLA背光电源正极16BLK背光电源负极实验原理框图:五、程序代码:#includereg51.h#includelcd.hsbitkey_1=P1^0;//开始按键sbitkey_2=P1^1;//停止按键sbitkey_3=P1^2;//加速sbitkey_4=P1^3;//减速sbitkey_5=P1^4;//升高sbitkey_6=P1^5;//降低sbitkey_7=P1^6;//紧急停止sbitkey_8=P1^7;//倒计时unsignedintcount_1=0;//计数标量unsignedinttime_1=0;//按键1的计数时间charstart=0;//开始charsudu_flag=0;//速度变量charhigh_flag=0;//速度变量voiddelay10us(charc)//误差0us{unsignedchara,b;for(b=c;b0;b--)for(a=2;a0;a--);}voiddelay10ms(chard)//误差0us{unsignedchara,b,c;for(c=d;c0;c--)for(b=38;b0;b--)for(a=130;a0;a--);}voidmain(){TMOD=0X01;//设置定时器T016位EA=1;//打开中断ET0=1;//打开TO定时器TR0=1;//关闭中断TH0=(65536-50000)/256;TL0=(65536-50000)%256;LcdInit();//初始化液晶显示屏while(1){if(key_1==0)//按键1按下{while(key_1==0);//等待K1抬起start=1;}if(key_2==0)//按键2按下{while(key_2==0);//等待K2抬起start=0;time_1=0;}if(key_3==0)//按键3按下{while(key_3==0);//等待K3抬起sudu_flag++;if(sudu_flag=4)sudu_flag=4;}if(key_4==0)//按键4按下{while(key_4==0);//等待K4抬起sudu_flag--;if(sudu_flag=0)sudu_flag=0;}if(key_5==0)//按键5按下{while(key_5==0);//等待K5抬起high_flag++;if(high_flag=4)high_flag=4;}if(key_6==0)//按键6按下{while(key_6==0);//等待K6抬起high_flag--;if(high_flag=0)high_flag=0;}if(key_7==0)//按键2按下{while(key_7==0);//等待K2抬起start=0;time_1=0;}if(key_8==0)//按键2按下{while(key_8==0);//等待K2抬起time_1+=60;}//显示开始if(start==1){LcdWriteCom(0x80);//显示坐标LcdWriteData('S');//在lcd1602进行显示LcdWriteData('T');//在lcd1602进行显示LcdWriteData('A');//在lcd1602进行显示LcdWriteData('R');//在lcd1602进行显示LcdWriteData('T');//在lcd1602进行显示LcdWriteData('');//在lcd1602进行显示}else{LcdWriteCom(0x80);//显示坐标LcdWriteData('S');//在lcd1602进行显示LcdWriteData('T');//在lcd1602进行显示LcdWriteData('O');//在lcd1602进行显示LcdWriteData('P');//在lcd1602进行显示LcdWriteData('');//在lcd1602进行显示LcdWriteData('');//在lcd1602进行显示}//显示速度switch(sudu_flag){case0:LcdWriteCom(0x87);//显示坐标LcdWriteData('0');//在lcd1602进行显示LcdWriteData('m');//在lcd1602进行显示LcdWriteData('/');//在lcd1602进行显示LcdWriteData('s');//在lcd1602进行显示break;case1:LcdWriteCom(0x87);//显示坐标LcdWriteData('1');//在lcd1602进行显示LcdWriteData('m');//在lcd

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功