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系列驱动与调试+梯形图
-
-
-
-
-
-
-
NFC协议物理层的软件实现+文献综述
浅析中国古代宗法制度
中国传统元素在游戏角色...
上市公司股权结构对经营绩效的影响研究
C++最短路径算法研究和程序设计
江苏省某高中学生体质现状的调查研究
g-C3N4光催化剂的制备和光催化性能研究
高警觉工作人群的元情绪...
现代简约美式风格在室内家装中的运用
巴金《激流三部曲》高觉新的悲剧命运