初学者笔记之串口仿真例程
proteus里面不要使用max232元件,直连compin即可。真实环境再使用max232转换电平。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <reg52.h>
- #include <stdio.h>
- #define uchar unsigned char
- #define uint unsigned int
-
- uchar flag;
- uchar a;
- uchar table[] = "Iget";
- void delay(int ms);
- void sendchar(uchar ch);
- void sendstring(char*);
- void init()
- {
- TMOD = 0x20;//TMOD工作方式2 自动重载8位初值
- PCON =0x80;
- TH1 = 0xFA;
- TL1 = 0xFA;
-
- // SM0=0;
- // SM1=1;//
- // REN = 1;//
- //把这三句换成下面一条语句,就完美解决
- SCON = 0x50;//串口工作方式1,允许串口接收
- EA = 1;//中断允许
- ES = 1;//串口中断模式
-
- TR1=1;
- }
- void main()
- {
- init();
- delay(100);
- while(1)
- {
- if(flag==1)
- {
- flag=0;
- sendstring(table);
- sendchar(a);
- }
- }
- }
- void sendstring(char* chs)
- {
- ES=0;
- TI= 1;
- printf("%s", chs);
- while(!TI);
- TI=0;
- ES = 1;
- }
- void sendchar(uchar ch)
- {
- ES=0;
- SBUF = ch;
- while(!TI);
- TI=0;
- ES = 1;
- }
- void delay(int ms)
- {
- int i,j;
- for(i=0;i<ms;i++)
- for(j=0;j<110;j++);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
串口通讯.zip
(22.58 KB, 下载次数: 58)
|