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条)