单片机流程图

单片机流程图


2024年2月4日发(作者:)

单片机总流程图

主函数程序

# include

#include

#def ine uchar uns igned char

# def ine uint uns igned int

#define OSC_FREQ12

# define __10ms(65536 — OSC_FREQ/

(1 2 /9 9 7 0))

#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 di s _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 = P2A4;

sbit P3_7=P3A7;

sbit P1_0=P1AQ

sbit P1_1=P1A1;

sbit P1_2 = P1A2;

void Di sp_op51 ();

void Di sp_HELLO ();

voi d Set_Init_Xint;(

void Set-Init-Timer)(;

void Disp- t();

void DelayX1ms (uint count;

void Di sp_ 8 2 5 5();

void ma in ()

{

for(;;)

{

Set-Init-Xint)(

Set-Init-Timer ();Disp- 8 2 5 5 ();

//ucCnt-10ms =99;

//ucLedl =

//ucLed2 =

6;

if ( n>=1 )

8

{

for(;;)

{

Disp_HELLO();

if (PB8255==0xe)

{

for(;;)

{

Di sp_op5 1 ();

Disp_t();

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

}

}

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

}

}

}

}

定时器T0流程图

定时器初

void Set_Init_Timef)

{

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==2 ) //1s

{ ucCnt_10ms = 0;

led1++ ;

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

{

led1 = ;0 led2++; }

if led2== 10)

{

led2 = 0 ;

}

}

}

外部中断0流程图

外部中断初始化函数程序

void Set_Init_Xi(t)

{

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 ]

A#define PC8255 XBYTE[0XFFF2]sbit P3_7=P37sbit

P1_0=P1A0sbit P1_1=P1A1;sbit P1_2=P1A2;

8255初始化函数程序

void Disp_8255 (){

P3_7=0;

P1_0=0;

P1_1=1;

P1_2=0;

COM8255=0x82;

}

HELLO

显示函数程序

void Disp_HELLO () //HELLO

显示函数{

SCON = 0x;

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 ];

DelayXlms ( 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);

OP51显示函数程序

void Disp_op51 ()

{

P1=0x7F ;

P2=dis_op51 [ 0 ];

DelayXlms ( 5);

P1=0xBF ;

P2=dis_op51[1 ];

DelayX1ms(5 );

P1=0xDF ;

P2=dis_op51 [ 2 ];

DelayX1ms ( 5 );

P1=0xEF ;

P2=dis_op51[3 ];

DelayX1ms(5);

}

0〜99显示函数程序

void Disp_t ()

{

SCON = 0x ;

SBUF=tab [ led2];

P2_4=0;

while ( TI);

TI=0;

P2_4=1 ;

P2_4=0;

SBUF=tab [ led11while ( ! TI);

TI=0;

P2_4=1;

延时10ms函数程序

void DelayXlms ( uint count{

uint j;

while( count——!=0)

{

for(j=0; j〈72;j++);

}

}


发布者:admin,转转请注明出处:http://www.yc00.com/web/1707002297a1472832.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信