智能仪器原理及应用
课 程 设 计
基本信息
学生姓名: 学号:
院系名称:信息与电气工程学院 课程设计名称:智能仪器原理及应用 同组人姓名:
课程设计时间: 2013年11月11日 至 2013年11月15日
课程设计内容目录 页码 一. 课程设计题目与任务书...……………………………………………...... [2] 二. 课程设计用仪器设备名称...…………………………………………….. [3] 三. 课程设计要求……...…………………………………………………….. [4] 四. 课程设计过程……...…………………………………………………….. [4] 五. 课程设计心得……...………………………………………….. ………... [9]
教师评语及课程设计成绩
评语: 成绩: 教师签字:
年
月 日
一、课程设计题目与任务书
课程设计(论文)任务书
指导教师签字:系(教研室)主任签字:
年月日
二、课程设计用仪器设备名称:
1 单片机的介绍
单片机(嵌入式应用)属于专用计算机,主要应用于智能仪表、智能传感器、智能家电、智能办公设备、汽车及军事电子设备等应用系统。
单片机体积小、价格低、可靠性高,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势。
(1)单芯片微机形成阶段
1976年,Intel 公司推出了MCS-48系列单片机 。8位CPU 、1K 字节ROM 、64字节RAM 、27根I/O线和1个8位定时/计数器。
(2)性能完善提高阶段
1980年,Intel 公司推出了MCS-51系列单片机:8位CPU 、4K 字节ROM 、128字节RAM 、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K ,并有控制功能较强的布尔处理器。
(3)微控制器化阶段
1982年,Intel 推出MCS-96系列单片机。
芯片内集成:16位CPU 、8K 字节ROM 、232字节RAM 、5个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K 。片上还有8路10位ADC 、1路PWM 输出及高速I/O部件等。
2 软件设计及仿真
(1)Keil
1. 系统概述
Keil C51是美国Keil Software公司出品的51系列兼容单片机C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C 来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。
2. Keil C51单片机软件开发系统的整体结构
C51工具包的整体结构,如图(1)所示,其中uVision 与Ishell 分别是C51 for Windows 和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件
可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS 文件由OH51转换成标准的Hex 文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM 中。 3. 使用独立的Keil 仿真器时,注意事项
* 仿真器标配11.0592MHz 的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 * 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
* 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM ,不能使用片外ROM ;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM (其CPU 的/EA引脚接至低电平)的目标系统中使用。 (2) ProTeus
Proteus 是世界上著名的EDA 工具(仿真软件) ,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR 、ARM 、8086和MSP430等,2010年又增加了Cortex 和DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR 、Keil 和MPLAB 等多种编译器。
三、课程设计要求
甲、乙两个单片机进行串行通讯。要求甲机把控制8个流水灯点亮的数据发送给乙机并点亮其P1口的相应的8个LED. 注:甲机串口发送的数据可以使用虚拟终端来观察。
四、课程设计过程
1 总体方案设计
总体结构图如下:
图1 总体设计结构图
两台AT89C51单片机作为核心部件,通过串口互连。甲机作为发送机,乙机作为接收机。甲机通过按键读入数据,传送给乙机后,输出并通过LED 灯显示。
2 总体程序框架设计
甲机流程图如下:
图2 甲机流程图
乙机流程图如下:
图3 乙机流程图
3 Proteus仿真设计
Proteus 中采用AT89C51单片机,晶振频率设置为11.0592MHz 。双机通过串口连接。
void delay(uchar xms) {
uint i, j ;
}
for (i =xms ; i >0; i --)
for (j =110; j >0; j --);
void init(void ) { }
void send(void ) { }
while (1) { }
//握手信号发送 //等待发送完毕 //清TI //延时100ms
SBUF =0xaa ; while (!TI ); TI =0; if (RI ) { }
RI =0;
if ((SBUF ^0xbb )==0) { }
SBUF =P1; while (!TI ); TI =0;
//发送数据
//等待数据发送完毕 //反馈信号确认
EA =1; ES =1;
//开总中断 //开串行口中断
//定时器1工作在方式2,八位自动重装 //设置T1初值,令波特率9600 //SMOD==0
//串行口工作在方式1,允许接收 //开T1
TMOD =0x20; TH1=0xfd ; TL1=0xfd ; PCON =0x00; SCON =0x50; TR1=1;
delay (100);
乙机源代码如下:
#include void receive(void ); void init(void );
int main() { }
init (); receive (); return 0;
void init(void ) { EA =1; ES =1;
//开总中断 //开串行口中断
//定时器1工作在方式2,八位自动重装 //设置T1初值,令波特率9600 //SMOD==0
//串行口工作在方式1,允许接收 TMOD =0x20; TH1=0xfd ; TL1=0xfd ; PCON =0x00; SCON =0x50; TR1=1;
//开T1
}
void receive(void ) { while (1) {
while (!RI );
//等待接收数据 RI =0;
//清RI
if ((SBUF ^0xaa )==0)
{ SBUF =0xbb ; //反馈握手信号 while (!TI ); //等待发送完毕
TI =0; while (!RI ); //接收数据 RI =0; P1=SBUF ;
}
}
}