为什么一定要学设计呢,你还可以学编程,学软件开发,单片机编程

&&&&零基础学单片机C语言程序设计(第2版)(零基础学编程)(附光盘...
&69.00当当价
(8.56折)电子书价
请选择配送地址
钻石会员自营订单满49元(含)免运费
其他会员自营订单满59元(含)免运费
不足金额订单收取运费5元起
商品问答(%s条)
当当价:&27.80
版 次:2页 数:506字 数:印刷时间:开 本:16开纸 张:胶版纸印 次:1包 装:平装丛书名:国际标准书号ISBN:3所属分类:&&&
  ?由浅入深,循序渐进,从零开始学单片机编程,一点都不难
  ?编程基础、编程进阶、编程应用、项目实战、上机练习、面试指南
  ?210个实例、6个案例、80个练习题、39个面试题
  单片机C51语言是目前最流行的单片机程序设计语言。本书由浅入深、循序渐进地讲解了C51语言的方方面面。本书知识点覆盖全面、结构安排紧凑、讲解详细、通俗易懂、实例丰富。内容包括51系列单片机开发环境和流程、程序设计基础以及编程指南,并给出了一些常用的典型案例。全书分为四篇,共21章,全面详细地讲述了单片机的程序设计基础、编程指南及应用案例。首先介绍了51系列单片机的基本结构以及单片机的开发概述,其次详细介绍了单片机程序设计的C51语言,随后结合单片机的硬件资源细致讲解了如何应用C51语言进行编程操作,最后结合实际应用,重点分析了在各个领域中常用到的一些典型案例,使读者更加融会贯通地掌握C51语言,以供读者在学习和工作中进行参考。在第21章中还介绍了部分常见的面试题及解答,方便读者做好入职前的准备工作。
  本书适合广大单片机程序开发人员、电子设计爱好者、工程师和大专院校师生阅读,尤其是适用于单片机及其编程语言的初学者。
本书主要由赵建领、薛园园编著,其他参与编著和资料整理的人员有冯华君、刘博、刘燕、叶青、张军、张立娟、张艺、彭涛、徐磊、戎伟、朱毅、李佳、李玉涵、杨利润、杨春娇、武鹏、潘中强、王丹、王宁、王西莉、石淑珍、程彩红、邵毅、郑丹丹、郑海平及顾旭光。
  2012年1月
第一篇  单片机C51概述
 第1章  单片机开发概述
  1.1  单片机介绍
  1.1.1  单片机简介
  1.1.2  单片机的主要组成部分
  1.1.3  单片机引脚及功能
  1.1.4  单片机的应用领域
  1.2  单片机开发流程
  1.2.1  系统分析
  1.2.2  单片机选型
  1.2.3  程序设计
  1.2.4  仿真测试
  1.2.5  程序下载
  1.3  单片机开发语言概述
第一篇  单片机C51概述
 第1章  单片机开发概述
  1.1  单片机介绍
  1.1.1  单片机简介
  1.1.2  单片机的主要组成部分
  1.1.3  单片机引脚及功能
  1.1.4  单片机的应用领域
  1.2  单片机开发流程
  1.2.1  系统分析
  1.2.2  单片机选型
  1.2.3  程序设计
  1.2.4  仿真测试
  1.2.5  程序下载
  1.3  单片机开发语言概述
  1.3.1  单片机汇编语言
  1.3.2  单片机C51语言
  1.4  小结
  1.5  习题与上机实践
 第2章  构建C51集成开发环境
  2.1  51系列单片机的最小硬件系统
  2.1.1  时钟振荡电路
  2.1.2  单片机的复位电路
  2.2  Keil m Vision3集成开发环境
  2.2.1  Keil m Vision3简介
  2.2.2  Keil m Vision3安装
  2.2.3  Keil m Vision3界面概览
  2.2.4  Keil m Vision3的各种常用窗口
  2.3  Keil m Vision3中C51的开发流程
  2.3.1  创建项目
  2.3.2  创建源文件
  2.3.3  编译项目
  2.3.4  仿真调试
  2.3.5  程序下载
  2.4  小结
  2.5  习题与上机实践
第二篇  C51语言程序设计指南
 第3章  C51语言程序设计基础
  3.1  C51程序的基本结构
  3.2  C51编程规范及注意事项
  3.2.1  注释
  3.2.2  命名
  3.2.3  格式
  3.3  C51的标识符与关键字
  3.3.1  标识符
  3.3.2  关键字
  3.4  C51的变量类型
  3.4.1  C51的数据类型
  3.4.2  整型变量
  3.4.3  浮点型变量
  3.4.4  字符型变量
  3.4.5  指针型变量
  3.4.6  无值型变量
  3.5  C51的常量类型
  3.5.1  整型常量
  3.5.2  浮点型常量
  3.5.3  字符型常量
  3.5.4  转义字符
  3.6  变量作用域
  3.6.1  变量作用域的基本规则
  3.6.2  自动变量
  3.6.3  全局变量
  3.6.4  静态变量
  3.6.5  寄存器变量
  3.7  分隔符与const修饰符
  3.7.1  C51分隔符
  3.7.2  const修饰符
  3.8  C51的运算符
  3.8.1  算术运算符
  3.8.2  逻辑运算符
  3.8.3  关系运算符
  3.8.4  位运算符
  3.8.5  “,”运算符
  3.8.6  “?”运算符
  3.8.7  “sizeof”运算符
  3.8.8  地址操作运算符
  3.8.9  联合操作运算符
  3.8.10  类型转换运算符
  3.8.11  运算符优先级和结合性
  3.9  C51的表达式
  3.9.1  算术表达式
  3.9.2  赋值表达式
  3.9.3  逗号表达式
  3.9.4  关系表达式
  3.9.5  逻辑表达式
  3.10  小结
  3.11  上机实践
 第4章  C51语句和流程
  4.1  C51语句
  4.1.1  变量声明语句
  4.1.2  表达式语句
  4.1.3  复合语句
  4.1.4  循环语句
  4.1.5  条件语句
  4.1.6  开关语句
  4.1.7  程序跳转语句
  4.1.8  函数调用语句
  4.1.9  函数返回语句
  4.1.10  空语句
  4.2  C51的流程控制结构及程序示例
  4.2.1  顺序结构
  4.2.2  选择结构
  4.2.3  循环结构
  4.2.4  流程控制结构程序示例
  4.3  小结
  4.4  上机实践
 第5章  C51的数据结构
  5.1  C51的数组
  5.1.1  数组定义及数组元素
  5.1.2  一维数组
  5.1.3  一维字符串数组
  5.1.4  二维数组
  5.1.5  二维字符串数组
  5.1.6  多维数组
  5.2  C51的指针
  5.2.1  指针及相关概念
  5.2.2  指针变量的定义及赋值
  5.2.3  取址运算符和取值运算符
  5.2.4  指针变量的运算
  5.2.5  C51的字符指针
  5.2.6  C51的数组指针
  5.2.7  C51的指针数组
  5.3  C51的结构
  5.3.1  结构的声明
  5.3.2  结构变量的声明
  5.3.3  结构变量的初始化
  5.3.4  结构变量的使用
  5.3.5  C51的结构数组
  5.3.6  C51的结构指针
  5.3.7  C51的嵌套式结构
  5.3.8  C51的位结构
  5.4  C51的联合
  5.4.1  联合的声明和使用
  5.4.2  结构和联合的区别
  5.5  C51的枚举
  5.5.1  枚举和枚举变量的声明
  5.5.2  枚举变量的赋值和使用
  5.6  C51的位域
  5.6.1  位域和位域变量的声明
  5.6.2  位域变量的使用
  5.7  C51的自定义类型
  5.7.1  自定义类型的声明
  5.7.2  自定义类型的使用
  5.8  小结
  5.9  上机实践
 第6章  C51的函数
  6.1  函数
  6.1.1  函数的概述
  6.1.2  函数的分类
  6.1.3  函数的定义
  6.1.4  函数的参数
  6.1.5  函数的返回值
  6.2  函数的作用域
  6.2.1  函数的作用范围
  6.2.2  函数变量的作用域
  6.3  函数的调用
  6.3.1  赋值调用
  6.3.2  引用调用
  6.3.3  递归调用
  6.3.4  嵌套调用
  6.4  C51的main函数
  6.4.1  无参main函数
  6.4.2  有参main函数
  6.5  C51的库函数
  6.5.1  I/O函数库
  6.5.2  标准函数库
  6.5.3  字符函数库
  6.5.4  字符串函数库
  6.5.5  内部函数库
  6.5.6  数学函数库
  6.5.7  绝对地址访问函数库
  6.5.8  变量参数表函数库
  6.5.9  全程跳转函数库
  6.5.10  偏移量函数库
  6.6  小结
  6.7  上机实践
 第7章  C51的存储结构
  7.1  单片机的存储器结构
  7.1.1  51系列单片机的存储区域
  7.1.2  片内RAM的存储器结构
  7.2  C51的存储类型
  7.2.1  code存储类型
  7.2.2  data存储类型
  7.2.3  bdata存储类型
  7.2.4  idata存储类型
  7.2.5  pdata存储类型
  7.2.6  xdata存储类型
  7.3  C51的扩展数据类型
  7.3.1  sfr和sfr16型变量
  7.3.2  sbit型变量
  7.3.3  bit型变量
  7.3.4  51单片机寄存器的定义
  7.4  C51变量的存储模式
  7.4.1  Small模式
  7.4.2  Compact模式
  7.4.3  Large模式
  7.5  C51的存储器指针
  7.5.1  一般指针
  7.5.2  存储器指针
  7.6  小结
  7.7  上机实践
 第8章  C51的预处理命令和用户配置文件
  8.1  C51的预处理命令概述
  8.2  文件包含指令
  8.2.1  #include命令
  8.2.2  C51常用的头文件
  8.3  宏定义指令
  8.3.1  #define命令
  8.3.2  #undef命令
  8.4  条件编译指令
  8.4.1  #if、#else和#endif命令
  8.4.2  #elif命令
  8.4.3  #ifdef、#ifndef命令
  8.5  其他编译指令
  8.5.1  #line命令
  8.5.2  #error命令
  8.5.3  #pragma命令
  8.6  C51的用户配置文件
  8.6.1  C51的启动代码详解
  8.6.2  C51的变量初始化文件
  8.6.3  C51的基本I/O函数文件
  8.6.4  C51的分组配置文件
  8.7  小结
  8.8  上机实践
第三篇  C51单片机编程指南
 第9章  C51定时器/计数器程序设计
  9.1  定时器/计数器简介
  9.1.1  定时器/计数器的结构
  9.1.2  方式控制寄存器TMOD
  9.1.3  中断控制寄存器TCON
  9.1.4  定时器/计数器的初值
  9.1.5  定时器/计数器的初始化
  9.2  定时器/计数器工作模式0的C51程序设计
  9.2.1  定时器/计数器工作模式0
  9.2.2  定时器/计数器模式0的程序设计
  9.3  定时器/计数器工作模式1的C51程序设计
  9.3.1  定时器/计数器工作模式1
  9.3.2  定时器/计数器模式1的程序设计
  9.4  定时器/计数器工作模式2的C51程序设计
  9.4.1  定时器/计数器工作模式2
  9.4.2  定时器/计数器模式2的程序设计
  9.5  定时器/计数器工作模式3的C51程序设计
  9.5.1  定时器/计数器工作模式3
  9.5.2  定时器/计数器模式3的程序设计
  9.6  小结
  9.7  上机实践
 第10章  C51中断程序设计
  10.1  单片机的中断系统
  10.1.1  单片机的中断类型
  10.1.2  中断请求标志及其C51访问
  10.1.3  中断允许标志及其C51访问
  10.1.4  中断优先级标志及其C51访问
  10.1.5  中断的C51处理过程
  10.2  外部中断源的C51程序设计
  10.3  定时中断源的C51程序设计
  10.4  串行中断源的C51程序设计
  10.5  小结
  10.6  上机实践
 第11章  C51串行接口程序设计
  11.1  51系列单片机的串行接口
  11.1.1  单片机串行通信概述
  11.1.2  单片机串行接口的内部结构
  11.1.3  串行接口控制寄存器SCON
  11.1.4  特殊功能寄存器PCON
  11.2  串行口工作模式0的C51程序设计
  11.2.1  模式0的波特率
  11.2.2  模式0的数据发送及C51程序设计
  11.2.3  模式0的数据接收及C51程序设计
  11.3  串行口工作模式1的C51程序设计
  11.3.1  模式1的波特率
  11.3.2  模式1的数据发送及C51程序设计
  11.3.3  模式1的数据接收及C51程序设计
  11.4  串行口工作模式2的C51程序设计
  11.4.1  模式2的波特率
  11.4.2  模式2的数据发送及C51程序设计
  11.4.3  模式2的数据接收及C51程序设计
  11.5  串行口工作模式3的C51程序设计
  11.5.1  模式3的波特率
  11.5.2  模式3的数据发送及C51程序设计
  11.5.3  模式3的数据接收及C51程序设计
  11.6  小结
  11.7  上机实践
 第12章  C51下的RTX-51实时多任务操作系统
  12.1  RTX-51实时多任务操作系统简介
  12.1.1  单任务程序与多任务程序的比较
  12.1.2  RTX-51实时多任务操作系统种类
  12.2  RTX-51的系统函数
  12.2.1  中断调用的发送信号函数
  12.2.2  清除信号标志函数
  12.2.3  启动任务函数
  12.2.4  删除任务函数
  12.2.5  当前任务号函数
  12.2.6  任务调用的发送信号函数
  12.2.7  等待函数
  12.3  RTX-51的任务调度
  12.3.1  循环任务调度
  12.3.2  事件任务调度
  12.3.3  信号任务调度
  12.3.4  优先级及抢先任务切换
  12.3.5  RTX-51的主要概念和特性
  12.4  RTX-51 Tiny的任务管理
  12.4.1  RTX-51 Tiny的任务状态
  12.4.2  RTX-51 Tiny的事件
  12.4.3  RTX-51 Tiny的任务切换
  12.5  RTX-51 Tiny的系统配置
  12.5.1  RTX-51 Tiny系统配置文件
  12.5.2  RTX-51 Tiny系统参数
  12.6  RTX-51 Tiny的要求及注意事项
  12.6.1  RTX-51 Tiny的要求及技术参数
  12.6.2  RTX-51 Tiny的注意事项
  12.7  RTX-51 FULL实时多任务操作系统简介
  12.7.1  RTX-51 FULL函数一览
  12.7.2  RTX-51的技术参数
  12.8  小结
  12.9  上机实践
 第13章  Keil m Vision3的调试和仿真
  13.1  Keil m Vision3的程序调试
  13.1.1  Keil m Vision3的程序调试模式
  13.1.2  断点
  13.1.3  性能分析器
  13.1.4  代码覆盖分析器
  13.1.5  调试命令
  13.2  系统资源仿真
  13.2.1  并行I/O端口仿真
  13.2.2  寄存器仿真
  13.2.3  中断仿真
  13.2.4  串行接口仿真
  13.2.5  定时器/计数器仿真
  13.2.6  看门狗定时器的仿真
  13.2.7  低功耗仿真
  13.3  小结
  13.4  上机实践
第四篇  C51程序设计典型案例
 第14章  C51矩阵式键盘程序设计
  14.1  键盘接口概述
  14.1.1  独立式按键和矩阵式键盘
  14.1.2  键盘设计注意事项
  14.2  矩阵式键盘C51程序设计
  14.2.1  扫描法及C51程序设计
  14.2.2  线反转法及C51程序设计
  14.2.3  中断法及C51程序设计
  14.3  C51矩阵式键盘设计实例
  14.3.1  电路图
  14.3.2  程序设计
  14.4  小结
  14.5  上机实践
 第15章  C51液晶显示模块
  15.1  液晶显示模块概述
  15.1.1  液晶显示模块的分类
  15.1.2  液晶显示模块的特点
  15.2  液晶显示控制驱动器
  15.2.1  液晶显示控制驱动器概述
  15.2.2  液晶显示控制驱动器功能说明
  15.3  液晶显示控制器指令集
  15.3.1  基本指令集
  15.3.2  扩充指令集
  15.3.3  控制器指令操作方式
  15.4  点阵图形型液晶操作子函数
  15.4.1  指令操作子函数
  15.4.2  数据操作子函数
  15.4.3  初始化子函数
  15.4.4  清屏子函数
  15.4.5  汉字显示子函数
  15.4.6  图形显示子函数
  15.5  液晶汉字显示实例
  15.5.1  电路设计
  15.5.2  程序设计
  15.6  液晶图形显示实例
  15.6.1  图形数组的提取
  15.6.2  图形显示程序设计
  15.7  小结
  15.8  上机实践
 第16章  C51模拟I2C总线
  16.1  I2C总线概述
  16.1.1  I2C总线工作原理
  16.1.2  I2C总线器件的寻址方式
  16.1.3  I2C总线数据操作
  16.2  I2C总线接口EEPROM存储器
  16.3  C51模拟I2C总线协议
  16.3.1  延时子函数
  16.3.2  起始信号子函数
  16.3.3  终止信号子函数
  16.3.4  应答信号子函数
  16.3.5  非应答信号子函数
  16.3.6  应答位检查子函数
  16.3.7  单字节写子函数
  16.3.8  单字节读子函数
  16.3.9  多字节写子函数
  16.3.10  多字节读子函数
  16.4  C51读写EEPROM实例
  16.4.1  电路设计
  16.4.2  程序设计
  16.4.3  仿真分析
  16.5  小结
  16.6  上机实践
 第17章  C51模拟单总线接口
  17.1  单总线接口概述
  17.2  单总线温度传感器及C51操作
  17.2.1  温度传感器DS18S20概述
  17.2.2  DS18S20的数据操作及指令
  17.2.3  DS18S20的访问流程
  17.2.4  温度转换操作
  17.2.5  C51模拟单总线操作子函数
  17.3  C51单总线温度传感器实例
  17.3.1  电路设计
  17.3.2  程序设计
  17.3.3  仿真分析
  17.4  小结
  17.5  上机实践
 第18章  实时时钟芯片应用
  18.1  实时时钟芯片DS1302概述
  18.1.1  实时时钟芯片DS1302引脚
  18.1.2  实时时钟芯片DS1302的日期操作
  18.1.3  实时时钟芯片DS1302的控制操作
  18.1.4  实时时钟芯片DS1302的RAM操作
  18.1.5  实时时钟芯片DS1302数据传输方式
  18.2  DS1302的控制子函数
  18.2.1  复位子函数
  18.2.2  字节读取子函数
  18.2.3  字节写入子函数
  18.2.4  年设置子函数
  18.2.5  月设置子函数
  18.2.6  日设置子函数
  18.2.7  星期设置子函数
  18.2.8  小时设置子函数
  18.2.9  分钟设置子函数
  18.2.10  秒设置子函数
  18.2.11  写保护子函数
  18.2.12  写允许子函数
  18.2.13  充电控制子函数
  18.2.14  初始化子函数
  18.2.15  RAM字节写入子函数
  18.2.16  时钟显示子函数
  18.2.17  多字节突发方式读取RAM子函数
  18.2.18  多字节突发方式写入RAM子函数
  18.3  C51读写实时时钟芯片实例
  18.3.1  电路图
  18.3.2  程序设计
  18.3.3  仿真分析
  18.4  小结
  18.5  上机实践
 第19章  C51通信接口程序设计
  19.1  串行接口通信概述
  19.1.1  串行接口通信标准
  19.1.2  串行接口芯片
  19.1.3  双机及多机通信原理
  19.2  C51双机通信实例
  19.2.1  电路原理图
  19.2.2  发送方程序设计
  19.2.3  接收方程序设计
  19.3  C51多机通信实例
  19.3.1  主机程序设计
  19.3.2  从机程序设计
  19.4  小结
  19.5  上机实践
 第20章  道路交通灯多任务控制系统
  20.1  交通灯多任务控制系统概述
  20.2  C51交通灯多任务控制系统
  20.2.1  电路原理图
  20.2.2  建立RTX-51 Tiny项目
  20.2.3  多任务划分
  20.2.4  多任务程序设计
  20.2.5  串行通信及命令获取子函数
  20.2.6  仿真调试
  20.3  小结
  20.4  上机实践
 第21章  常见面试题及解答
  21.1  C51编程类面试题
  21.1.1  预处理
  21.1.2  C51语言基础
  21.1.3  循环
  21.1.4  位操作
  21.1.5  实用子函数
  21.2  与MCS-51硬件相关的面试题
  21.2.1  MCS-51硬件基础
  21.2.2  硬件编程
第一台电子数字计算机的诞生引发了20世纪的电子工业革命。如今,计算机特别是单片微型计算机(简称单片机)得到了迅猛发展。单片机以其高性价比、高速度、体积小、可重复编程和方便功能扩展等优点,得到了广泛应用。今天,市场上的众多产品中均能看到单片机的身影,同时单片机也成为电子爱好者的必修课程。单片机的程序设计可以采用汇编语言和单片机C51语言。目前,单片机C51语言的使用越来越广泛,大有取代汇编语言的趋势。学习并熟练掌握单片机C51语言,对于单片机的系统设计和程序开发都非常适用。
为了方便广大读者学习和参考,本书详细讲解了单片机C51语言,以及如何使用单片机C51语言来编程控制单片机的硬件资源。最后,通过多个典型实例讲解了单片机C51语言的综合应用。通过阅读本书,读者不但可以掌握单片机C51语言,而且可以迅速进行单片机的程序开发。
店铺收藏成功单片机和C语言编程学习之间有什么联系呢?_百度知道
单片机和C语言编程学习之间有什么联系呢?
单片机是一种小型计算机,而C语言是是一种计算机语言。计算机通过执行程序来读懂人类的控制指令。学习单片机,就是让单片机智能化,能按照人的意志执行指令,如关窗或者开窗等动作。在控制单片机执行动作时,人需要通过编写C程序来让计算机执行动作。综上,C语言是人与单片机等计算机进行交流的工具。
其他类似问题
为您推荐:
提问者采纳
从而打好扎实的基础。因此,运算速度快,应该从汇编学起,C语言程序具有完善的模块程序结构在单片机开发过程中。汇编语言是一种用文字助记符来表示及其指令的符号语言。对于单片机的初学者来说,缺点是占用资源较多,并具备汇编语言的功能,堆栈溢出来等问题,但是不同的CPU,STACK等资源都有限,移植容易,程序执行效率高,它兼顾了多种高级语言的特点,调试起来也比较方便。C语言是一种编译型程序设计语言,会变成很多条机器码,执行效率没有汇编高,其内部ROM,作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。C语言有功能丰富的库函数。此外,而汇编语言,使用C语言进行程序设计已成为软件开发的一个主流,所以不易移植。有兴趣可以加,而且可以直接实现对系统硬件的控制,RAM。C语言是一种结构化的高级语言,一条C语言指令编译后,是普遍使用的一种计算机语言,其优点是可读性好,每一步的执行动作都很清楚,有良好的可移植性,一条指令对应一条机器码,编译效率高,可以加深初学者对单片机各个功能模块的了解,从而为软件开发中采用模块化程序设计方法提供了有力的保障,一起学习探讨单片机。对于目前使用的RISE架构的8位单片机来说,其汇编语言可能有所差异,其主要优点是占用资源少,很容易出现ROM空间不够,经常用到C语言和汇编语言,并且程序大小和堆栈调用情况都容易控制,是最接近机器码的一种语言,如果使用C语言编写
c语言编程的相关知识
其他3条回答
二者结合才可以正常使用,可以使用C语言编程,也可以使用汇编或者其他语言,程序是软件.单片机本身是硬件单片机中的程序
现在单片机已经不常用了,比较多的是DSP。比较灵活,而且运算能力强。DSP可以用高级语言编程。所以学校取消单片机编程是对的。C语言现在也不常用,不如直接学习C++或JAVA。
我觉得最好学一下,单片机要好多好多种,你可以从简单的一种单片机学起,其他单片机在学就好学多了。我们当时学的是80C51,还有好多如AVR,PIC等等你可以在网上看一下种类然后看一下自己易懂得学习一下。现在单片机应用很广泛的,加上自己又是计算机的,C应该很不错,学学单片机方面的C编程,会很有好处的,可以的话买块实验板最好了。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁单片机编程软件keil
来源:编程@跟谁学
【单片机编程软件keil】推荐阅读【单片机编程软件keil】相关问答
我知道有个driver studio,是你说的吗?
下载就不好意思了,搜出csdn,但得注册,注了册也不知下不下得了,但我有个盘里有,3.01的好像是,咋给你呢
keil最流行
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软
您好:首先我肯定要推荐你学习keil了,因为我刚刚大学毕业不到一个月,来到公司之后,51单片机还是用的keil开发的,所以你如果选择用keil来学习开发51单片机,那么在未来的学习与工作中肯定不会要求你用新的软件去开发51的,其次你一直很关心medwin与keil的区别,我想说,这么多回答的人都不知道medwin这个软件,可见他的推广度不是很高,我也是第一次听到这个软件,对于51单片机来说keil
KEIL没办法编译PIC的任何单片机的程序
用PIC单片机生产商MICROCHIP公司自己推出的MPLAB ide软件开发程序,免费的。
但这个软件默认安装的没有C编译器(默认的只能编译汇编文件)。你还得去Microchip那里下载PICC for PIC18(HI-TECH公司做的,这公司被MICROCHIP收购了),或者是Microchip公司自己开发MPLAB C18编译器。这些编译器安
/soft/33/144515.html
去下Keil 3.0吧,网上很多的,并且有比较详细的图文描述,我也是用Keil来写的
【单片机编程软件keil】推荐问答【单片机编程软件keil】推荐搜索
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动查看: 25196|回复: 27
第一章 如何学习单片机
&&&&在错误的道路上日夜兼程,最终也无法成功。因此,方法和思路绝对是第一重要的。一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇。但是,今天在这里我可以很负责任的告诉你,本章节讲到的学习单片机的方法,都是我们学习单片机的无数经验和教训总结出来的瑰宝。因为我们披荆斩棘,开辟了道路,所以可以告诉你路在何方;也因为我们摸过烧红的铁块,烫了手,所以可以把教训告诉你。希望各位都能站在我们的肩膀上,成为巨人。
1.1&学什么单片机
单片机的型号那么多,如何选取一款合适的进行学习?如果身边有比较便利的学习单片机的条件,有什么条件就学习什么型号。比如,你所在的公司刚好用到某个型号单片机,那么就方便多了。开发板不用购买,直接用公司现成的板子,指导老师到处是,公司的工程师,只要你耐心虚心的不耻上问,相信他们都会帮你解答问题。如果你跟着学习的导师,正在使用某个型号开发产品,那么同样的道理,你也会有得天独厚的优势,直接跟着学就行了。其实单片机型号虽然多,但是用法大同小异,学会一种,再上手其他的就很快了。
如果你这些条件都没有,那就跟着我学吧,我建议你学习51单片机。为什么呢?现在单片机种类和型号非常多,每个型号都有一定的市场份额,但是哪个型号也没有早期51单片机那般的风光和火爆,虽然现在地位不是那么高了,但是因为51单片机资料非常多,大家学起来有很多可以参考的东西,所以上手肯定比其他型号的要快一些。如果你学习稍微偏门的单片机,可能一个简单的软件问题就要折腾你好长时间,不仅仅浪费了你的学习时间,更重要的是打击你学习单片机的信心。
那是不是我们每个单片机都要学习一遍呢?答案当然是否定的。大家跟着我来学习51单片机,必须得跟着学会举一反三和融会贯通的能力。单片机型号那么多,挨个学下来估计头发白了也学不完,所以大家跟着我学51单片机,不能仅仅当做51来学习,更重要的是要当做单片机来学,要通过我们的这个教程,把所有的单片机的内部资源都搞清楚弄明白,每个内部模块的用法理解透彻,这样当你遇到一个从没有用过的单片机,也就知道如何下手去应用开发了。
1.2&如何学习单片机
前边提到过,单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。
学习单片机的要领就是:在实践中成长,In&Doing&We&Learn!
学射箭,你得去拉弓,整天只摆造型肯定不行;学游泳,你得下水扑腾,整天在岸上做模仿活动不行;学开车,你得坐车上去开,坐沙发上肯定学不会。同样的道理,学单片机,整天盯着单片机看肯定不行,你也必须得亲自动手去练。
没有不下水就学会游泳成为游泳健将的,没有不到车上练就能成为赛车手的,这点大家都清楚,可为什么总是那么多人学单片机的时候,总是要抱着一本书看呢。第一,我们小学中学甚至大学的学习模式都是如此,学什么东西主要都是靠看书;第二,很多人想实践不太清楚该怎么去实践。
不是不让大家看书,而是看了一点以后,要马上去实践验证,然后再回头结合实践的结果,理解书上的内容。从这个地方,大家要得出一个结论来,就是在学实际技术过程中,和应付考试不同,书上的内容不需要你去硬性记忆,书是用来查的,不是用来记忆的。遇到问题,你学会翻书,知道该去哪里找,找到相关知识点,分析明白,领悟透彻即可,包括咱这本书也是一样,大家先看完一节课,然后马上就把这节课相应的实验做了,做实验的过程中,哪里有不懂的问题,随时翻阅书籍查找,再实验,再查找,反反复复的过程就可以把本节课的内容掌握。
下面,就是我总结的跟着我学习单片机的四个步骤。
第一步,鹦鹉学舌。
刚出生的孩子叫&爸爸&&妈妈&的时候,他甚至不知道&爸爸&&妈妈&是什么意思,更不会理解这些声音是什么意思,但是我们带着孩子见到他爸爸就让他喊&爸爸&,见到妈妈就让他喊&妈妈&,见到爷爷就喊&爷爷&&&慢慢的你会发现,次数多了,孩子就知道谁是爸爸,谁是妈妈,谁是爷爷,谁是奶奶了。
大家刚开始接触单片机的时候,也属于单片机行业的新生儿。单片机的样子,单片机外围的各种器件,单片机内部的各种结构,单片机用C语言的编程方法,初学者可能都没有见过。没关系,有些概念和方法你不理解也没有关系,甚至不需要你理解,你只需要跟着我去鹦鹉学舌式学习,第一遍学习某一节课的内容时,对于程序,大家就可以完全跟着抄下来,甚至抄两三遍,过一段你会发现,好多东西你也认识了,好多概念你慢慢的也理解清楚了,你也能大概看懂别人的小程序了,切忌觉得自己看会了,而简单复制粘贴。
第二步,照葫芦画瓢。
很多同学学习的时候喜欢看,看我做的视频,看我写的程序,甚至看别人的程序,都能看懂,觉得自己就会了,等到自己写程序的时候,感觉就是老鼠啃天,不知道从哪里下手了,这是初学者很容易犯的&眼高手低&这样一个毛病,所以第二步的内容就非常重要了。
我的要求是,每一位同学,在学完了当前课的内容,把第一步顺利完成以后,然后关掉视频教程,关掉源代码,自己通过看电路图和查找非源代码的其他任何资料,把当节课我写的程序代码重新默写出来,边写边多少理解那么一点点,不是纯粹的背诵,应该说是背诵加理解的结合体。甚至学过几节课以后,可以回头把前边曾经这样实现过的课程,再按照这种方法做一遍。千万不要认为这一步没必要,这一步是你能否学会单片机的一个关键步骤,在学完本教程之前,每一课内容都要这样做,如果每一个程序你都能够完美的完成,那么可以说,当节课的内容,百分之七八十你已经掌握了。
第三步,他山之石可以攻玉。
单片机技术的最大特点就是可以通过修改程序来实现不同的功能,因此举一反三的能力就必不可少了。每一节课的例程后边,我一般都会布置一两个作业,大家尽量去独立完成这个作业。在完成这个作业的过程中,都可以参考我的程序思路,在这个基础上通过动脑思考去构建你自己的程序框架,最终将程序完成。
在我们工程师实际产品研发的时候,很多种情况下也是如此。比如一个产品,我们如果从0开始着手的话,可能会走很多弯路,所以我们通常的做法是寻找购买同类几款产品,然后先研究他们的各自优缺点,学习他们的长处,然后在同类产品基础上在来设计我们的产品,这就是他山之石可以攻玉。
初学者在学习的时候,往往遇到的问题很多,你应该想到,你遇到的问题,可能前辈们早就遇到过了,所以遇到问题后,不要慌张,首先利用谷歌或者百度这些搜索引擎搜索一下,要做什么新东西,先去网上找找相关资料了解一下,不管是编程还是硬件设计,多参考参考别人的东西,只要把别人的东西分析明白了,自己用起来,就可以成为自己的知识了。
第四步,理论实践结合,温故知新。
当大家把所有的课程都按照前边三步完成后,这个时候不妨把书打开,看看书,通过自己实战的经验,再看书的时候,很多知识点会有一种恍然大悟的感觉。甚至视频教程,书籍,都可以反复看两遍,可能有的知识点当时学习的时候不明白,过了一段时间,回过头来再学习的时候,一下就明白了。
1.3&单片机学习的准备工作
第一、足够的信心、恒心和耐心。
有同学问过我,单片机这门技术难不难。我觉得这个问题得从两个方面去分析。
首先,我们从战略上藐视它。那么多同学跟着老师学一段时间就可以做出来小车,超声波测距,甚至做出来机器人,似乎很拽的样子。那他们又不是三头六臂,我们也没有什么做不了的道理。实际上要说技术,其实就是一层窗户纸,表面看不透彻,感觉特别神秘,实际只要你稍微一努力就可以捅破它,夸张点说,单片机的逻辑上的关系,只有小学的水平,简单的很。正所谓会者不难,难者不会,大家不懂这个东西,看起来感觉很神秘。所以大家只要认真踏实坚持学下去,肯定能学好这么技术。
其次呢,我们从战术上要重视它。你说单片机这东西,如果十天八天就学会了,那么这个技术还能值钱吗?我可以这样去表达,如果一个技术很简单就被学会,那么很多人都会的这个技术,肯定也没什么前途和钱途。那究竟多久能学会呢?我给大家制定的学习方案,根据每个人的基础不同,平均每天要拿出2个小时以上的学习时间,大概一到三个月可以入门。入门的概念是给你一个单片机开发任务,你起码知道努力的方向和解决问题的方法了。技术这东西,关键是坚持做下去,有恒心和耐心,如果长时间不用的话,肯定还会生疏。所以要想成为单片机高手,起码需要一年左右的单片机开发的历练才行。成为单片机高手的概念就是你自己可以从头根据自己的想法,去设计一个电路,根据需要的功能编写代码,做一个产品出来。
第二、教材和教程。
要学习单片机这门技术,良好的教材和教程必不可少。单片机方面,大家可以直接学习我们这本《51单片机C语言开发》,我们也有精心制作了《单片机高手之路》视频教程,并且后期会进行不定期更新。本着开源、共享的理念,我们的视频教程和电子教程都是免费开放的,大家可以到我们的网站找到下载链接,如果有条件,也可以购买我们一般纸质教材,纸质书籍查阅起来比视频教程和电子教程更方便。另外,因为我们做单片机开发使用的是C语言,所以最好能有一本纯C语言教材,我们学到一些C语言语法性质的问题的时候,大家可以方便查阅,或者你可以直接把相关语法问题通过百度和谷歌等搜索一下也可以。
第三、电脑一台,单片机开发板一块。
电脑呢,是学习单片机必不可少的工具,因为我们编程,查资料都用得到,但是有句题外话说一下,不要把电脑当成游戏机或者影碟机,偶尔玩玩游戏看看电影是可以的,劳逸结合,但是不可沉溺其中,否则还不如不买电脑。
单片机开发板,这也是必须的。如果还上学,老师实验室有开发板,可以考虑跟老师借一个,或者使用师兄师姐用完的,这样可以省点钱。当然,如果身边有高手,比如辅导老师,会单片机的师兄,在他们的指导下做一个也可以,身边有人指导的话,不懂的问题还可以问他们。如果这些条件不具备,那么可以购买一个,先学习别人的板子设计思路,给自己以后设计电路板打下基础。在这里我推荐一下我们的51开发板,用来配套学习。我不敢说我们的设计是最好的,但是我可以很负责任的说,我们的板子是出自经验丰富的一线工程师之手,其中的设计都是根据实际项目开发的思路进行的,包括整体规划、电路设计、器件布局等等,可以为你今后的项目开发提供一个优质的参考。另外一方面,因为我们的教程是基于我们的开发板做的,所以大家用配套的话可以节省时间,提高学习效率。
当然,即使不购买我们的开发板,你想学单片机,必须要有一块开发板,不要总去用软件仿真,软件仿真是学不会单片机技术的。经常有同学过来问我,老师我用软件模拟的好用,做了硬件不好用是什么原因。在这里我提一下,如果你上课用这个软件仿真,糊弄老师应付考试可以的,但是实际开发和仿真软件差别太大,如果是学习单片机这门技术,那我只能告诉你,拿起烙铁焊电路,动手写程序,远离仿真软件,靠软件仿真永远学不到真正的技术。
1.4&单片机开发软件环境搭建
单片机开发,首要的两个软件一个是编程软件,一个是下载软件。编程软件我们用Keil&&uVision4的51版本,也叫做keil&C51,不做过多介绍,先直接讲如何安装。
1、首先准备KEIL&uVision4安装源文件,双击安装文件,弹出安装的欢迎界面,如图1-1所示。
图1-1&Keil安装欢迎界面&
2、点击&Next&按钮,弹出&License&Agreement&对话框,如图1-2所示,这里显示一些用户安装协议,我们在&I&agree&to&all&the&terms&of&the&preceding&License&Agreement&打勾,如图1-2所示
&图&&对话框
3、点击&Next&按钮,弹出&Folder&Selection&对话框,如图1-3所示。这里可以设置安装路径,默认安装路径在&C\Keil&文件夹下。点击&Browse&按钮,可以修改安装路径,这里建议大家用默认的安装路径,如果你要修改,也必须使用英文路径,不要使用包含有中文字符的路径。&
图&&对话框
4、点击&Next&按钮,弹出&Customer&Information&对话框,如图1-4所示。大家输入用户名、公司名称以及E-mail地址即可。&&
图用户信息
5、单击&&,就会自动安装软件,如图所示&&
图安装过程
6、安装完成后,弹出来安装完成对话框,如图1-6所示,并且出现几个选项,大家刚开始把这几个选项的对号全部去掉就可以了,暂时先不用关注他有什么作用。&&
图安装完成
7、最后,点击&&,编程软件开发环境就这么装好了。&&
1.5&Keil基本概况介绍
首先,打开一个工程项目,如图1-7所示
图1-7&工程文件
从图1-7我们可以很轻松的分辨出菜单栏、工具栏、工程管理区、程序代码区和信息输出窗口。这个是Keil4的英文版,网上有一些汉化版本的,我不建议用。即使你的英语不好,使用英文版本的软件也一点问题没有,刚开始大家先跟着我去使用,一共没几个单词,不需要你去翻译,用几次你就记住怎么用了。因为以后做实际开发的时候,大多数软件都是英文版的,如果现在学习的时候一直用中文软件,将来一旦换了其它的英文软件就会慌了,所以从现在开始,我们就慢慢的来熟悉英文软件,将来以后再用到其他英文软件的时候,就可以做到触类旁通、驾轻就熟了。
Keil软件菜单栏和工具栏的具体细化功能,和字典一样用来备查,所以我把它写到了附录里边,在这里只介绍一点,关于软件里边的字体大小和颜色设置。在里边,可以进行程序的颜色,字体大小的设置,如图所示&
图字体设置一&&
& & 因为我们用的是语言编程,所以我们在栏用鼠标选择,然后在右侧栏目里可以选择要修改的内容,一般我们平时用到的,只是其中几项而已,比如,,,,,,这几项,本身也有默认设置,你如果觉得不是很适合你的感觉,你可以更换一下。
图1-9&字体设置(二)
&Keil菜单栏和工具栏的详细介绍,和字典一样,是备查的,不需要记住,所以我把它写到了附录里,如果大家对哪个工具哪里有疑问,可以随时到附录里进行查找。
1.6答学生问
很多同学经常问我一些问题,我把一些典型的,直接写出来给大家看一下,让大家了解这门技术,了解我们这个行业。
1、单片机学完了能做什么?
单片机的应用非常广泛,电子,自动化,通信等领域都能用到,至于能做什么,得看你将来以后做什么工作。如同电脑一样,电脑可以用来编程,PS图片,看电影,打游戏,你用电脑做什么是不一定的。但是掌握好这门技术,起码可以让你学会一门工具,为将来从事电子、通信、自动化等领域的工作做好准备。
2、学单片机的捷径是什么?
做技术必须得脚踏实地,没有任何捷径,如果说有的话,那我只能告诉你,拳不离手曲不离口,就是最好的捷径,我学习单片机的时候,每天早上8点半进入老师实验室,晚上10点离开实验室,曾经创下连续3个月没有休息日的记录,你如果能这样学的话,那估计很快可以学好这门技术。
3、学习单片机应该学习什么语言,有没有必要再学习汇编
相比较来说,汇编语言比较接近单片机的底层,使用汇编语言比较容易理解单片机内部结构。简单的程序,用汇编语言,程序效率也比较高,但是当程序容量达到到几千上万行以后(这时也仅能算个不太小的项目,还远没到大项目的级别),汇编语言在组织结构、修改维护等方面就会成为你的梦魇了,此时时候C语言就有不可替代的优势了。所以实际开发过程中,90%以上的工程师都在用C语言做单片机开发,只有在很低端的应用中或者是特殊要求的场合,才会用汇编语言开发,所以我建议大家还是用C语言开发比较好一些。
如果现在正好上学学到了汇编语言,我建议认真学一下,学好了肯定有益无害。但是现在如果说想直接快速学单片机技术,那我建议不要去看汇编语言了,直接学C语言就可以了,那些单片机底层的结构什么的,也可以在开发过程中慢慢理解。
4、学会单片机后能找什么样的工作
单片机是一个工具,和电脑有点类似但不完全一样,我们学会电脑,可以用来编程,可以用来画图,可以用来PS照片,可以用来看电影.......学会单片机,可以用来做通信技术,做自动控制技术等等,但是单片机本身来说仅仅是一个工具,你在用单片机的时候,慢慢接触多了,会有一个应用方向,你不仅仅要会单片机,也得对这个应用方向熟悉,比如我个人从事过扩频通信技术的算法研究,那么我就要对扩频通信熟悉,然后把这个技术用单片机实现出来,也得会用单片机。当然大家也不用担心,找工作的时候公司对这个方向问题要求也不会很高,懂的话,肯定也会提高自己的竞争力。
5、学完了这个工资待遇如何
对于技术来说,技术水平高低直接决定你的工资薪酬。技术如果学的不好,那工作都找不到,更谈不上工资了,而技术做的好的,那工资就会很高。我们不清高,我们需要足以安身立命的薪资报酬,但是我希望的是,一旦你决定从事技术,你不用把过多的精力关注在能挣多少钱上,而应该放在如何把技术提高起来,只要技术水平高,比很多人都厉害,钱自然就找上门了。有一部印度的励志片叫做《三傻大闹宝莱坞》,我推荐做技术的都可以看看,里边有一句经典台词非常适合我们技术人员:追求卓越,成功就会在不经意间追上你。
 呵呵,不错!
 不错学习了
好好学习!!!!
前辈的经验要好好学习一下
这个讲座我认为是最好的。
学习了!!
哪位前辈有时间收徒啊&&到现在还没有入门&&求指点
我要求学&&拜师&&我对电子 非常感兴趣& &为了学单片机&&天天下班&&学习到深夜 3点&&有没有前辈 收徒啊&&
顶!先跟你学了!
就是记不住那些东西
不错不错,
学习中!!!!
前辈的经验要好好学习一下
&&不错&&我喜欢
看看,真棒
哪位前辈有时间收徒啊&&到现在还没有入门&&求指点
你都总工程师了你还没入门,我们都不信
全英keil,挑战也
我是新手,从头学起,请各位多多指教。
有没有收徒的,真的很想学,现在工作也有用到,很急呢,求一个师傅
不错!!!!!!
新手入行还是很难呀
先从基础学习
好,很有兴趣。我现在入门应该不晚吧
Powered by}

我要回帖

更多关于 单片机编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信