资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
精选优质文档-倾情为你奉上先上图:实验程序:/* 【编写时间】: 2016年6月12日* 【作 者】: 小瓶子* 【实验平台】: Proteus 7* 【内部晶振】: 11.0592mhz* 【主控芯片】: STC89C51* 【编译环境】: Keil Visio4* 【程序功能】: 利用虚拟中断实现串口数据的发送和接收 */#include #define uint unsigned int#define uchar unsigned char/毫秒级延时函数void delay(uint x) uchar i; while(x-) for(i = 0;i 120;i+); /字符发送函数void putchar(uchar data1) SBUF = data1; /将待发送的字符送入发送缓冲器while(!TI); /等待发送完成TI = 0; /发送中断标志请0/字符串发送函数void putstring(uchar *dat) while(*dat != 0) /判断字符串是否发送完毕 putchar(*dat); /发送单个字符 dat+; /字符地址加1,指向先下一个字符 delay(5); /串口初始化函数void serial_init()uchar c = 0; SCON = 0x50; /串口方式1 ,允许接收 TMOD = 0x20; /T1工作于方式2 PCON = 0x00; /波特率不倍增 TL1 = 0xfd; TH1 = 0xfd; / 波特率设置为9600 EA = 1; /开总中断ES = 1; /开串口接收中断/主函数void main()serial_init(); /串口初始化 TR1 = 1; /定时器开启 delay(200); putstring(Receiving from 8051.rn); /串口向终端发送字符串,结尾处回车换行 putstring(-rn); delay(50);while(1); /串口中断void revdata() interrupt 4 uchar temp; if(RI = 0) return; /如果没有接收中断标志,退出中断 ES = 0; /关闭串口中断 RI = 0; /清串行中断标志位 temp = SBUF; /接收缓冲器中的字符 putchar(temp); /将接收的字符发送出去 ES = 1; /开启串口中断仿真:专心-专注-专业
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号