论坛» 活动中心» 下载专区

《51单片机轻松入门 基于STC15W4K系列》配套视频例程免费下载

助工
2017-11-21 21:24 1楼

百度网盘免费下载视频+软件+例程,学习过程若有不明白的也可在本帖更帖。

网盘地址:https://pan.baidu.com/s/1bURkE6#list/path=%2F

目 录

第1章 单片机高效入门

1.1单片机简介

1.1.1认识单片机

1.1.2单片机的用途

1.1.3学习的典型芯片与C语言介绍

1.1.4本书配套实验板及相关学习工具介绍

1.2点亮1个发光二极管

1.2.1单片机型号命名规则

1.2.2单片机引脚功能说明

1.2.3制作一个最简单的单片机实验电路

1.2.4使用Keil uVsion3环境编写最简单的程序

1.2.5 ISP下载程序到单片机(将电脑上的目标代码“灌入”单片机中运行)

1.2.6程序解释

1.3 Keil仿真

1.3.1软件仿真(标准8051方式仿真,不能仿真单片机新增功能)

1.3.2硬件仿真(利用STC专用仿真芯片仿真,可仿真所有功能)

1.4经典流水灯实例

1.5单片机C语言延时程序详解

1.5.1学会使用计算软件

1.5.2计算软件内部运算过程详解

1.5.3利用库函数实现短暂精确延时

1.5.4使用定时器/计数器实现精确延时

1.6main()、void main()和int main()的区别

1.7 printf格式化输出函数

第2章 单片机开发必须掌握的C语言基础

2.1简单数据类型与运算符

2.1.1原码、反码、补码、BCD码、格雷码

2.1.2常量

2.1.3变量的数据类型(bit、char、int、long、float)

2.1.4变量存储空间(code、data 、bdata 、idata、xdata)

2.1.5变量存储类型(auto、static、extern)

2.1.6变量作用域

2.1.7运算符

2.1.8运算符的优先级与结合性

2.2 C51构造数据类型

2.2.1数组:将相同类型数据组合在一起就构成数组(如数码管显示缓冲区)

2.2.2结构体:将不同类型数据组合在一起就构成结构体(如年月日2014-12-31)

2.2.3共用体:不同变量占用相同内存地址就是共用体

2.2.4指针:用于直接读取或修改内存值

2.2.5#define与typedef的差别

2.3流程与控制

2.3.1分支结构

2.3.2循环结构

2.3.3跳转结构

2.4函数

2.4.1函数定义

2.4.2调用格式

2.4.3传值调用与传地址调用2种方式对比

2.4.4数组作为函数参数

2.4.5使用指针变量作函数形式参数

2.4.6使用结构体变量指针作为函数参数

2.4.7函数作用域

2.4.8库函数

2.5模块化编程

2.5.1头文件的编写

2.5.2条件编译

2.5.3多文件程序(模块化编程)

第3章定时器/计数器、中断系统

3.1定时器/计数器

3.1.1单片机定时器/计数器工作原理概述

3.1.2定时器/计数器的相关寄存器

3.1.3定时器/计数器的工作方式

3.1.4初值计算

3.1.5编程举例

3.2可编程时钟输出

3.3中断系统

3.3.1中断系统结构图

3.3.2操作电路图中的开关(相关寄存器介绍)

3.3.3编写中断函数

3.3.4中断程序举例

3.3.5外中断代码调试(按键的防抖技术)

第4章 串口通信

4.1最基本的串口通信

4.1.1串口数据发送格式

4.1.2串口相关寄存器

4.1.3波特率计算步骤详解

4.1.4单片机与计算机通信的简单例子

4.2彻底理解串口通信协议

4.3串口隔离电路

4.4计算机扩展串口(USB 转串口芯片CH340G)

4.5RS485串行通信

4.6 SSI通信

4.6.1SSI数据通信格式

4.6.2SSI硬件电路

4.6.3SSI软件实现

4.7数据通信中的错误校验

4.7.1校验和(CheckSum)与重要的串口通信实例

4.7.2 CRC校验(全称:循环冗余码校验)

4.8单片机串口向计算机串口发送2进制、16进制、数值与字符串

第5章SPI通信

5.1 SPI总线数据传输格式

5.1.1接口定义

5.1.2传输格式

5.2 SPI接口相关寄存器

5.2.1 SPI相关的特殊功能寄存器

5.2.2 SPI接口引脚切换

5.3 SPI接口运用举例

第6章I2C通信

6.1I2C总线数据传输格式  

6.1.1各个位的传输要求

6.1.2多字节传输格式

6.2程序模块功能测试

6.2.1硬件仿真观察24C02读写结果(R/C时钟:22.1184MHz)

6.2.2硬件仿真观察24C32/64读写结果(R/C时钟:22.1184MHz)

6.324C02运用实例(断电瞬间存储整数或浮点数)

第7章单片机内部比较器与DataFlash存储器

7.1STC15W系列单片机内部比较器

7.1.1比较器结构图

7.1.2寄存器说明

7.1.3电路讲解与程序实例

7.2DataFlash存储器

7.2.1DataFlash操作有关的寄存器介绍

7.2.2DataFlash操作实例(断电瞬间存储数据)

第8章 可编程计数阵列CCP/PCA/PWM模块(可用作DAC)

8.1 PCA模块总体结构图

8.2 PCA模块的特殊功能寄存器

8.3 PCA模块的工作模式与应用举例

第9章 模数转换器ADC

9.1模数转换器ADC主要技术指标

9.2使用单片机内部的10位ADC转换器

9.2.1、ADC相关的特殊功能寄存器

9.2.2、实例代码

9.312位ADC转换芯片MCP3202-B

9.416位ADC转换芯片ADS1110A0

9.518位ADC转换芯片MCP3421A0T-E/CH

第10章 数模转换器DAC

10.1 TLC5615数模转换电路与基本测试程序

10.2 TLC5615产生锯齿波、正弦波、三角波

10.3 TLC5615的高级运用(播放歌曲)

第11章 单片机实用小知识

11.1复位

11.1.1外部RST引脚复位

11.1.2软件复位

11.1.3内部低压检测复位

11.1.4看门狗定时器复位

11.2单片机的低功耗设计

11.2.1相关寄存器说明

11.2.2应用举例

11.3单片机扩展32K外部数据存储器62256

11.3.1电路讲解

11.3.2软件测试实例

第12章 常用单片机接口程序

12.1数码管静态显示

12.2数码管动态显示

12.3独立键盘

12.4矩阵键盘

第13章 1602液晶

13.1 1602液晶外形与电路图

13.2 1602液晶运用举例

13.3 1602液晶显示汉字与特殊符号

第14章 精密电压表\电流表\通用显示器\计数器制作

14.1功能说明与电路原理分析

14.2程序实例

14.2.1通用显示器功能检测程序(外部程序)

14.2.2计数器功能检测程序(外部程序)

14.2.3模块程序

第15章步进电机测试

15.1步进电机特点

15.2步进电机的3种励磁方式

15.3步进电机驱动电路

15.4步进电机驱动实例

15.5步进电机专用驱动器介绍

第16章 频率检测

16.1频率检测的用途与频率定义

16.2频率检测实例

第17章DS1302时钟芯片

17.1 DS1302的SPI数据通信格式

17.2程序实例

第18章红外通信

18.1红外通信电路与基本原理

18.2红外接收软件实例

第19章 单总线DS18B20 通信(长距离无线通信)

19.1 DS18B20运用基础

19.1.1单只DS18B20温度检测电路

19.1.2DS18B20通信时序

19.1.3 DS18B20内部功能部件ROM、RAM、E2RAM、指令集

19.1.4读取温度步骤

19.2单只DS18B20的温度检测实例

19.3多只DS18B20的温度检测

19.3.1读取传感器代码实例

19.3.2读取传感器温度实例

第20章 SD卡与znFAT文件系统

20.1认识SD卡与SD卡驱动程序

20.1.1认识SD卡

20.1.2电路讲解

20.1.3通信时序与完整驱动程序说明

20.2 znFAT文件系统

20.2.1 znFAT的移植方法

20.2.2 znFAT移植实例

第21章 MP3播放器实验(znFAT文件系统运用实例

21.1 MP3介绍与电路讲解

21.2正弦测试

21.3通过SD卡播放MP3文件

第22章数字存储示波器技巧与逻辑分析仪的操作

22.1测量直流电源开关机瞬间输出毛剌浪涌

22.2测量稍纵即逝的红外发射信号

22.3精确测量直流电源纹波

22.4示波器带宽选用依据

22.5逻辑分析仪快速入门

附录1ASCII码表

参 考 文 献


专家
2017-11-21 21:46 2楼

谢谢楼主分享资源。

高工
2017-11-22 09:07 3楼

谢谢楼主

助工
2017-11-25 10:09 4楼

//让接在STC15W4K58S4的P0.0引脚发光二极管发光

#include "STC15W4K.H" // include称为文件包含命令,后面双引号中内容称为头文件

sbit P0_0 = P0^0; // sbit是位定义,"STC15W4K.H"中有sfr P0 = 0X80字节定义语句

void main ()

{

P0_0=0;// 点亮LED

} // 实验证明:程序执行到这后面又执行P0_0=0。





流水灯

★★★★★★★★★★★★★★★★★★★★★★★★*/



#include "STC15W4K.H" // 注意宏定义语句后面无分号

void delay100ms()

{

unsigned char i,j,k;// i,j,k由由软件计算出并验证正确。

for(i=157;i>0;i--) // 注意后面没分号

for(j=9;j>0;j--) // 注意后面没分号

for(k=194;k>0;k--); // 注意后面有分号

}

void port_mode() // 端口模式

{

P0M1=0x00; P0M0=0x00;P1M1=0x00; P1M0=0x00;P2M1=0x00; P2M0=0x00;P3M1=0x00; P3M0=0x00;

P4M1=0x00; P4M0=0x00;P5M1=0x00; P5M0=0x00;P6M1=0x00; P6M0=0x00;P7M1=0x00; P7M0=0x00;

}

void main()

{

unsigned char a;

port_mode(); // 将单片机所有端口配置为准双向弱上拉方式

while(1)

{

P0 =~(1<// 第一次运行时 0000 0001<< 0 = 0000 0001

delay100ms();

if (a==0x08) // 允许左移8次。

{

a=0;

}

}

}


助工
2017-12-01 21:20 5楼

// printf测试

#include "STC15W4K.H"

#include // 为使用KEIL自带的库函数printf而加入

void printstar()

{

printf("********************************\n");

}


void print_message()

{

printf("hello world"); // 最简单输出

printf("How do you do!\n");// 输出换行符\n

printf("欢迎学习STC51单片机\n"); // 中文输出

}

void UART_init(void)

{

//下面代码设置定时器1

TMOD = 0x20;// 0010 0000 定时器1工作于方式2(8位自动重装方式)

TH1 = 0xFD;// 波特率:9600 /11.0592MHZ

TL1 = 0xFD;// 波特率:9600 /11.0592MHZ

TR1 = 1;

//下面代码设置定串口

AUXR = 0x00; // 很关键,使用定时器1作为波特率发生器,S1ST2=0

SCON = 0x50;// 0101 0000 SM0.SM1=01(最普遍的8位通信),REN=1(允许接受)

TI=1;// 很关键,使用printf函数时必须有此命令

}


void main()

{

UART_init();// 初始化串口

printstar();// 输出**************

print_message(); // 输出说明文字

printstar();// 输出**************

while(1) ;// 停在这里

}


助工
2017-12-16 18:16 6楼

/****************《51单片机轻松入门-基于STC15W4K系列》配套例程 *************

★★★★★★★★★★★★★★★★★★★★★★★★

定时器实验

★★★★★★★★★★★★★★★★★★★★★★★★*/



// 内部RC时钟频率22.1184MHz

#include "STC15W4K.H"

sbit P0_0=P0^0;

void main()

{

P0=0xff;// 关闭P0口接的所有灯

TMOD=0x00;// 定时器0的16位自动重装方式

TH0=0x28;// 定时器初值2800H

TL0=0;

TR0=1;

for(;;)

{

if(TF0)//如果TF0等于1

{

TF0=0;// 清TF0

P0_0=!P0_0;// 执行灯亮或灭的动作

}

}

}


助工
2018-02-01 22:23 7楼

#include "STC15W4K.H" // 包含 "STC15W4K.H"寄存器定义头文件

/****************《51单片机轻松入门-基于STC15W4K系列》配套例程 *************

★★★★★★★★★★★★★★★★★★★★★★★★

串口通信

★★★★★★★★★★★★★★★★★★★★★★★★*/


unsigned char num=0;// 存放接收到的1个字节的数据

void UART_init(void)

{

// 下面代码设置定时器2

T2H = 0xFD;// 波特率:9600 /22.1184MHZ,1T

T2L = 0xC0;// 波特率:9600 /22.1184MHZ,1T

AUXR = 0x15; // 0001 0101,T2R=1启动T2运行,T2x12=1,定时器2按1T计数,S1ST2=1

// 下面代码设置定串口1

SCON = 0x50;// 0101 0000 SM0.SM1=01(最普遍的8位通信),REN=1(允许接收)

// 下面代码设置中断

ES = 1;// 开串口1中断

EA = 1;// 开总中断

}


void main()

{

UART_init();

while(1);

}


void UART1(void) interrupt 4 // 串行口1中断函数

{

if(TI)

{

TI = 0;

}

if(RI)

{

RI = 0;

num = SBUF;

num++;

SBUF = num;// 启动数据发送过程

}

}


菜鸟
2018-03-07 09:53 8楼

谢谢楼主分享资源。

助工
2019-03-02 16:06 9楼

大家学习中的问题可以在这里提问

菜鸟
2021-05-06 17:25 10楼

楼主,下载链接已经失效了,能给我重新发一下下载链接吗,我的邮箱是oucliuzhanwen@163.com,谢谢了!

共12条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]