单片机学校实训老师上课需要的工具以及源码分享
下载点此去
实验装置及软件等
实验装置: 《STC试验箱》
实验资料 1. 《STC15系列单片机器件手册》
2. 《STC实验箱4-原理图》
《STC实验箱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. 实验结果总结。2. 自己修改程序的实验结果对比。3. 对STC15W系列定时器模式的理解。4. 对STC15W系列IO端口模式的理解。
- 对STC15W系列定时器中断模式的理解。
实验二 扫描键盘
一、实验目的
熟悉单片机定时器的使用方法;
熟悉单片机IO端口使用方法;
熟悉单片机数码管显示的控制方法;
了解键盘扫描输入方法
熟悉Keil C51 编程环境和在次环境下的编程方法;
二、实验的主要内容
1、利用已有的Timer.c 、Display.c 和KeyScan.c程序库,编写相应主程序。
2、完成一个“扫描键盘”显示功能的实验,每输入一个字符,将显示数据左移,并将新的输入放到最后一位显示。
三、实验设备和工具
STC实验箱一台
自备笔记本电脑一台
笔记本电脑安装Keil C51开发软件。
相应库函数。
四、实验程序
模板程序下“扫描键盘”项目。
五、实验报告要求
1. 实验结果总结。2. 自己修改程序的实验结果对比。3. 对STC15W系列定时器模式的理解。4. 对STC15W系列IO端口模式的理解。
- 对STC15W系列定时器中断模式的理解。
实验三 ADC转换
一、实验目的
熟悉单片机定时器的使用方法;
熟悉单片机IO端口使用方法;
熟悉单片机数码管显示的控制方法;
了解模拟数字转换原理与方法
熟悉Keil C51 编程环境和在次环境下的编程方法;
二、实验的主要内容
1.利用已有的Timer.c 、Display.c 和Adc.c程序库,编写相应主程序。
2.完成一个“ADC转换”显示功能的实验,并将转换结果在数码管上显示。
三、实验设备和工具
STC实验箱一台
自备笔记本电脑一台
笔记本电脑安装Keil C51开发软件。
相应库函数。
四、实验程序
模板程序下“ADC转换”项目。
五、实验报告要求
1. 实验结果总结。2. 自己修改程序的实验结果对比。
- 对STC15W系列ADC工作模式的理解。
实验四 ADC键盘
一、实验目的
熟悉单片机定时器的使用方法;
熟悉单片机IO端口使用方法;
熟悉单片机数码管显示的控制方法;
了解模拟数字转换原理与方法
熟悉Keil C51 编程环境和在次环境下的编程方法;
二、实验的主要内容
1.利用已有的Timer.c 、Display.c 、Adc.c和KeyAdc.c程序库,编写相应主程序。
2.完成一个“ADC键盘”显示功能的实验,每输入一个字符,将显示数据左移,并将新的输入放到最后一位显示。
三、实验设备和工具
STC实验箱一台
自备笔记本电脑一台
笔记本电脑安装Keil C51开发软件。
相应库函数。
四、实验程序
模板程序下“ADC键盘”项目。
五、实验报告要求
1. 实验结果总结。2. 自己修改程序的实验结果对比。
- 对STC15W系列ADC工作模式的理解。
实验五 串口通讯
一、实验目的
熟悉单片机定时器的使用方法;
熟悉单片机IO端口使用方法;
熟悉单片机数码管显示的控制方法;
了解单片机串行通讯的原理与方法
熟悉Keil C51 编程环境和在次环境下的编程方法;
二、实验的主要内容
1.利用已有的Timer.c 、Display.c 和Uart0.c程序库,编写相应主程序。
2.完成一个“串口通讯”显示功能的实验,每接收一个字符并将其返回,同时计数加1,并在数码管上显示计数。
三、实验设备和工具
STC实验箱一台
自备笔记本电脑一台
笔记本电脑安装Keil C51开发软件。
相应库函数。
终端仿真程序
四、实验程序
模板程序下“串口通讯”项目。
五、实验报告要求
实验结果总结。
2. 自己修改程序的实验结果对比。
对STC15W系列UART串口通讯工作模式的理解。
单片机学校实训老师上课需要的工具以及源码分享相关推荐
- java计算机毕业设计高校实习实训管理系统MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计高校实习实训管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计高校实习实训管理系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目 ...
- Java实训项目一一拼图游戏(附源码)
1 实训基本信息 1.1 实训项目名称 (1)拼图游戏 1.2 实训环境 本次实训内容主要针对专业学生,实训形式以实战讲解为主导.实训课程由实训老师主讲,实训老师教学严谨又平易近人,讲解的内容非常细致 ...
- Java实训项目一一考试系统(附源码)
1 实训基本信息 1.1 实训项目名称 (1)考试系统 1.2 实训环境 本次实训内容主要针对专业学生,实训形式以实战讲解为主导.实训课程由实训老师主讲,实训老师教学严谨又平易近人,讲解的内容非常细致 ...
- Atmel爱特梅尔AT89S52单片机开发实训装置,QY-DPJ12
AT89S52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM)器件采用A ...
- 【单片机项目实训】八路抢答器
将单片机项目实训--8路抢答器分享出来,如有不足,敬请指出. [实验图片] [实验视频] [项目实训]8路抢答器 目录 一.设计要求 二.方案选择 三.硬件电路设计 五.其他图片 六.资料链接 七.关 ...
- 职业学校计算机技能标语,职业学校实训车间激励类标语口号
职业学校实训车间激励类标语口号 实训提高能力,能力创造机会. 每天进一步,踏上成功路. 勤学苦练,精益求精. 今天的努力,明天的成功. 态度决定一切,细心决定成功. 寻求效率进步,讲究方法技术. 刻苦 ...
- 学校计算机实训室标语,学校实训室标语
1.培养科学态度,提高科学素质. 2.学技术,练技能,当能手,做贡献. 3.善学者尽其理,善行者究其难. 4.正确操作,细致观察. 5.大胆改革,求实创新. 6.从中国制造走向中国创造,从掌握技术走向 ...
- 【单片机项目实训】基于nRF905的多点温度无线采集系统
将单片机项目实训--基于nRF905的多点温度无线采集系统分享出来,如有不足,敬请指出. [实验图片] [实验视频] 基于nRF905的多点温度无线采集系统设计 目录 目录 一.设计要求 二.方案设计 ...
- 计算机网络应用教学反思,《计算机网络实训之常用的网络工具》教学反思
<<计算机网络实训之常用的网络工具>教学反思>由会员分享,可在线阅读,更多相关<<计算机网络实训之常用的网络工具>教学反思(3页珍藏版)>请在人人文库网 ...
最新文章
- java stream 转 file_java 中 byte[]、File、InputStream 互相转换
- JAVA基础8-封装(2)
- [C#]WinFrom中的DataGrid单击选择行
- Mac安装prometheus node_exporter
- ReferenceError: XXX is not defined 错误及解决办法
- 一分钟了解阿里云产品:企业级分布式应用服务EDAS五大热点技术问题分析
- Golang中unsafe.Sizeof()的问题
- 在ChemDraw中一键隐藏所有氢原子的方法
- [视频]MAC中如何单独放大文本字体
- RESTful登录设计(基于Spring及Redis的Token鉴权)
- 【Python】实例3:天天向上的力量与微实例:星期转换、恺撒密码
- 怎样在线完成视频转gif制作?一招视频转gif在线制作
- Spring Value注解的使用
- 计算机系统概论基本知识
- 京东/淘宝的手机销售榜(前4名 -- 手机品牌 --手机型号*3 --手机分辨率 -- 手机操作系统 --安卓版本号)
- 在EXCEL中的第二列如何排出第一列的名次
- FPGA——SPI总线控制flash(1)(含代码)
- 基本数据类型和内置方法 08
- Word文档一行分别左右对齐
- 2020年8月编程语言排行榜出炉:C语言位居第一,Java、Python位居二三
热门文章
- 清除实例或静态事件的所有事件侦听器
- Facebook 开源 M2M-100,不依赖英语互译百种语言
- 面向初学者的带MVC API的Angular Js Table CRUD MSSQL
- 在python中使用什么函数进行输出_Python中使用pprint函数进行格式化输出的教程
- model 创建帖子的方法
- zookeeper和eureka的对比
- vscode有时候不能注释_给大伙儿盘几个提效/创意的 vscode 插件
- 数据库某个字段增加或减少数量
- three相机在模型上_实例讲解Three.js加载外部模型
- linux查看nec进程状态,【linux】 /proc/PID/stat