上位机与下位机之间通信编程
更新时间:2023-06-05 03:16:01 阅读量: 实用文档 文档下载
绝对是好的资料。是用VC写的
摘 要
本文主要描述了利用PC机与AT89C51单片机之间的通信程序设计实现温度显示。并详述了在VC6.0环境下,上位机利用MSCOMM通信控件与单片机之间串口通信实现温度显示。由单片机采集一个温度信号,将采集到的温度信号传送给PC机显示,PC机用VC6.0编写程序,单片机程序用C语言编写,最后用PROTUES软件进行仿真实现温度显示。
关键词:单片机 MSCOMM控件 VC6.0 AT89C51 温度显示
绝对是好的资料。是用VC写的
目 录
摘要
1 引言............................................................................................................................ 1 2 结构设计与方案选择................................................................................................ 2
2.1设计任务........................................................................................................... 2
2.1.1单片机的选择.......................................................................................... 2 2.1.2电平转换.................................................................................................. 2 2.1.1单片机的选择.......................................................................................... 2 2.1.3单片机与pc机通信原理 ........................................................................ 2 2.2软件方案选择................................................................................................... 2
2.2.1 上位机编程方案选择............................................................................. 3 2.2.2 单片机编程方案选择............................................................................. 3 2.3 总体方案选择.................................................................................................. 2 3 硬件设计.................................................................................................................... 8
3.1单片机主要特性............................................................................................... 5 3.2 MAX232电平芯片介绍10 ........................................................................... 10 3.3 硬件电路设计图............................................................................................ 11
3.3.1 PC机与单片机通信接口电路设计框图.............................................. 11 3.3.2整体设计原理图.................................................................................... 11
4 软件设计.................................................................................................................. 12
4.1上位机程序设计............................................................................................. 12 4.2下位机程序设计............................................................................................. 13 5 软硬件调试部分...................................................................................................... 21
5.1 PROTEUS软件仿真 ...................................................................................... 21
5.1.1 Protues简介........................................................................................... 21 5.1.2 Protues仿真电路图............................................................................... 22 5.2 VC软件仿真 .................................................................................................. 21 结束语..........................................................................................................................27 致谢..............................................................................................................................28 参考文献......................................................................................................................29
绝对是好的资料。是用VC写的
1引言
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。
绝对是好的资料。是用VC写的
2方案选择
2.1硬件方案选择 2.1.1单片机的选择
本设计采用的是AT89C51单片机,AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。它是一种高效微控制器,因为它更经济实惠,用起来灵活方便,而且习惯了用这种型号的单片机,所以选择AT89C51单片机。
2.1.2电平转换
本设计采用MAX232芯片进行电平转换,MAX232芯片是美信公司专门为电脑的RS232标准串口设计的接口电路,使用+5V单电源供电,它的作用就是完成TTL电平与RS232电平的转换。PC机的串行口采用的是标准的RS 232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS 232的电气特性不匹配,因此为了使单片机的串行口能与RS 232接口通信,必须将串行口的输入/输出电平进行转换。通常用MAX232芯片来完成电平转换。
2.1.3单片机与pc机通信原理
MCS-51单片机有一个全双工的串行通讯口UART。利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据)、RXD(接收数据)和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM—PC机有两个标准的RS.232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了Pc机与MCS-51机之间能可靠地进行串行通信,需要用电平转换芯片,我们采用了MAXIM公司生产的专用芯片MAX232进行转换。电路如图所示。
绝对是好的资料。是用VC写的
图2.2 MAX232工作原理图
2.2软件方案选择
2.2.1 上位机编程方案选择
本设计采用VC6.0++来实现编程,上位机与单片机进行通信的程序编写可用VB、VC等软件。由于VB作为面向对象的编程工具不够完全,效率比VC低,提供的命令语言环境较弱,通过串口设备一次最多只能交换16B的数据,对较大数据量的传输存在很大的局限性,很难实现较为复杂的数据处理,VC6.0++是一种功能强大的面向对象的Windows编程开发平台。VC6.0的优点是界面简洁,占用资源少,操作方便。所以本设计采用VC作为串口编程工具。
2.2.2 单片机编程方案选择
本设计单片机的编程选择C语言编写,因为它简洁紧凑、灵活方便、运算符丰富、数据结构丰富、C是结构式语言、C语法限制不太严格,程序设计自由度大、C语言允许直接访问物理地址,可以直接对硬件进行操作、C语言程序生成代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低10へ20%、C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。所以我选用C语言来编写此程序。
2.3 总体方案选择
绝对是好的资料。是用VC写的
温度传感器测量出来的温度值由单片机采集出来,然后单片机再将采集出的温度数据处理后,通过串行口发送给上位机。
图2.1
总体设计方案流程图
绝对是好的资料。是用VC写的
3硬件设计
3.1 单片机主要特性
²与MCS-51 兼容
²4K字节可编程闪烁存储器 ²寿命:1000写/擦循环 ²数据保留时间:10年 ²全静态工作:0Hz-24MHz ²三级程序存储器锁定 ²128³8位内部RAM ²32可编程I/O线
²两个16位定时器/计数器 ²5个中断源 ²可编程串行通道
²低功耗的闲置和掉电模式 ²片内振荡器和时钟电路 单片机AT89C51的引脚说明:
图3.1 AT89C51的引脚排列
引脚描述:
VCC:电源电压
绝对是好的资料。是用VC写的
GND:地
P0口:P0口是一组8位漏极开路双向I/O口,即地址/数据总线复用口。作为输出口时,每一个管脚都能够驱动8个TTL电路。当“1”被写入P0口时,每个管脚都能够作为高阻抗输入端。P0口还能够在访问外部数据存储器或程序存储器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。P0口在闪烁编程时,P0口接收指令,在程序校验时,输出指令,需要接电阻。
P1口:P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时输出一个电流。闪烁编程时和程序校验时,P1口接收低8位地址。
P2口:P2口是一个内部带有上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时,可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个运行期间不变。闪烁编程或校验时,P2口接收高位地址和其它控制信号。
P3口:P3口是一组带有内部电阻的8位双向I/O口,P3口输出缓冲故可驱动4个TTL电路。对P3口写如“1”时,它们被内部电阻拉到高电平并可作为输入端时,被外部拉低的P3口将用电阻输出电流。
P3口除了作为一般的I/O口外,更重要的用途是它的第二功能,如下表所示
绝对是好的资料。是用VC写的
表2..1 P3口第二功能
P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。 RST:
复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。
PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现。
EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。需要注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。
XTAL1:震荡器反相放大器及内部时钟发生器的输入端。 XTAL2:震荡器反相放大器的输出端。
时钟震荡器:AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。 外接石英晶体及电容C1,C2接在放大器的反馈回路中构成并联震荡电路。对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF±10PF,而如果使用陶瓷振荡器建议选择40PF±10PF。用户也可以采用外部
绝对是好的资料。是用VC写的
时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
图3.2内部振荡电路 图3.3闲散节电模式
AT89C51有两种可用软件编程的省电模式,它们是闲散模式和掉电工作模式。这两种方式是控制专用寄存器PCON中的PD和IDL位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL是闲散等待方式,当IDL=1,激活闲散工作状态,单片机进入睡眠状态。如需要同时进入两种工作模式,即PD和IDL同时为1,则先激活掉电模式。在闲散工作模式状态,中央处理器CPU保持睡眠状态,而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内随机存取数据存储器和所有特殊功能寄存器的内容保持不变。闲散模式可由任何允许的中断请求或硬件复位终止。终止闲散工作模式的方法有两种,一是任何一条被允许中断的事件被激活,IDL被硬件清除,即刻终止闲散工作模式。程序会首先影响中断,进入中断服务程序,执行完中断服务程序,并紧随RETI指令后,下一条要执行的指令就是使单片机进入闲散工作模式,那条指令后面的一条指令。二是通过硬件复位也可将闲散工作模式终止。需要注意的是:当由硬件复位来终止闲散工作模式时,中央处理器CPU通常是从激活空闲模式那条指令的下一条开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期有效,在这种情况下,内部禁止中央处理器CPU访问片内RAM,而允许访问其他端口,为了避免可能对端口产生的意外写入:激活闲散模式的那条指令后面的一条指令不应是一条对端口或外部存储器的写入指令。
绝对是好的资料。是用VC写的
掉电模式:
在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在中指掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将从新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效切必须保持一定时间以使振荡器从新启动并稳定工作。
表2.2闲散和掉电模式外部引脚状态。
程序存储器的加密
AT89C51可使用对芯片上的三个加密位LB1,LB2,LB3进行编程(P)或不编程(U)得到如下表所示的功能:
表2.3程序存储器的加密
当LB1被编程时,在复位期间,EA端的电平被锁存,如果单片机上电后一直没有复位,锁存起来的初始值是一个不确定数,这个不确定数会一直保存到真正复位位置。为了使单片机正常工作,被锁存的EA电平与这个引脚当前辑电平
绝对是好的资料。是用VC写的
一致。机密位只能通过整片擦除的方法清除。
3.2MAX232电平芯片介绍
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
内部结构基本可分三个部分:
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚DNG、16脚VCC(+5v)。 电平转换电路如下:
图3.4 MAX232电平芯片
绝对是好的资料。是用VC写的
3.3 硬件电路设计图
3.3.1 PC机与单片机通信接口电路设计框图
本文采用MAx232作为PC机与单片机的串行通信接口芯片。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。
图3.5 PC机与单片机通信接口电路设计框图
3.3.2整体设计原理图
总体设计按照整体设计思路方案绘制原理图如下所示:
图3.6整体设计原理图
绝对是好的资料。是用VC写的
4软件设计
4.1上位机程序设计
void CTem_conDlg::OnOnCommMscomm1() {
// TODO: Add your control notification handler code here
m_strRXData=" "; //每次进入则将编辑框内容清空等待显示新的数据 VARIANT variant_inp; LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 CString strtemp;
if(m_ctrlComm.GetCommEvent()==2)//事件值为2表示接收缓冲区内有字符 { //以下你可以根据自己的通信协议加入//处理代码
variant_inp=m_ctrlComm.GetInput();//读缓冲区
safearray_inp=variant_inp;//VARIANT型变量转换为//ColeSafeArray型变量 len=safearray_inp.GetOneDimSize();//得到有效数据长度 for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组 for(k=0;k<len;k++) //将数组转换为Cstring型变量 {
BYTE bt=*(char*)(rxdata+k);//字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放 m_strRXData+=strtemp; //加入接收编辑框对应字符串
} }
}
UpdateData(FALSE); //更新编辑框内容
4.2下位机程序设计
绝对是好的资料。是用VC写的
#include <reg51.h>
#define XTAL 11059200 // CUP 晶振频率 #define baudrate 9600 // 通信波特率 #define uchar unsigned char #define uint unsigned int
sbit DQ = P3^3; // 定义DS18B20端口DQ sbit BEEP = P3^7; unsigned char presence ; unsigned
char
code
LEDData1[
={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff};
unsigned
char
code
LEDData[
]
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0xff};
unsigned char data temp_data[2] = {0x00,0x00};
unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00}; unsigned
char
code
ditab[16]
{0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
void beep();
sbit DIN = P0^7; // 小数点 bit flash=0; // 显示开关标记 bit flag_zf=0; // 正负温度标志
/**********************************************************/ void Delay(unsigned int num)// 延时函数 {
while( --num ); }
/**********************************************************/ uchar Init_DS18B20(void) // 初始化ds1820 {
]
=
=
绝对是好的资料。是用VC写的
DQ = 1; // DQ复位 Delay(8); // 稍做延时
DQ = 0; // 单片机将DQ拉低 Delay(90); // 精确延时 大于 480us DQ = 1; // 拉高总线 Delay(8);
presence = DQ; // 如果=0则初始化成功 =1则初始化失败 Delay(100); DQ = 1;
return(presence); // 返回信号,0=presence,1= no presence }
/**********************************************************/ uchar ReadOneChar(void) // 读一个字节 {
unsigned char i = 0; unsigned char dat = 0; for (i = 8; i > 0; i--) {
DQ = 0; // 给脉冲信号 dat >>= 1;
DQ = 1; // 给脉冲信号 if(DQ) dat |= 0x80; Delay(4); }
return (dat); }
/**********************************************************/ void WriteOneChar(unsigned char dat)// 写一个字节 {
绝对是好的资料。是用VC写的
unsigned char i = 0; for (i = 8; i > 0; i--) { DQ = 0; DQ = dat&0x01; Delay(5); DQ = 1; dat>>=1; } }
/*********************************************************/ void Read_Temperature(void)// 读取温度 {
Init_DS18B20(); if(presence==1) { beep(); flash=1;
} // DS18B20不正常,蜂鸣器报警 else { flash=0;
WriteOneChar(0xCC); // 跳过读序号列号的操作 WriteOneChar(0x44); // 启动温度转换 Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作 WriteOneChar(0xBE); // 读取温度寄存器 temp_data[0] = ReadOneChar(); // 温度低8位 temp_data[1] = ReadOneChar(); // 温度高8位 } }
绝对是好的资料。是用VC写的
/*********************************************************/ void Disp_Temperature()// 显示温度 {
unsigned char n=0;
if(temp_data[1]>7) //当温度高八位中的高五位全为O { flag_zf=1; // 所测温度为负时,要进行转换 temp_data[1]=!( temp_data[1]); temp_data[0]=!( temp_data[0]); temp_data[0]= temp_data[0]+1; if(temp_data[0]=0)
{ temp_data[1]= temp_data[1]+1;} } Else
{flag_zf=0} //判断测得的温度数据是正还是负,如果为正,不做任何理 display[4]=temp_data[0]&0x0f;
display[0]=ditab[display[4]]; // 查表得小数位的值
display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4); display[3]=display[4]/100; display[1]=display[4]%100; display[2]=display[1]/10; display[1]=display[1]%10; if(flag_zf=1) {p0=0xbf; P2=0x02;
Delay(300);} //温度为负数时第二个数码管显示负号 if(!display[3]) // 高位为0,不显示 {
display[3]=0x0a;
if(!display[2]) // 次高位为0,不显示 display[2]=0x0a;
绝对是好的资料。是用VC写的
}
P0 = 0xc6; // 显示 C
P2 = 0xfe; // 位选线为P2.7口,LED为共阳极显示,当位选线为低电平时选通
Delay(300);
P0 = 0x9c; // 显示 ° P2 = 0xfd; // 选中P2.6口 Delay(300);
P0 =LEDData[display[0]] ; // 显示小数位 P2 = 0xfb; //p2.5 Delay(300);
P0 =LEDData1[display[1]]; // 显示个位 P2 = 0xf7; Delay(300);
P0 =LEDData[display[2]]; // 显示十位 P2 = 0xef; Delay(300);
P0 =LEDData[display[3]]; // 显示百位 P2 = 0xdf; Delay(300);
P2 = 0xff; // 关闭显示 }
/*********************************************************/ void beep(void) {
绝对是好的资料。是用VC写的
unsigned char i; for (i=0;i<100;i++) {
Delay(60);
BEEP=!BEEP; // BEEP取反 }
BEEP=1; // 关闭蜂鸣器 }
/*********************************************************/ void init(void) {
EA = 1; // "中断总允许"
TMOD = 0x20; //定时器1工作于8位自动重载模式, 用于产生波特率 TH1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate)));
TL1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate))); // 定时器0赋初值
SCON = 0x50; // 设定串行口工作方式 PCON &= 0x00; // 波特率不倍增 TR1 = 1; // 启动定时器1 IE = 0x00; // 禁止任何中断 }
/*********************************************************/ void send_char(void)
// 传送十六位的温度数据,低位在前 {
unsigned i=0; while (i < 2) {
SBUF = temp_data[i];
while (!TI); // 等特数据传送 TI = 0; // 清除数据传送标志
绝对是好的资料。是用VC写的
i++; } }
/*********************************************************/ void main(void) {
uchar receive; init(); while(1) {
Read_Temperature(); // 读取温度 if (flash==0) {
Disp_Temperature(); // 显示温度 } else {
P2 = 0x00 ; // DS18B20不正常,关闭显示 }
if (RI) // 是否有数据到来 { RI = 0; receive = SBUF;
if (receive == 49) // 是否开始采集温度 {
send_char(); // 传送采集的温度 } } } }
正在阅读:
上位机与下位机之间通信编程06-05
帮助了他人作文450字06-30
KSOA手册05-07
企业部门经理2022年度个人工作总结范文03-24
培训班方案最新10篇03-27
2021年政务公开工作实施方案08-08
数量方法复习资料05-23
汉中市主城区地下综合管廊及随廊道路工程项目环境影响报告书 -06-26
小学六年级写字教案01-17
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 下位
- 上位
- 之间
- 编程
- 通信
- 部编人教版一年级下册道德与法治《我们爱整洁》(精品)说课稿(2课时)
- 加入WTO后我国农业的政策调整
- 《小鹰学飞》教学设计一年下册 3
- 人教版新课标八年级物理上册第五章《电流和电路》全章教案
- 八年级英语上册《Module 6 Unit 1 It allows people to get closer to them》学案外研版
- 银行卡业务试题(2010年8月修改)
- 基准地价系数修正法案例
- 9.4矩形、菱形、正方形(1)
- 个人业务工作总结3000字
- 基于单片机的酒精浓度检测仪
- 海名生产能力和生产计划控制表Production Capacity
- 土地产权制度变迁:1949-1998(繁体字版)
- 实习宾馆暑假社会实践报告
- 建筑业企业资质申请和许可须提供的资料
- 浅谈体育教师应具备的素质与能力
- 六年级下册语文学科教学计划 - 姜堰区叶甸中心小学
- 最新电大【农村政策法规】期末试题及答案小抄版
- 第7章 IO接口及增强型捕捉定时器模块
- 世联2010年7月北京首钢区域二次振兴和开发运营方案
- 罗定职业技术学院财务会计A试卷