标题: STC15单片机嵌入式系统实验指导书下载 [打印本页]

作者: zqzqzqzqzq    时间: 2019-1-16 18:03
标题: STC15单片机嵌入式系统实验指导书下载
该课程主要讲授的是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文件:

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 );
// 键盘扫描,主程序每毫秒调用一次

实验一  跑马灯
一、实验目的
二、实验的主要内容

1、利用已有的Timer.c 和 Display.c 程序库,编写相应主程序。

2、完成一个“跑马灯”显示功能的实验,每秒中将显示数据左移或右移一位。

三、实验设备和工具
四、实验程序

模板程序下“跑马灯”项目。

五、实验报告要求

              1. 对STC15W系列定时器模式的理解。

              2. 对STC15W系列IO端口模式的理解。

3. 对STC15W系列定时器中断模式的理解。



实验二  扫描键盘
一、实验目的
二、实验的主要内容

1、利用已有的Timer.c 、Display.c 和KeyScan.c程序库,编写相应主程序。

2、完成一个“扫描键盘”显示功能的实验,每输入一个字符,将显示数据左移,并将新的输入放到最后一位显示。

三、实验设备和工具

1.  STC实验箱一台

四、实验程序

模板程序下“扫描键盘”项目。

五、实验报告要求

              1. 对STC15W系列定时器模式的理解。

              2. 对STC15W系列IO端口模式的理解。

3. 对STC15W系列定时器中断模式的理解。



实验ADC转换
一、实验目的
二、实验的主要内容

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)








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1