单片机学校实训老师上课需要的工具以及源码分享

下载点此去
在这里插入图片描述
在这里插入图片描述

实验装置及软件等

实验装置: 《STC试验箱》

实验资料 1. 《STC15系列单片机器件手册》

          2.    《STC实验箱4-原理图》
  1. 《STC实验箱4-使用说明书》

  2. 《嵌入式系统技术实验指导书》

    实验软件: 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文件:

  1. Timer.c                                     Timer.h
    
  2. Display.c                                   Display.h
    
  3. KeyScan.c                                KeyScan.h
    
  4. Uart0.c                                      Uart0.h
    
  5. Adc.c                                        Adc.h
    
  6. KeyAdc.c                                  KeyAdc.h
    

H 文件介绍

  1. Timer.h
    

extern bit TimerMsFlag;

// 供主程序作毫秒定时用标志

extern WORD pdata TimerMsWait;

// 供主程序作毫秒延时用变量

void Timer0Init( void );

// 启动定时器0 毫秒中断

  1. 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 );

// 显示定时刷新,主程序每毫秒调用一次

  1. KeyScan.h
    

BYTE GetKeyFromBuf( void );

// 获取键盘输入

// 有输入返回 0x00–0x0f

// 无输入返回 0xff

void KeyScan( void );

// 键盘扫描,主程序每毫秒调用一次

  1. 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

  1. 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位转换值

  1. KeyAdc.h
    

BYTE GetKeyFromBuf( void );

// 获取键盘输入

// 有输入返回 0x00–0x0f

// 无输入返回 0xff

void KeyAdc( void );

// 键盘扫描,主程序每毫秒调用一次

实验一 跑马灯

一、实验目的

  1.   熟悉单片机定时器的使用方法;
    
  2.   熟悉单片机IO端口使用方法;
    
  3.   熟悉单片机数码管显示的控制方法;
    
  4.   熟悉Keil C51 编程环境和在次环境下的编程方法;
    

二、实验的主要内容

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

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

三、实验设备和工具

  1.   STC实验箱一台
    
  2.   自备笔记本电脑一台
    
  3.   笔记本电脑安装Keil C51开发软件。
    
  4.   相应库函数。
    

四、实验程序

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

五、实验报告要求

     1. 实验结果总结。

     2. 自己修改程序的实验结果对比。

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

     4. 对STC15W系列IO端口模式的理解。
  1. 对STC15W系列定时器中断模式的理解。

实验二 扫描键盘

一、实验目的

  1.  熟悉单片机定时器的使用方法;
    
  2.  熟悉单片机IO端口使用方法;
    
  3.  熟悉单片机数码管显示的控制方法;
    
  4.  了解键盘扫描输入方法
    
  5.  熟悉Keil C51 编程环境和在次环境下的编程方法;
    

二、实验的主要内容

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

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

三、实验设备和工具

  1. STC实验箱一台

  2.  自备笔记本电脑一台
    
  3.  笔记本电脑安装Keil C51开发软件。
    
  4.  相应库函数。
    

四、实验程序

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

五、实验报告要求

     1. 实验结果总结。

     2. 自己修改程序的实验结果对比。

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

     4. 对STC15W系列IO端口模式的理解。
  1. 对STC15W系列定时器中断模式的理解。

实验三 ADC转换

一、实验目的

  1.  熟悉单片机定时器的使用方法;
    
  2.  熟悉单片机IO端口使用方法;
    
  3.  熟悉单片机数码管显示的控制方法;
    
  4.  了解模拟数字转换原理与方法
    
  5.  熟悉Keil C51 编程环境和在次环境下的编程方法;
    

二、实验的主要内容

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

2.完成一个“ADC转换”显示功能的实验,并将转换结果在数码管上显示。

三、实验设备和工具

  1. STC实验箱一台

  2. 自备笔记本电脑一台

  3. 笔记本电脑安装Keil C51开发软件。

  4. 相应库函数。

四、实验程序

模板程序下“ADC转换”项目。

五、实验报告要求

     1. 实验结果总结。

     2. 自己修改程序的实验结果对比。
  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. 实验结果总结。

     2. 自己修改程序的实验结果对比。
  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. 实验结果总结。

      2. 自己修改程序的实验结果对比。
    
  2. 对STC15W系列UART串口通讯工作模式的理解。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵舒敲代码

我的公v是cxyy1106,欢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值