收藏 分销(赏)

单片机流程图.doc

上传人:可**** 文档编号:11233142 上传时间:2025-07-09 格式:DOC 页数:6 大小:43.04KB 下载积分:8 金币
下载 相关 举报
单片机流程图.doc_第1页
第1页 / 共6页
单片机流程图.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
单片机总流程图 NDisp_HELLO(); 结束 i<ffh 定时器函数 0~99显示函数 OP51显示函数 YDisp_HELLO(); 8255初始化函数 定义条形码 定义I/O对象,变量(n,j,i) 开始 定时器,中断服务初始化 HELLO显示函数 PB8255==0xef n>=o? YDisp_HELLO(); NDisp_HELLO(); 主函数程序 #include〈reg51.h〉 #include<absacc。h> #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流程图 开始 N Y 定时器T0计时 Y ucCnt_10ms=0 ucCnt_10ms==200? 定时器中断服务函数 重装初值 TR0=1? 植入初值 定时器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流程图 开始 Y 结束 TR0=1,n++ = 中断服务程序 中断返回 外部中断0初始化 是否有中断请求? 外部中断初始化函数程序 void Set_Init_Xint() { IT0=1; EX0=1; EA=1; } 定时器中断服务函数程序 Run_Xint0(void) interrupt 0 using 1 { n++; TR0=1; } 独立式按键流程图 开始 Y N Y 结束 i<0xff? 0~99函数 OP51函数 PB8255==0xef?(K12) 8255初始化 定义ABC口8255入口地址 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); } OP51显示函数程序 void Disp_op51 () { P1=0x7F; P2=dis_op51[0 ]; DelayX1ms(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 = 0x00; SBUF=tab[led2]; P2_4=0; while(!TI); TI=0; P2_4=1; P2_4=0; SBUF=tab[led1]; while(!TI); TI=0; P2_4=1; } 延时10ms函数程序 void DelayX1ms(uint count) { uint j; while(count—-!=0) { for(j=0;j〈72;j++); } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服