懂80C51单片机的进~

\u5355\u7247\u673a\u725b\u4eba\u8bf7\u8fdb\uff01\uff018051 \uff0c80C51 \uff0cMCS-51\u8fd9\u4e09\u8005\u7684\u533a\u522b\u662f\u4ec0\u4e48\uff1f\uff1f\uff1f

8051\uff0c80C51\uff0cMCS-51\u533a\u522b\u4e3a\uff1a\u5305\u542b\u4e0d\u540c\u3001\u5b58\u50a8\u683c\u5f0f\u4e0d\u540c\u3001\u7ec4\u6210\u4e0d\u540c\u3002
\u4e00\u3001\u5305\u542b\u4e0d\u540c
1\u30018051\uff1a8051\u5c5e\u4e8eMCS-51\u7cfb\u5217\u5355\u7247\u673a\uff0c\u7531Intel\u516c\u53f8\u5f00\u53d1\uff0c\u662f8048\u7684\u5ef6\u4f38\u3002
2\u300180C51\uff1a80C51\u5c5e\u4e8eMCS-51\u7cfb\u5217\u5355\u7247\u673a\uff0c\u7531Intel\u516c\u53f8\u5f00\u53d1\uff0c\u662f8051\u7684\u5ef6\u4f38\u3002
3\u3001MCS-51\uff1aMCS-51\u662f\u6307\u7531\u7f8e\u56fdINTEL\u516c\u53f8\u751f\u4ea7\u7684\u4e00\u7cfb\u5217\u5355\u7247\u673a\u7684\u603b\u79f0\uff0c\u8fd9\u4e00\u7cfb\u5217\u5355\u7247\u673a\u5305\u62ec8031\uff0c8051\uff0c80C51\uff0c8751\uff0c8032\uff0c8052\uff0c8752\u7b49\u3002
\u4e8c\u3001\u5b58\u50a8\u683c\u5f0f\u4e0d\u540c
1\u30018051\uff1a8051\u7684\u5b58\u50a8\u683c\u5f0f\u4e3a4KB ROM\u3001128BRAM\u3002
2\u300180C51\uff1a80C51\u7684\u5b58\u50a8\u683c\u5f0f\u4e3a4KB EEPROM\u3001128BRAM\u3002
3\u3001MCS-51\uff1aMCS-51\u7684\u5b58\u50a8\u683c\u5f0f\u4e3a\u628a4kROM\u6362\u4e3aEEPROM\u5c31\u662f51\u7cfb\u5217\u7684\u7ed3\u6784\uff0c\u5982\u53bb\u6389ROM/EEPROM\u90e8\u5206\u5373\u4e3a31\u7cfb\u5217\uff0c\u5982\u679c\u5c06ROM\u7f6e\u6362\u4e3aFlash\u5b58\u8d2e\u5668\u6216EEPROM\uff0c\u6216\u518d\u7701\u53bb\u67d0\u4e9bI/O\uff0c\u5373\u53ef\u5f97\u523051\u7cfb\u5217\u7684\u6d3e\u751f\u54c1\u79cd\u3002

\u4e09\u3001\u7ec4\u6210\u4e0d\u540c
1\u30018051\uff1a8051\u5305\u62ec\u8fd0\u7b97\u5668\u548c\u63a7\u5236\u5668\u4e24\u90e8\u5206\u3002
2\u300180C51\uff1a80C51\u5305\u62ec\u8fd0\u7b97\u5668\u3001\u63a7\u5236\u5668\u3001\u5de5\u4f5c\u5bc4\u5b58\u5668\u53ca\u7279\u6b8a\u529f\u80fd\u5bc4\u5b58\u5668\uff08SFR\uff09\u3002
3\u3001MCS-51\uff1aMCS-51\u5305\u62ec\u8fd0\u7b97\u5668\u3001\u63a7\u5236\u5668\u3001\u7247\u5185\u632f\u8361\u5668\u3001\u7279\u6b8a\u529f\u80fd\u5bc4\u5b58\u5668\u3001\u5b9a\u65f6\u5668\u3001\u8ba1\u6570\u5668\u4f4d\u5904\u7406\u5668\u7b49\u3002

me

贴上两个自己用过的LCD1602驱动(总线、IO口的都有,肯定派得上用场)
再贴上ADC0809总线上的驱动,只是不知道楼主的具体要求如何显示在LCD上,只能保存在数组里面
硬件连接在代码中已经基本补齐了,其他的应该不用再多说了吧?!^_^
*********************************************************************
/*===========================================================================

KS0070(44780) 16x2 字符液晶屏驱动演示程序总线方式 晓奇
=============================================================================
连接线图: LCM-------51 LCM-------51 LCM--------51
DB0-----P0.0 DB4-----P0.4 RW-------P2.0
DB1-----P0.1 DB5-----P0.5 RC-------P2.1
DB2-----P0.2 DB6-----P0.6 E--------P2.7 =>74ls00+wr+rd
DB3-----P0.3 DB7-----P0.7 VLCD接1K2电阻到GND

[注]:AT89C51的晶振频率为12MHz
============================================================================*/
//#pragma src // 产生汇编文件
#include <reg51.h>
#include<intrins.h>

//========= 变量类型标识的宏定义,大家都喜欢这么做 ==============
#define Uchar unsigned char
#define Uint unsigned int

// ================= LCM1602A端口地址定义 =======================
char xdata Lcd1602CmdPort _at_ 0x7cff; //E=1 RS=0 RW=0
char xdata Lcd1602WdataPort _at_ 0x7eff; //E =1 RS=1 RW=0
char xdata Lcd1602StatusPort _at_ 0x7dff; //CS=1 RS=0 RW=1

#define Busy 0x80 // 忙判别位

code char exampl[]="For an example. - By xiaoqi\n";

void Delay400Ms(void);
void Delay5Ms(void);
void LcdWriteData( char dataW );
void LcdWriteCommand( Uchar CMD,Uchar AttribC );
void LcdReset( void );
void Display( Uchar dd );
void DispOneChar(Uchar x,Uchar y,Uchar Wdata);
void ePutstr(Uchar x,Uchar y, Uchar code *ptr);

//================ 随便写几句测试主程序 ================
void main(void)
{
Uchar temp;

Delay400Ms(); // 启动时必须的延时,等待lcm进入工作状态

LcdReset(); // 这也是必需的....初始化
temp = 32;
ePutstr(0,0,exampl); // 上面一行显示一个预定字符串

Delay400Ms(); // 保留显示内容
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();

while(1)
{
temp &= 0x7f; // 只显示ASCII字符

if (temp<32)temp=32; // 屏蔽控制字符,不予显示
Display( temp++ );

Delay400Ms();
}
}

/*=======================================================
显示字符串
=======================================================*/
void ePutstr(Uchar x,Uchar y, Uchar code *ptr) {
Uchar i,l=0;
while (ptr[l] >31){l++;};
for (i=0;i<l;i++) {
DispOneChar(x++,y,ptr[i]);
if ( x == 16 ){
x = 0; y ^= 1;
}
}
}

/*=======================================================
演示一行连续字符串,配合上位程序演示移动字串
=======================================================*/
void Display( Uchar dd ) {

Uchar i;

for (i=0;i<16;i++) {

DispOneChar(i,1,dd++);

dd &= 0x7f;
if (dd<32) dd=32;
}
}

/*=======================================================
显示光标定位
=======================================================*/
void LocateXY( char posx,char posy) {

Uchar temp;

temp = posx & 0xf;
posy &= 0x1;
if ( posy )temp |= 0x40;
temp |= 0x80;
LcdWriteCommand(temp,0);
}

/*=======================================================
按指定位置显示数出一个字符
=======================================================*/
void DispOneChar(Uchar x,Uchar y,Uchar Wdata) {

LocateXY( x, y ); // 定位显示地址
LcdWriteData( Wdata ); // 写字符
}

/*=======================================================
初始化程序, 必须按照产品资料介绍的初始化过程进行
=======================================================*/
void LcdReset( void ) {

LcdWriteCommand( 0x38, 0); // 显示模式设置(不检测忙信号)
Delay5Ms();
LcdWriteCommand( 0x38, 0); // 共三次
Delay5Ms();
LcdWriteCommand( 0x38, 0);
Delay5Ms();

LcdWriteCommand( 0x38, 1); // 显示模式设置(以后均检测忙信号)
LcdWriteCommand( 0x08, 1); // 显示关闭
LcdWriteCommand( 0x01, 1); // 显示清屏
LcdWriteCommand( 0x06, 1); // 显示光标移动设置
LcdWriteCommand( 0x0c, 1); // 显示开及光标设置
}

/*=======================================================
写控制字符子程序: E=1 RS=0 RW=0
=======================================================*/
void LcdWriteCommand( Uchar CMD,Uchar AttribC ) {

if (AttribC) while( Lcd1602StatusPort & Busy ); // 检测忙信号?
Lcd1602CmdPort = CMD;
}

/*=======================================================
当前位置写字符子程序: E =1 RS=1 RW=0
=======================================================*/
void LcdWriteData( char dataW ) {

while( Lcd1602StatusPort & Busy ); // 检测忙信号
Lcd1602WdataPort = dataW;
}

// 短延时
void Delay5Ms(void)
{
Uint i = 5552;
while(i--);
}

//长延时
void Delay400Ms(void)
{
Uchar i = 5;
Uint j;
while(i--)
{
j=7269;
while(j--);
};
}

*********************************************************************
/*===================================================================

KS0070(44780) 16x2 字符液晶屏驱动演示程序 晓奇
=====================================================================
连接线图: LCM-------51 LCM-------51 LCM--------51
DB0-----P0.0 DB4-----P0.4 RS-------P2.5
DB1-----P0.1 DB5-----P0.5 RW-------P2.6
DB2-----P0.2 DB6-----P0.6 E--------P2.7
DB3-----P0.3 DB7-----P0.7 VLCD接1K2电阻到GND

[注]:AT89C51的晶振频率为12MHz
====================================================================*/

#include <reg51.h>
#include<intrins.h>

//变量类型标识的宏定义,大家都喜欢这么做
#define Uchar unsigned char
#define Uint unsigned int

// 控制引脚定义,不同的连接必须修改的部分
sbit RS = P2^5;
sbit RW = P2^6;
sbit Elcm = P2^7;
#define DataPort P0 // 数据端口,必须上拉电阻

#define Busy 0x80

code char exampl[]="For an example. - By xiaoqi\n";

void Delay400Ms(void);
void Delay5Ms(void);
void WaitForEnable( void );
void LcdWriteData( char dataW );
void LcdWriteCommand( Uchar CMD,Uchar AttribC );
void LcdReset( void );
void Display( Uchar dd );
void DispOneChar(Uchar x,Uchar y,Uchar Wdata);
void ePutstr(Uchar x,Uchar y, Uchar code *ptr);

//测试主程序
void main(void)
{
Uchar temp;

Delay400Ms();

LcdReset();
temp = 32;
ePutstr(0,0,exampl); // 上面一行显示一个预定字符串

Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();

while(1)
{
temp &= 0x7f; // 只显示ASCII字符
if (temp<32)temp=32; // 屏蔽控制字符,不予显示
Display( temp++ );
Delay400Ms();
}
}

/*=======================================================
显示字符串
=======================================================*/
void ePutstr(Uchar x,Uchar y, Uchar code *ptr) {
Uchar i,l=0;
while (ptr[l] >31){l++;};
for (i=0;i<l;i++) {
DispOneChar(x++,y,ptr[i]);
if ( x == 16 ){
x = 0; y ^= 1;
}
}
}

/*=======================================================
演示一行连续字符串,配合上位程序演示移动字串
=======================================================*/
void Display( Uchar dd ) {

Uchar i;

for (i=0;i<16;i++) {
DispOneChar(i,1,dd++);
dd &= 0x7f;
if (dd<32) dd=32;
}
}

/*=======================================================
显示光标定位
=======================================================*/
void LocateXY( char posx,char posy) {

Uchar temp;

temp = posx & 0xf;
posy &= 0x1;
if ( posy )temp |= 0x40;
temp |= 0x80;
LcdWriteCommand(temp,0);
}

/*=======================================================
按指定位置显示数出一个字符
=======================================================*/
void DispOneChar(Uchar x,Uchar y,Uchar Wdata) {

LocateXY( x, y ); // 定位显示地址
LcdWriteData( Wdata ); // 写字符
}

/*=======================================================
初始化程序, 必须按照产品资料介绍的初始化过程进行
=======================================================*/
void LcdReset( void ) {

LcdWriteCommand( 0x38, 0); // 显示模式设置(不检测忙信号)
Delay5Ms();
LcdWriteCommand( 0x38, 0); // 共三次
Delay5Ms();
LcdWriteCommand( 0x38, 0);
Delay5Ms();

LcdWriteCommand( 0x38, 1); // 显示模式设置(以后均检测忙信号)
LcdWriteCommand( 0x08, 1); // 显示关闭
LcdWriteCommand( 0x01, 1); // 显示清屏
LcdWriteCommand( 0x06, 1); // 显示光标移动设置
LcdWriteCommand( 0x0c, 1); // 显示开及光标设置
}

/*=======================================================
写控制字符子程序: E=1 RS=0 RW=0
=======================================================*/
void LcdWriteCommand( Uchar CMD,Uchar AttribC ) {

if (AttribC) WaitForEnable(); // 检测忙信号?

RS = 0; RW = 0; _nop_();

DataPort = CMD; _nop_(); // 送控制字子程序

Elcm = 1;_nop_();_nop_();Elcm = 0; // 操作允许脉冲信号
}

/*=======================================================
当前位置写字符子程序: E =1 RS=1 RW=0
=======================================================*/
void LcdWriteData( char dataW ) {

WaitForEnable(); // 检测忙信号

RS = 1; RW = 0; _nop_();

DataPort = dataW; _nop_();

Elcm = 1; _nop_(); _nop_(); Elcm = 0; // 操作允许脉冲信号

}

/*=======================================================
正常读写操作之前必须检测LCD控制器状态: CS=1 RS=0 RW=1
DB7: 0 LCD控制器空闲; 1 LCD控制器忙
========================================================*/
void WaitForEnable( void ) {

DataPort = 0xff;

RS =0; RW = 1; _nop_(); Elcm = 1; _nop_(); _nop_();

while( DataPort & Busy );

Elcm = 0;
}

// 短延时
void Delay5Ms(void)
{
Uint i = 5552;
while(i--);
}

//长延时
void Delay400Ms(void)
{
Uchar i = 5;
Uint j;
while(i--)
{
j=7269;
while(j--);
};
}

*********************************************************************
#include<REG51.H>
#include<ABSACC.H>
#define uchar unsigned char
//通道号,根据硬件实际改动
#define IN0 XBYTE[0X0000] //通道0
#define IN1 XBYTE[0X0001]
#define IN2 XBYTE[0X0002]
#define IN3 XBYTE[0X0003]
#define IN4 XBYTE[0X0004]
#define IN5 XBYTE[0X0005]
#define IN6 XBYTE[0X0006]
#define IN7 XBYTE[0X0007]

sbit ad_busy=P3^5;

void AD0809(uchar idata *x);

//调用该程序后应将模拟量转换成数字量存于一数组adcRes[]之中
void AD0809(uchar idata *adcRes)
{
uchar i;
data uchar xdata *ad_adr;
ad_adr=&IN0; // 指向第一个通道
for(i=0;i<8;i++) {
*ad_adr=0; //启动AD转换
ad_busy=0; //调试后发现0才是正确的
while(ad_busy==0); //等待AD转换结束
adcRes[i]=*ad_adr; //保存转换结果
ad_adr++; //下一个通道
}
}

<br />第1章 绪论<br /> 1.1 单片机应用的发展与特点<br /> 1.2 单片机系统的设计理念<br /> 1.3 80C51单片机的综合评述<br /> 1.3.1 80C51单片机的内部结构<br /> 1.3.2 80C51单片机的存储器特点<br /> 1.3.3 80C51单片机的端口特点<br /> 1.3.4 80C51单片机的中断系统<br /> 1.3.5 80C51单片机的串行口功能和定时/计数器<br /> 1.3.6 80C51单片机的指令集<br /> 1.4 80C51单片机的主要型号及发展<br /> 1.4.1 ATMEL89系列单片机<br /> 1.4.2 Philips89系列单片机<br /> 1.4.3 其他闪存系列的51单片机<br /> 1.4.4 0TP系列的51单片机<br />第2章 系统的硬件配置与80C51接口电路<br /> 2.1 单片机的接口电路与接口技术<br /> 2.2 80C51单片机常用的输入接口电路<br /> 2.2.1 按键输入接口电路<br /> 2.2.2 拨码开关和拨码盘的输入接口电路<br /> 2.2.3 脉冲式传感器类型与输入接口电路<br /> 2.2.4 比较器和施密特输入电路<br /> 2.2.5 A/D转换器输入接口电路<br /> 2.3 80C51单片机常用的输出接口电路<br /> 2.3.1 位输出接口电路<br /> 2.3.2 LED显示接口电路<br /> 2.3.3 LCD显示器接口电路<br /> 2.3.4 D/A转换器接口电路<br /> 2.3.5 变宽脉冲RC滤波调压和数字电位器接口电路<br /> 2.4 外存储器接口电路和串行收发器接口电路<br /> 2.4.1 串行非易失性外存储器的接口电路<br /> 2.4.2 并行非易失性外存储器的接口电路<br /> 2.4.3 串行总线收发器接口电路<br /> 2.5 时钟振荡、复位、μP监控和外接看门狗电路<br />第3章 I/O口的配置技术与对应的编程<br /> 3.1 80C51单片机各I/O口的特点与使用原则<br /> 3.1.1 80C51单片机各I/O口的结构特点与注意事项<br /> 3.1.2 80C51单片机各I/O口的使用原则<br /> 3.2 I/O口的复用技术<br /> 3.2.1 偶尔承担输入任务的输出口复用技术<br /> 3.2.2 第二功能与I/O功能的复用技术<br /> 3.2.3 多用途系统中的I/O口复用技术<br /> 3.2.4 I/O口复用技术举例<br /> 3.3 I/O口的并用技术<br /> 3.3.1 增强驱动能力<br /> 3.3.2 提高功能适应性<br />第4章 80C51的软件编程分析<br /> 4.1 80C51单片机的编程环境<br /> 4.2 程序的错误分析与避免方法<br /> 4.2.1 汇编语言编程的出错问题<br /> 4.2.2 主程序和子程序易犯错误的分析与避免<br /> 4.2.3 中断服务程序易犯错误的分析与避免<br /> 4.2.4 编写特殊指令和程序段易犯的错误<br /> 4.2.5 使用串行口方式0易犯的错误<br /> 4.3 提高程序实时性的措施<br /> 4.3.1 处理随机突发任务提高实时性的措施<br /> 4.3.2 使用定时中断来处理简单但不宜耽搁的循环操作<br /> 4.3.3 优化程序结构和分层查询<br /> 4.4 提高定时精度和软件的细节质量<br /> 4.4.1 提高定时精度的措施<br /> 4.4.2 提高软件细节质量的几点措施<br />第5章 常用程序段的结构与编程<br /> 5.1 程序的合理结构与编程<br /> 5.1.1 主程序的合理结构与编程<br /> 5.1.2 子程序的合理结构与编程<br /> 5.2 键盘扫描程序的编程与分析<br /> 5.2.1 键盘扫描程序的组成及各部分的功能<br /> 5.2.2 几种常用键盘的扫描查询程序<br /> 5.2.3 多功能复用键的编程<br /> 5.3 数码管显示程序的编程与分析<br /> 5.3.1 并行输出动态驱动数码管的显示程序<br /> 5.3.2 译码器输出驱动数码管的显示程序<br /> 5.3.3 串行输出静态驱动数码管的显示程序<br />第6章 80C51设计应用实例<br /> 6.1 高可靠性警示灯续接控制器<br /> 6.1.1 装置原理与硬件最小系统设计<br /> 6.1.2 软件的编程设计<br /> 6.2 加热炉升温速度和温度曲线调节器<br /> 6.2.1 控制续增通电占空比的温升调节器的设计<br /> 6.2.2 通过测量比较进行控制的温度曲线跟随调节器的设计<br /> 6.3 转速-温度测量仪<br /> 6.3.1 装置原理与硬件系统设计<br /> 6.3.2 软件的编程设计<br /> 6.4 基于RS-485通信的变频器运行参数显示调节器<br /> 6.4.1 硬件系统设计<br /> 6.4.2 软件设计与各个功能的协调实现<br /> 6.5 机械平台调节定位控制器<br /> 6.5.1 硬件系统的设计<br /> 6.5.2 软件程序设计<br />第7章 单片机系统的可靠性设计<br /> 7.1 提高安全可靠性的设计原则与措施<br /> 7.1.1 输入/输出接口电路的完善性设计<br /> 7.1.2 电源的合理设计与选用<br /> 7.1.3 器件选择留有适当的负荷充裕度<br /> 7.1.4 充分与合理地使用保安保险元器件<br /> 7.1.5 合理的布线及安装工艺<br /> 7.2 抗干扰措施的选择与使用<br /> 7.2.1 硬件的抗干扰设计<br /> 7.2.2 软件的抗干扰设计<br /> 7.3 系统的容错性设计<br /> 7.3.1 系统与外部连接接口的避错与容错<br /> 7.3.2 软件的容错性设计<br />附录A 80C51指令一览表<br />附录B 80C51的位地址<br />附录C 80C51的中断设置<br />附录D 定时器/计数器的设置<br />附录E 80C51串行口的设置<br />附录F AT89S8252增加的SFR<br />附录G P89LPC938的SFR一览表<br />附录H 测量转速值的部分子程序<br />参考文献 <br />

你好 这个是我做过的一个实验 我已经发你消息了 请查收

我是做实物的。如果是只要论文的话就不要找我了。QQ654790769。

不会

  • 80C51鍗曠墖鏈寮曡剼鍥惧強寮曡剼鍔熻兘浠嬬粛
    绛旓細鈶 EA鍔熻兘锛氬唴澶朢OM閫夋嫨绔傗憽 Vpp鍔熻兘锛氱墖鍐呮湁EPROM鐨勮姱鐗囷紝鍦‥PROM缂栫▼鏈熼棿锛屾柦鍔犵紪绋嬬數婧怴pp銆傗拫 I/O绾 80C51鍏辨湁4涓8浣嶅苟琛孖/O绔彛锛歅0銆丳1銆丳2銆丳3鍙o紝鍏32涓紩鑴氥侾3鍙h繕鍏锋湁绗簩鍔熻兘锛岀敤浜庣壒娈婁俊鍙疯緭鍏ヨ緭鍑哄拰鎺у埗淇″彿锛堝睘鎺у埗鎬荤嚎锛夈侾0鍙h緭鍏ユ椂闇瑕佹帴涓婃媺鐢甸樆鎵嶈兘缃1锛
  • 80c51鍗曠墖鏈鏈夊嚑绉嶅鍧鏂瑰紡,鍚勬秹鍙婇偅浜涘瓨鍌ㄧ┖闂
    绛旓細绛: 80C51 鏈変竷绉嶅鍧鏂瑰紡:1銆佺珛鍗冲鍧锛屽鍧绌洪棿涓篟OM;2銆佺洿鎺ュ鍧锛屽鍧绌洪棿涓虹墖鍐匯AM鐨勪綆128B鍜岀壒娈婂姛鑳藉瘎瀛樺櫒;3銆佸瘎瀛樺櫒瀵诲潃锛屽鍧绌洪棿涓篈銆丅銆丏PTR銆丆Y銆侀氱敤宸ヤ綔瀵勫瓨鍣ㄧ瓑;4銆佸瘎瀛樺櫒闂存帴瀵诲潃锛岀墖鍐匯AM浣128B銆佺墖澶朢AM;5銆佺浉瀵瑰鍧锛屽鍧绌洪棿涓篟OM; .6銆佸彉鍧瀵诲潃锛屽鍧绌洪棿涓篟OM;7銆佷綅瀵诲潃锛...
  • 80C51寮鍗曠墖鏈虹殑鍐呴儴鏈変粈涔堢數璺
    绛旓細1銆乺st锛屽紩瀵煎唴閮ㄥ浣嶇▼搴忔垨鐢佃矾銆傚彲浠ョ湅鍒皊fr鐨勫浣嶅笺傚綋鐒秔c涔熷湪姝ゅ垪鍟︺傚悓鏃剁瓑寰呮椂閽熺數璺ǔ瀹氬伐浣溿傛彁楂樻姉骞叉壈鑳藉姏銆傛彁渚涗竴绉嶆湁鏁堢殑閲嶅惎鏂瑰紡銆傜洰鐨勫氨鏄鍗曠墖鏈閲嶇敓锛屼粠鏂板仛浜恒2銆佸浣嶆柟寮忥紝灏辨槸瑕佹眰rst淇濇寔楂樼數骞充竴娈垫椂闂淬傞氬父涓婄數rc鐢佃矾锛屾垨涓撶敤鐢垫簮鐩戞帶鑺墖鍋氬埌銆3銆佺姸鎬侊紝灏辨槸sfr涓殑鍐呭浜嗐備簬鏄...
  • 80C51寮鍗曠墖鏈虹殑鍐呴儴鏈変粈涔堢數璺
    绛旓細鍗曠墖鏈80C51鐨P3鍙g殑P3.0鍜孭3.1鍒嗗埆鎺ヤ覆琛屽彛鐨凴XD锛堜覆琛屾暟鎹帴鏀讹級鍜孴XD锛堜覆琛屾暟鎹彂閫侊級銆傜敱浜庣墿鐞嗗眰鍗忚鏍囧噯涓嶅悓锛屽畠鏈韩涓嶈兘鍜岀數鑴戣繛鎺ユ潵杩涜閫氫俊锛屼絾鍙互閫氳繃杞崲鑺墖杞垚鍏朵粬鎺ュ彛涓庣數鑴戣繛鎺ワ紝姣斿RS232鍙o紙璁$畻鏈虹殑COM鍙o級銆80C51缁撴瀯妗嗗浘锛80C51寮曡剼鍥撅細寮曡剼鍔熻兘鍥撅細
  • 鍗曠墖鏈-80C51
    绛旓細ORG 1000H ;浼寚浠わ紝鎸囧畾鍚庨潰鐨勭▼搴忎粠1000H鍗曞厓寮濮嬪瓨鏀撅紝鏈寚浠や笉鍗犵敤瀛樺偍鍗曞厓銆俆AB1 EQU 1234H ;浼寚浠わ紝瀹氫箟绋嬪簭涓嚭鐜扮殑TAB1鐨勫兼槸1234H锛屾湰鎸囦护涓嶅崰鐢ㄥ瓨鍌ㄥ崟鍏冦俆AB2 EQU 3000H ;浼寚浠わ紝瀹氫箟绋嬪簭涓嚭鐜扮殑TAB2鐨勫兼槸3000H锛屾湰鎸囦护涓嶅崰鐢ㄥ瓨鍌ㄥ崟鍏冦侱B 鈥淢AIN鈥 ;浼寚浠わ紝鎸囧畾1000H--1003H...
  • 璋佽兘鏁欐垜鍗曠墖鏈80C51鐨鎸囦护鎵琛ㄨ揪鐨勬剰鎬 渚婱OV A,#data琛ㄧず8浣嶇珛鍗虫暟...
    绛旓細MOV A,#data,灏辫〃绀烘妸鍚庨潰鐨勭珛鍗虫暟閫佸埌绱姞鍣ˋ涓傛瘮濡傦細MOV A,#100,琛ㄧず鎶100杩欎釜鏁伴佸埌A 鍦ㄨ繖鏉℃寚浠や腑锛岀珛鍗虫暟data鍜屾寚浠や竴璧峰瓨鏀惧湪ROM涓紝鍦ㄥ彇鎸囦护鏃讹紝杩欎釜鏁颁竴鍚屽彇鍑烘潵锛屽洜姝ら熷害鏈蹇紝灏辩О瀹冧负鈥滅珛鍗斥濇暟浜嗐傝繖鏉℃寚浠ゅ敮涓涓嶅ソ鐨勫湴鏂瑰氨鏄紝鎸囦护涓殑杩欎釜绔嬪嵆鏁板啓杩涘幓灏辨敼涓嶄簡銆
  • 80C51鍗曠墖鏈
    绛旓細void Timer2() interrupt 3 //3涓哄畾鏃跺櫒1婧㈠嚭锛泏 TH1=(65536-1000)/256;TL1=(65536-1000)%256; //鍑忓灏戝氨鏄畾鏃跺鍑烘椂闂淬俆F1=0; //TF1瀹氭椂鍣1婧㈠嚭涓柇鏍囧織,鍝嶅簲涓柇鍚庣敱澶勭悊鍣ㄦ竻闆 TR1=1; //瀹氭椂鍣1 寮濮嬭繍琛 } TMOD=0x11; //瀹氭椂鍣1 宸ヤ綔浜庡畾鏃舵柟寮1 //璁剧疆瀹氭椂鍣ㄦā寮...
  • 鍗曠墖鏈绉掕〃绋嬪簭 80C51
    绛旓細姹備竴涓崟鐗囨満绋嬪簭鐢80C51鍗曠墖鏈鍒朵綔绉掕〃鐨勭▼搴忎笁涓寜閿袱涓暟鐮佺鏈夊浣嶇數璺鎺ユ櫠鎸眰涓涓▼搴忕畝鍗曚粙缁嶄竴涓嬬▼搴忎竾鍒嗘劅璋細鍔犲垎... 姹備竴涓崟鐗囨満绋嬪簭 鐢80C51鍗曠墖鏈哄埗浣滅琛ㄧ殑绋嬪簭 涓変釜鎸夐敭 涓や釜鏁扮爜绠 鏈夊浣嶇數璺 澶栨帴鏅舵尟 姹備竴涓▼搴 绠鍗曚粙缁嶄竴涓嬬▼搴忎竾鍒嗘劅璋 浼氬姞鍒 灞曞紑 ...
  • 80c51鍗曠墖鏈姹傛暀
    绛旓細鍦═0涓烘柟寮3鏃,T1杩愯鐨勬帶鍒舵潯浠跺彧鏈2涓,鍙奀/T 鍜孧1,M0 . C/T閫夋嫨鏄畾鏃跺櫒妯″紡杩樻槸璁℃暟鍣ㄦā寮忥紝M1,M0閫夋嫨 T1杩愯鐨勫伐浣滄柟寮忋侻1,M0=11鏃讹紝T1鍋滄璁℃暟銆
  • 80C51鍗曠墖鏈寮曡剼鏈夊摢浜涚浜屽姛鑳?
    绛旓細P0鍜孭1锛岄櫎浜嗗仛I/O鍙e锛岃繕鍋氬湴鍧鎬荤嚎锛堝綋鎺ュ閮ㄥ瓨鍌ㄥ櫒鏃讹級鏈夌浜屽姛鑳界殑杩樻湁P3鍙g殑鍏釜寮曡剼锛岄櫎姝よ繕鏈変袱寮曡剼鏈夌浜屽姛鑳姐侾3绗簩鍔熻兘鍚勫紩鑴氬姛鑳藉畾涔夛細P3.0锛歊XD涓茶鍙h緭鍏 P3.1锛歍XD涓茶鍙h緭鍑 P3.2锛欼NT0澶栭儴涓柇0杈撳叆 P3.3锛欼NT1澶栭儴涓柇1杈撳叆 P3.4锛歍0瀹氭椂鍣0澶栭儴杈撳叆 ...
  • 扩展阅读:51job ... 51黑电子论坛单片机官网 ... 50个常用元器件图片 ... 51单片机常见型号 ... 前程无忧51job ... 51单片机编程对照表 ... 51单片机网站 ... 51cto ... c51单片机直流电动机 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网