内容简介
采用Cygnal公司的C8051F020DK-U型单片机开发工具,即可实现与计算机的串口通信。本书由简入繁,详细阐述了三种串口通信模式,依据其各自的串行数据传输能力,可适用于不同的实际项目。单片机测量了六路电压量、片内温度,记录了两个时间值,并将它们串行发送到计算机中;计算机将计算得到的物理电压值等,采用ODBC、自动化两种方法,存储到以当前时刻命名的Excel文件中。
目录
目 录
第1部分 基本知识
第1章 C8051F020型单片机 2
1.1 开发工具 2
1.1.1 硬件连接图 2
1.1.2 主要部件的简介 3
1.1.3 目标板的跳线器连接 4
1.1.4 自制件 5
1.2 集成开发环境 7
1.2.1 集成开发环境的简介 7
1.2.2 集成开发环境的配置 8
1.2.3 Keil公司简介 9
1.3 C8051F020型单片机 10
1.3.1 系统时钟SYSCLK 10
1.3.2 片外数据存储器的扩展 10
1.3.3 低端口P0~P3 11
1.3.4 T0、T1、T2、T3、T4简介 13
1.3.5 模数转换器ADC0 17
1.3.6 串行通信总线UART0 20
1.4 头文件C8051F020.h 22
1.4.1 缩写词 22
1.4.2 文件代码 23
第2章 计算机串口通信基础 30
2.1 Windows API串口通信函数 30
2.1.1 串口的打开、关闭 30
2.1.2 串口的配置 31
2.1.3 串口缓冲区的控制 33
2.1.4 读、写操作的超时控制 33
2.1.5 串行通信事件的操作 35
2.1.6 串口的读、写操作 37
2.1.7 异步操作 39
2.2 多线程 41
2.2.1 线程简介 41
2.2.2 工作者线程的相关函数 42
2.2.3 线程间的通信 43
2.2.4 线程间的同步 45
2.3 Visual C++ 6.0的介绍 46
2.3.1 工作界面的简单介绍 46
2.3.2 编程中的常用操作 54
2.3.3 本文所用常量的出处 58
第2部分 串口通信模式A-1
第3章 单片机编程A-1 66
3.1 通信协议 66
3.1.1 起止式异步协议的实例 66
3.1.2 字符帧的格式 67
3.1.3 数据包Ⅰ中各字节的意义 67
3.1.4 数据包Ⅱ中各字节的意义 68
3.1.5 具体的串口通信协议 69
3.2 两个中断函数的流程图 72
3.3 单片机程序A-1 76
第4章 计算机编程A-1 100
4.1 项目的创建、窗口初始化 100
4.1.1 项目的创建 100
4.1.2 Resource.h文件清单1 103
4.1.3 窗口初始化 103
4.2 自定义Comm菜单 104
4.2.1 菜单资源的添加 104
4.2.2 消息映射 1 105
4.2.3 由ClassWizard添加的代码1 106
4.3 自定义Comm Setting对话框 110
4.3.1 对话框资源的添加 110
4.3.2 对话框内控件的调整 114
4.3.3 Resource.h文件清单2 115
4.3.4 关联变量 116
4.3.5 消息映射2 118
4.3.6 由ClassWizard添加的代码2 119
4.4 文档类中的数据成员 122
4.4.1 文档类数据成员的说明 122
4.4.2 文档类数据成员的添加 127
4.4.3 由ClassWizard添加的代码3 129
4.4.4 文档类数据成员的初始化 131
4.5 串行缓冲区的读/写函数 133
4.5.1 串行接收缓冲区的读取函数 133
4.5.2 串行发送缓冲区的写入函数 135
4.6 工作者线程控制函数 137
4.6.1 全局函数ThreadFunction1 ( ) 的流程图 137
4.6.2 串行接收缓冲区的读取方法 138
4.6.3 全局函数ThreadFunction1 ( ) 的代码清单 138
4.6.4 工作者线程的终止 141
4.6.5 continue语句的使用 142
4.7 菜单项的UPDATE_COMMAND_UI消息响应函数 143
4.8 WM_TIMER 消息的响应函数 145
4.8.1 定时器的使用意义 145
4.8.2 WM_TIMER的消息映射 146
4.8.3 函数CTianView :: onTimer ( ) 的代码清单 146
4.9 Connect菜单项的COMMAND消息响应函数 147
4.9.1 函数CTianDoc :: onCommConnect ( ) 的流程图 147
4.9.2 Microsoft Excel驱动程序的查看 148
4.9.3 常量定义1 149
4.9.4 函数CTianDoc :: onCommConnect ( ) 的代码清单 150
4.9.5 自定义函数 CTianDoc :: Function_SetCommState ( ) 154
4.10 Start菜单项的COMMAND消息响应函数 157