4.2 单片机系统的工作原理
图4.1 单片机系统框图
单片机最小系统是将单片机接上时钟电路和复位电路所得,使用的单片机是AT89S52,在单片机最小系统上加上温度传感器DS18B20、放大电路OP07、模/数转换器ADC0809就可以进行温度数据的采样。工控机与单片机之间连上MAX232进行MODBUS协议通讯。
AT89S52的功能:
① 拥有灵巧的8位CPU和在系统可编程Flash
② 晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)
③ 内部程序存储器(ROM)为 8KB
④ 内部数据存储器(RAM)为 256字节
⑤ 32 个可编程I/O 口线
⑥ 8 个中断向量源
⑦ 三个 16 位定时器/计数器
⑧ 三级加密程序存储器
⑨ 全双工UART串行通道
4.3 单片机系统的流程图
图4.2 单片机系统主程序流程图
初始化程序
{ SCON=0x50; //UART为模式1,8位数据,允许接收
TMOD=0x21; //定时器1为模式2,8位自动重装,由TCON中的TRx控制
PCON=0x00; //SMOD=0
TH1=0xFD; //Baud:9600 fosc="11".0592MHz,波特率可变UART为模式1
TL1=0x00;
PS=1; //串口优先最高
EA=1; //总中断
ES=1; //串口中断
TR1=1; //timer 1 run
Rptr=0;
RecvOk=0;
}
串口中断程序
void Uart() interrupt 4 using 1//串口中断
{ byte m;
ES=0;
if(TI)
TI=0;
else if(RI) //判断串口接收寄存器SBUF是否满了,满则RI由硬件置1
{ RI=0; //软件清零
m=SBUF;
if(Rptr<BufMax)//初始化BufMax=20
{ Rbuf[Rptr]=m;//将接收到的数据存到数组里(除了HEAD)
Rptr++;
}
if(m==HEAD)
Rptr=0;
if(m==OVER) //判断是否接收完毕
RecvOk=1; //接收完毕标志位
}
- 上一篇:AT89C51单片机智能恒温混水阀控制器的设计
- 下一篇:西门子SIMATIC S7-300系列驱动与调试+梯形图
-
-
-
-
-
-
-
杂拟谷盗体内共生菌沃尔...
乳业同业并购式全产业链...
酸性水汽提装置总汽提塔设计+CAD图纸
java+mysql车辆管理系统的设计+源代码
大众媒体对公共政策制定的影响
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
电站锅炉暖风器设计任务书
河岸冲刷和泥沙淤积的监测国内外研究现状
中考体育项目与体育教学合理结合的研究