单片机流程图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);
}