跑步机控制器.docx
- 文档编号:2288540
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:27
- 大小:925.76KB
跑步机控制器.docx
《跑步机控制器.docx》由会员分享,可在线阅读,更多相关《跑步机控制器.docx(27页珍藏版)》请在冰豆网上搜索。
跑步机控制器
通达学院
2016/2017学年第一学期
课程设计实验报告
模块名称51单片机课程设计
专业通信工程
学生班级130006
学生学号
学生姓名陈扬
指导教师林建中
设计题目
跑步机控制器设计
任务要求
基本要求:
●观察和了解一台实际跑步机的功能和状态,设计一模拟跑步机
●用键设定跑步速度(用两位LED/LCD)
●设计启动,停止,加速/减速,升高/降底,紧急停止等键
●用LED/LCD合理安排数据显示
●具有倒计时运行功能
发挥部分:
●速度变化编成运行模式
●高度变化编成运行模式
●速度+高度混合编程运行模式
●计数热量消耗参数
实验设备及软件
1.微型计算机
2.Proteus;Keil
3.德飞莱51单片机实验板
同组人员学号及姓名
13000623沈烨
参考文献
《Proteus教程》
《Proteus电子电路设计及仿真》
报告内容
一、实验目的:
本课程设计是在理论课程学习和软件设计的基础上,对51单片机硬件系统进行了解和研究,使学生更深入的掌握51单片机开发技术,培养学生面对实际课题,发现问题、分析问题和解决问题,提高学生的实验动手能力。
设计根据实验大纲提供的题目要求,选择适当的课题,并通过课题资料收集、原理分析、理论计算、实际编程、系统调试、测试和故障排除,解决在实际设计中的问题,使设计系统能正常工作,有能力的同学可以超出题目要求任意发挥设计。
二、实验要求:
基本要求:
●观察和了解一台实际跑步机的功能和状态,设计一模拟跑步机
●用键设定跑步速度(用两位LED/LCD)
●跑步启动后计算和显示跑步时间和距离
●设计启动,停止,加速/减速,升高/降底,紧急停止等键
●用LED/LCD合理安排数据显示
●具有倒计时运行功能
发挥部分:
●速度变化编成运行模式
●高度变化编成运行模式
●速度+高度混合编程运行模式
●计数热量消耗参数
显示格式:
8LED数码管显示格式见下图
LCD屏显示方法自定
三、实验设备以及软件:
1.微型计算机一台
2.Proteus;Keil
3.德飞莱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口各位的第二功能
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完全一样,其中:
引脚
符号
功能说明
1
VSS
一般接地
2
VDD
接电源(+5V)
3
V0
液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
4
RS
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
5
R/W
R/W为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
+6
E
E(或EN)端为使能(enable)端,
写操作时,下降沿使能。
读操作时,E高电平有效
7
DB0
低4位三态、双向数据总线0位(最低位)
8
DB1
低4位三态、双向数据总线1位
9
DB2
低4位三态、双向数据总线2位
10
DB3
低4位三态、双向数据总线3位
11
DB4
高4位三态、双向数据总线4位
12
DB5
高4位三态、双向数据总线5位
13
DB6
高4位三态、双向数据总线6位
14
DB7
高4位三态、双向数据总线7位(最高位)(也是busyflag)
15
BLA
背光电源正极
16
BLK
背光电源负极
实验原理框图:
五、程序代码:
#include
#include"lcd.h"
sbitkey_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;b>0;b--)
for(a=2;a>0;a--);
}
voiddelay10ms(chard)//误差0us
{
unsignedchara,b,c;
for(c=d;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;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进行显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 跑步 控制器