单片机流程图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机总流程图

主函数程序

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define OSC_FREQ 12000000

#define __10ms (65536 - OSC_FREQ/(12000000/9970))

#define COM8255 XBYTE[0XFFF3]

#define PA8255 XBYTE[0XFFF0]

#define PB8255 XBYTE[0XFFF1]

#define PC8255 XBYTE[0XFFF2]

uchar code tab[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6}; uchar code dis_HELLO[]={0x89,0x86,0xc7,0xc7};

uchar code dis_op51[]={0xc0,0x8c,0x92,0xf9};

uchar code dis_code[]={0xcf,0xa4,0xcf,0xa4};

uchar ucCnt_10ms=99;

uchar i=0;

uchar J=0;

uchar n=0;

uchar led1;

uchar led2;

sbit P2_4=P2^4;

sbit P3_7=P3^7;

sbit P1_0=P1^0;

sbit P1_1=P1^1;

sbit P1_2=P1^2;

void Disp_op51 ();

void Disp_HELLO();

void Set_Init_Xint();

void Set_Init_Timer();

void Disp_t();

void DelayX1ms(uint count);

void Disp_8255();

void main()

{

for(;;)

{

Set_Init_Xint();

Set_Init_Timer();

Disp_8255();

//ucCnt_10ms =99;

//ucLed1 = 6;

//ucLed2 = 8;

if ( n>=1 )

{

for(;;)

{

Disp_HELLO();

if (PB8255==0xef)

{

for(;;)

{

Disp_op51 () ;

Disp_t();

for(i=0;i<0xff;i++);

}

}

for(i=0;i<0xff;i++);

}

}

}

}

定时器T0流程图

定时器初始化函数程序void Set_Init_Timer()

{

TMOD=0x01;

TH0 = __10ms/256;

TL0 = __10ms%256;

EA=1;

ET0=1;

}

定时器中断服务函数程序Run_Time0(void) interrupt 1 using 2

{

TR0 = 0;

TH0 = __10ms/256;

TL0 = __10ms%256;

TR0 = 1;

ucCnt_10ms++;

if( ucCnt_10ms==200 ) //1s

{ ucCnt_10ms = 0;

led1++ ;

if( led1==10) //1S时间到更新显示缓冲值

{

led1 = 0;led2++;}

if(led2== 10)

{

led2 = 0 ;

}

}

}

外部中断0流程图

外部中断初始化函数程序

void Set_Init_Xint()

{

IT0=1;

EX0=1;

EA=1;

}

定时器中断服务函数程序

Run_Xint0(void) interrupt 0 using 1

{

n++;

TR0=1;

}

独立式按键流程图

8255定义入口

#define COM8255 XBYTE[0XFFF3]

#define PA8255 XBYTE[0XFFF0]

#define PB8255 XBYTE[0XFFF1]

#define PC8255 XBYTE[0XFFF2]

sbit P3_7=P3^7;

sbit P1_0=P1^0;

sbit P1_1=P1^1;

sbit P1_2=P1^2;

8255初始化函数程序void Disp_8255()

{

P3_7=0;

P1_0=0;

P1_1=1;

P1_2=0;

COM8255=0x82;

}

HELLO显示函数程序void Disp_HELLO() //HELLO显示函数

{

SCON = 0x00;

SBUF=0xFC;

P2_4=0;

while(!TI);

TI = 0;

P2_4=1;

P2_4=0;

SBUF=0x02;

while(!TI);

TI = 0;

P2_4=1;

P1=0x7A;

P2=dis_HELLO[0 ];

DelayX1ms(5);

P1=0xBA;

P2=dis_HELLO[1 ];

DelayX1ms(5);

P1=0xDA;

P2=dis_HELLO[2];

DelayX1ms(5);

P1=0xEA;

P2=dis_HELLO[3];

DelayX1ms(5);

}

相关文档
最新文档