欢迎来到天天文库
浏览记录
ID:17439599
大小:32.50 KB
页数:8页
时间:2018-08-31
《函数声明,变量定义-》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、函数声明,变量定义-个人花费大量时间整理的精品学习资料!不敢独享,故分享到文库,与大家分享!//-----------------------函数声明,变量定义---------------------#includesbitRE_DE=P1^0;#defineCOUNT10//定义接收缓冲区大小#defineSlaver_NUM10unsignedcharbdataflag;//在可位寻址去定义一个标志变量sbittime_over_flag=flag^0;//接收超时标志unsignedcharbuffer[COUNT];//
2、定义缓冲区unsignedcharpoint;//定义缓冲区位置指示unsignedcharSlave_AD[Slaver_NUM];//定义有效地址存放区unsignedcharADD_num;//有效地址个数unsignedcharidatacount_10ms;//用于表示有多少次10ms中断unsignedcharidatasend_data[7]={0x31,0x32,0x33,0x34,0x35,0x36,0x37};//与定义发送数据,共7位voidUART_init();//串口初始化函数voidCOM_send(void);//串
3、口接收函数unsignedcharCLU_checkdata(void);//计算校验位函数//---------------------------------------------------------------//函数名称:UART_init()串口初始化函数//函数功能:在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s//串口接收中断允许,发送中断禁止,设定定时器中断允许//---------------------------------------------------------------voidUART
4、_init(){//初始化串行设置SCON=0x58;//选择串口工作方式为1,打开接收允许,TB8=1TMOD=0x21;//定时器1工作在方式2,定时器0工作在方式1TR1=1;//启动定时器T1ES=1;//允许串行口中断PS=1;//设计串行口中断优先级//初始化定时器1TH1=0xfd;//实现波特率9600(系统时钟11.0592MHZ)ET1=0;//定时器1中断禁止}//---------------------------------------------------------------//函数名称:timer0_init(
5、)初始化定时器0//函数功能:设置timer0工作模式//---------------------------------------------------------------voidtimer0_init(){time_over_flag=0;count_10ms=0;ADD_num=0;TL0=0x0F0;//T0用于产生10ms的中断TH0=0x0D8;//50次T0中断产生1次超时溢出ET0=1;//允许定时器0中断}//--------------------------------------------------------
6、-------//函数名称:system_init()系统初始化//函数功能:调用串口、定时器初始化函数,完成系统初始化//---------------------------------------------------------------voidsystem_init(void){//系统总设置UART_init();timer0_init();EA=1;//单片机中断允许}//---------------------------------------------------------------//函数名称:com_interr
7、up()串口接收中断处理函数//函数功能:接收包括起始位"S"在内的十位数据到数据缓冲区//---------------------------------------------------------------com_interrupt(void)interrupt4using3{unsignedcharRECEIVR_buffer;if(RI)//处理接收中断{RI=0;//清除中断标志位RECEIVR_buffer=SBUF;//接收串口数据if(point==0)//如果还没有接收到起始位{if(RECEIVR_buffer==0xF
8、E)//判断是否起始标志位{buffer[point++]=RECEIVR_buffer;//把接收到的数据放入接收缓存区
此文档下载收益归作者所有