该课程主要讲授的是Intel MCS-51及其兼容8位单片机。 实验中使用的是由宏晶科技提供的《STC试验箱》,所使用的CPU芯片为宏晶科技生产的STC15W4K58S4。兼容MSC-51,单比传统MCS-51执行速度更快,提供的外设也更多更丰富。宏晶科技为国内最大的MCS-51单片机生产商,其生产的MCS-51兼容CPU在中低端嵌入式应用中几乎占据国内全部市场。
实验装置及软件等 实验装置: 《STC试验箱》 实验资料 1. 《STC15系列单片机器件手册》 2. 《STC实验箱4-原理图》 3. 《STC实验箱4-使用说明书》 4. 《嵌入式系统技术实验指导书》 实验软件: 1. stc-isp-15xx-v6.86F.rar (程序下载工具) 2. c51setup (C51安装程序) 3. 程序函数库 ( .c 及.h文件) 学生自备:1.笔记本电脑一台,操作系统为Windows XP/Win7/Win8/Win10
实验准备:必须在参与实验之前,首先在笔记本电脑上安装c51setup和stc-isp-5xx-v6.86F软件,以供实验使用,安装方法由授课教师在课堂上讲解。
实验中,由实验室向学生提供相应实验模板程序,可以直接用于实验。在实验过程中,首先必须先看懂模板程序,并在此基础上适当修改后再次实验,反复多次,以达到熟悉和掌握单片机嵌入式应用的编程技巧和方法。
软件安装
一.C51setup安装 鼠标双击 C51Settp,安装软件开始执行,弹出画面 点击 Next 下一步。 选择同意,点击Next,下一步。 请选择安装目录,缺省安装至C盘根目录,选择好后,点击Next,下一步。 在First Name和E-mail处输入你的名字和邮箱号,此处可以任意输入,不影响使用。然后点击Next,下一步。 等待安装完成后,点击Finish即完成安装。 安装完成后的C51开发器,最大编译程序不得超过2K容量,如果程序超过2K,请购买Keil C51正版软件。
二.stc-isp-15xx-v6.86F安装 将stc-isp-15xx-v6.86F.rar 拷贝至你需要安装的磁盘,然后解压即可,然后进入到解压好的目录,发送stc-isp-15xx-v6.86F文件快捷方式到桌面。 驱动程序安装:进入解压目录,选择USB to UART Driver子目录,再选择CH340_CH341子目录,双击ch341ser,弹出如下画面
点击安装,即可完成驱动程序的安装。安装完成后直接关闭即可。
添加STC单片机头文件及调试库 双击桌面stc-isp-15xx-v6.86F快捷方式,打开文件,进入画面 选择Keil仿真设置,再点击“添加型号和头文件到Keil中” ,弹出对话框 选择好keil 安装目录后,点击“确定” ,等到完成即可。 现在可以编程实验了。具体工程建立等相关信号请参见《STC实验箱4-使用说明书》和本实验指导书即可。
新建Keil项目
首先打开 Keil 软件,并打开“Project”菜单中的“New uVersion Project …”项
在下面的对话框中输入新建的项目名称,然后保存 首先选择项目所在目录,如果目录不存在,可以右击鼠标,新建文件夹来设置,之后,在文件名处输入项目名称,点击保存。 再选择CPU系列,此处选择STC MCU Database,点击“OK” 。 将STC展开,找到所需CPU类型,这里选择STC15W4K32S4,因为我们开发板上CPU为次型号,不得选择其他。
点击“OK” ,弹出新对话框。 此次对话框提示是否需要拷贝STARTUP.A51文件到项目中,一般情况下是必须拷贝的,我们这里由于已经将其拷贝至模板程序的src目录了,这里就不需要了,点击“否” ,完成项目的建立。 项目建立到此,就需要添加C源文件代码程序了。如果源文件代码不存在,需要编程,请点击菜单“File”—“New”来建立新的C源文件代码。
在编辑框里编写自己的C代码程序,如图示。
编程完成后,点击菜单“File”—“Save As”来保存我们编写的C代码。可以直接将C程序文件保存在项目目录中,也可与保存在其他目录中。选择好目录,输入文件名称,点击“保存” ,一个C代码文件就建好了。如此完成其他C代码文件建立。
添加已存在文件到项目中 在左边的Project框中,鼠标右击Target 1—Source Group 1,弹出菜单 选择 Add Existing Files to Group ‘Source Group 1’… 在上面查找范围选择文件所在目录,不限于当前项目目录,可以是任何目录,之后在文件列表框中选择文件,再点击“Add”即添加源文件到项目中了。一次可以选择多个文件,一同添加。
编译前的设置 前面介绍了项目的建立过程,现在要介绍一下编译前的一些设置。 为了方便,我们打开一个“跑马灯”实例程序。 这里我们可以看到,项目中包含几个.c C程序文件和一个STARTUP.A51启动文件。 现在开始设置,选则菜单Project下Options for Target Target 1’ …,
设置Output选项,如图示。输出文件目录可以通过左上Select Folder Objects…选择。 在设置Listing选项,如图示。此选项是将编译时将生成中间文件.lst存放在什么目录。目录可以通过左上的Select Folder for Listings…选择。 添加头文件所在目录,选择C51选项,点击Include Paths 后的…按钮 在次可以添加头文件所在目录,可以添加多项。添加结束后点击“OK” ,完成.h头文件路径的添加。
至此。我们可以编译程序了,选择菜单Project下Rebuiild all target files,开始编译程序,编译结果显示在屏幕下部的Build Output区。
如果有错误,在Build Output 会给出错误提示,请在修改错误后重新编译,直至没有错误为止。生成的.Hex文件将在之前选择的目录中,这是我们需要下载到目标板的执行文件的十六进制格式文件。
下载用户程序到目标板
双击桌面stc-isp-15xx-v6.86F快捷方式,打开文件,进入画面 第一步选择单片机型号,此处选择IAP15W4K58S4。 第二步选择串口号,可以通过点击“扫描” ,查到所有端口,再选择所需端口。 第三步点击“打开程序文件” 通过选择文件选择.hex文件 文件选择好后,点击右下的“打开” 。 第四步 设置硬件选项 注意,必须端子使用内部IRC时钟和22.1184MHz,其他选项如上图示。因为程序安装22.1184MHz编写,选择其他频率将导致定时器定时不准和UART通讯不能正常通讯。 第五步连接好编程USB电缆,点击左下“下载/编程” ,开始等待CPU复位,然后,轻按开发板上“SW19”主控芯片电源开关,之后进入编程,编程状态将在右下的信息区显示。如果出错,请予以纠正,直至编程成功为止。 整个编程过程即告结束。
库文件简介
为便于同学们实验,我们将一些基本的操作编写为库文件提供给大家,同学们只需要编写主程序,在主程序中加入相应函数库和头文件,即可完成实验。 请参见模板程序inc目录
C库文件和H文件: - Timer.c Timer.h
- Display.c Display.h
- KeyScan.c KeyScan.h
- Uart0.c Uart0.h
- Adc.c Adc.h
- KeyAdc.c KeyAdc.h
H 文件介绍 extern bit TimerMsFlag; // 供主程序作毫秒定时用标志 extern WORD pdata TimerMsWait; // 供主程序作毫秒延时用变量 void Timer0Init( void ); // 启动定时器0 毫秒中断 #define SIGN 0x10 // 负号 #define SPACE 0x11 // 空 void SendDataToDispBuf( BYTE dat, BYTE idx ); // 发送数据至显示缓冲区 // dat 0x00--0x0f, 0x10, 0x11 // idx 0x00--0x07 void SetPoint( BYTE idx ); // 设置小数点显示位置 // idx 0x00--0x07 void ClearPoint( void ); // 清除小数点位置 void DsipRefresh( void ); // 显示定时刷新,主程序每毫秒调用一次 BYTE GetKeyFromBuf( void ); // 获取键盘输入 // 有输入返回 0x00--0x0f // 无输入返回 0xff void KeyScan( void ); // 键盘扫描,主程序每毫秒调用一次 #define BAUD_1200 0 #define BAUD_2400 1 #define BAUD_4800 2 #define BAUD_9600 3 #define BAUD_19200 4 #define BAUD_38400 5 #define BAUD_57600 6 #define BAUD_115200 7 // 波特率宏定义 void Uart0Init( BYTE baud ); // 设置Uart0波特率为baud, 8位数据, 无校验 // 使用Timer2作波特率发生器 BYTE GetCharFormUart0Buf( void ); // 从Uart0接收缓冲区获取字符 // 有输入字符返回 0x00--0xfe // 无输入字符返回 0xff BYTE PutCharToUart0Buf( BYTE cc ); // 发送一个字符到Uart0发送缓冲区 // 发送成功返回 0x01 // 发送失败返回 0x00
#define ADC_REF25V 2 #define ADC_NTC 3 #define ADC_KEY 4 // ADC通道号定义,与硬件有关,不得修改 void AdcInit( void ); // P1.2--P1.4作为模拟输入 BYTE AdcByteRead( BYTE ch ); // 从给定通道读取8位转换值 WORD AdcWordRead( BYTE ch ); // 从给定通道读取10位转换值 BYTE GetKeyFromBuf( void ); // 获取键盘输入 // 有输入返回 0x00--0x0f // 无输入返回 0xff void KeyAdc( void ); // 键盘扫描,主程序每毫秒调用一次
实验一 跑马灯
一、实验目的 - 熟悉单片机定时器的使用方法;
- 熟悉单片机IO端口使用方法;
- 熟悉单片机数码管显示的控制方法;
- 熟悉Keil C51 编程环境和在次环境下的编程方法;
二、实验的主要内容 1、利用已有的Timer.c 和 Display.c 程序库,编写相应主程序。 2、完成一个“跑马灯”显示功能的实验,每秒中将显示数据左移或右移一位。 三、实验设备和工具 - STC实验箱一台
- 自备笔记本电脑一台
- 笔记本电脑安装Keil C51开发软件。
- 相应库函数。
四、实验程序 模板程序下“跑马灯”项目。 五、实验报告要求 1. 对STC15W系列定时器模式的理解。 2. 对STC15W系列IO端口模式的理解。 3. 对STC15W系列定时器中断模式的理解。
实验二 扫描键盘
一、实验目的 - 熟悉单片机定时器的使用方法;
- 熟悉单片机IO端口使用方法;
- 熟悉单片机数码管显示的控制方法;
- 了解键盘扫描输入方法
- 熟悉Keil C51 编程环境和在次环境下的编程方法;
二、实验的主要内容 1、利用已有的Timer.c 、Display.c 和KeyScan.c程序库,编写相应主程序。 2、完成一个“扫描键盘”显示功能的实验,每输入一个字符,将显示数据左移,并将新的输入放到最后一位显示。 三、实验设备和工具 1. STC实验箱一台 - 自备笔记本电脑一台
- 笔记本电脑安装Keil C51开发软件。
- 相应库函数。
四、实验程序 模板程序下“扫描键盘”项目。 五、实验报告要求 1. 对STC15W系列定时器模式的理解。 2. 对STC15W系列IO端口模式的理解。 3. 对STC15W系列定时器中断模式的理解。
实验三ADC转换
一、实验目的 - 熟悉单片机定时器的使用方法;
- 熟悉单片机IO端口使用方法;
- 熟悉单片机数码管显示的控制方法;
- 了解模拟数字转换原理与方法
- 熟悉Keil C51 编程环境和在次环境下的编程方法;
二、实验的主要内容 1.利用已有的Timer.c 、Display.c 和Adc.c程序库,编写相应主程序。 2.完成一个“ADC转换”显示功能的实验,并将转换结果在数码管上显示。 三、实验设备和工具 1. STC实验箱一台 2. 自备笔记本电脑一台 3. 笔记本电脑安装Keil C51开发软件。 4. 相应库函数。 四、实验程序 模板程序下“ADC转换”项目。 五、实验报告要求 1. 对STC15W系列ADC工作模式的理解。
实验四ADC键盘
一、实验目的 1. 熟悉单片机定时器的使用方法; 2. 熟悉单片机IO端口使用方法; 3. 熟悉单片机数码管显示的控制方法; 4. 了解模拟数字转换原理与方法 5. 熟悉Keil C51 编程环境和在次环境下的编程方法; 二、实验的主要内容 1.利用已有的Timer.c 、Display.c 、Adc.c和KeyAdc.c程序库,编写相应主程序。 2.完成一个“ADC键盘”显示功能的实验,每输入一个字符,将显示数据左移,并将新的输入放到最后一位显示。 三、实验设备和工具 1. STC实验箱一台 2. 自备笔记本电脑一台 3. 笔记本电脑安装Keil C51开发软件。 4. 相应库函数。 四、实验程序 模板程序下“ADC键盘”项目。 五、实验报告要求 1. 对STC15W系列ADC工作模式的理解。
实验五 串口通讯
一、实验目的 1. 熟悉单片机定时器的使用方法; 2. 熟悉单片机IO端口使用方法; 3. 熟悉单片机数码管显示的控制方法; 4. 了解单片机串行通讯的原理与方法 5. 熟悉Keil C51 编程环境和在次环境下的编程方法; 二、实验的主要内容 1.利用已有的Timer.c 、Display.c 和Uart0.c程序库,编写相应主程序。 2.完成一个“串口通讯”显示功能的实验,每接收一个字符并将其返回,同时计数加1,并在数码管上显示计数。 三、实验设备和工具 1. STC实验箱一台 2. 自备笔记本电脑一台 3. 笔记本电脑安装Keil C51开发软件。 4. 相应库函数。 5. 终端仿真程序 四、实验程序 模板程序下“串口通讯”项目。 五、实验报告要求 1. 对STC15W系列UART串口通讯工作模式的理解。
完整的Word格式文档51黑下载地址:
嵌入式系统技术实验指导书.doc
(1.1 MB, 下载次数: 24)
|