Keil C51 中文说明: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-10-24
上传用户:xauthu
//芯片资料请到www.elecfans.com查找 //DS1820 C51 子程序//这里以11.0592M晶体为例,不同的晶体速度可能需要调整延时的时间//sbit DQ =P2^1;//根据实际情况定义端口 typedef unsigned char byte;typedef unsigned int word; //延时void delay(word useconds){ for(;useconds>0;useconds--);} //复位byte ow_reset(void){ byte presence; DQ = 0; //pull DQ line low delay(29); // leave it low for 480us DQ = 1; // allow line to return high delay(3); // wait for presence presence = DQ; // get presence signal delay(25); // wait for end of timeslot return(presence); // presence signal returned} // 0=presence, 1 = no part //从 1-wire 总线上读取一个字节byte read_byte(void){ byte i; byte value = 0; for (i=8;i>0;i--) { value>>=1; DQ = 0; // pull DQ low to start timeslot DQ = 1; // then return high delay(1); //for (i=0; i<3; i++); if(DQ)value|=0x80; delay(6); // wait for rest of timeslot } return(value);} //向 1-WIRE 总线上写一个字节void write_byte(char val){ byte i; for (i=8; i>0; i--) // writes byte, one bit at a time { DQ = 0; // pull DQ low to start timeslot DQ = val&0x01; delay(5); // hold value for remainder of timeslot DQ = 1; val=val/2; } delay(5);} //读取温度char Read_Temperature(void){ union{ byte c[2]; int x; }temp; ow_reset(); write_byte(0xCC); // Skip ROM write_byte(0xBE); // Read Scratch Pad temp.c[1]=read_byte(); temp.c[0]=read_byte(); ow_reset(); write_byte(0xCC); //Skip ROM write_byte(0x44); // Start Conversion return temp.x/2;}
上传时间: 2013-11-03
上传用户:hongmo
用C51写的普通拼音输入法源程序代码:原作使用了一个二维数组用以查表,我认为这样比较的浪费空间,而且每个字表的索引地址要手工输入,效率不高。所以我用结构体将其改写了一下。就是大家现在看到的这个。 因为代码比较的大,共有6,000多汉字,这样就得要12,000 byte来存放GB内码,所以也是没办法的.编译结果约为3000h,因为大部分是索引表,代码优化几乎无效。 在Keil C里仿真芯片选用的是华邦的W77E58,它有32k ROM, 256B on-chip RAM, 1K on-chip SRAM (用DPTR1指针寻址,相当于有1K的片上xdata)。条件有限,没有上片试验,仿真而已。 打算将其移植到AVR上,但CodeAVRC与IAR EC++在结构体、指针的定义使用上似乎与C51不太一样,现在还未搞定。还希望在这方面有经验的网友能给予指导。 #include<stdio.h> char * py_ime(char *); void main(void){ while(1) { char input_string[]="yI"; xdata char chinese_string[255]; sprintf(chinese_string,"%s",py_ime(input_string)); }}
上传时间: 2013-10-30
上传用户:cainaifa
Keil C51 使用技巧及实战:到你的程序中这本书将教你充分使用你的工具如果你只有8051 的汇编程序你也可以学习该书和使用这些例子但是你必须把C 语言的程序装入你的汇编程序中这对懂得C 语言和8051汇编程序指令的人来说并不是一件困难的事如果你有C 编译器的话那恭喜你使用C 语言进行开发是一个好的决定你会发现使用C 进行开发将使你的工程开发和维护的时间大大减少如果你已经拥有Keil C51 那你已经选择了一个非常好的开发工具我发现Keil 软件包能够提供最好的支持本书支持Keil C 的扩展如果你有其它的开发工具像Archimedes 和Avocet 这本书也能很好地为你服务但你必须根据你所用的开发工具改变一些Keil 的特殊指令在书的一些地方有硬件图实例程序在这些硬件上运行这些图绘制地不是很详细主要是方框图但足以使读者明白软件和硬件之间的接口读者应该把这本书看成工具书而不是用来学习各种系统设计通过本书你可以了解给定一定的硬件和软件设计之后8051 的各种性能希望你能从本书中获取灵感并有助于你的设计使你豁然开朗当然我希望你也能够从本书中学到有用的知识使之能够提升你的设计。
上传时间: 2013-10-27
上传用户:Jerry_Chow
C51单片机是我们生活中最常用的系列,MCS-51系列单片机有4个并行口(P0,P1,P2,P3口),但对一个稍微复杂的应用系统来说,真正可供用户使用的并行口,只有P1口可用,况且常常因扩展I2C和SPI的器件需占用某些P1口,迫使用户不得不扩展并行口以满足实际的需要。习惯上,常用的并行口接口芯片有8255、8155,这两种芯片功能比较齐全,可以使用在相对比较复杂的系统中,但如是对一般的系统而言,这些功能往往闲置不用。那么就可以选用一些本来闲置不用的口线作为选通信号来进行并行口的扩展,这样就能充分利用单片机有限的I/O资源,在本设计中是将P1口扩展成一个或几个8位并行口,在每一个八位口上接入8个发光二极管做为输出,二极管是做开关量来使用的,在这里设计了跑马灯和流水灯程序,做到对开关量的开断控制;配合开关量的控制笔者设计了一个共阳LED数码管,用来显示当前发光二极管发亮的序号,做到更加直观的双重控制效果,然后再将P0口通过D/A转换器和一放大器输出一个模拟信号,其结果可以通过示波器看出。这样整个系统即有了数字信号输出和模拟信号输出,也有数码管显示功能,实用性能大提高了。2、 基于89C51的系统硬件设计2.1 并行口的扩展的电路设计 众所周知,C51系列的单片机都有四个I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我们通常仅仅使用P1口作为并行口,而令其余口(P2、P3)处于闲置状态,所以这次设计,我们就是使用闲置不用的P3口做为选能信号线来将P1口进行并行口扩展。 (1) 种方式的并行口扩展优点 连线简单; 不占用存储器空间; (2) 编程也方便灵活。但也有很大的缺点 并行口扩展能力有限,(如使用74LS573(74LS373)且不进行驱动处理,则最多可扩展4个同样类型的并行输出端口,当然还需要与之对应的四个选通信号。) 如扩展较多,选通信号占用并行口位数太多,例如欲扩展8个并行输出端口,则需要8个选能信号,此时,仅选能信号就占用了一个8位并行口,这对在I/O端口线有限的单片机系统中,如此浪费资源的现象是不能容忍的。在本次的设计中,采用芯片74HC573(带三态输出的八进制透明D型锁存器)对P1口进行了一个8位并行口的扩展,选通信号选用P3口的P3.3引脚。原理图如图1所示:
上传时间: 2013-11-18
上传用户:dbs012280
Keil C51 是目前世界上最好的51单片机的汇编和c语言的开发工具。支持汇编,c语言以及混合编程。同时具备功能强大的软件仿真和硬件仿真(用mon51协议)。发布日期:2008.1
上传时间: 2013-11-20
上传用户:642778338
I2C总线高频头控制程序(Keil C51程序 基于芯片TSA5522系列) /*I2C总线高频头控制Keil C51程序(PLL芯片为TSA5522系列) *///--------------------------------------------------------------------------//// 源程序大公开 //// (c) Copyright 2001-2003 xuwenjun //// All Rights Reserved //// V1.00 ////--------------------------------------------------------------------------////标 题: I2C总线高频头控制程序(PLL芯片为TSA5522系列) ////文件名: xwj_fi1256.c ////版 本: V1.00 ////修改人: 徐文军 E-mail:xuwenjun@21cn.com ////日 期: 06-02-26 首次公开 ////描 述: I2C总线高频头控制程序(PLL芯片为TSA5522系列) ////声 明: //// 以下代码仅免费提供给学习用途,但引用或修改后必须在文件中声明出处. //// 如用于商业用途请与作者联系. E-mail:xuwenjun@21cn.com //// 有问题请mailto xuwenjun@21cn.com 欢迎与我交流! ////--------------------------------------------------------------------------////老版本: 无 老版本文件名: ////创建人: 徐文军 E-mail:xuwenjun@21cn.com ////日 期: 06-02-26 ////描 述: ////--------------------------------------------------------------------------// /* 频率单位为KHz */#define FUENCY 38900 /* 中频频率 */#define PLLdataH(f) ((f+FUENCY)*16/1000/256) /* 频率数据高 第1字节*/#define PLLdataL(f) ((f+FUENCY)*16/1000%256) /* 频率数据低 第2字节*/#define PLLCON1 0x8e /* 控制字1 第3字节*/ /* 控制字2 第4字节*/#define PLLCON2(f) (((f)<(168000))?(0xa0):(((f)<(450000))?(0x90):(0x30)))#define PLLdata3(fchan) PLLdataH (fchan),PLLdataL (fchan),PLLCON2 (fchan)
上传时间: 2013-11-10
上传用户:nanfeicui
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
C51单片机驱动程序源代码_RF24L01
上传时间: 2014-12-30
上传用户:冇尾飞铊
KEIL C51简介 支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。 里面包含了,keil C51中文破解完全版、keil C51自学教程、keil C51使用技巧及实战、keil C51开发系统基础知识 对于keil C51初学者来说非常合适!
上传时间: 2014-12-30
上传用户:13686209316