![]() |
|
||||||||||||||
| | 网站首页 | 综合电子 | 51单片机 | AVR单片机 | ARM专栏 | MSP430 | 网上商城 | PSOC | 下载中心 | 公司事项 | DSP专栏 | | ||
|
||
|
|||||
| 51单片机串口使用 | |||||
| 51单片机串口使用 | |||||
作者:未知 51单片机来源:本站原创 点击数: 更新时间:2008-8-14 ![]() |
|||||
|
很多朋友在使用单片机串口的时候存在着一定的问题,我根据自己的经验,给大家总结如下: 串口调试 经过调试,以上功能基本实现,目前可以通过上位机对单片机进行实时控制。 程序如下: //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 #i nclude <reg51.h> #i nclude<stdio.h> #i nclude <string.h> #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]; unsigned char checksum,count3 , flag,temp,ch; bit read_flag=0; sbit cp=P1^1; sbit DIR=P1^2; int i; unsigned int xdata *RAMDATA; /*定义RAM地址指针*/
unsigned char a[6] ={0x11,0x22,0x33,0x44,0x55,0x66} ;
void init_serialcomm(void) { SCON=0x50; //在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收 PCON=0x00; ES=1; TMOD=0x21; //定时器工作于方式2,自动装载方式 TH0=(65536-1000)%256; TL0=(65536-1000)/256; TL1=0xfd; TH1=0xfd; ET0=1; TR0=1; TR1=1; // TI=0; EA=1; // TI=1; RAMDATA=0x1F45; } void serial () interrupt 4 using 3 { if(RI) { RI=0; ch=SBUF; TI=1; //置SBUF空 switch(ch) { case 0x01 :printf("A"); TI=0;break; case 0x02 :printf("B"); TI=0;break; case 0x03 :printf("C"); TI=0;break; case 0x04 :printf("D"); TI=0;break; default :printf("fg"); TI=0;break; } }
} //向串口发送一个字符 void timer0() interrupt 1 using 3{ // char i; flag++; TH0=0x00; TL0=0x00; if(flag==10) {// cp=!cp; // for(i=0;i<6;i++) P2=0x25; TI=1; temp=*RAMDATA; printf("%c",temp); TI=0; // RAMDATA--; flag=0; } }
//主程序 main() {
init_serialcomm(); //初始化串口 //向6264中送数据 { *RAMDATA=0x33;
}
while(1) {
*RAMDATA=0x33;; } }
调试过程中遇到的问题: 1. 发送过程:在发送时必须保证TI=1:即发送缓冲器为空,否则将导致数据发不出去,如果想强制发送可以用:TI=1.具体发送数据:利用printf(“akjdfaklfj”);函数直接发送即可。 2. 接收过程:在接收时多选用中断方式,这样可以节约CPU的时间,提高效率, |
|||||
| 51单片机录入:dycxin 责任编辑:dycxin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 51单片机产生方波程序示例 基于89C52单片机的实用八路物… 采用AT89C2051制作的智能时钟 采用AT89C2051的6位电子钟 采用2051设计的无线防盗报警… 基于AT89C2051的智能型汽车防… X25045在舞台灯光换色器设计… AT89C2051驱动步进电机的电路… 基于单片机与光电传感器的电… 基于超声波检测的倒车雷达设… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | | 设为首页 | 购买方法 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 联系我们 | 网络答疑| | | |||
|