找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2519|回复: 0
打印 上一主题 下一主题
收起左侧

STC15单片机嵌入式系统实验指导书下载

[复制链接]
跳转到指定楼层
楼主
ID:469321 发表于 2019-1-16 18:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
该课程主要讲授的是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 文件介绍
  • Timer.h
extern              bit                                                                      TimerMsFlag;
// 供主程序作毫秒定时用标志
extern              WORD                            pdata              TimerMsWait;
// 供主程序作毫秒延时用变量
void Timer0Init( void );
// 启动定时器0 毫秒中断
  • Display.h
#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 );
// 显示定时刷新,主程序每毫秒调用一次
  • KeyScan.h
BYTE GetKeyFromBuf( void );
// 获取键盘输入
// 有输入返回                            0x00--0x0f
// 无输入返回                            0xff
void KeyScan( void );
// 键盘扫描,主程序每毫秒调用一次
  • Uart0.h
#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
  • Adc.h

#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位转换值
  • KeyAdc.h
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)



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表