51单片机学习总结(史上最全版,自己总结)

51单片机学习总结(史上最全版,自己总结)
51单片机学习总结(史上最全版,自己总结)

单片机学习总结

Lesson1 预备知识与点亮一个二极管

一、预备知识与流水灯

1、CPU ROM RAM STC I/O口

2、电平特性:高与低,TTL电平:高+5v,低0v;RS232电平:高-12v,低+12v,计算机与单片机通讯时要加电平转换芯片max232(实验板上左下角)

3、二进制:遇二进一;十六进制:十进制中的0-15分别表示为十六进制的0、1....9、A、B、

C、D、E、F,一般把四个二进制数放在一起转换为一个十六进制数,转换时先把二进制数转换成十进制数,再把十进制数转换成十六进制数。0001B>1H;1010B>AH;0010 1100>2CH(这里B表示的是二进制,H表示的十六进制)。0x表示十六进制。

4、二进制的逻辑运算:“与”、“?”、“&”;“或”、“+”、“|”;“非”“A”;

“异或”“⊕”,相同为0,不同为1。按位与&,按位或|,按位异或~,按位取反~

5、芯片缺口方向,芯片插反会导致短路。

二、80C51系列介绍

1、80C51的引脚封装:总线型:有4组非总线型:只有20个引脚,送数据时,数据在总线上跑

2、C51知识:sfr,特殊功能寄存器声明;sfr16,sfr的16位数据声明;sbit,特殊功能位声明;bit,位变量声明。例如sfr SCON=0X98,sfr16 T2=0xCC,sbit 0V=PSW^2(第2位定义为ov)。单片机都是从0开始记值。

3、C-51的运算符:

4、单片机掌握几点:

5、stc-isp的使用

就德飞莱单片机而言,单片机类型为stc90c516RD+,com类型为com4,在下载程序时,一定要先把开发板上的电源断掉,过2秒钟再打开,顺序不能颠倒。如果此界面长期没有变化,考虑以下几点:

6、Keil的使用:

(1)、先建工程,文件名没有后缀名,保存,选择atmel中的80c52

(2)、再建文件,有后缀名,后缀名.c(c语言)或.asm(汇编语言)

(3)、将文件添加在工程里,在左方,右击

(4)、建一个工程,就要建一个文件名

(5)、先下载程序,后打开电源

(6)、注释的方式有两种,一是//,换行无效;二是/* */,但是注释的语句不编译。

(7)、c语言区分大小写,默认端口P是大写字母;c语言的任何语句和标点都是在英文状态下书写的,中文符号是不能识别的,中文仅仅能作为注释使用。

(8)、建立工程时,选择芯片类型为AT89c52即可。

(9)、c语言中数值不区分大小写,标识符一定区分大小写。

(10)、一个函数由两部分组成:函数首部与函数体。函数首部包括函数名max,函数类型int,函数参数x、y,函数参数类型int,比如int max (int x,int y),也可以没有参数,如void main()。函数体包括声明部分(对变量和所调用函数)和执行部分。

6、自己动手需要的硬件材料

7、在字母上加上划线表示低电平有效。51单片机所有i/o口上电平默认为高电平

8、用位操作与总线操作两种方法写程序

(1)、位操作(2)总线操作

#include #include

sbit D1=P1^0;void main()

void main(){P1=0xfd;

{ D1=0;}

}

9、课后练习

对照TX-1C单片机学习板原理图写程序

用位操作和总线操作两种方法完成以下题目

1.熟练建立KEIL工程

2.点亮第一个发光管.

3.点亮最后一个发光管

4.点亮1、3、5、7

5.点亮二、四、五、六

6.尝试让第一个发光管闪烁

法一:#include

sbit P1_1=P1^0;

void main()

{unsigned int i;

while(1)

{P1_1=0;

for(i=1;i<10000;i++);

P1_1=1;

for(i=1;i<10000;i++);

}}

法二:#include

sbit P1_1=P1^0;

void yanshi();

void main()

{while(1)

{P1_1=0;

yanshi();

P1_1=1;

yanshi();}}

void yanshi()

{unsigned int i;

for(i=0;i<10000;i++);}

法三:#include

void main()

{while(1)

{

int i;i=50000;

P1=0xfe;

while(i--);

P1=0xff;

i=50000;

while(i--);

}

}

7.尝试设计出流水灯程序

法一:直接法

#include

//sbit P1_1=P1^0;

void yanshi();

void main()

{while(1)

{P1=0xfe;

yanshi();

P1=0xfd;

yanshi();

P1=0xfb;

yanshi();

P1=0xf7;

yanshi();

P1=0xef;

yanshi();

P1=0xdf;

yanshi();

P1=0xbf;

yanshi();

P1=0x7f;

yanshi();

}}

void yanshi()

{unsigned int i;

for(i=0;i<10000;i++);}

法二:使用数组

#include

unsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void yanshi();

void main()

{unsigned int i;

while(1)

{

for(i=0;i<8;i++)

{P1=table[i]; (注意,在这里的大括号是一定要加的,否则) yanshi();

}}}

void yanshi()

{unsigned int i;

for(i=0;i<10000;i++);}

法三:左移右移

#include

unsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned int i;

void yanshi();

void main()

{P1=0xfe;

while(1)

{P1=P1<<1;

P1=P1|0x01;(因为是左移而不是循环左移,所以要末位置一,这样的结果也会导致最后只挨个量一次)

yanshi();}

}

void yanshi()

{unsigned int i;

for(i=0;i<10000;i++);}

8、双灯左移右移闪烁(双灯左移7次,右移7次,然后全闪7次)

#include

void main()

{unsigned char i;

unsigned char temp;

while(1)

{temp=0xfc;

P1=temp;

for(i=0;i<7;i++)

Delay(50000);

{temp<<=1;

temp=temp|0x01;

P1=temp;}之所以加入temp做中间变量,防止直接操作端口造成的短暂闪烁

Temp=0x3f;

P1=temp;

For(i=0;i<7;i++)

{Delay(50000);

Temp>>=1;

Temp|=0x80;

P1=temp;}

For(i=0;i<3;i++)

P1=0xff;

Delay(50000);

P1=0x00;

Delay(50000);}

} }

9、花样灯

10、PWM调光

三、流水灯

1、在使用总线操作点亮发光二极管时,注意顺序,比如从左往右依次为12345678个二极管,要想让246亮。系统默认高电平不亮低电平亮,即1010 1011,但是在赋值时要倒过来,即11010101,十六进制为d5,这样就可以了。

2、LED发光二极管,单向导电性,电源电压减去LED的正向压降的值除以工作电流即为LED的电阻。LED正常压降1.5v,正常工作电流10mA。

J9端低电平时LED亮,高电平时LED灭。具体解释如下:

A点就相当于单片机的I/O口,接5v相当于高电平1,灯不亮;接地相当于低电平0,灯亮。

3、单片机端口是标准双向口,可作为输出控制端,如控制灯亮灭;可作为输入信号端,如按键信号输入。

4、给端口赋值

(1)、SETB P1.1等价于sbit P1_1=P1^1,P1_1=1。

(2)、CLR P1.1等价于sbit P1_1=P1^1,P1_1=0。因为在C51中,没有P1_1这个表示,所以要预先定义。

(3)、while语句的两种形式:do语句while(条件);或while(条件)语句;。当循环条件为真即条件不为0时,循环会一直执行大括号中的语句。要想进行大循环时,用while (1),要想停留在某句,用while(1);。

(4)、宏定义#define uint unsigned int 函数声明void Delay(unsigned int t ); (5)、for循环

(6)、调用函数时一定要提前声明;带参数的子函数调用;C51库函数的调用(可以实现流水灯)

(7)、蜂鸣器

四、共阳二极管

1、dp-a,这个小数点是最高位,a是最低位,若接在P1口,a所对应的应该是P1.0,dp对应的是P1.7.

2、一个共阳数码管显示数字变化

#include

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1, 0x86,0x8e};

void Delay(unsigned int i);

void main(void)

{unsigned char i;

while(1)

{

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

{

P1=table[i];

Delay(60000);

}

}

}

void Delay(unsigned int t)

{

while(--t);

}

3、单个数码管模拟水流

#include

void Delay(unsigned int t);//函数声明时的格式

void main()

{

unsigned char i;

while(1)

{

P1=0xfe; 如果在while之前就只会闪烁一次

for(i=0;i<6;i++)

{

Delay(10000); 如果没有延时会怎样

P1<<=1;

P1|=0x01;

}

}

}

void Delay(unsigned int t)//注意格式

{

while(--t);

}

4、8位数码管显一个数字

#include

#define Port P0

void Delay(unsigned int i); sbit Duan_LATCH1=P2^2;

sbit Wei_LATCH2=P2^3;

void main()

{

P0=0xfe;

Wei_LATCH2=1;

Wei_LATCH2=0;

P0=0x3f;

Duan_LATCH1=1;

Duan_LATCH1=0;

Delay(60000);

while(1)

{

}

}

4、8位数码管显示两个不同的数字 #include

#define Port P0

void Delay(unsigned int i);

sbit Duan_LATCH1=P2^2;

sbit Wei_LATCH2=P2^3;

void main()

{

while(1)

{

P0=0xfe;

Wei_LATCH2=1;

Wei_LATCH2=0;

P0=0x3f;

Duan_LATCH1=1;

Duan_LATCH1=0;

Delay(60000);

P0=0xfd;

Wei_LATCH2=1;

Wei_LATCH2=0;

P0=0x06;

Duan_LATCH1=1;

Duan_LATCH1=0;

Delay(60000);

}

}

void Delay(unsigned int i)

{

while(--i);

}

5、8位数码管动态扫描

#include

#define Port P0

void Delay(unsigned int i);

unsigned char code Duan_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39, 0x5e,0x79,0x71};

unsigned char code Wei_table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

sbit Duan_LATCH1=P2^2;

sbit Wei_LATCH2=P2^3;

void main()

{int i;

while(1)

{

for(i=0;i<8;i++)

{

P0=Wei_table[i];

Wei_LATCH2=1;

Wei_LATCH2=0;

P0=Duan_table[i];

Duan_LATCH1=1;

Duan_LATCH1=0;

Delay(60000);

}

}

}

void Delay(unsigned int i)

{

while(--i);

}

6、显示3位

#include

#define Port P0

void Delay(unsigned int i);

unsigned char code Duan_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39, 0x5e,0x79,0x71};

unsigned char code Wei_table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

sbit Duan_LATCH1=P2^2;

sbit Wei_LATCH2=P2^3;

unsigned char temp[8];

void main()

{unsigned char i,j;

while(1)

{

j++;

for(i=0;i<8;i++)

{

temp[0]=Duan_table[j/100];

temp[1]=Duan_table[(j/10)%10];

temp[2]=Duan_table[j%10];

P0=Wei_table[i];

Wei_LATCH2=1;

Wei_LATCH2=0;

P0=temp[i];

Duan_LATCH1=1;

Duan_LATCH1=0;

Delay(60000);

}

}

}

void Delay(unsigned int i)

{

while(--i);

}

Lesson2 简单的延时程序及蜂鸣器

1、简单的延时程序:

一个机器周期等于12个时钟周期。用软件仿真进行调试,设定时间。

2、子程序调用:

(1)、宏定义:#define uint unsigned int(不加分号,注意先后顺序)以后出现uint 就是unsigned int

(2)、无参子函数的设计:声明时,函数类型名函数名参数类型名,没有可不写,如void delay()

(3)、含参子函数的设计:

#include

#define uint unsigned int

sbit D1=P1^0;

void delay(uint z);

void main()

{

while(1)

{

D1=0;

delay(600);

D1=1;

delay(600);

}

}

void delay(uint z)

{

uint x,y;

for(x=100;x>0;x--)

for(z=y;y>0;y--);

}

(4)、c51库函数的调用

#include

#include 把所用库函数的函数名调用上 #define uint unsigned int

#define uchar unsigned char

uchar temp;

sbit D1=P1^0;

void delay(uint z);

void main()

{temp=0xfe;

P1=temp;

while(1)

{

temp=_crol_(temp,1);

delay(600);

P1=temp;

delay(600);

}

}

void delay(uint z)

{

uint x,y;

for(x=100;x>0;x--)

for(z=y;y>0;y--);

}

(5)蜂鸣器

P2^3即是

Lesson 3数码显示器以及定时器

1、锁存器:一个下降沿可以把输入的数据保持在输出端。8个数码管的公共端都是位选端,位选低电平有效;段选是高电平有效。

#include

sbit duan=P2^2;

sbit wei=P2^3;

void main()

{

wei=1;

P0=0x00;

wei=0xbf;(此条语句结果为第7位数码管亮,显示4)

duan=1;

P0=0x66;

duan=1;

while(1);

}

2、多个数码管静态显示

#include

#define uint unsigned int

#define uchar unsigned char

sbit duan=P2^2;

sbit wei=P2^3;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e, 0x79,0x71};

void delay (uint z);

void main()

{wei=1;

P0=0xea;

wei=0;

while(1)

{uint num;

for(num=0;num<16;num++)

{

duan=1;

P0=table[num];

duan=0;

delay(1000);

}

}

}

void delay (uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

3、中断系统

(1)、中断响应条件:

中断源有中断请求;

此中断源的中断允许位为1;

CPU开中断(即EA=1)。

以上三条同时满足时,CPU才有可能响应中断。(2)、TCON的中断标志

IT0(TCON.0),外部中断0触发方式控制位。

当IT0=0时,为电平触发方式。

当IT0=1时,为边沿触发方式(下降沿有效)。

IE0(TCON.1),外部中断0中断请求标志位。

IT1(TCON.2),外部中断1触发方式控制位。

IE1(TCON.3),外部中断1中断请求标志位。

TF0(TCON.5),定时/计数器T0溢出中断请求标志位。 TF1(TCON.7),定时/计数器T1溢出中断请求标志位。(3)、中断允许控制

EX0(IE.0),外部中断0允许位;

ET0(IE.1),定时/计数器T0中断允许位;

EX1(IE.2),外部中断0允许位;

ET1(IE.3),定时/计数器T1中断允许位;

ES(IE.4),串行口中断允许位;

EA (IE.7), CPU中断允许(总允许)位。

4、定时器初始化程序应完成如下工作:

(1)、对TMOD赋值,以确定T0和T1的工作方式。

(2)、计算初值,并将其写入TH0、TL0或TH1、TL1。

(3)、中断方式时,则对IE赋值,开放中断。

(4)、使TR0或TR1置位,启动定时/计数器定时或计数。

5、中断函数不需要声明28=2828=256,

void exter0()interrupt 0(01234分别对应的是外部中断0、定时器/计数器T0、外部中断1、定时器/计数器T1、串行口中断)

{

d1=0;

}

单片机中各种周期的关系与定时器原理

?我们现来理解几个比较重要的概念:

?时钟周期:

时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12微秒。通常也叫做系统时钟周期。是计算机中最基本的、最小的时间单位。

在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。

机器周期:

在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。

在标准的51单片机中,一般情况下,一个机器周期等于12个时钟周期,也就是机器周期=12*时钟周期,(上面讲到的原因)如果是12MHZ,那么机器周期=1微秒。单片机工作时,是一条一条地从RoM 中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。

机器周期不仅对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。例如一个单片机选择了12MHZ晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。

但是在8051F310中,CIP-51 微控制器内核采用流水线结构,与标准的 8051 结构相比指令执行速度有很大的提高。在一个标准的 8051 中,除 MUL和 DIV以外所有指令都需要 12 或 24 个系统时钟周期,最大系统时钟频率为 12-24MHz。而对于 CIP-51 内核,70%的指令的执行时间为 1 或2个系统时钟周期,只有 4 条指令的执行时间大于 4 个系统时钟周期。所以在计算定时器的值时要注意这里的变化。

指令周期

指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。

系统时钟:

系统时钟:系统时钟就是CPU指令运行的频率,这个才是CPU真正的频率。

单片机内部所有工作,都是基于由晶振产生的同一个触发信号源,由这个信号来同步协调工作步骤,我们把这个信号称为系统时钟,系统时钟一般由晶振产生,但在单片机内部系统时钟不一定等于晶振频率,有可能小于晶振频率,也有可能大于晶振频率,具体是多少由单片机内部结构决定,正常情况和晶振频率会存在一个整数倍关系。系统时种是整个单片机工作节奏的基准,它每振荡一次,单片机就被触发执行一次操作。

一般来说,单片机只有一个时钟源.用了外部晶振,就不用内部RC,用了内部RC,就不用外部晶振.振荡器振荡,产生周期波.单片机在这样的周期波的作用一下有规律的一拍一拍的工作,波的频率越高,单

片工作得就越快,波的频率越低,单片机工作得就越慢。

有了以上的概念以后,就可以正确的理解定时器的工作原理了,在8051F310单片机中,有3个定时器,如果定时器1工作在模式1下,如工作模式1下,是16位的计时器,最大数值是65535,当再加1时(=65536),就会发生溢出,产生中断,所以如果我们要它计1000个数,那么定时初值就是65536-1000,结果就是64536,这个值送给TH、TL,因为是16进制的,所以高位是64536/256取商,低位是64536%256取余。

再者,就是每一计数的时间是多久?一般我们取12M晶振时,一个周期刚好是1us,计数1000个就是1ms,这是因为标准的51单片机是12时钟周期的(STC有6时钟和1时钟方式)。那么,如果我们晶振是12M,就比较好算,如果是其它的,就用12去除好了。比如是6M的,那么就是12/6=2,每个计数是2us,那么你要定时1ms就只要计数500个即可以。

定时器的初值跟定时器的工作方式,跟晶振频率都有关系。一个机器周期Tcy=晶振频率X12,计数次数N=定时时间t/机器周期Tcy,那么初值就X=65536-N,得出的数化成十六进制就行了。这里是用定时器O工作方式1做例子,如果是其它工作方式,就不能是65535了。工作方式0是8192,方式2,3是256。这里有一个公式:

TH=(65536-time/(12/ft))/256

其中,time就是要延时的100ms(要取100000us),ft是晶振频率。这个式子又可以简化成

TH=(65536-time*ft/12)/256

TL=(65536-time*ft/12)%256

在一本书上还看到了这样计算定时初值的:

TH0=-(50235/256); //重装100ms定时初值

TL0=-(50235%256); ///这里使用的6M晶体,

这里是6M晶体,延时100ms,那么按上面讲的原理,6M是每个计数为2us,100ms定时就是计数50000个。

那么,定时器初值要 65536-50000=15536,转成16进是3CB0。这就是要送给TH(=3C)和TL(=B0)的值。

程序中写 TH0=-(50235/256);其实它是这样的TH0=0x100-(50235/256); 在51中,取负数,其结果就是它的值取反+1,也可以用0x100(十进制的256)去减,结果是多少呢?结果就是3C。

单片机实训心得体会

单片机实训心得体会 篇一: 通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。 由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。 踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。 但在这次实训中同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。 这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过

程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。 篇二:单片机实验心得 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 作为一名自动化专业的快大三学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去,我想做类似实习就为我们提供了良好的实践平台 学习单片机没有捷径,不能指望两三天就学会,要坚持不懈,重在积累单片机是一门应用性和实践性很强的学科,要多动手,多做实验。 (4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。 (5)碰到问题可以借助网络来搜寻答案和对自己有帮助的问题,一定会有所收获。

基于-89C51单片机的秒表课程设计汇本

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (4) 2.2设计指标 (4) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计容提要 (4) 3 课程设计报告容 (5) 3.1设计思路 (5) 3.2设计过程 (6) 3.3 程序流程及实验效果 (7) 3.4 实验效果 (16) 4 心得体会 (17)

基于MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计容为以8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求

手把手教你STC51的ISP下载线

手把手教你STC51的ISP下载线 说起我从认识学习使用C51单片机到现在有两年多,时间不长,菜鸟一只。从用TOP151烧写AT89C51,到用easy51pro在线编程AT89S51,再到用STC-ISP 软件在线编程STC89C51,最后现在变得越来越懒,干脆用protues仿真单片机外围电路。 现在简单的总结一下,入门级的C51学习在没有昂贵的单片机仿真器情况下,怎样算是方便调试又花费少吧。 先说说AT89C51,噢,差点忘了,这型号的单片机不知何年被停产了,现在就靠它的库存仍在这个历史的舞台上挣扎。 缺点:对入土为安的芯片没什么好说了。 那就说AT89S51,这可是一个令人振奋的产物,最大的特点莫过于它的ISP(在线编程)功能,就是使用者每编译好程序,就可以立即通过ISP下载线写到单片机上去。而且ISP下载线的制作简单令单片机和我们的距离更加接近了。它的ISP原理图如下:

其中ISP下载程序可以用easy 51pro v2.0。相比昂贵的仿真器,做上图的元器件总共也就十块钱左右吧。 缺点:一、并口连接电脑,1.可能占用打印机口;2.是笔记本是没有并口的。 二、下载线制作一次成功率不大,不是漏接了这个脚就是那个口,对于新手而言尤其这样。 三、下载线寿命不长,一两次不知明的原因(通常静电),就可以把里面的那块芯片(74LS244)烧坏。并且,实际你都不知道到底哪里出毛病了。 也许,世界上真的没有最好,只要更好,自从好友张JL和陈Y介绍了STC的51系列单片机给我之后,发现竟然有这么方便好用功能强大的单片机。

STC51单片机的型号跟ATMEL的大致一样,有STC89C51,C52等,对应于AT89C51,C52等对应它们的内部RAM内部ROM中断口等,是完全一样的。 当然,STC系列单片机是改进型的单片机,它的热重启,串口ISP等功能确实为我准备介绍给大家提供了理由。 先说说ISP功能,它跟电脑连接就只有三根线,就是通过RS-232传输。它ISP 过程是这样的:冷重启(上电)-单片机运行系统ISP监控程序(出厂时已烧到里面)-检测P3.0/RXD有没有合法下载命令流,有的话,就下载用户程序进户程序区;没有的话,就跳到用户程序区,运行用户程序。所以,第一次下载程序,用户需要先点ISP下载软件的“download”,再把单片机通电。如图: 到了这里,大家不禁会说,下载线虽然简单,但每次都要断电上电,烦不烦?答:我都觉得烦。不过眼睛锐利的读者发现了上图右下片有一段文字。说什么的呢?哦,原来是自定义下载。什么是自定义下载?首先我先说个高兴的事儿——用自定义下载,从此告别断电上电的冷重启ISP下载。 所谓自定义下载,就是我从上面软件的自定义下载命令文本框中打入十六进制数字(如:FEH)然后点击发送,程序自动下载到用户单片机里。神奇吧。究其不用断电上电冷重启的原因,就是上面我所说的STC单片机具有热重启功能。用户只需简单控制ISP_CONTOR特殊功能寄存器即可实现系统复位了。汇编语

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

RTX-51学习总结

作者:大海橡树 前段时间给单片机写个跑马灯的程序,它是将单片机4组IO口全用了,一个引脚一个LED 一共32个,当初是拿出去当作品展用的,写了个程序,要求好几个花样,但是写程序的时候发现,单独控制一组端口还可以,要是同时控制4组IO口,并且显示的花样都不一样?该怎么办呢?这就要用的RTX51了,MCS-51单片机的RTOS(实时操作系统)。 RTX51简介: 图(1) RTX51是德国KEIL公司开发的专门针对于8051内核兼容MCU所作的实时操作系统(RTOS),RTX51有两个版本:RTX51-FULL与RTX51-Tiny。FULL版本支持四级任务优先级,最大256任务,它工作在类似于中断功能的状态下,同时支持抢占式与时间片循环调度、支持信号(signal)、消息队列、二进制信号量(semaphore)和邮箱(mailbox),其功能强大,仅仅占用6~8KB的程序存储器空间。RTX51_Tiny是RTX51FULL的子集,是一个很小的内核,只占用大约800byte的存储空间(主要程序RTX51TNY.A51仅有不足一千行)它适用于对实时性要求不非常严格的、仅要求多任务管理且任务间通信功能不要求非常强大的应用。它仅使用51内部寄存器来实现所有功能,应用程序只需要以系统调用(system call)的方式引用RTX51中的函数即可,RTX51-Tiny可以支持16个任务,多个任务遵循时间片轮转的规则,任务间以信号signal的方式进行通信,任务可以等待另一任务给他发出signal然后再从挂起状态恢复运行,它并不支持抢占式任务切换的方式。 上面只是RTX51的简单介绍,具体的用法自己到百度文库下载RTX51实时操作系统的使用方法:https://www.360docs.net/doc/fc18393220.html,/view/0902ce1755270722192ef70d.html。 上面有详细的介绍,由于篇幅有限,这里就不做过多的介绍。大家好好阅读文档上的内容,才知道怎么使用RTOS,刚开始接触的时候有点不好理解,多写几个程序练练手,就有点理解了,确实,要建立起操作系统的概念不是一两天的事情,其中要设计很多的抽象的概念,只有把他们完全理解了,才好应用。 使用说明和应用举例:言归正传,回到开头的“LED问题”上来。根据RTX51

云龙51单片机视频教程大全

云龙51单片机视频教程简介 本视频教程是针对YL-51单片机开发板讲的配套DVD视频教程目录: 讲次内容细节 第一课如何学好单片机单片机能做什么,学习单片机需要什么,如何学好单片机技术。 第二课预备知识点亮一个发光管认识单片机由来及内部结构,单片机最小工作单元组成;单片机开发软件操作:KEIL软件开发环境认识、单片机烧录软件使用。 第三课预备知识 C51基础知识及流水灯设计简单延时程序、子程序调用、、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。 第四课数码管显示的原理,数码管的静态显示共阳、共阴数码管显示原理、带参数子程序设计。 第五课中断和定时器原理定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、定时器中断应用 第六课数码管的动态显示原理及应用实现动态扫描概念及定时器、中断加深 第七课按键学习:独立按键和矩阵按键键盘检测、消抖、键盘编码、带返回值函数写法及应用 第八课数模转换(DA)工作原理及应用数字电压与模拟电压的关系、如何使用DAC0832的实成DA转换 第九课模数转换(AD)工作原理及应用模拟电压与数字电压的关系,如何使用ADC0804的实成AD转换 第十课1602液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作 第十一课串口原理及应用串口通讯工作方式、重点讲述最常用的10位数据通讯、波特率概念及如何根据波特率计算定时器初值 第十二课IIC总线原理和模块化编程方法 IIC总线工作原理、目前非常通用的一种通信机制; 项目开发模块化编程方法。 第十三课红外通信原理及应用红外通信是目前应用最为广泛的通信和遥控手段。在本课程中以红外遥控为代表,具体讲解红外通信的具体过程。

C51单片机实验总结报告

HEFEI UNIVERSITY 单片机实验报告 系别电子信息与电气工程系专业 班级 学号 姓名 指导老师 完成时间

实验一构建单片机最小系统和实验环境熟悉 一、预习要求 1.构建单片机最小系统,熟悉51单片机的结构及编程方法 2.按照程序流程图编写出程序 二、实验目的 1.熟悉星单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的使用方法。 2.熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。 三、实验内容 单片机最小系统实验: 1、熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的安装和使用方法。 2、作出单片机最小系统的组成原理图,分析其各构成单元的工作原理。 存储单元数据传输实验 1、熟悉MCS51汇编指令。 2、进行存储单元数据传输实验,编写程序。 3、运行程序,验证译码的正确性。 四、实验原理 1、作出单片机最小系统的组成原理图

2.最小系统版的组成: 时钟电路,复位电路,电源电路。 3.软件编译环境的熟悉 实验中我们使用keilC环境编译程序。其窗口界面如下: 4.测试程序 ;将从外部RAM3000H单元开始连续存放的 ;50个单字节数据传送到内部RAM30H单元的50个单元中。 ORG 0000H MOV R0,#32H ;计数初值50 MOV A,#78H ;(A)=78H送外部3000H--3050H MOV DPTR,#3000H ;外部数据存储器首地址3000H送DPTR LOOP0: MOVX @DPTR,A ;送78H到外部数据存储区3000H INC DPTR ;外部数据存储区地址增一 DJNZ R0,LOOP0 ;循环次数减一不为零转LOOP0 SETB P1.2 CLR P1.3 CLR P1.4 ;74HC138输入为100,使CS2=0选中62256 MOV R0,#32H ;循环次数50送R0 MOV R1,#30H ;内部数据存储区首址30H送R1 MOV DPTR,#3000H ;外部数据存储区首址3000H送DPTR

51单片机红绿灯课程设计

1 电源提供方案 为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择方案二。 2 显示界面方案 该系统要求完成倒计时功能。基于上述原因,我考虑了二种方案:方案一:采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,成本较高。 综上所述,选择方案一。 3 输入方案: 设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。 该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。 方案二:直接在I/O口线上接上按键开关。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。

综上所述,选择方案二。 3.1单片机交通控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示: 图1 交通状态 本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。实现以下功能:

单片机百度盘资料

一、51单片机 1、祥云51单片机学习光盘(视频教程、例程、操作系统)适合初学者 资料下载链接:https://https://www.360docs.net/doc/fc18393220.html,/cJzLQdrBfp2KD 访问密码8f77 2、普中51单片机学习光盘 https://www.360docs.net/doc/fc18393220.html,/s/1pK0c4BL 3、郭天祥----十天征服单片机 https://www.360docs.net/doc/fc18393220.html,/s/1i4N2Hrn 4、新概念51单片机C语言教程.入门、提高、开发(500页,郭天祥著) https://https://www.360docs.net/doc/fc18393220.html,/cYAYJtgFJNUup 访问密码9eb1 5、力天电子51单片机视频教程 https://www.360docs.net/doc/fc18393220.html,/s/1hrulifU 6、天狼星51单片机视频教程 链接:https://www.360docs.net/doc/fc18393220.html,/s/1pKsD3b9 密码:scy4 8、STC12C5A60S2例程 https://https://www.360docs.net/doc/fc18393220.html,/cjPpH7uBBbIr8 访问密码a471 二、AVR单片机 1、郭天祥--十天学会AVR单片机视频教程 https://https://www.360docs.net/doc/fc18393220.html,/cwVbV5mWw9pxk 访问密码34ba 1、锐志电子AVR单片机视频教程

https://https://www.360docs.net/doc/fc18393220.html,/cweRHU4JUSypY 访问密码64b2 2、手把手AVR单片机视频教程 https://https://www.360docs.net/doc/fc18393220.html,/cm926G3YrWKhG 访问密码dccb 3、DY_miniAVR单片机光盘资料 https://https://www.360docs.net/doc/fc18393220.html,/c3fIFUrWu4LEG 访问密码0036 4、AVR代码生成器 https://https://www.360docs.net/doc/fc18393220.html,/c3fILqj5h3aT9 访问密码2061 5、AVR开发工具 https://https://www.360docs.net/doc/fc18393220.html,/c3fI3satMGmSh 访问密码d356 6、AVR例程 https://https://www.360docs.net/doc/fc18393220.html,/c3fIFfSgCzhWE 访问密码48c1 三、msp430单片机 1、郭天祥---十天学会msp430单片机 https://https://www.360docs.net/doc/fc18393220.html,/cYAYvyxDBaHgr 访问密码4dca 2、力天msp430单片机视频教程 https://https://www.360docs.net/doc/fc18393220.html,/cYAY83HwRumTn 访问密码d66c 3、msp430 c语言.pdf https://https://www.360docs.net/doc/fc18393220.html,/cYAY577Ucc7b2 访问密码86b3 4、msp430教程.pdf https://https://www.360docs.net/doc/fc18393220.html,/cYAYtXwXYesgC 访问密码ccbf 5、IAR C 430标准库函数.pdf https://https://www.360docs.net/doc/fc18393220.html,/cYAYnInwURHZx 访问密码52ef

51单片机实训报告

“51单片机”精简开发板的组装及调试实训报告

为期一周的单片机实习已经结束了。通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。 此次实训主要有以下几个方面: 一、实训目的 1.了解“51”精简开发板的工作原理及其结构。 2.了解复杂电子产品生产制造的全过程。 3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。4.能运用51单片机进行简单的单片机应用系统的硬件设计。 5.掌握单片机应用系统的硬件、软件调试方法 二、实验原理 流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 它的电气性能指标:输入电压:DC4.5~6V,典型值为5V。可用干电池组供电,也可用直流稳压电源供电。 如图所示: 本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 三、硬件组成 1、晶振电路部分 单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。 2、复位端、复位电路 给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

c51单片机实例下载大全

单片机资料教程下载,省去找资料的麻烦,只供学习参考用,下载24内删掉,祝大家学习进步 单片机点阵学习资料 https://www.360docs.net/doc/fc18393220.html,/thread-1703-1-1.html 手把手教你学单片机--教程视频 https://www.360docs.net/doc/fc18393220.html,/thread-1688-1-1.html 力天把手教你学单片机视频教程 https://www.360docs.net/doc/fc18393220.html,/thread-1689-1-1.html 谱中单片机开发板例程 https://www.360docs.net/doc/fc18393220.html,/thread-1683-1-2.html 初学单片机的30,硬件简单对初学者有帮助 https://www.360docs.net/doc/fc18393220.html,/thread-1962-1-1.html 用单片机制作的MP3 https://www.360docs.net/doc/fc18393220.html,/thread-1701-1-2.html 51单片机应用开发大全所含100个范例代码及电路图 https://www.360docs.net/doc/fc18393220.html,/thread-1820-1-1.html 【含28个单片机实例流程图】 https://www.360docs.net/doc/fc18393220.html,/thread-1959-1-2.html 谱中单片机程序烧录工具STC https://www.360docs.net/doc/fc18393220.html,/thread-1682-1-2.html 《单片机技术》32讲

https://www.360docs.net/doc/fc18393220.html,/thread-1693-1-1.html 51单片机c语言100例教程 https://www.360docs.net/doc/fc18393220.html,/thread-1700-1-1.html 单片机超级精华包 https://www.360docs.net/doc/fc18393220.html,/thread-1687-1-1.html 新手学的多功能电子钟 https://www.360docs.net/doc/fc18393220.html,/thread-1679-1-1.html 十天学会单片机和c语言视频教程 https://www.360docs.net/doc/fc18393220.html,/thread-1692-1-1.html C语言函数库速查手册 https://www.360docs.net/doc/fc18393220.html,/thread-1696-1-1.html 历史上最全的KEIL中文学习资料 https://www.360docs.net/doc/fc18393220.html,/thread-1729-1-2.html 单片机c语言程序设计实训100例--基于AVR+PROTUES https://www.360docs.net/doc/fc18393220.html,/thread-1695-1-2.html (有电路图和程序) https://www.360docs.net/doc/fc18393220.html,/thread-1965-1-1.html 关于单片机抗干扰的资料 https://www.360docs.net/doc/fc18393220.html,/thread-1961-1-1.html 单片机矩阵扫描键盘程序 https://www.360docs.net/doc/fc18393220.html,/thread-1723-1-1.html 共享通过串口在线调试51单片机的专业版培训资料

51单片机课程设计 AD转换

课程设计报告 华中师范大学武汉传媒学院 传媒技术学院 电子信息工程2011 仅发布百度文库,版权所有.

AD转换 要求: A.使用单片机实现AD转换 B.可以实现一位AD转换,并显示(保留4位数字)设计框图:

方案设计: AD转换时单片机设计比较重要的实验。模数转换芯片种类多,可以满足不同用途和不同精度功耗等。 外部模拟量选择的是简单的电位器,通过控制电位器来改变模拟电压。显示电压值采用一般的四位七段数码管。而AD转换芯片采用使用最广的ADC0809 ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。 下面说明各引脚功能: ?IN0~IN7:8路模拟量输入端。 ?2-1~2-8:8位数字量输出端。 ?ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。?ALE:地址锁存允许信号,输入端,高电平有效。 ?START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 ?EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 ?OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 ?CLK:时钟脉冲输入端。要求时钟频率不高于640KHz。

?REF(+)、REF(-):基准电压。 ?Vcc:电源,单一+5V。 ?GND:地 工作原理: 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC 变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 本次实验采用中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。 首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。 采用中断可以减轻单片机负担。并可以使程序有更多的空间作二次开发。

03 第三讲 数字电路基础知识--力天手把手教你学单片机之入门篇

手把手教你学51单片机 ——之MCS-51入门篇 主讲: 尹延辉 策划:张勇 开发板:LT-Super51 QQ群:31646346 网址:https://www.360docs.net/doc/fc18393220.html, E-Mail:litianmcu@https://www.360docs.net/doc/fc18393220.html, litianmcu@https://www.360docs.net/doc/fc18393220.html,

入门篇第三讲——数字电路基础知识?本讲内容提要 数字量和模拟量 数制和码制 算术运算和逻辑运算 数字芯片 常用数字芯片简介 可编程逻辑器件 存储器 学习板上扩展IO口 的实现

——数字量和模拟量 ?数字量和模拟量定义 模拟量:随时间连续变化的电压或电流信号称之为模拟量 数字量:随时间离散变化的量称之为数字量 ?数字量的实质为加入判决门限的模拟量

——数字电路’0’与’1’的定义?数字电路’0’与’1’的定义 TTL电平:电压+5V代表’1’,电压0代表’0’ LVTTL:+3.3V~’1’,0~’0’ RS232:-15V~’1’,+15V~’0’ LVDS:2根线上电压差的正负表示’1’或’0’

——数制和码制 ?数制的定义 计数过程中一位数字通常是不够用的,多位数码中每一位的构成方法及从低位向高位进位规则称为数制。 N进制数的通俗定义:逢N进1 ?十进制:逢十进一 ?十六进制:逢十六进一 ?二进制:逢二进一 ?常用数制 十进制、二进制、十六进制 ?人类有十个指头,所以习惯采用十进制 ?计算机只能识别0和1,采用二进制 ?为了计算机学中的数据书写方便,采用十六进制

——数制转换详解 ?数制间的转换 二-十转换 十-二转换 二-十六转换 十六-二转换 ?位与字节的概念: 位(bit):简写为b,表示二进制数的一位。 字节(Byte):简写为B,8位为一字节。 ?数制转换工具: Windows自带的计算器

51单片机学习板简介

USB下载 51单片机学习板 51单片机开发板超值价135元 实验板资源配置如下: 1、STC89C52单片机,支持USB口或者是串口两种下载程序方式不用另买烧写器编程器等产品可以方便的烧写程序到单片机里. 2、USB供电系统,直接插接到电脑USB口即可提供电源,不需另接直流电源。 3、8位LED发光二极管(做跑马灯实验交通灯实验) 4、8位数码管(可做数码管的静态和动态扫描显示实验 5、计数器实验,如0-24秒(NBA进攻时间到,蜂鸣器报警,数码管清零), 6、4*4矩阵键盘(熟悉矩阵键盘编码、扫描原理可作为人机输入接口编写按键输入程序) 7、蜂鸣器(做单片机发声实验播放音乐实验报警实验等声响实验) 8、DS18B20温度传感器,(一线式总线元件实验),温度传感器我们随板赠送(价值6元)。 9、A T24C08外部EEPROM存储芯片(IIC总线元件实验) 10、SPI串行实时时钟DS1302(熟悉SPI总线用DS1302可以做一个万年历电子时钟比定时器做的精确) 11、MAX232芯片RS232通讯接口(可以做为与计算机通迅的接口同时也可做为STC单片机下载程序的接口及仿真调试的接口) 12、字符液晶1602LCD接口。免费赠送1602LCD蓝底白字带背光液晶一个,价值17元 13、图形点阵液晶12864接口 14、做实验时需要不同晶振频率时可很方便的插拔更换(我们随板赠送三个不同频率的晶振11.0592MHZ、12MHZ、24MHZ各一个最大程度上满足了学习者的需要) 15、ISP下载接口(可以对AT89S51 AT89SS52 单片机直接编程需要另配ISP下载线) 16、本实验板采用40PIN锁紧座安放单片机芯片,非常方便单片机芯片的取放。 17、本实验板板上带有外接电源接口方便使用外接电源为单片机供电。 18、实验板带有+5V 和地线扩展口方便用户扩展其他外围电路时取电 货品清单 1、USB编程线 2、STC89C52RC单片机、DS18B20温度传感器各1片。 3、1602液晶模块1个。 4、源程序光盘1张。 5、可替换晶振11.0592M 12M 24M各一个 6、单片机学习板1块(见实物图) 有意者请来电:QQ:

单片机课程设计——基于C51简易计算器

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C 语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减乘除

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阳极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单..................................

基于51单片机课程设计报告

单片机课程设计 课题:基于51单片机的交通灯设计 专业:机械设计制造及其自动化 学号: 指导教师:邵添 设计日期:2017/12/18 成绩: 大学城市科技学院电气学院 基于51单片机数字温度计设计报告

一、设计目的作用 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度围-55°C~+125°C。在-10~+85°C围,精度为±0.5°C。18B20的精度较差,为±2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。 二、设计要求 (1).利用DS18B20传感器实时检测温度并显示。 (2).利用数码管实时显示温度。 (3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。 (4).能够手动设置上限和下限报警温度。 三、设计的具体实现 1、系统概述 方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案设计框图如下:

[用微课学51单片机][白炽贵][电子教案和教学指南] 《用微课学51单片机》教学指南0513

《用微课学51单片机》教学指南 教学模式 本书与电子工业出版社出版的《用微课学电子CAD》教材对接,即以学生电子CAD 课程所完成制作的51单片机电路板为编程验证平台,进行51单片机编程实操实训。因此,需在本课程开课前,先进行本书所需的51单片机实验板CAD设计及安装焊接。这既提高了电子CAD课程的教学目标和教学档次,又为单片机课程创建了学生得心应手功能强劲的编程开发平台,从而满足学生单片机技术高档次的研发平台之需,能让职业院校学生在电子CAD和单片机技术两课程对接上实现“1+1>2”的效果。 教学目标 借助学生亲手完成的单片机实验板平台,在单片机程序实训案例的数量上和质量上有所突破和创新,引用蓝牙技术和WIFI技术,让学生充分享受单片机程序设计的乐趣和成功,为学生胜任单片机技术职业岗位打下必须的技能基础。 教学内容 1.数码管显示编程实操; 2.单片机中断编程实操; 3.单总线双总线三总线器件编程实操; 4.LED16乘16点阵汉字显示编程实操; 5.串行通信编程实操; 6.存储器编程实操; 7.使用蓝牙模块和WIFI模块编程实操; 8.ADC0804和DAC0832编程实操; 9.LCD液晶屏编程实操; 10.红外解码超声测距步进电机编程实操; 11.程序综合编程实操。 12. 教学重点 每个单片机程序设计项目的实操步骤和代码输入过程是教学的重点 。 教学难点 理解单片机程序的执行逻辑分析是教学难点。 教学时数 全书实操视频约540分钟,学生实操以4倍计算,计2160分钟,以40分钟为1课时,约54课时,加14课时机动,合计68课时。 教学建议 1.本书以任务驱动展开教学和实操,为方便教师的教和学生的学,全书的每个任务实操都配有一个不差一秒的实操全程录屏视频,可手把手指导学生正确完成编程任务。学生实操时应两人一组进行合作学习,即学生甲用一台电脑进行单片机程序设计,学生乙用另一台电脑放实操视频,学生甲要参照学生乙所放视频进行代码输入,学生乙要对照检查学生甲屏幕上的代码输入是否正确,两学生的角色定时轮换。两学生这样合作实操,就能保证编程实操的正确性。 1

单片机学习心得体会

单片机学习心得体会一:单片机学习心得体会 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。 俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。 硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。 当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。 在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。 再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。 单片机学习心得体会二:单片机学习心得体会 熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计(随便说一下,很多书中的电路设计已经过时,并且有些程序还是

相关文档
最新文档