欢迎来到天天文库
浏览记录
ID:14319722
大小:40.00 KB
页数:11页
时间:2018-07-27
《51单片机串口输出》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、51单片机串口输出//***************************************//HMC588351串口测试程序//使用单片机STC89C51//晶振:11.0592M//显示:PC串口//编译环境KeiluVision2//参考宏晶网站24c04通信程序//时间:2011年3月1日//****************************************#include#include//Keillibrary#include//Keillibrary#include2、RINS.H>#defineucharunsignedchar#defineuintunsignedint//使用的端口,请按照以下接线#defineDataPortP0//LCD1602数据端口sbitSCL=P1^0;//IIC时钟引脚定义sbitSDA=P1^1;//IIC数据引脚定义#defineSlaveAddress0x3C//定义器件5883在IIC总线中的从地址typedefunsignedcharBYTE;typedefunsignedshortWORD;BYTEBUF[8];//接收数据缓存区ucharge,shi,bai,qian,wan3、;//显示变量intdis_data;//变量//************//************voiddelay(unsignedintk);voidInit_HMC5883(void);//初始化5883voidconversion(uinttemp_data);voidSingle_Write_HMC5883(ucharREG_Address,ucharREG_data);//单个写入数据//ucharSingle_Read_HMC5883(ucharREG_Address);//单个读取内部寄存器数据voidMultiple_Read_HMC584、83();//连续的读取内部寄存器数据//以下是模拟iic使用函数-------------voidDelay5us();voidDelay5ms();voidHMC5883_Start();voidHMC5883_Stop();voidHMC5883_SendACK(bitack);bitHMC5883_RecvACK();voidHMC5883_SendByte(BYTEdat);BYTEHMC5883_RecvByte();voidHMC5883_ReadPage();voidHMC5883_WritePage();//-----------------5、------------------//*********************************************//串口初始化//9600bps@11.059MHzvoidinit_uart(){TMOD=0x21;TH1=0xfd;TL1=0xfd;SCON=0x50;PS=1;//串口中断设为高优先级别TR0=1;//启动定时器TR1=1;ET0=1;//打开定时器0中断ES=1;}//*********串口数据发送******************voidSeriPushSend(ucharsend_data){SBUF=send_d6、ata;while(!TI);TI=0;}//*********************************************************voidconversion(uinttemp_data){wan=temp_data/10000+0x30;temp_data=temp_data%10000;//取余运算qian=temp_data/1000+0x30;temp_data=temp_data%1000;//取余运算bai=temp_data/100+0x30;temp_data=temp_data%100;//取余运算shi=tem7、p_data/10+0x30;temp_data=temp_data%10;//取余运算ge=temp_data+0x30;}/*******************************/voiddelay(unsignedintk){unsignedinti,j;for(i=0;i8、*******************
2、RINS.H>#defineucharunsignedchar#defineuintunsignedint//使用的端口,请按照以下接线#defineDataPortP0//LCD1602数据端口sbitSCL=P1^0;//IIC时钟引脚定义sbitSDA=P1^1;//IIC数据引脚定义#defineSlaveAddress0x3C//定义器件5883在IIC总线中的从地址typedefunsignedcharBYTE;typedefunsignedshortWORD;BYTEBUF[8];//接收数据缓存区ucharge,shi,bai,qian,wan
3、;//显示变量intdis_data;//变量//************//************voiddelay(unsignedintk);voidInit_HMC5883(void);//初始化5883voidconversion(uinttemp_data);voidSingle_Write_HMC5883(ucharREG_Address,ucharREG_data);//单个写入数据//ucharSingle_Read_HMC5883(ucharREG_Address);//单个读取内部寄存器数据voidMultiple_Read_HMC58
4、83();//连续的读取内部寄存器数据//以下是模拟iic使用函数-------------voidDelay5us();voidDelay5ms();voidHMC5883_Start();voidHMC5883_Stop();voidHMC5883_SendACK(bitack);bitHMC5883_RecvACK();voidHMC5883_SendByte(BYTEdat);BYTEHMC5883_RecvByte();voidHMC5883_ReadPage();voidHMC5883_WritePage();//-----------------
5、------------------//*********************************************//串口初始化//9600bps@11.059MHzvoidinit_uart(){TMOD=0x21;TH1=0xfd;TL1=0xfd;SCON=0x50;PS=1;//串口中断设为高优先级别TR0=1;//启动定时器TR1=1;ET0=1;//打开定时器0中断ES=1;}//*********串口数据发送******************voidSeriPushSend(ucharsend_data){SBUF=send_d
6、ata;while(!TI);TI=0;}//*********************************************************voidconversion(uinttemp_data){wan=temp_data/10000+0x30;temp_data=temp_data%10000;//取余运算qian=temp_data/1000+0x30;temp_data=temp_data%1000;//取余运算bai=temp_data/100+0x30;temp_data=temp_data%100;//取余运算shi=tem
7、p_data/10+0x30;temp_data=temp_data%10;//取余运算ge=temp_data+0x30;}/*******************************/voiddelay(unsignedintk){unsignedinti,j;for(i=0;i8、*******************
8、*******************
此文档下载收益归作者所有