虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

普通

  • 单片机c语言入门教程

    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 的屏幕。

    标签: 单片机c语言 入门教程

    上传时间: 2014-01-23

    上传用户:yyyyyyyyyy

  • I2C总线驱动程序

    1 /**————————————————————2 〖说明〗I2C总线驱动程序(用两个普通IO模拟I2C总线)3 包括100Khz(T=10us)的标准模式(慢速模式)选择,4 和400Khz(T=2.5us)的快速模式选择,5 默认11.0592Mhz的晶振。6 〖文件〗PCF8563T.C ﹫2001/11/2 77 〖作者〗龙啸九天 c51@yeah.net http://www.c51bbs.co /8 〖修改〗修改建议请到论坛公布 http://www.c51bbs.co m9 〖版本〗V1.00A Build 080310 —————————————————————*/1112 #ifndef SDA13 #define SDA P0_014 #define SCL P0_115 #endif1617 extern uchar SystemError;1819 #define uchar unsigned char20 #define uint unsigned int21 #define Byte unsigned char22 #define Word unsigned int23 #define bool bit24 #define true 125 #define false 02627 #define SomeNOP(); _nop_();_nop_();_nop_();_nop_();2829 /**--------------------------------------------------------------------------------30 调用方式:void I2CStart(void) ﹫2001/07/0 431 函数说明:私有函数,I2C专用32 ---------------------------------------------------------------------------------*/33 void I2CStart(void)34 {35 EA=0;36 SDA=1; SCL=1; SomeNOP();//INI37 SDA=0; SomeNOP(); //START38 SCL=0;39 }4041 /**--------------------------------------------------------------------------------42 调用方式:void I2CStop(void) ﹫2001/07/0 443 函数说明:私有函数,I2C专用44 ---------------------------------------------------------------------------------*/45 void I2CStop(void)46 {47 SCL=0; SDA=0; SomeNOP(); //INI48 SCL=1; SomeNOP(); SDA=1; //STOP49 EA=1;50 }5152 /**--------------------------------------------------------------------------------53 调用方式:bit I2CAck(void) ﹫2001/07/0 454 函数说明:私有函数,I2C专用,等待从器件接收方的应答55 ---------------------------------------------------------------------------------*/56 bool WaitAck(void)57 {58 uchar errtime=255;//因故障接收方无ACK,超时值为255。59 SDA=1;SomeNOP();60 SCL=1;SomeNOP();61 while(SDA) {errtime--; if (!errtime) {I2CStop();SystemError=0x11;return false;}}62 SCL=0;63 return true;

    标签: I2C 总线 驱动程序

    上传时间: 2014-04-11

    上传用户:xg262122

  • atmega8原理与应用手册

    atmega8原理与及应用手册,ATmega8 是ATMEL公司在2002年第一季度推出的一款新型AVR高档单片机。在AVR家族中,ATmega8是一种非常特殊的单片机,它的芯片内部集成了较大 容量的存储器和丰富强大的硬件接口电路,具备AVR高档单片机MEGE系列的全部性能和特点。但由于采用了小引脚封装(为DIP 28和TQFP/MLF32),所以其价格仅与低档单片机相当,再加上AVR单片机的系统内可编程特性,使得无需购买昂贵的仿真器和编程器也可进行单片机 嵌入式系统的设计和开发,同时也为单片机的初学者提供了非常方便和简捷的学习开发环境。    ATmega8的这些特点,使其成为一款具有极高性能价格比的单片机,深受广大单片机用户的喜爱,在产品应用市场上极具竞争力,被很多家用电器厂商和仪器仪表行业看中,从而使ATmega8迅速进入大批量的应用领域。    ATmega系列单片机属于AVR中的高档产品,它承袭了AT90所具有的特点,并在AT90(如 AT9058515、AT9058535)的基础上,增加了更多的接口功能,而且在省电性能。稳定性、抗干扰性以及灵活性方面考虑得更加周全和完善。    ATmega8 是一款采用低功耗CMOS工艺生产的基于AVR RISC结构的8位单片机。AVR单片机的核心是将32个工作寄存器和丰富的指令集联结在一起,所有的工作寄存器都与ALU(算术逻辑单元)直接相连,实 现了在一个时钟周期内执行的一条指令同时访问(读写)两个独立寄存器的操作。这种结构提高了代码效率,使得大部分指令的执行时间仅为一个时钟周期。因此, ATmega8可以达到接近1MIPS/MHz的性能,运行速度比普通CISC单片机高出10倍。

    标签: atmega8 应用手册

    上传时间: 2013-11-08

    上传用户:朗朗乾坤

  • at89s52开发板学习板实验板使用说明书

    实验板结合了单片机在线编程(烧写)功能及程序运行功能,使得用户一板在手便拥有了编程器和实验板两套设备。通过带锁按压开关方便地实现系统编程状态和程序运行状态之间的转换,马上能观察编程的运行结果,从而免去了单片机开发中必须的昂贵的硬件仿真器和专用编程器的开销。同时由于在线编程,不用频繁反复拔、插单片机,节省了时间,减少了损耗。同时本实验板,已经把下载电路完整的做在了电路板中,不再需要专用下载线,只需要普通并口线就可以下载单片机程序,这又为消费者节省了不少金钱。我们保证所设计的电路稳定,在实验过程中不需要插拔任何电线/跳线,单片机所有引脚资源可用,不存在保密的从处理器,下载过程方便快捷。另外,本实验板采用usb供电,用户只需要将普通usb延长线插入板子接口即可实验,保证实验过程不需要任何实验室中才能得到设备,学生完全可以在家中/寝室中完成全部实验。

    标签: 89s s52 at 89

    上传时间: 2013-10-22

    上传用户:windypsm

  • 存储器技术.doc

    存储器技术.doc 计算机的主存储器(Main Memory),又称为内部存储器,简称为内存。内存实质上是一组或多组具备数据输入输出和数据存储功能的集成电路。内存的主要作用是用来存放计算机系统执行时所需要的数据,存放各种输入、输出数据和中间计算结果,以及与外部存储器交换信息时作为缓冲用。由于CPU只能直接处理内存中的数据 ,所以内存是计算机系统中不可缺少的部件。内存的品质直接关系到计算机系统的速度、稳定性和兼容性。 4.1 存储器类型计算机内部存储器有两种类型,一种称为只读存储器ROM(Read Only Memiry),另一种称为随机存储器RAM(Random Access Memiry)。 4.1.1 只读存储器只读存储器ROM主要用于存放计算机固化的控制程序,如主板的BIOS程序、显卡BIOS控制程序、硬盘控制程序等。ROM的典型特点是:一旦将数据写入ROM中后,即使在断电的情况下也能够永久的保存数据。从使用上讲,一般用户能从ROM中读取数据,而不能改写其中的数据。但现在为了做一日和尚撞一天钟于软件或硬件程序升级,普通用户使用所谓的闪存(Flash Memiry)也可以有条件地改变ROM中的数据。有关只读存储器ROM的内容将在第11章中介绍,本章主要介绍随机存储器。4.1.2 随机存取存储器随机存取存储器RAM的最大特点是计算机可以随时改变RAM中的数据,并且一旦断电,TAM中数据就会立即丢失,也就是说,RAM中的数据在断电后是不能保留的。从用于制造随机存取存储器的材料上看,RAM又可分为静态随机存储器SRAM(Static RAM)和动态随机存储器DRAM(Dymamic RAM)两种。1. 动态随机存储器在DRAM中数据是以电荷的形式存储在电容上的,充电后电容上的电压被认为是逻辑上的“1”,而放电后的电容上的电压被认为是逻辑上的“0”认。为了减少存储器的引脚数,就反存储器芯片的每个基本单元按行、列矩阵形式连接起来,使每个存储单元位于行、列的交叉点。这样每个存储单元的地址做一日和尚撞一天钟可以用位数较少的行地址和列地址两个部分表示,在对每个单元进行读写操作时,就可以采用分行、列寻址方式写入或读出相应的数据,如图4-1所示。  由于电容充电后,电容会缓慢放电,电容 上的电荷会逐渐

    标签: 存储器

    上传时间: 2014-01-10

    上传用户:18752787361

  • PCtoLCD2002完美版_汉字字模生成软件

    更新说明:   1。界面采用新的字体,不会再有那种难看的黑色粗体字,比以前的要漂亮多了。   2。加入全面的提示帮助,尽量减少普通用户的各种疑惑。   3。修正生成文件的扩展名的一些BUG,不会总是加上FON的扩展名了。   4。修正生成字模数据的一些格式BUG,现在生成的C51格式字模数据基本上可以直接粘贴到源程序中使用而不需要修改了   5。加入新的字模数据格式调整项,允许用户更自由的定制自己需要的数据格式   6。最重要的更新:全面支持保存当前设置功能,用户设置的字模格式,主窗口状态和字库生成窗口选项信息均可保存,下一次打开窗口时不用重新设置(由于要全面更改程序使用的变量结构,所以这部分化了很多时间)。   7。修正了新建图象时会自动跳到图形模式的BUG   8。增加输出紧凑格式数据选项,可以生成不包含空白行的字模数据。   9。完善了每行数据显示个数的功能,可以任意设置每行显示的数据个数,并同时可以设置每行索引数据显示个数。   10。修正了取模说明的一些错误,并改动了格式。   11。现在当用户选择10进制输出时,会自动去掉生成字模数据前的“0x",或后面的“H”,选择16进制时则会自动加上。   12。对各个窗体重新设计以全面适应最大化的需要,如果您觉得当前窗口不够大,可以最大化使用。   13。增加生成英文点阵字库功能,可自动生成ASCII码从0-127的任意点阵字库,使用方法同生成国标点阵字库功能。   14。再次优化代码,去掉各种调试信息,使程序速度再快一些。   15。还有一些细微的调整我记不清了…… 需要注意的地方:  在测试的过程中我发现了一个问题:在WIN98或WINME下当用户需要生成特大点阵的字模时(例如320*320,1024*768的汉字字模),此时由于数据量非常庞大,而WIN98/WINME会有64K的数据容量限制,所以在主窗口中是无法得到全部的字模数据的,这时您需要使用字库生成功能,通过形成一个数据文件才能得到完整的字模数据。   另外生成特大字模时如果出现“内存不足”的提示,请把液晶仿真面板的像素点改小一些,这样可以节省内存。

    标签: PCtoLCD 2002 汉字 字模生成

    上传时间: 2013-10-17

    上传用户:fengzimili

  • 自动检测单片机80C51串行通讯时的波特率

    自动检测80C51 串行通讯中的波特率本文介绍一种在80C51 串行通讯应用中自动检测波特率的方法。按照经验,程序起动后所接收到的第1 个字符用于测量波特率。这种方法可以不用设定难于记忆的开关,还可以免去在有关应用中使用多种不同波特率的烦恼。人们可以设想:一种可靠地实现自动波特检测的方法是可能的,它无须严格限制可被确认的字符。问题是:在各种的条件下,如何可以在大量允许出现的字符中找出波特率的定时间隔。显然,最快捷的方法是检测一个单独位时间(single bit time),以确定接收波特率应该是多少。可是,在RS-232 模式下,许多ASCII 字符并不能测量出一个单独位时间。对于大多数字符来说,只要波特率存在合理波动(这里的波特率是指标准波特率),从起始位到最后一位“可见”位的数据传输周期就会在一定范围内发生变化。此外,许多系统采用8 位数据、无奇偶校验的格式传输ASCII 字符。在这种格式里,普通ASCII 字节不会有MSB 设定

    标签: 80C51 自动检测 单片机 串行通讯

    上传时间: 2013-10-15

    上传用户:shirleyYim

  • MagicSOPC例程编译异常及解决方法

    1.1 问题产生的环境1.1.1 软件环境1. PC机的系统为Microsoft Window XP Professional版本2002 Service Pack 2;2. Quartus II V7.0软件,并安装了MegaCore IP V7.0;3. NiosII IDE 7.0软件。1.1.2 硬件环境核心板的芯片是EP2C35F672C8N的MagicSOPC实验箱的硬件系统。硬件的工作环境是在普通的环境下。1.2 问题的现象在使用MagicSOPC实验箱的光盘例程时,使用Quartus II编译工程时出现编译错误,错误提示信息如图1.1、图1.2所示。

    标签: MagicSOPC 编译

    上传时间: 2013-11-18

    上传用户:zhyiroy

  • 基于Actel FPGA的双端口RAM设计

    基于Actel FPGA 的双端口RAM 设计双端口RAM 芯片主要应用于高速率、高可靠性、对实时性要求高的场合,如实现DSP与PCI 总线芯片之间的数据交换接口电路等。但普通双端口RAM 最大的缺点是在两个CPU发生竞争时,有一方CPU 必须等待,因而降低了访问效率。IDT 公司推出的专用双端口RAM 芯片解决了普通双端口RAM 内部竞争问题,并融合了中断、旗语、主从功能。它具有存取速度快、功耗低、可完全异步操作、接口电路简单等优点,但缺点也非常明显,那就是价格太昂贵。为解决IDT 专用双端口RAM 芯片的价格过高问题,广州致远电子有限公司推出了一种全新的基于Actel FPGA 的双端口RAM 的解决方案。该方案采用Actel FPGA 实现,不仅具有IDT 专用双端口RAM 芯片的所有性能特点,更是在价格上得到了很大改善,以A3P060双端口RAM 为例,在相同容量(2K 字节)下,其价格仅为IDT 专用芯片的六分之一。

    标签: Actel FPGA RAM 双端口

    上传时间: 2013-10-22

    上传用户:blacklee

  • 语音通信保密系统设计

    针对语音通信过程中的安全性问题,设计了一种基于单片机的通信保密系统。该系统主要分为保密发送模块与保密接收模块,可以实现普通通话与保密通话两种功能,通过运用单片机产生随机密钥从而实现同步保密通讯。测试结果表明,该系统能够实现通信保密的功能,且可实现模块小型化,便于制成保密度较高的通信保密工具。

    标签: 语音通信 保密系统

    上传时间: 2013-11-21

    上传用户:wangjin2945