1

主题

0

好友

1549

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
112860
帖子
2296
精华
0
经验
1549 点
金钱
1558 ¥
注册时间
2009-6-18
发表于 2011-9-3 21:41 | 显示全部楼层
好想跟楼主学单片机

119

主题

2

好友

898

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
41985
帖子
2298
精华
0
经验
898 点
金钱
850 ¥
注册时间
2008-5-1
发表于 2011-9-4 08:17 | 显示全部楼层
看来太监了,没戏了

     论坛有N个这样的帖子,结局总是太监。。。。

         建议想学的去优酷搜索《10天学会单片机教程》挺好的

2

主题

0

好友

72

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
56436
帖子
216
精华
0
经验
72 点
金钱
70 ¥
注册时间
2008-9-30
发表于 2011-9-4 13:51 | 显示全部楼层
不错的教程,希望大家都学会单片机

26

主题

0

好友

197

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
124309
帖子
181
精华
0
经验
197 点
金钱
197 ¥
注册时间
2009-8-12
发表于 2011-9-4 13:56 | 显示全部楼层
报名上课。

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-9-4 14:49 | 显示全部楼层
漫长的等待啊、。。。今天是我高中第一个周末,写完作业发现还有时间,便立刻来更新,我不会让这个帖子太监的!!!!

今天我们来讲讲单片机相关基本知识。
我刚学单片机不久,就因为好奇拆解了一个单片机,记得当时一锤子砸下去单片机被砸的粉碎,希望看到的晶片也没看到。过了半年,学的单片机深了一些,再次决定拆解一块单片机,这次所有的精密工具全上,终于拆下了一块较完整的晶片,满足了我的好奇心。

实际上晶片跟我们的IC是一样的,只不过单片机的晶片相当于集成了一个电脑主机,有CPU、内存、硬盘、数据接口等等,但是传统单片机本身的功能不多,所以实际应用时需要外扩芯片。例如AT24C02芯片就是一个典型的外扩EEPROM芯片。现在单片机进入了高速发展时代,增强型的STC单片机内部集成了许多功能,可以省去昂贵的外扩芯片,这也是我们拿它来入门的原因之一。

单片机跟我们的电脑没什么不同,他也有CPU、ROM(硬盘)、RAM(内存)、I/O口(数据接口)等。

ROM与RAM的最大区别当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入静态随机存取存储器一个长期的存储设备中(例如硬盘)。RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会。一个真实的例子便是:当你在写一篇WORD文档时突然停电了,那么你的数据不服存在,而保存之后文件就会进入硬盘,断电后依然能读取出来。学过电脑的应该都懂了,可以跳过。

一个单片机由下面的结构组成:
CPU
随机存储器RAM
只读存储器ROM
I/O口
中断系统
定时器/计时器系统

讲完结构我们来讲讲历史。Robert Noyce和Gordon Moore与1968年成立了英特尔公司,恰巧他们就是集成电路的发明者之一,当时INTER生产存储器和大型CPU,但是由于市场需要,INTER决定大小通吃,开始生产单片机。1971年intel公司研制出世界上第一个4位的微处理器Intel 4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。11月,Intel推出MCS-4微型计算机系统(包括4001 ROM芯片、4002 RAM芯片、4003移位寄存器芯片和4004微处理器 )其中4004包含2300个晶体管,尺寸规格为3mm×4mm,计算性能远远超过当年的ENIAC,最初售价为200美元。

1976年,intel公司研制出MCS-48系列8位的单片机,这也是单片机的问世。

20世纪80年代初,Intel公司在MCS-48系列单片机的基础上,推出了MCS-51系列8位高档单片机。MCS-51系列单片机无论是片内RAM容量,I/O口功能,系统扩展方面都有了很大的提高。

但是以当年的技术擦写单片机非常有限,第一款单片机问世时,是一次性的,如果程序错了,芯片就报废了。后来INTER给单片机开了个小玻璃窗,擦除程序时只需要放在紫外线灯下照射10分钟。以现在的技术来看,这已经非常落后了,但在当时是最先进的。

后来许多公司纷纷向INTER公司购买技术,其中ATMEL(爱特梅尔)公司集成了电擦写的FLASH存储芯片,宣告着单片机高速电擦写时代的到来,16位、32位(ARM单片机)相继出世,其中32位的ARM频繁应用于高端控制,例如我们熟悉的PSP游戏机大多数是使用ARM7 32bit 单片机作为内核的。现在,双核的单片机也开始出现,宣告着多核单片机时代的到来。

学习单片机,不仅要轻松的玩转他,更要知道他的发展历史。
下一次我们将讲一下为什么单片机在编程开头时要写头文件,敬请期待哦~

3

主题

0

好友

1180

积分

侠之大者 当前离线

论坛总版主

Rank: 6Rank: 6

UID
25005
帖子
1738
精华
0
经验
1180 点
金钱
1143 ¥
注册时间
2007-7-23
发表于 2011-9-4 16:13 | 显示全部楼层
原来楼主还是一名高中生,真是让我羞愧啊。单片机学了有段时间了,可总是不明白AD是怎么转换的。

69

主题

0

好友

2581

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
38822
帖子
5530
精华
0
经验
2581 点
金钱
2473 ¥
注册时间
2008-3-29
发表于 2011-9-4 18:02 | 显示全部楼层
顶起来,哈哈,好帖子

4

主题

1

好友

1763

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
55008
帖子
1817
精华
0
经验
1763 点
金钱
1753 ¥
注册时间
2008-9-19
发表于 2011-9-15 02:40 | 显示全部楼层
回复 189# homeboy

“!=”就是不等于的意思。--a !=0表示a减1后不等于0.

用for语句延时是为了按键去抖动,这个楼主前面说过的。

149

主题

1

好友

1566

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
10115
帖子
1914
精华
0
经验
1566 点
金钱
1177 ¥
注册时间
2006-6-14
发表于 2011-9-15 07:49 | 显示全部楼层
支持,顶一下

2

主题

0

好友

723

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
343623
帖子
753
精华
0
经验
723 点
金钱
713 ¥
注册时间
2011-6-1
发表于 2011-9-15 11:39 | 显示全部楼层
温习,继续,感谢分享

3

主题

0

好友

1180

积分

侠之大者 当前离线

论坛总版主

Rank: 6Rank: 6

UID
25005
帖子
1738
精华
0
经验
1180 点
金钱
1143 ¥
注册时间
2007-7-23
发表于 2011-9-15 21:51 | 显示全部楼层
哎!不想成太监都不行。

2

主题

0

好友

258

积分

业余侠客 当前离线

Rank: 4

UID
80948
帖子
265
精华
0
经验
258 点
金钱
258 ¥
注册时间
2009-2-16
发表于 2011-9-16 00:20 | 显示全部楼层
51是不错的东西,便宜就能够完成较多东西,51,AVR以前都玩过,尤其是M16,目前在自学STM32,有了51,AVR的基础,感觉学起来也不难,但主要想完STM32的操作系统μCOS .对于单片机新手来说,从51开始很重要,支持楼主。

3

主题

0

好友

200

积分

业余侠客 当前离线

Rank: 4

UID
394251
帖子
382
精华
0
经验
200 点
金钱
200 ¥
注册时间
2011-9-10
发表于 2011-9-16 04:27 | 显示全部楼层
大学就是学这个的,现在早还给老师了

67

主题

0

好友

2170

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
44250
帖子
4957
精华
0
经验
2170 点
金钱
2152 ¥
注册时间
2008-5-28
发表于 2011-9-16 20:41 | 显示全部楼层
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define        uchar unsigned char
uchar temp;
uchar x,y;
void delay();
void main()
{
        P1=temp;
        while(1)
        {       
                temp=0xfe;
                for(x=7;x>0;x--)
                {
                        temp=_crol_(temp,1);
                        delay();
                        P1=temp;
                }
                for(y=7;y>0;y--)
                {
                        temp=_cror_(temp,1);
                        delay();
                        P1=temp;
                }

        }       
}
void delay()
{       
        uint a,b;
        for(a=100;a>0;a--)
                for(b=100;b>0;b--);
}



今天自己想的程序,郭天祥的那个刚好看完两节。就做的后面的习题,流水灯,1-8,8-1,1-8这样一直亮,一次亮一个。一直没往后头看主要是觉得刚开头学构架很重要,只要有构架,函数值是嵌套进去就是了。

16

主题

0

好友

464

积分

业余侠客 当前离线

Rank: 4

UID
33360
帖子
2236
精华
0
经验
464 点
金钱
438 ¥
注册时间
2008-1-3
发表于 2011-9-19 21:10 | 显示全部楼层
还是回复记号一下,每次看都要搜索(单片机)才能找得到这贴子

5

主题

0

好友

35

积分

注册会员 当前离线

Rank: 2

UID
290259
帖子
30
精华
0
经验
35 点
金钱
35 ¥
注册时间
2011-2-9
发表于 2011-10-4 13:58 | 显示全部楼层
回复 225# 591534671


  貌似你好久没更新拉~

1

主题

0

好友

589

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
31961
帖子
644
精华
0
经验
589 点
金钱
619 ¥
注册时间
2007-12-10
发表于 2011-10-29 17:16 | 显示全部楼层
期待楼主继续,谢谢!
头像被屏蔽

2

主题

0

好友

172

积分

禁止发言 当前离线

超级大菜鸟烧友

UID
419862
帖子
171
精华
0
经验
172 点
金钱
172 ¥
注册时间
2011-10-22
发表于 2011-10-29 18:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

13

主题

0

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
327390
帖子
142
精华
0
经验
207 点
金钱
152 ¥
注册时间
2011-5-1
 楼主| 发表于 2011-10-30 10:57 | 显示全部楼层
实在对不起大家,我不想让这个帖子太监了,因为上了高中以学业为重!所以要等到寒假才能更新了,希望大家继续支持!

0

主题

0

好友

10

积分

注册会员 当前离线

Rank: 2

UID
171448
帖子
10
精华
0
经验
10 点
金钱
10 ¥
注册时间
2010-2-5
发表于 2011-11-9 07:44 | 显示全部楼层
LZ 下篇 可否详细说一下,C 延时是如何写法,之前如 delay (50000)
void delay(unsigned int z)
{
        unsigned int i,j;
        for (i=z; i>0; i--)
                for (j=50000; j>0; j--);      
}
到底是如何工作
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部