电子设计与单片机应用实训教程代码第十二章.docVIP

  • 2
  • 0
  • 约2.61千字
  • 约 6页
  • 2024-04-03 发布于浙江
  • 举报

电子设计与单片机应用实训教程代码第十二章.doc

#includereg52.h

sbitIN1=P2^3;

intnum=0;

voidInit();

intmain()

//头文件

//电动机控制口为P2^3

void

Init();

while(1)

Init()

//定时器初始化函数

TMOD=0x01;

THO=(65536-100)/256;

TLO=(65536-100)%256;

EA=1;

ETO=1;

TRO=1;

//定时器0以模式1工作

voidTimer_0(void)interrupt1

THO=(65536-100)/256;

TLO=(65536-100)%256;

num++;

if(num=10)

IN1=1;

else

IN1=0;

f(num20)

num=0;

//占空比的设定,此处为50%

//周期

2:控制电动机的正/反转(单片机):

#includereg52.h

#defineucharunsignedchar

#defineuintunsignedint

sbitA1=P2^4;

sbitA2=P2^5;

sbitB1=P2^6;

sbitB2=P2^7;

ucharjsa=0,jsb=0,sd=0,key=0,zf=0,off=0,PWM_bai=0,PWM_shi=0,PWM_ge=0;uintus_1X=0,PWM_jsa=0,PWM_jsb=0;

voidTO_time()interrupt1

THO=(65536-1)/256;

TLO=(65536-1)%256;

us_1X++;

if(us_1X500)

us_1X=0;

ucharcodetable1[]=

Ox3f,

0x06,0×5b,0x4f,0×66,0x6d,

0x7d,0x07,0x7f,0x6f

};

voiddelay(ucharx)

uchari,j;

for(i=x;i0;i--)

for(j=110;j0;j--);

voidPWM_xs()

{

f(sd==0)

{

PWM_bai=jsa/100;

PWM_shi=jsa/10%10;

PWM_ge=jsa%10;

if(sd==1)

PWM_bai=jsb/100;

PWM_shi=jsb/10%10

PWM_ge=jsb%10;

P1=0xfb;

PO=table1[PWM_bai];

delay(1);

P1=0xfd;

PO=table1[PWM_shi];

delay(1);

P1=0xfe;

PO=table1[PWM_ge];

delay(1);

//1us加一次

//2KHz

//定时器清空,重新开始

//数码管显示

1/0

//1-5

//6-9

//数码管显示

voidjianpan()

uchartemp;

P3=0xfe;

temp=P3;

temp=temp0xfc;

f(temp!=Oxfc)

delay(20);

temp=P3;

temp=tempOxfc;

if(temp!=0xfc)

temp=P3;

switch(temp)

caseOxfa;

if(sd==0)

{

jsa=jsa+10

if(jsa100)

jsa=0;

f(sd==1)

{

jsb=jsb+10

if(jsb100)

jsb=0;

break;

case0xf6:

sd++;

off=1;

break;

while(temp!=0xfc)

{

temp=P3;

temp=tempOxfc;

}

P3=0xfd;

temp=P3;

//矩阵键盘

//松手检测

temp=temp0xfc;

if(temp!=0xfc)

delay(20);

temp=P3;

temp=temp0xfc;

if(temp!=0xfc)

temp=P3;

switch(temp)

case0xf9:

key++;

break;

caseOxf5:

zf++;

if(zf2)

zf=1;

off=0;

break;

while(temp!=0xfc)

temp=P3;

temp=temp0xfc;

//松手检测

voidmain()

TMOD=0X01;

THO=(65536-1)/256;

TLO=(65536-1)%256;

EA=1;

ETO=1;

TRO=1;

while(1)

jianpan();

PWM_xs():

if(key==2)

P1=0xff;

//定时器开启

jsa=0,jsb=0,sd=0,key=0,zf=0,off=0,PWM_bai=0,PWM_shi=0,PWM_ge=0;us_1X=0,PWM_jsa=0,PWM_jsb=0;

PWM_jsa=jsa*5;

PWM_js

文档评论(0)

1亿VIP精品文档

相关文档