这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不是教你各种8051 嵌入式系统的解决方法为使问题讨论更加清晰在适当的地方给出了程序代码我们以讨论项目的方法来说明每章碰到的问题所有的代码都可在附带的光盘上找到你必须熟系C 和8051 汇编因为本书不是一本C 和汇编的指导书你可以买到不少关于ANSI C 的书最佳选择当然是Intel的数据书可从你的芯片供应商处免费索取和随编译工具附送的手册附送光盘中有我为这本书编写和收集的程序这些程序已经通过测试这并不意味着你可以随时把这些程序加到你的应用系统或工程中有些地方必须首先经过修改才能结合到你的程序中这本书将教你充分使用你的工具如果你只有8051 的汇编程序你也可以学习该书和使用这些例子但是你必须把C 语言的程序装入你的汇编程序中这对懂得C 语言和8051汇编程序指令的人来说并不是一件困难的事如果你有C 编译器的话那恭喜你使用C 语言进行开发是一个好的决定你会发现使用C 进行开发将使你的工程开发和维护的时间大大减少如果你已经拥有Keil C51 那你已经选择了一个非常好的开发工具我发现Keil 软件包能够提供最好的支持本书支持Keil C 的扩展如果你有其它的开发工具像Archimedes 和Avocet 这本书也能很好地为你服务但你必须根据你所用的开发工具改变一些Keil 的特殊指令在书的一些地方有硬件图实例程序在这些硬件上运行这些图绘制地不是很详细主要是方框图但足以使读者明白软件和硬件之间的接口读者应该把这本书看成工具书而不是用来学习各种系统设计通过本书你可以了解给定一定的硬件和软件设计之后8051 的各种性能希望你能从本书中获取灵感并有助于你的设计使你豁然开朗当然我希望你也能够从本书中学到有用的知识使之能够提升你的设计 8051 系列微处理器基于简化的嵌入式控制系统结构被广泛应用于从军事到自动控制再到PC 机上的键盘上的各种应用系统上仅次于Motorola 68HC11 在 8 位微控制器市场上的销量很多制造商都可提供8051 系列单片机像Intel Philips Siemens 等这些制造商给51 系列单片机加入了大量的性能和外部功能像I2C 总线接口模拟量到数字量的转换看门狗PWM 输出等不少芯片的工作频率达到40M 工作电压下降到1.5V 基于一个内核的这些功能使得8051 单片机很适合作为厂家产品的基本构架它能够运行各种程序而且开发者只需要学习这一个平台8051 系列的基本结构如下1 一个8 位算术逻辑单元2 32 个I/O 口4 组8 位端口可单独寻址3 两个16 位定时计数器4 全双工串行通信5 6 个中断源两个中断优先级6 128 字节内置RAM7 独立的64K 字节可寻址数据和代码区每个8051 处理周期包括12 个振荡周期每12 个振荡周期用来完成一项操作如取指令和计算指令执行时间可把时钟频率除以12 取倒数然后指令执行所须的周期数因此如果你的系统时钟是11.059MHz 除以12 后就得到了每秒执行的指令个数为921583条指令取倒数将得到每条指令所须的时间1.085ms
上传时间: 2013-11-09
上传用户:chenlong
C语言编程基础:1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。在某引脚输出低电平的编程方法:(比如P2.7引脚)代码1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 在某引脚输出方波编程方法:(比如P3.1引脚)代码1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 5. { 6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC 7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND 8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波 9. } 将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) )
上传时间: 2013-11-02
上传用户:zengduo
用C 语言来开发单片机系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高、便于跨平台的代码移植等等,因此C 语言编程在单机系统设计中已得到越来越广泛的运用。针对PIC 单片机的软件开发,同样可以用C 语言实现。但在单片机上用C 语言写程序和在PC 机上写程序绝对不能简单等同。现在的PC 机资源十分丰富,运算能力强大,因此程序员在写PC 机的应用程序时几乎不用关心编译后的可执行代码在运行过程中需要占用多少系统资源,也基本不用担心运行效率有多高。写单片机的C 程序最关键的一点是单片机内的资源非常有限,控制的实时性要求又很高,因此,如果没有对单片机体系结构和硬件资源作详尽的了解,以笔者的愚见认为是无法写出高质量实用的C 语言程序。这就是为什么前面所有章节中的的示范代码全部用基础的汇编指令实现的原因,希望籍此能使读者对PIC 单片机的指令体系和硬件资源有深入了解,在这基础之上再来讨论C 语言编程,就有水到渠成的感觉。本书围绕中档系列PIC 单片机来展开讨论,Microchip 公司自己没有针对中低档系列PIC单片机的C 语言编译器,但很多专业的第三方公司有众多支持PIC 单片机的C 语言编译器提供,常见的有Hitech、CCS、IAR、Bytecraft 等公司。其中笔者最常用的是Hitech 公司的PICC 编译器,它稳定可靠,编译生成的代码效率高,在用PIC 单片机进行系统设计和开发的工程师群体中得到广泛认可。其正式完全版软件需要购置,但在其网站上有限时的试用版供用户评估。另外,Hitech 公司针对广大PIC 的业余爱好者和初学者还提供了完全免费的学习版PICC-Lite 编译器套件,它的使用方式和完全版相同,只是支持的PIC 单片机型号限制在PIC16F84、PIC16F877 和PIC16F628 等几款。这几款Flash 型的单片机因其所具备的丰富的片上资源而最适用于单片机学习入门,因此笔者建议感兴趣的读者可从PICC-Lite 入手掌握PIC 单片机的C 语言编程。
上传时间: 2013-11-12
上传用户:wfeel
51 单片机C 语言学习杂记学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头痛的事。在众多单片机中51 架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。51 的编程语言常用的有二种,一种是汇编语言,一种是C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C 语言的开发周期通常要小于汇编语言很多。综合以上C 语言的优点,我在学习时选择了C 语言。以后的教程也只是我在学习过程中的一些学习笔记和随笔,在这里加以整理和修改,希望和大家一起分享,一起交流,一起学习,一起进步。*注:可以肯定的说这个教程只是为初学或入门者准备的,笔者本人也只是菜鸟一只,第一课 建立您的第一个C 项目使用C 语言肯定要使用到C 编译器,以便把写好的C 程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51 应用的工程师或普通的单片机爱好者,都对它十分喜欢。以上简单介绍了KEIL51 软件,要使用KEIL51 软件,必需先要安装它。KEIL51 是一个商业的软件,对于我们这些普通爱好者可以到KEIL 中国代理周立功公司的网站上下载一份能编译2K 的DEMO 版软件,基本可以满足一般的个人学习和小型应用的开发。(安装的方法和普通软件相当这里就不做介绍了)安装好后,您是不是迫不及待的想建立自己的第一个C 程序项目呢?下面就让我们一起来建立一个小程序项目吧。或许您手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL 软件仿真看到程序运行的结果。首先当然是运行KEIL51 软件。怎么打开?噢,天!那您要从头学电脑了。呵呵,开个玩笑,这个问题我想读者们也不会提的了:P。运行几秒后,出现如图1-1 的屏幕。
上传时间: 2014-01-23
上传用户:yyyyyyyyyy
PIC 单片机C 语言编程简介用C 语言来开发单片机系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高、便于跨平台的代码移植等等,因此C 语言编程在单片机系统设计中已得到越来越广泛的运用。针对PIC 单片机的软件开发,同样可以用C 语言实现。但在单片机上用C 语言写程序和在PC 机上写程序绝对不能简单等同。现在的PC 机资源十分丰富,运算能力强大,因此程序员在写PC 机的应用程序时几乎不用关心编译后的可执行代码在运行过程中需要占用多少系统资源,也基本不用担心运行效率有多高。写单片机的C 程序最关键的一点是单片机内的资源非常有限,控制的实时性要求又很高,因此,如果没有对单片机体系结构和硬件资源作详尽的了解,以笔者的愚见认为是无法写出高质量实用的C 语言程序。这就是为什么前面所有章节中的的示范代码全部用基础的汇编指令实现的原因,希望籍此能使读者对PIC 单片机的指令体系和硬件资源有深入了解,在这基础之上再来讨论C 语言编程,就有水到渠成的感觉。本书围绕中档系列PIC 单片机来展开讨论,Microchip 公司自己没有针对中低档系列PIC单片机的C 语言编译器,但很多专业的第三方公司有众多支持PIC 单片机的C 语言编译器提供,常见的有Hitech、CCS、IAR、Bytecraft 等公司。其中笔者最常用的是Hitech 公司的PICC 编译器,它稳定可靠,编译生成的代码效率高,在用PIC 单片机进行系统设计和开发的工程师群体中得到广泛认可。其正式完全版软件需要购置,但在其网站上有限时的试用版供用户评估。另外,Hitech 公司针对广大PIC 的业余爱好者和初学者还提供了完全免费的学习版PICC-Lite 编译器套件,它的使用方式和完全版相同,只是支持的PIC 单片机型号限制在PIC16F84、PIC16F877 和PIC16F628 等几款。这几款Flash 型的单片机因其所具备的丰富的片上资源而最适用于单片机学习入门,因此笔者建议感兴趣的读者可从PICC-Lite 入手掌握PIC 单片机的C 语言编程。
上传时间: 2013-11-17
上传用户:15527161163
单片机的C 语言轻松入门随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使用高级语言开发,其中主要是以C 语言为主,市场上几种常见的单片机均有其C 语言开发环境。这里以最为流行的80C51 单片机为例来学习单片机的C 语言编程技术。本书共分六章,每章一个专题,以一些待完成的任务为中心,围绕该任务介绍C 语言的一些知识,每一个任务都是可以独立完成的,每完成一个任务,都能掌握一定的识,等到所有的任务都完成后,即可以完成C 语言的入门工作。C 语言概述及其开发环境的建立学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil 软件是目前最流行开发80C51 系列单片机的软件,Keil 提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部份组合在一起。在学会使用汇编语言后,学习C 语言编程是一件比较容易的事,我们将通过一系列的实例介绍C 语言编程的方法。图1-1 所示电路图使用89S52 单片机作为主芯片,这种单片机性属于80C51 系列,其内部有8K 的FLASH ROM,可以反复擦写,并有ISP 功能,支持在线下载,非常适于做实验。89S52 的P1 引脚上接8 个发光二极管,P3.2~P3.4 引脚上接4 个按钮开关,我们的任务是让接在P1 引脚上的发光二极管按要求发光。
上传时间: 2013-11-04
上传用户:467368609
这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不是教你各种8051 嵌入式系统的解决方法为使问题讨论更加清晰在适当的地方给出了程序代码我们以讨论项目的方法来说明每章碰到的问题所有的代码都可在附带的光盘上找到你必须熟系C 和8051 汇编因为本书不是一本C 和汇编的指导书你可以买到不少关于ANSI C 的书最佳选择当然是Intel的数据书可从你的芯片供应商处免费索取和随编译工具附送的手册附送光盘中有我为这本书编写和收集的程序这些程序已经通过测试这并不意味着你可以随时把这些程序加到你的应用系统或工程中有些地方必须首先经过修改才能结合到你的程序中这本书将教你充分使用你的工具如果你只有8051 的汇编程序你也可以学习该书和使用这些例子但是你必须把C 语言的程序装入你的汇编程序中这对懂得C 语言和8051汇编程序指令的人来说并不是一件困难的事如果你有C 编译器的话那恭喜你使用C 语言进行开发是一个好的决定你会发现使用C 进行开发将使你的工程开发和维护的时间大大减少如果你已经拥有Keil C51 那你已经选择了一个非常好的开发工具我发现Keil 软件包能够提供最好的支持本书支持Keil C 的扩展如果你有其它的开发工具像Archimedes 和Avocet 这本书也能很好地为你服务但你必须根据你所用的开发工具改变一些Keil 的特殊指令在书的一些地方有硬件图实例程序在这些硬件上运行这些图绘制地不是很详细主要是方框图但足以使读者明白软件和硬件之间的接口读者应该把这本书看成工具书而不是用来学习各种系统设计通过本书你可以了解给定一定的硬件和软件设计之后8051 的各种性能希望你能从本书中获取灵感并有助于你的设计使你豁然开朗当然我希望你也能够从本书中学到有用的知识使之能够提升你的设计 这本书向你展示了用8051进行工程设计时的许多问题希望你读完本书后对8051的认识能有较大的提高如果你现在还没有够买C编译器你应该马上去买一个采用C语言可是你的系统设计更简单维护更方便这本书覆盖面较大从C和汇编的代码优化到8051的网络设计再到模糊控制希望你从本书中学到的知识对你今后的系统设计有所帮助
上传时间: 2013-10-12
上传用户:ommshaggar
EEPROM为ATMEL公司的AT24C01A。单片机为ATMEL公司的AT89C51。2. 软件说明 C语言为Franklin C V3.2。将源程序另存为testi2c.c,用命令C51 testi2c.cL51 TESTI2C.OBJOHS51 TESTI2C编译,连接,得到TESTI2C.HEX文件,即可由编程器读入并进行写片,实验。3.源程序#include <reg51.h>#include <intrins.h> #define uchar unsigned char#define uint unsigned int#define AddWr 0xa0 /*器件地址选择及写标志*/#define AddRd 0xa1 /*器件地址选择及读标志*/#define Hidden 0x0e /*显示器的消隐码*/
上传时间: 2013-10-09
上传用户:hjshhyy
第一章 51单片机c语言编程介绍这是一本关于 Intel 80C51 以及广大的 51 系列单片机的书 这本书介绍给读者一些新的技术 使你的 8051 工程和开发过程变得简单 请注意 这本书的目的可不是教你各种8051 嵌入式系统的解决方法为使问题讨论更加清晰 在适当的地方给出了程序代码 我们以讨论项目的方法来说明每章碰到的问题 所有的代码都可在附带的光盘上找到 你必须熟系 C 和 8051汇编 因为本书不是一本C和汇编的指导书 你可以买到不少关于ANSI C的书 最佳选择当然是Intel的数据书 可从你的芯片供应商处免费索取 和随编译工具附送的手册附送光盘中有我为这本书编写和收集的程序 这些程序已经通过测试 这并不意味着你可以随时把这些程序加到你的应用系统或工程中 有些地方必须首先经过修改才能结合到你的程序中这本书将教你充分使用你的工具 如果你只有 8051 的汇编程序 你也可以学习该书和使用这些例子 但是你必须把 C 语言的程序装入你的汇编程序中 这对懂得 C 语言和 8051汇编程序指令的人来说并不是一件困难的事如果你有 C 编译器的话 那恭喜你 使用 C 语言进行开发是一个好的决定 你会发现使用 C 进行开发将使你的工程开发和维护的时间大大减少 如果你已经拥有 Keil C51 那你已经选择了一个非常好的开发工具 我发现 Keil 软件包能够提供最好的支持 本书支持Keil C 的扩展 如果你有其它的开发工具像 Archimedes 和 Avocet 这本书也能很好地为你服务 但你必须根据你所用的开发工具改变一些 Keil 的特殊指令在书的一些地方有硬件图 实例程序在这些硬件上运行 这些图绘制地不是很详细主要是方框图 但足以使读者明白软件和硬件之间的接口读者应该把这本书看成工具书 而不是用来学习各种系统设计 通过本书 你可以了解给定一定的硬件和软件设计之后 8051 的各种性能 希望你能从本书中获取灵感 并有助于你的设计 使你豁然开朗 当然 我希望你也能够从本书中学到有用的知识 使之能够提升你的设计
上传时间: 2013-11-16
上传用户:穿着衣服的大卫
第1章 单片机系统概述1.1 AVR系列单片机的特点1.2 AT90系列单片机简介第2章 AT90LS8535单片机的基础知识2.1 AT90LS8535单片机的总体结构2.1.1 AT90LS8535单片机的中央处理器2.1.2 AT90LS8535单片机的存储器组织2.1.3 AT90LS8535单片机的I/O接口2.1.4 AT90LS8535单片机的内部资源2.1.5 AT90LS8535单片机的时钟电路2.1.6 AT90LS8535单片机的系统复位2.1.7 AT90LS8535单片机的节电方式2.1.8 AT90LS8535单片机的芯片引脚2.2 AT90LS8535单片机的指令系统2.2.1 汇编指令格式2.2.2 寻址方式2.2.3 伪指令2.2.4 指令类型及数据操作方式2.3 应用程序设计2.3.1 程序设计方法2.3.2 应用程序举例第3章 AT90LS8535单片机的C编程3.1 支持高级语言编程的AVR系列单片机3.2 AVR的C编译器3.3 ICC AVR介绍3.3.1 安装ICC AVR3.3.2 设置ICC AVR3.4 用ICC AVR编写应用程序3.5 下载程序文件第4章 数据类型、运算符和表达式4.1 ICC AVR支持的数据类型4.2 常量与变量4.2.1 常量4.2.2 变量4.3 AT90LS8535的存储空间4.4 算术和赋值运算4.4.1 算术运算符和算术表达式4.4.2 赋值运算符和赋值表达式4.5 逻辑运算4.6 关系运算4.7 位操作4.7.1 位逻辑运算4.7.2 移位运算4.8 逗号运算第5章 控制流5.1 C语言的结构化程序设计5.1.1 顺序结构5.1.2 选择结构5.1.3 循环结构5.2 选择语句5.2.1 if语句5.2.2 switch分支5.2.3 选择语句的嵌套5.3 循环语句5.3.1 while语句5.3.2 do…while语句5.3.3 for语句5.3.4 循环语句嵌套5.3.5 break语句和continue语句第6章 函数6.1 函数的定义6.1.1 函数的定义的一般形式6.1.2 函数的参数6.1.3 函数的值6.2 函数的调用6.2.1 函数的一般调用6.2.2 函数的递归调用6.2.3 函数的嵌套使用6.3 变量的类型及其存储方式6.3.1 局部变量6.3.2 局部变量的存储方式6.3.3 全局变量6.3.4 全局变量的存储方式6.4 内部函数和外部函数6.4.1 内部函数6.4.2 外部函数第7章 指针第8章 结构体和共用体第9章 AT90LS8535的内部资源第10章 AT90LS8535的人机接口编程第11章 AT90LS8535的外围扩展第12章 AT90LS8535的通信编程第13章 系统设计中的程序处理方法
上传时间: 2013-10-31
上传用户:smthxt