微机原理三级项目报告文档格式.docx
- 文档编号:19948143
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:12
- 大小:233.92KB
微机原理三级项目报告文档格式.docx
《微机原理三级项目报告文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理三级项目报告文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
编程次序可按此先后进行。
(1)、初始化模块:
T0和T1工作方式、标志位状态、所用单元初值、中断设置以及初始显示等。
(2)、显示模块:
显示风扇转速的实测值及其对应的PWM占空比。
(3)测速模块:
将0.5s测出的脉冲数即风扇每秒的转速。
(4)调速模块:
通过串口通信把风扇转速设定值发给单片机,通过改变脉冲波的占空比和PI调节来控制转速的大小。
3.占空比与转速关系:
占空比
0.16
0.17
0.18
0.19
0.2
0.22
0.24
0.27
0.29
0.31
转速r/s
1
2
3
4
5
6
7
8
9
10
11
0.35
0.38
0.42
0.46
0.51
0.54
0.61
0.74
0.84
0.94
12
13
14
15
16
17
18
19
20
21
22
四、设计程序:
1、主程序:
#include<
REGX52.H>
T_init.H>
Display.H>
externunsignedcharset_value;
//占空比设定
//主函数
voidmain()
{
PS=1;
//串行口中断优先级别设为高
T0_init();
//定时器0初始化
T1_init();
//定时器1初始化
EXT0_init();
//外部中断0初始化
USART_init();
//串口初始化
set_value=22;
while
(1)
{
}
}
2、初始化子程序
REG52.H>
T_Init.H>
//TC0初始化
//设为定时器、模式2(自动重装)
voidT0_init()
EA=1;
ET0=1;
TMOD|=0x02;
TH0=TL0=0x00;
TR0=1;
//TC1初始化
voidT1_init()
EA=1;
ET1=0;
//中断关
TMOD|=0x20;
TH1=TL1=0xfd;
TR1=1;
//EXT0初始化
//负跳变沿有效、INT0(P3.2)输入脉冲
voidEXT0_init()
{
IT0=1;
EX0=1;
//USART初始化
//波特率9600bps
voidUSART_init()
PCON=0x40;
SCON=0x50;
//模式1,允许接收
ES=1;
3、数码管显示子程序
//硬件连接
sbitDAT=P0^2;
sbitSCK=P0^0;
sbitRCK=P0^1;
//数码管驱动
xdataNUM[]={0xf5,0x05,0xb3,0x97,0x47,0xd6,0xf6,0x85,0xf7,0xd7};
//0-9数字
xdataBIT[]={0xdf,0xbf,0x7f,0xef,0xfd,0xfb,0xf7,0xfe};
//位选
voiddis_bit(unsignedcharpos,unsignedcharData)
unsignedchari;
pos=BIT[pos-1];
Data=NUM[Data];
RCK=0;
for(i=0;
i<
8;
i++)
{
SCK=0;
if(pos&
0x80)
DAT=1;
else
DAT=0;
pos<
<
=1;
SCK=1;
delay();
if(Data&
Data<
RCK=1;
//delay();
//显示数值,两位
//输入:
pos:
显示首位word:
一个两位以下的数值
voiddis_word(unsignedcharpos,unsignedcharword)
dis_bit(pos++,word/10);
dis_bit(pos++,word%10);
//软件延时
voiddelay()
{unsignedchari;
for(i=5;
i>
0;
i--);
4、测速、调速子程序
#include"
IT.H"
Display.H"
sbitfan=P1^0;
//风扇脉冲输入
sbith=P0^6;
//LED,测试
//全局变量
xdataunsignedcharf[]={0,0,16,17,18,19,20,22,24,27,29,31,35,38,42,46,51,54,61,74,84,94,100,100,100};
//转速与占空比关系对照表
//INT0参数
volatileunsignedcharn;
//转速
volatileunsignedcharp;
//脉冲数
//USART参数
staticunsignedcharflag;
//串口相关
unsignedcharUsart_buf[2]="
00"
;
//接收缓冲区
//PID参数
unsignedcharKp=5,Ki=1;
//PID参数(PI)
staticunsignedinterror,error_re,Sum_e;
//当前偏差,上一次的偏差,积分累加器
//T0参数
staticunsignedchartime;
//测速计时器
unsignedcharset_value;
//PWM设定值
//TC0中断
voidT0IT()interrupt1using1
{unsignedchartemp;
time++;
if(time>
150)//0.5s,由于中断处理的程序过于庞大,以至于定时的理论值不能精确的算出。
{
time=0;
n=p;
p=0;
flag=0;
//若串口的两位数据不是连续发送,则在下一次接收时全部刷新
temp=PID();
if
(1)
PWM_GENERATER(temp);
//PID调节
dis_word(1,n);
dis_word(5,set_value);
//显示占空比
//dis_word(3,error);
//dis_word(7,temp);
//TC1中断
voidT1IT()interrupt3using1
{
//EXT0中断
voidEX0_IT()interrupt0using1
p++;
//脉冲计数
//USART中断
voidUSART_IT()interrupt4using1
Usart_buf[flag]=SBUF;
flag++;
if(flag>
1)
flag=0;
temp=(Usart_buf[0]-48)*10+Usart_buf[1]-48;
if(temp<
23)
set_value=f[temp];
RI=0;
TI=0;
//PWM生成程序
Duty_Cycle:
占空比高电平持续值
voidPWM_GENERATER(unsignedcharDuty_Cycle)
{staticunsignedcharcom_value;
com_value++;
if(com_value<
Duty_Cycle)
fan=1;
elseif(com_value<
Limit)
fan=0;
else
com_value=0;
//PID控制器
pidtarget:
目标值
//输出:
返回占空比(Duty_Cycle)
unsignedcharPID()
{xdataunsignedintfeedback,proportion,integral;
error_re=error;
//上一次的偏差
if(set_value>
f[n])//error为正值的情况
error=set_value-f[n];
//偏差
Sum_e=Sum_e+error;
//积分
feedback=Kp*error/2+Ki*Sum_e;
//PID计算
}
else//error为负值的情况
error=f[n]-set_value;
//积分部分
if(Sum_e>
error)//积分为正
Sum_e=Sum_e-error;
else//积分为负
Sum_e=0;
proportion=Kp*error/2;
//比例计算
integral=Ki*Sum_e;
if(integral>
proportion)//PID计算
feedback=integral-proportion;
feedback=0;
}
return(feedback);
//返回结果
五、方案总结
本方案基本能完成风扇转速测量与控制,达到了设计任务的要求。
通过测试,本控制系统可以根据气流和通风条件等环境对运行的影响,比较及时调整PWM波形。
但是,本方案也存在一些不足之处:
1.由于本程序的中断处理比较复杂,定时的理论值不能精确的算出,以至测量的转速不是很精确
2.由于时间关系,我们的PID控制模块只完成了PI调节,缺乏了微分调节,系统的动态性能有所下降。
六、感想
通过该项目的实践,我们加深了对单片机的定时器、计数器、中断等模块的理解。
但是万事开头难,一开始,我们只是学了相关的理论知识,对实体的单片机并不了解,遇到各种问题,比如缺乏硬件电路的了解,风扇该如何接线如何输出信号,pwm波如何输出和调节,在调试过程中难以调到稳定速度等问题。
后来结合书本,通过摸索,得出了上述程序。
尽管时间紧迫、压力大,但是我们还是灵活运用并掌握微机测控装置的经典设计过程,即电路-软件-仿真-实物的设计调试试制过程;
通过实践,已经熟悉了主要应用软件,Keil、Proteus、Protel等软件的使用,并已经积累了应用经验;
项目实践后,锻炼了硬件设计和调试水平,提高了工程应用的直观经验;
对PWM驱动直流电机、电机带动风扇的模型有了感性认识,为后面的课程打下了基础;
学习了微机编程的技术,积累了编程和软件调试经验;
在集体项目活动中锻炼了组织、分工协调能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 三级 项目 报告