![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
51单片机
文章平均质量分 79
liufei_learning
这个作者很懒,什么都没留下…
展开
-
Keil C51 V9.00/uVision 4基础
<br /> <br />Keil C51 V9.00 即09年发布的最新版本uVision 4,版本外观改变比较大<br />可以使用以前的注册文件<br />如果全新安装,在VISTA或者WIN 7系统下,请使用管理员方式运行,然后注册即可无限制运行<br />注册方法:<br /> 1. 安装Keil C51 V9.00版本,即uV4<br /> 2. 打开uVision4,点击File---License Management...,打开License Management窗口,复制右上转载 2010-07-06 23:07:00 · 2663 阅读 · 0 评论 -
C51 库函数(1)
<br /> <br />C-51软件包的库包含标准的应用程序,每个函数都在相应的头文件(.h)中有原型声明。如果使用库函数,必须在源程序中用预编译指令定义与该函数相关的头文件(包含了该函数的原型声明)。例如:<br />#include <br />#include <br />如果省掉头文件,编译器则期望标准的C参数类型,从而不能保证函数的正确执行。<br />3.1 CTYPE.H:字符函数<br />在CTYPE.H头文件中包含下列一些库函数:<br /> <br />函数名: isalpha<br转载 2010-07-17 23:47:00 · 1102 阅读 · 0 评论 -
LED数码管
<br /> LED数码管介绍:实验原理图:<br />LED数码管分共阳极与共阴极两种,其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极LED数码管则与之相反,它是将发光二极管的阴极(负极)短接后作为公共阴极。当驱动信号为高电平、Ө端接低电平时,才能发光。<br /> LED的输出光谱决定其发光颜色以及光辐射纯度,也反映出半导体材料的特性。常见管芯材料有磷化镓(GaP)、砷化镓(GaAs)、磷砷化镓(GaAsP)、氮化镓(GaN)等,其中氮化镓可发蓝光。发光颜色不原创 2010-07-19 12:50:00 · 2305 阅读 · 0 评论 -
4*4的键盘矩阵
<br /> <br />一个4*4的键盘矩阵,可以采用逐行扫描或全扫描的方式实现按键的读取。<br />行列扫描<br />若行线和列线加驱动后空载时为高电平,逐行扫描的方法为逐行使行线的每位为低,再判断列线的返回信号,如果没有键按下,返回的信号全为高;如果返回的信号中有列线为低,那么肯定是有按键按下,根据列线和行线的交点可以判断按键的具体位置。<br />可以设置一个数组,存放从1到F对应的16个代码,比如将P2_0与P2_7的交点处定为0,那么数组第0个元素则为0X7E(二进制0111 1110),当原创 2010-07-19 19:16:00 · 1465 阅读 · 0 评论 -
Keil C51库函数原型列表
Keil C51库函数原型列表1. 1. CTYPE.Hbit isalnum(char c);bit isalpha(char c);bit iscntrl(char c);bit isdigit(char c);bit isgraph(char c);bit islower(char c);bit isprint(char c);bit ispunct(char c);bit isspace(char c);bit isupper(char c);bit isxdigit(char c);bit to转载 2010-07-17 23:44:00 · 1516 阅读 · 0 评论 -
C51 库函数(2)
<br /> <br />3.2 STDIO.H:一般I/O函数<br />C51编译器包含字符I/O函数,它们通过处理器的串行接口操作,为支持其它I/O机制,只需修改getkey()和putchar()函数,其它所有I/O支持函数依赖这两个模块,不需要改动。在使用8051串行口之前,必须将它们初始化,下例以2400波特率,12MHz初始化串口:<br />SCON=0x52 <br />TMOD=0x20 <br />TR1=1 <br />TH1=0Xf3 <br />其它工作模式和波特率等细节问题可以转载 2010-07-17 23:48:00 · 1306 阅读 · 0 评论 -
C51 库函数(3)
<br /> <br />3.3 STRING.H:串函数<br />串函数通常将指针串作输入值。一个串就包括2个或多个字符。串结以空字符表示。在函数memcmp,memcpy,memchr,memccpy,memmove和memset中,串长度由调用者明确规定,使这些函数可工作在任何模式下。<br /> <br />函数名: memchr<br />原 型: extern void *memchr(void *sl, char val,int len);<br />功 能: memchr顺序搜索s1中的l转载 2010-07-17 23:48:00 · 1529 阅读 · 0 评论 -
PS/2接口
<br /> <br />ps/2接口标准的发展过程<br /> <br />随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBM pc/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84~101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出转载 2010-07-18 12:39:00 · 880 阅读 · 0 评论 -
C51与汇编语言混合编程
<br /> <br />函数内部混合编程<br />若想在C语言函数内部使用汇编语言,应使用以下Cx51编译器控制命令:<br />#pragma asm<br />;;; Assembly code<br />#pragma endasm<br />功能作用:<br />asm和endasm命令用于将其标记的汇编程序合并到.SRC文件中。这个带有asm和endasm块标记的源程序可看作是在线嵌入式汇编程序。从这点来说,此命令有些类似于#define命令。<br />具体实现:<br />(1)编译器设置转载 2010-07-21 12:50:00 · 1541 阅读 · 0 评论 -
RAM随机存取存储器
<br />随机存取存储器<br />RAM(随机存取存储器)RAM -random access memory 随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。<br /><br />随机存取<br />所谓“随机存取”,指的是当存储器中的消息被读取或写入时,转载 2010-09-25 20:37:00 · 1479 阅读 · 0 评论 -
单片机系统键盘的设计小结
单片机系统键盘的设计小结一、概述 键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘分两大类:编码键盘和非编码键盘。 编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。 非编码键盘:只简单地提供键盘的行列与转载 2010-07-17 20:48:00 · 2379 阅读 · 0 评论 -
C51 延时程序
一.相关换算1s=10^3ms(毫秒)=10^6μs(微秒)=10^9ns(纳秒)=10^12ps(皮秒)=10^15fs(飞秒)=10^18as(阿秒)=10^21zm(仄秒)=10^24ym(幺秒) 物质在1秒内完成周期性变化的次数叫做频率,常用f表示。 物 理中频率的单位是赫 兹(Hz),简称赫,也常用千赫(kHz)或兆赫(MHz)或GHz做单 位。1kHz=1000Hz,1MHz=1000000Hz 1GHz=1000MHz。频率f是周期T的倒数,即f =1/T,波速=波长*频率。 而像中国使用的电原创 2010-07-18 18:52:00 · 2342 阅读 · 0 评论 -
interrupt 和 using 在C51中断中的使用
<br /> <br />interrupt 和 using 在C51中断中的使用<br />8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个串口输入/输出中断),两级中断优先级;128 字节内置RAM;独立的 64K 字节可寻址数据和代码区。中断发生后,MCU 转到 5 个中断入口处之一,然后执行相应的中断服务 <br />处理程序。中断程序的入口地址被编译器放在中断转载 2010-07-14 23:36:00 · 1370 阅读 · 0 评论 -
特殊功能寄存器
<br /> <br />特殊功能寄存器(SFR)也称为专用寄存器,特殊功能寄存器反映了MCS-51单片机的运行状态。很多功能也通过特殊功能寄存器来定义和控制程序的执行。<br />MCS-51有21个特殊功能寄存器,它们被离散地分布在内部RAM的80H—FFH地址中,这些寄存的功能已作了专门的规定,用户不能修改其结构。表2是特殊功能寄存器分布一览表,我们对其主要的寄存器作一些简单的介绍。<br />表2 特殊功能寄存器 <br />标识符号 地址寄存器名称 <br />ACC 0E0H 累加器 <br /转载 2010-07-10 10:23:00 · 2898 阅读 · 0 评论 -
数据传送指令
<br /> <br />数据传送指令共有29条,数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。如果要求在进行数据传送时,目的操作数不丢失,则不能用直接传送指令,而采用交换型的数据传送指令,数据传送指令不影响标志C,AC和OV,但可能会对奇偶标志P有影响。<br />以累加器A为目的操作数类指令(4条)<br />这4条指令的作用是把源操作数指向的内容送到累加器A。有直接、立即数、寄存器和寄存器间接寻址方式:<br />MOV A,data转载 2010-07-10 20:01:00 · 773 阅读 · 0 评论 -
单片机机存储器类型分析
<br /> <br />单片机机存储器类型分析<br />(data,xdata,code,pdata,bit)<br /> <br />data-----指单片机内部自带RAM空间<br /> <br />xdata----指单片机外扩RAM空间<br /> <br />pdata----指单片机外扩RAM空间中的页面空间0x00~0xff(256字节/页),页地址由P2口决定。<br /> <br />bit--------指RAM中位寻址空间0x20~0x7f地址单元。<br /> <br />co转载 2010-07-14 23:31:00 · 622 阅读 · 0 评论 -
利用Keil u4调试,精确实现软件延时
<br /> <br />利用Keil u3调试,精确实现软件延时<br />2007年11月01日 星期四 13:04<br />用定时器延时,有时候显得有点麻烦,我们不如考虑软件精确延时,软件延时无非就是利用for或while多重循环。以前用到延时函数时,都是从网上下载别人写好的延时子程序。延时5ms,400ms,1s,……,这些延时函数的函数名中都清清楚楚地标明了延时的时间,可我一直不知道这些函数是如何编写的,确切地说,是如果根据延时时间来确定循环次数的。如果是纳秒级的延时,可以通过示波器来观察波形,转载 2010-07-14 23:34:00 · 1713 阅读 · 0 评论 -
C51编译警告“*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL” 及extern的运用剖析
<br /> <br />C51编译警告“*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL” <br /> *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL<br /> SYMBOL: ?C_START <br /> MODULE: .STARTUP.obj (?C_STARTUP) <br /> *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL<br />转载 2010-07-15 16:35:00 · 90696 阅读 · 19 评论 -
bit和sbit的区别
<br /> <br />1.bit和sbit都是C51扩展的变量类型。<br /> bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。<br /> sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi xxx = REGE^6这样转载 2010-07-14 23:30:00 · 4692 阅读 · 0 评论 -
芯片(一)--74HC595中文资料
<br /> <br />74HC595中文资料<br /> <br /> ________<br />QB--|1 16|--Vcc<br />QC--|2 15|--QA<br />QD--|3 14|--SI<br />QE--|4 13|--/G<br />QF--|5 12|--RCK<br />QG--|6 11|--SCK<br />QH--|7 10|--/SCLR<br />GND- |8 9|--转载 2010-07-17 09:31:00 · 8390 阅读 · 0 评论 -
单片机C语言编程规范
<br /> <br />. 基本要求<br />1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。<br />1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。<br />1.3 尽量使用标准库函数和公共函数。<br />1.4 不要随意定义全局变量,尽量使用局部变量。<br />1.5 使用括号以避免二义性。<br /> <br />2.可读性要求<br />2.1 可读性第一,效率第二。<br />2.2 保持注释与代码完全一致。<br />2.3 每个源程序文件,都有文转载 2010-07-14 23:01:00 · 1318 阅读 · 0 评论 -
51单片机定时器计数器中断总结
<br /> <br />一.TMOD:定时器计数度器模式寄存器<br /> <br /> <br /> <br />M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。<br /> <br />1. 工作方式1 <br /> <br />工作方式1是16位的定时/计数方式,将M1M0设为01即可,其它特性与工作方式0相同。<br /> <br />工作方式2 <br />在介绍这种式方式之前先让我们思考一个问题:上一次课我们提到过任意计数及任意定时的问题,比如我要转载 2010-07-14 23:33:00 · 3058 阅读 · 0 评论 -
Flash Memory存储器
<br />Flash Memory存储器<br />Flash Memory存储器是什么意思?新型半导体存储器是闪速存储器(Flash Memory),它的主要特点是在不加电的情况下能长期保持存储的信息。就其本质而言,Flash Memory属于EEPROM(电擦除可编程只读存储器)类型。它既有ROM的特点,又有很高的存取速度,而且易于擦除和重写。<br />由于Flash Memory的独特优点,如在一些较新的主板上采用Flash ROM BIOS,会使得BIOS 升级非常方便。 Flash Memor转载 2010-09-25 20:32:00 · 5569 阅读 · 0 评论