W77E58微控制器与GPRS通信的代码实现

需积分: 0 2 下载量 134 浏览量 更新于2024-07-31 收藏 83KB DOC 举报
"该资源主要涉及W77E58微控制器和GPRS通信的相关代码实现,特别是关于双串口的配置和使用。" 在嵌入式系统中,W77E58是一款常见的8位单片机,常用于简单的数据处理和通信任务。这个代码示例展示了如何在W77E58上设置和使用两个串行通信接口(串口0和串口1)进行数据传输。GPRS(General Packet Radio Service)是基于GSM网络的一种移动通信技术,用于提供分组数据服务,而在这个上下文中,可能是指W77E58通过GPRS模块与远程设备进行数据交互。 首先,代码包含头文件"w77c32.h",这通常包含了针对W77E58微控制器的特定寄存器定义和函数原型。接着,定义了两个标志变量`flag_1`和`flag_0`,以及两个字符数组`c1`和`c2`,用于存储待发送的数据。 在`main()`函数中,初始化两个串口。串口1的设置包括开启总中断和串口0中断,配置定时器1为模式1,以产生2400波特的波特率,并设定SCON1寄存器进行接收。同时,设置PCON寄存器以选择10位异步通信模式,并启用串口1中断。串口0的设置则利用定时器2作为波特率发生器,同样设定波特率为2400,然后开启定时器2和定时器1。 接下来的`while(1)`循环中,`flag_0`和`flag_1`用于控制串口0和串口1的发送中断。当标志被置位时,会触发发送中断,然后发送预设的字符串`c1`或`c1`。 串口0的中断服务子程序`serial_0(void)interrupt4`处理接收和发送中断。如果接收到数据,`flag_0`被置位并清除RI标志;若发送中断发生,将发送`c1`字符串,并清零TI标志。 串口1的中断服务子程序`serial_1(void)interrupt7`类似,处理串口1的接收中断,但未显示完整的发送部分。 整个代码片段展示了如何在W77E58上进行基本的串行通信配置,这对于理解单片机的串口操作和中断处理至关重要。对于GPRS通信,通常还需要额外的步骤,例如配置SIM卡、建立连接、发送AT命令等,这些内容在提供的代码中并未直接体现。