51单片机流水灯实验(我用的是手把手教你学单片机的教程)

将延时加长一点,10000太少。

手把手教你学单片机 手把手教你学单片机c语言版手把手教你学单片机 手把手教你学单片机c语言版


手把手教你学单片机 手把手教你学单片机c语言版


手把手教你学单片机 手把手教你学单片机c语言版


Atmel 51系列及大多数51的一个机器周期是12个时钟周期,12M的晶振的机器周期是1/12M12,就是1us ,一条for循环大概8个机器周期,你的延时大约80ms左右,你将延时改到500ms左右试试。

#include

typedef unsigned char uint8;

typedef unsigned int uint16;

it ENLED = P1^4;

it ADDR0 = P1^0;

it ADDR1 = P1^1;

it ADDR2 = P1^2;

it ADDR3 = P1^3;

main()

{uint16 i;

while(1)

{ENLED = 0;

ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;

P0=0x7F;

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

ENLED = 0;

ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;

P0=0xBF;

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

ENLED = 0;

ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;

P0=0xDF;

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

ENLED = 0;

ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;

P0=0xEF;

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

ENLED = 0;

ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;

P0=0xF7;

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

ENLED = 0;

ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;

P0=0xFB;

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

ENLED = 0;

ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;

P0=0xFD;

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

ENLED = 0;

ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;

P0=0xFE;

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

}

延时时间太长了吧

能不能把你的电路图贴来看看?

手把手教你学51单片机的前 言

目前,51系列单片机在我国已得到大力推广和广泛应用,从工业控制系统到小型电子产品都可以见到51单片机的身影,它经典的结构使其成为单片机学习的入门,得到了广大单片机使用者的一致推崇,关于51单片机学习和应用的书也五彩纷呈,本书也是其中的一本。

单片机教程

敏学网的单片机频道有很多单片机视频教程

学习网单片机资料部分列表:

《手把手教你学51单片机与Proteus从入门到精通》[压缩包]

《单片机 视频教程 宋老师 手把手教你学单片机 C语言 51单片机开发 嵌入式 金沙滩电子科技》

《从51单片机到ARM征服嵌入式教程 AVR篇 (持续更新)》(Professional embedded from 51 mcu to ARM)2.0[压缩

《手把手教你学单片机之入门篇》更新完毕[RMVB]

《手把手教你学单片机之附录篇》更新完毕[RMVB]

《手把手教你学单片机之引论篇》更新完毕[RMVB]

《51单片机到ARM征服嵌入式》更新完毕[RMVB]

《手把手教你学单片机之入门篇》更新至第04集[RMVB]

《十天学会单片机和C语言编程(更新完毕)》[MP4]

《51单片机到ARM征服嵌入式51篇 Lesson1》

《YCDZ-51&AVR 51单片机学习板 完全兼容TX-IC 手工焊接视频》V1.0[压缩包]

《零基础一周学会PIC 单片机视频教程》[压缩包]

《单片机软硬件设计视频教程集》

《原创单片机和机器人技术资料》张建高整理[光盘镜像]

《郭天祥十天学会PIC单片机》(Learning PIC MCU in 10 Days)[压缩包]

《PIC单片机电子书》 PDF

《十天学会单片机和C语言编程》

《单片机论文资料》[PDF&NH&KDH]

《单片机系列课件》[PPT]

《单片机应用技术大全》[PDG]

王云 51单片机教程,就很好,身边很多同学在用。

如何快速入门pic16f873单片机开发?

单片机的应用在后PC时代得到了前所未有的发展,但对处理器的综合性能要求也越来越高。综观单片机的发展,以应用需求为目标,市场越来越细化,充分突出以“单片”解决问题,而不像多年前以MCS51/96等处理器为中心,外扩各种接口构成各种应用系统。单片机系统作为嵌入式系统的一部分,主要集中在中、低端应用领域(嵌入式高端应用主要由DSP、ARM、MIPS等高性能处理器构成),在这些应用中,目前也出现了一些新的需求,主要体现在以下几个方面:

(1)以电池供电的应用越来越多,而且由于产品体积的限制,很多是用钮扣电池供电,要求系统功耗尽可能低,如手持式仪表、水表、玩具等。

(2)随着应用的复杂,对处理器的功能和性能要求不断提高。既要外设丰富、功能灵活,又要有一定的运算能力,能做一些实时算法,而不仅仅做一些简单的控制。

(3)产品更新速度快,开发时间短,希望开发工具简单、廉价、功能完善。特别是仿真工具要有延续性,能适应多种MCU,以免重复投资,增加开发费用。

(4)产品性能稳定,可靠性高,既能加密保护,又能方便升级。

-------------------------------------------------

1 单片机技术的发展特点

自单片机出现至今,单片机技术已走过了近20年的发展路程。纵观20年来单片机发

展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发

展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。

单片机长寿命 这里所说的长寿命,一方面指用单片机开发的产品可以稳定可靠地工作

十年、二十年,另一方面是指与微处理器相比的长寿命。随着半导体技术的飞速发展,

MPU更新换代的速度越来越快,以386、486、586为代表的MPU,很短的时间内就被淘汰出

局,而传统的单片机如68HC05、8051等年龄已有15岁,产量仍是上升的。这一方面是由

于其对相应应用领域的适应性,另一方面是由于以该类CPU为核心,集成以更多I/O功能

模块的新单片机系列层出不穷。可以预见,一些成功上市的相对年轻的CPU核心,也会随

着I/O功能模块的不断丰富,有着相当长的生存周期。新的CPU类型的加盟,使单片机队伍

不断壮大,给用户带来了更多的选择余地。

8位、16位、32位单片机共同发展 这是当前单片机技术发展的另一动向。长期以来,单

片机技术的发展是以8位机为主的。随着移动通讯、网络技术、多媒体技术等高科技产品

进入家庭,32位单片机应用得到了长足发展。以Motorola 68K为CPU的32位单片机97年的

销售量达8千万枚。过去认为由于8位单片机功能越来越强,32位机越来越便宜,使16位

单片机生存空间有限,而16位单片机的发展无论从品种和产量方面,近年来都有较大幅

度的增长。

单片机速度越来越快 MPU发展中表现出来的速度越来越快是以时钟频率越来越高为标志

的。而单片机则有所不同,为提高单片机抗干扰能力,降低噪声,降低时钟频率而不牺

牲运算速度是单片机技术发展之追求。一些8051单片机兼容厂商改善了单片机的内部时

序,在不提高时钟频率的条件下,使运算速度提高了很多,Motorola单片机则使用了琐

相环技术或内部倍频技术使内部总线速度大大高于时钟产生器的频率。68HC08单片机使

用4.9M外部振荡器而内部时钟达32M,而M68K系列32位单片机使用32K的外部振荡器频率

内部时钟可达16MHz以上。

低电压与低功耗 自80年代中期以来,NMOS工艺单片机逐渐被CMOS工艺代替,功耗得以

大幅度下降,随着超大规模集成电路技术由3μm工艺发展到1.5、1.2、0.8、0.5、0.35

近而实现0.2μm工艺,全静态设计使时钟频率从直流到数十兆任选,都使功耗不断下降

。Motorola 最近推出任选的M.CORE 可在1.8V电压下以50M/48MIPS全速工作,功率约为

20mW。几乎所有的单片机都有Wait、Stop等省电运行方式。允许使用的电源电压范围也

越来越宽。一般单片机都能在3到6V范围内工作,对电池供电的单片机不再需要对电源采

取稳压措施。低电压供电的单片机电源下限已由2.7V降至2.2V、1.8V。0.9V供电的单片

机已经问世。

低噪声与高可靠性技术 为提高单片机系统的抗电磁干扰能力,使产品能适应恶劣的工

作环境,满足电磁兼容性方面更高标准的要求,各单片机商家在单片机内部电路中采取

了一些新的技术措施。如美国半导体NS的COP8单片机内部增加了抗EMI电路,增强了

“看门狗”的性能。Motorola也推出了低噪声的LN系列单片机。

OTP与掩膜 OTP是一次性写入的单片机。过去认为一个单片机产品的成熟是以投产掩膜

型单片机为标志的。由于掩膜需要一定的生产周期,而OTP型单片机价格不断下降,使得

近年来直接使用OTP完成最终产品制造更为流行。它较之掩膜具有生产周期短、风险小的

特点。近年来,OTP型单片机需量大幅度上扬,为适应这种需求许多单片机都采用了在片

编程技术(In System Programming)。未编程的OTP芯片可采用片Bonding技术或表面贴

技术,先焊在印刷板上,然后通过单片机上引出的编程线、串行数据、时钟线等对单片

机编程。解决了批量写OTP 芯片时容易出现的芯片与写入器接触不好的问题。使OTP的

片得以广泛使用,降低了产品的成本。编程线与I/O线共用,不增加单片机的额外引脚。

而一些生产厂商推出的单片机不再有掩膜型,全部为有ISP功能的OTP。

MTP向OTP挑战 MTP是可多次编程的意思。一些单片机厂商以MTP的性能、OTP的价位推出

他们的单片机,如ATMEL AVR单片机,片内采用FLASH,可多次编程。华邦公司生产的与

8051兼容的单片机也采用了MTP性能,OTP的价位。这些单片机都使用了ISP技术,等安装

到印刷线路板上以后再下载程序。

-----------------------------------------------

8051类单片机 最早由In公司推出的8051/31类单片机也是世界上用量的几种单

片机之一。由于In公司在嵌入式应用方面将重点放在186、386、奔腾等与PC类兼容的

芯片的开发上,8051类单片机主要由Philips、三星、华邦等公司接产。这些公司都

在保持与8051单片机兼容的基础上改善了8051许多特性(如时序特性)。提高了速度、降

低了时钟频率,放宽了电源电压的动态范围,降低了产品价格。

一 . 总体设计 1.需求分析:了解并确定需求。例如确定需测的数据量及路数,确定需控制的对象及对象数量。

2.方案确定 : 确定用什么样的方式满足需求,是用plc还是用单片机,当确定用单片机之后,还需具体确定是2051还是8031或8051,当然还要确定是哪个公司的产品,是Atmel公司的、还是motorola的产品。选定这些时,除了考虑芯片的性能之外,还要考虑经济因素(看哪种)。

二.详细设计 1.选电路

根据环境的需要选择合适的电路。比如,用8051达到控制目的时,要选择是用并口还是串口输出;同样是驱动大功率电路时,使用可控硅还是继电器。这些选择都要根据具体的环境条件和电路参数来决定。如不适合用继电器的地方,必须考虑其他的方式。

2.制电路板: 用Pro软件先制原理图,再封装,制PCB电路版,然后经过打印,转印,腐蚀,焊接等工序后,制出实际的电路板。这一步中的部分工序,我们将在下一学期学习Pro之后自然会明白。

三.调试 1.粗调:用简单程序,分别对各个功能模块调试,看能否完成指定任务。这一步的主要目的是看电路是否可用,比如要LED显示相应数值,如果不能正常显示,则需检查相应电路。

2.编程调试:在粗调无误的情况下,用编好的程序对整个系统调试。当编程任务相当繁重时,要会用程序功能块组合,适当调整功能块的参数,适应当前任务。在本步调试过程中,我们会用到编程器、防真器等工具。

四.编写文档

文档对一个系统而言是非常重要的,它帮官理解系统的独特之处,又可适当增加别人对你的系统的兴趣。如果说总体设计是好的开头,那么好的文档就是好的结尾。编写文档要忠实于原设计方案,不能夸大也不必谦虚,要理清设计思路,并让读者从中了解系统“好”在哪里。

结论:通过以上我的讲述可知,在整个系统开发过程中,用到我们已学的课程有:《数字电路》,《模拟电路》,《电工学》,《单片机应用》,《Pro》,等。我们只要经过短期的培训,就可以成为一个控制系统开发人员。由此可见,单片机系统开发并不象以前我们想象的那样难。只要综合应用我们所学的知识,我们可以很快成为一个系统开发方面的专业人员。

学习单片机的最有效方法是理论与实践并重

对一个初学单片机的人来说,如果按教科书式的学法,上来就是一大堆指令、名词,学了半天还搞不清这些指令起什么作用,能够产生什么实际效果,那么也许用不了几天就会觉得枯燥乏味而半途而废。所以学习与实践结合是一个好方法,边学习、边演练,循序渐进,这样用不了几次就能将用到的指令理解、吃透、扎根于脑海,甚至“根深蒂固”。也就是说,当你此次学习完某几条指令后(一次数量不求多,只求懂),接下去就该做实验了,通过实验,使你感受刚才的指令产生了控制效果,眼睛看得见(灯光)、耳朵听得到(声音),更能深刻理解指令是怎样转化成信号去控制电子产品的。说句过分的话,单片机与其说是学出来的,还不如说是做实验练出来的,何况做实验本身也是一种学习过程。《电子制作》2003~2004的《手把手教你学单片机》讲座就是基于这样一种边学边练的理念展开的,从众多的读者反馈来看,效果特别好,许多读者经3~6个月的学习已能开发简单的产品了(如霓红灯广告牌控制、累加计数器等)。

学习单片机要合理安排学习时间持之以恒

学习单片机可不能“三天打鱼、二天晒网” ,要有持之以恒的毅力与决心,学习完几条指令后,就应及时做实验,融会贯通,而不要等几天或几个星期有时间后再做实验,这样效果不好甚至前学后忘。另外要有打“持久战” 的心理准备,不要兴趣来时学上几天,无兴趣时凉上几星期。学习单片机很重要的一点就是持之以恒。

学习单片机要使用循环学习法使之根深蒂固

《手把手教你学单片机》讲座入门起点低,很多朋友觉得好学、易学,很快就能将讲座从头至尾学完、学懂,但过了几个月,在开发产品时对指令的具体作用就有些淡忘了。根据现代科学的研究,对只短暂学过一遍的知识,充其量只比浮光掠影稍好。因此,较好的方法是,过一段时间后(1~2个月)再重新做一遍,这样反复循环几次就能弄懂消化,忘却。有道是:若人生能细看《水浒传》10遍,那么里面的故事内容、人物场情将永生不忘。

学习单片机要进行适当投资购买实验器材及书籍资料

单片机技术是一门含金量高的技术,一旦学会后,它给你带来的效益回报当然也高,无论是应聘求职还是自起炉灶开厂办公司,其前景是光明无限。因此在学习时要舍得适当投资购买必要的学习、实验器材,另外还要经常去科技图书店看看,购买一些适合自己学习、提高的书籍。总之,春天不播种哪来秋天的收获?考虑到初学者的学习成本,《手把手教你学单片机》讲座主要采用“程序完成后软件仿真→单片机烧录程序→试验板通电实验”的方法(现在的快闪型单片机其程序可烧写1000次以上),而没有采用价格昂贵的在线仿真器(ICE)进行实验,这样整套实验器材(不包括PC机)只有几百元,对大部分已工作的爱好者来说都有这个经济能力承受。一旦当你掌握了单片机的编程技术,成为一个水平较高的单片机设计人员时,再买在线仿真器也不迟。

准备:

单片机烧录器

单片机仿真器

单片机(89c2051,便宜)

软件(Keil)

1、先找本单片机入门的书来看,对于寄存器不必很深的了解

2、照书上的电路图搭好电路(复位、晶振、IO……)

3、将书上的范例程序烧入单片机跑(或者仿真,看程序运行)

4、当你做完IO流水灯实验、串口收发数据实验,再回去看书,能有更深的体会。

5、高级应用的书,或者做更多的东西~~

记得加我的分啊,谢谢了!!!!!!!!!!!!!!!

我也是正在学而已。

我看的教程是《pic实用教程》,分为基础篇和提高篇,是北航出版社出的,作者是李学海。大概看了几天,很好懂。估计学过单片机的就更容易了。