- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC16F877a单片机五层电梯控制模型
#includepic.h
__CONFIG(0x3b31);
#define uint unsigned int
#define uchar unsigned char
uchar dir,ceng,DJ,position,d,e,f,g,j,num,nub11,nub21,nub22,nub31,nub32,nub41,nub42,nub52,
nub1,nub2,nub3,nub4,nub5,i1,i2,i3,i4,i5,o1,o2u,o2d,o3u,o3d,o4u,o4d,o5,h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12;
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void keyscan();
void state11();
void state22();
void tingche11();
void tingche22();
void tc11();
void tc22();
void delay(uint z)
{
uint x,y;
for(x=110;x0;x--)
for(y=z;y0;y--);
}
void init()
{
INTCON=0xc0;//开总中断,准许外围接口中断
// TMR2IF=0;//清中断标志
// TMR2IE=0;//定时器2中断不使能
TMR1IE=1;//使能定时器1
TMR1IF=0;
TMR1L=(65536-10)%256;
TMR1H=(65536-10)/256;
T0IE=0;
OPTION=0x07;
TMR0=61;
TRISA=0x1f;//红外
ADON=0;
ADCON1=0x07;//将A端口和E端口设置成通用数字IO引脚
TRISB=0x0f;
TRISC=0;
TRISD=0;
TRISE=0;
PORTD=0;
PORTE=0;
RC0=0;
RC1=0;
}
void pwm(uint a,uint b,uint c)
{
RA5=a;//电机方向
CCPR1L=b;//脉宽
CCP1CON=0x0c;//设置CCP1为PWM模式
PR2=c;//TMR2周期寄存器,即为pwm周期
T2CON=0x07;//开定时器2,16预分频,后分频为1
}
void main()
{
init();
RC3=1;RC4=0;RC5=0;RC6=0;RC7=0;
while(1)
{
keyscan();
if(RA0==0)ceng=1;
if(RA1==0)ceng=2;
if(RA2==0)ceng=3;
if(RA3==0)ceng=4;
if(RA4==0)ceng=5;
if(ceng==1)
{
if(o2u||o2d||o3u||o3d||o4u||o4d||o5||i2||i3||i4||i5)
{
dir=1;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o1||i1)
{
o1=0;nub11=0;RD0=0;
i1=0;nub1=0;RE0=0;
RC6=1;RC7=0;//开门
h8=0;h0=0;
}
RC4=1;RC5=0;
}
if(ceng==2)
{
if(i1||o1)
{
dir=2;RC5=1;RC4=0;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o3u||o3d||o4u||o4d||o5||i3||i4||i5)
{
dir=1;RC4=1;RC5=0;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o2u||o2d||i2)
{
o2u=0;nub21=0;RD2=0;
o2d=0;nub22=0;RD1=0;
i2=0;nub2=0;RE1=0;
RC6=1;RC7=0;//开门
h1=0;h5=0;h9=0;
}
else if(!nub1!nub3!nub4!nub5!nub11!
文档评论(0)