单片机

单片机
单片机

单片机原理课程设计

LED点阵显示

姓名:

学号:

系别:机电工程系

专业:

指导教师:

日期:2010.06.10

目录

目录............................................................ - 1 - .摘要........................................................ - 2 -

1 设计任务及要求................................................ - 3 -

2 单片机基础知识............................................... -

3 -

2.1 80C51单片机的内部结构.................................. - 3 -

2.2 80C51各引脚作用......................................... - 4 - 3应用软件系统设计.............................................. - 6 -

3.1点阵显示及设计原理....................................... - 6 -

3.2应用软件设计............................................. - 7 -

4 LED点阵控制装置的调试....................................... - 11 -

4.1系统调试................................................ - 11 -

4.2测试结果................................................ - 11 - 5毕业设计总结................................................. - 12 -

5.1设计总结................................................ - 12 -

5.2心得体会................................................ - 12 - 致谢词......................................................... - 13 - 参考文献.................................................... - 13 -

.摘要

摘要:二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入

的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。它的出现是近代计算机技术发展史上的一个重要里程碑,因为它体积小,通常都藏在被控机械的“肚子”里。它在这个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。

现在,这种单片机的使用领域已十分广泛。彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。

单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。

关键词:单片机;阵显示;程序;LED

1 设计任务及要求

1、巩固和深化学生对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/控制、程序设计、应用开发、等基本理论知识的理解。

2、提高学生硬件设计和软件设计综合设计能力。

3、掌握LED显示屏控制系统的显示原理,学习LED点阵显示数字和字符的编程方法。

4、结合微机原理、单片机技术知识,查阅有关资料,设计一个以单片机为核心的LED点阵显示器系统,采用点阵LED作为显示器显示“中国”字样。

2 单片机基础知识

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。

MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。

MCS-51系列单片机主要包括8031、8051和8751等通用产品。

DP-51S单片机仿真实验仪是由广州致远电子有限公司设计的DP系列单片机仿真实验仪之一,是一种功能强大的单片机应用技术学习、调试。

2.1 80C51单片机的内部结构

图2-1为80C51单片机功能结构框图

80C51 芯片内部集成了 CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些不见连接在一起。

图2-1 80C51单片机功能结构框图

80C51单片机内部包含以下一些功能部件:

(1) 一个8位CPU;

(2) 一个片内振荡器和时钟电路;

(3) 4KB ROM(80C51有4KB掩膜ROM,87C51有4KB EPROM,80C31片内有无ROM);

(4) 128B内RAM;

(5) 可寻址64KB的外ROM和外RAM控制电路;

(6) 两个16位定时/计数器;

(7) 21个特许功能寄存器;

(8) 4个8位并行I/O口,共32条可编程I/O端线;

(9) 一个可编程全双工串行口;

(10) 5个中断源,可设置成2个优先级。

2.2 80C51各引脚作用

80C51单片机一般采用双列直插DIP封装,共40个引脚,图2-2a为引脚排列图。图2-2b为逻辑符号图。40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。

1.电源

(1)Vcc——芯片电源,接+5V;

(2)Vss——接地端。

2.时钟

XTAL1、XTAL2——晶体振荡电路反相输入端和输出端。使用内部振荡电路时外接石英晶体。

3.控制线

控制线共有4根,其中3根是复用线。所谓复用线是指具有两种功能,正常使用时是一种功能,在某种条件下是另一种功能。

(1)ALE/PROG——地址锁存允许/片内EPROM编程脉冲。

①ALE功能:用来锁存P0口送出的低8位地址。

80C51在并行扩展外存储器(包括并行扩展I/O口)时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。那么如何区分是低8位地址还是8位数据信号呢?当ALE信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是8位数据信号。在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号。

需要指出的是,当CPU不执行访问外RAM指令(MOVX)时,ALE以时钟振荡频率1 / 6的固定频率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。

ALE端可驱动8个LSTTL门电路。

②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

(2)PSEN——外ROM读选通信号。

80C51读外ROM时,没个机器周期内PSEN两次有效输出。PSEN可作为外ROM 芯片输出允许OE的选通信号。在读内ROM或读外RAM时,PSEN无效。

PSEN可驱动8个LSTTL门电路。

(3) RST/Vpd——复位/备用电源。

①正常工作时,RST(Reset)端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,80C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行指令。

②Vpd功能:在Vcc掉电情况下,该引脚可接上备用电源,由Vpd向片内供电,以保持片内RAM中的数据不丢失。

(4) EA/Vpp ——内外ROM选择/片内EPROM编程电源。

①EA功能:正常工作时,EA为内外ROM选择端。80C51单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外(80C31芯片无内ROM,全部在片外)。当EA保持高电平时,先访问内ROM,但当PC(程序计数器)值超过4KB(0FFFH)时,将自动转向执行外ROM中的程序。当EA保持低电平时,则只访问外ROM,不管芯片内有否内ROM。对80C31芯片,片内无ROM,因此EA必须接地。

图2-2 80C51引脚图

②Vpp功能:片内有EPROM的芯片,在EPROM编程期间,此引脚用于施加编程电源Vpp。

对4个控制引脚,应熟记起第一功能,了解其第二功能。

严格来讲,80C51的控制线还应该包括P3口的第二功能。

4. I/O引脚

80C51共有4个8位并行I/O端口,共32个引脚

(1)P0口——8位双向I/O口。

在不并行扩展外存储器(包括并行扩展I/O口)时, P0口可用作双向I/O口。

在并行扩展外存储器(包括并行扩展I/O口)时, P0口可用于分时传送低8位地址(地址总线)和8位数据信号(数据总线)。位结构如图2-4所示。P0口能驱动8个LSTTL门。

(2) P1口——8位准双向I/O口(“准双向”是指该口内部有固定的上拉电阻)。位结构如图2-5所示。 P1口能驱动为4个LSTTL门。

(3) P2口——8位准双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时, P2口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时, P2口可用于传送高8位地址(属地址总线) 。P2口能驱动4个LSTTL门。P2口的位结构如图2-6所示,引脚上拉电阻同P1口。在结构上,P2口比P1口多一个输出控制部分。

(4) P3口——8位准双向I/O口。

可作一般I/O口用,同时P3口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。P3口驱动能力为4个LSTTL门。

P3口第二功能如下:

P3.0——RXD:串行口输入端;

P3.1——TXD:串行口输出端;

P3.2——INT0:外部中断0请求输入端;

P3.3——INT1:外部中断1请求输入端

P3.4——T0:定时/计数器0外部信号输入端;

P3.5——T1:定时/计数器1外部信号输入端;

P3.6——WR:外RAM写选通信号输出端;

P3.7——RD:外RAM读选通信号输出端。

上述4个I/O口,各有各的用途。在不并行扩展外存储器(包括并行扩展I/O 口)时, 4个I/O口都可作为双向I/O口用。在并行扩展外存储器(包括并行扩展I/O口)时, P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号。P3口根据需要常用于第二功能,真正可提供给用户使用的I/O口是P1口和一部分未用作第二功能的P3口端线。

3应用软件系统设计

3.1点阵显示及设计原理

一.LED点阵介绍

点阵LED显示器是将许多LED类似

矩阵一样排列在一起组成的显示器件。

当单片机输出的控制信号,使得点阵

中的LED有些发光,有些不发光,即可

显示出特定的信息,包括汉字、图形等。

由微机控制点阵LED大屏幕广告宣传

牌随处可见。

实验仪上设有一个共阳极8×8的点阵LED显示器,其点阵结构如图所示。该点阵对外引出8条行线,8条列线,若使某一个 LED 发光,只要将与其LED 连接的行线加高电平,列线加低电平;若使某一列LED发光,只要将8根行线全加高电平,此列线加低电平;若使某一列LED部分发光,只要将需发光的行线加高电平,此列线加低电平。

实验仪上的点阵LED及驱动电路如下一页图所示(与单片机之间由实验者自连)。单片机 P2 口(实验时可自定)输出的数据通过行驱动器(7407)加至点阵的8条行线上,单片机P1 口(实验时可自定)输出的数据通过列驱动器(ULN2003A)反相后加至点阵的8条列线上。若要使该点阵显示某一信息,只要通过P2口、P1口输出特定的数据,控制点阵LED逐行或逐列循环发光即可。

例如欲显示汉字“年”,采用逐列循环发光。首先由“年”点阵轮廓。确定点阵代码。根据

“年”的点阵代码,确定逐列循环发光的时序如下:

①P2口输出 24H;P1 口输出 80H;第 7列的2 个LED 发光。

②P2口输出 44H;P1 口输出 40H;第 6列的2 个LED 发光。

③P2口输出 DCH;P1 口输出 20H;第 5列的5 个LED 发光。

④P2口输出 54H;P1 口输出 10H;第 4列的3 个LED 发光。

⑤P2口输出 7FH;P1 口输出 08H;第 3列的7 个LED 发光。

⑥P2口输出 54H;P1 口输出 04H;第 2列的3 个LED 发光。

⑦P2口输出 54H;P1 口输出 02H;第 1列的3 个LED 发光。

⑧P2口输出 44H;P1 口输出 01H;第 0列的2 个LED 发光。

步骤①~⑧之间可插入 1ms左右的延时。重复进行①~⑧.

即可在 LED上稳定地显示出“年”.

本设计是采用TMC-3开放式单片机实验箱上的

仿真器SST89E564RD, 可以利用Keil uVision2来做

在线仿真,也可以将程序下载到单片机中观察实验

效果。单片机89c51和仿真器之间用转换开关SW1

切换,当开关向上拨到“89C51”位置时。选择锁紧

插座上的89C51或89C51RD芯片,当向下拨到“仿

真器”位置时,选择仿真芯片,可进行程序的仿真

调试。

三.硬件电路图

本设计通过单片机I/O口与8×8点阵的连接来传送数据,用P1口连接列,P2口连接行。电路图如图一所示:

四.实验内容

将单片机的P2 口、P1 口分别与LED点阵的行、列驱动电路分别相连。编程实现:

在8*8LED点阵上连续显示汉字“中”“国”二字

3.2应用软件设计

一.计算点阵代码

如图二所示画出表格,在表格中画出中国二字的点阵轮廓,运用八四二一码

求出中国二字的点阵代码为

“中”的点阵代码是:3CH,24H,24H,0FFH,0FFH,24H,24H,3CH

“国”的点阵代码是:OFFH,83H,0D3H,0FFH,0DBH,87H,0FFH,00H

图二

图一

二.编写程序

分析运行程序的主程序流程和中断系统流程写出运行程序的软件系统。

一.流程图

2.程序设计

ORG 0H

START: MOV R5,#0F0H ; 阳极全部加高电平

LOOP: MOV DPTR,#DATA1 ;向点阵首阵

MOV R2,#80H ;初值为80H,为最左一列(第七列)阴极输出低电平准备 CLR C

DISP: MOV A,#0

MOVC A,@A+DPTR ;取一列点阵代码

MOV P2,A;加至阳极

MOV P1,R2 ;使一列阴极为低电平

CALL DELAY ;延时

INC DPTR ;指向下一列代码

MOV A,R2 ;R2 右移一位,为下一列阴极输出低电平作准备

RRC A

MOV R2,A ;加至阳极

JNC DISP ;8 列未完,转

DJNZ R5,LOOP ; 循环显示“中”

LJMP START1 ; 长跳转至START1

DELAY: MOV R1,#0 ;延时子程序

DELY0: DJNZ R1,DELY0

RET

DATA1: DB 3CH,24H,24H,0FFH,0FFH,24H,24H,3CH; “中”的点阵代码START1: MOV R6,#0F0H ; 阳极全部加高电平

LOOP1: MOV DPTR,#DATA2 ;向点阵首阵

MOV R2,#80H ;初值为80H,为最左一列(第七列)阴极输出低电平准备 CLR C

DISP1: MOV A,#0

MOVC A,@A+DPTR ;取一列点阵代码

MOV P2,A ;加至阳极

MOV P1,R2 ;使一列阴极为低电平

CALL DELAY1 ;延时

INC DPTR ;指向下一列代码

MOV A,R2 ;R2 右移一位,为下一列阴极输出低电平作准备 RRC A

MOV R2,A ;加至阳极

JNC DISP1 ;8 列未完,转

DJNZ R6,LOOP1 ; 循环显示“国”

LJMP START 长跳转至START

DELAY1: MOV R1,#0 ;延时子程序

DELY1: DJNZ R1,DELY1

RET

DATA2: DB OFFH,83H,0D3H,0FFH,0DBH,87H,0FFH,00H;国的点阵代码

END

4 LED点阵控制装置的调试

4.1系统调试

4.1.1检查硬件连接

包括各元器件的正确使用,例如:地线、电源线的接口。检查电路板,各线路是否正确连接,各元器件是否安全焊上,是否牢固等等。

4.1.2检查软件系统

1、根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。

2、分别写出各指令的正确含义,包括中断定时延时时间和初始化时方式字和控制口地址。

3、将所有程序组织起来,在软件环境下运行,检查程序是否正确。通过对硬件和软件系统的认真检查,反复测试,结果系统检测成功,可以进一步运行调试。

4.2测试结果

本系统基本上能符合设计者的要求,经仿真器试验验证可知该程序符合实际要求能够满足设计要求。

5毕业设计总结

5.1设计总结

单片机的设计至今为止已经进入了令人鼓舞的阶段,在进行了长达两个多月的时间的摸索与实验,使我不仅仅是对于单片机入门软件与硬件的常用设计与功能,还使我对于一项设计研究的制作过程所需要的详细步骤和具体的实现方法的力度的掌握。基于此作品作为毕业设计的创作成果,在当其中机器的功能等方面并非处于一个成熟的阶段,而且仅仅是因为向延元老师的要求以及我们的初步尝试,当中的缺点是无可非议地存在着。

当然在这次宝贵的毕业设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过了。但是,光是完成了作品还是不可以自我满足的,在从一开始的时候就怀着将作品制作得更加人性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门学科的认识加深,到达了拓展的程度,我想这个目的将在不远的时期内被实现。

总之,这次设计从软件编写、调试到软硬件联机调试,我倾注了大量的时间和心血。真是曾经为程序的编写而冥思查找过,曾经为无法找出错误而郁闷苦恼过,也曾经为某一功能不能实现而犹豫彷徨过,但最终我成功了。因为我不仅品味到了结果的喜悦,更明白了过程的弥足珍贵。

5.2心得体会

经过近两周的努力我的课程设计终于设计终于完成了。在没有做课程设计以前觉得课程设计只是对这几年来所学知识的单纯总结,但是通过这次做课程设计发现自己的看法有点太片面。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。

我的心得也就这么多了,总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

在此要感谢我的指导老师杨富强老师对我悉心的指导,感谢老师给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作

能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。

致谢词

致谢

在本次论文设计过程中,杨富强老师对该论文从选题,构思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成毕业论文设计。在学习中,老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模,老师们的高深精湛的造诣与严谨求实的治学精神,将永远激励着我。这两年中还得到众多老师的关心支持和帮助。在此,谨向老师们致以衷心的感谢和崇高的敬意!

参考文献

【1】MCS—51单片机应用设计,张毅刚等编著,哈尔滨工业大学出版社

【2】MCS—51单片机原理及实用技术,张振荣,晋明武,王毅平编著,人民邮电出版社【3】单片机实用系统设计技术,房小翠,王金凤编著,国防工业大学出版社

【4】单片机程序设计基础,周航慈,饶运涛编著,北京航空航天大学出版社

【5】单片机开发与典型应用设计,谢筑森编著,中国科学技术大学出版社

8051单片机的内部结构

8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器(CPU)是整个单片机的核心 部件,是8位数据宽度的处理器,能处理 8位二进制数据或代码,CPU负责控制、 指挥和调度整个单元系统协调的工作,完 成运算和控制输入输出功能等操作。 ·数据存储器(RAM): 8051内部有128个8位用户数据存储 单元和128个专用寄存器单元,它们是统 一编址的,专用寄存器只能用于存放控制 指令数据,用户只能访问,而不能用于存 放用户数据,所以,用户能使用的的RAM 只有128个,可存放读写的数据,运算的 中间结果或用户定义的字型表。 ·程序存储器(ROM): 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。 ·全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以 用作异步通信收发器,也可以当同步移位器使用。 ·中断系统: 8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可 满足不同的控制要求,并具有2级的优先级别选择。 ·时钟电路: 8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051 单片机需外置振荡电容。

单片机入门不难------谈PIC系列

单片机入门不难------谈PIC系列 单片机入门不难------谈PIC系列 作者:佚名来源:不详录入:Admin更新时间:2008-7-2716:27:15点击数:3 【字体:】 单片机入门不难------谈PIC系列(转自矿石收音机论坛---崂山) 坛子里的老兄小弟,如果你已经多次想进单片机之门而未入,如果你有很多空闲时间想打发,如果你玩收音机感到疲劳想换个口味,如果。。。 那就听小弟我白话白话,反正我们这些老大难也没有什么重要的事情做。。。。 闲言少许,话说人间事物的学习,不外两类:一类入门易,精通难比如矿石机,再比如练书法谁都会写两下,可写好却不是一朝一夕的事儿。另一类则入门难精通易,比如超外差收音机,学会需要各种放大、振荡、反馈、混频、中频、统调等等,但是一旦你学会,做出一个高质量的收音机,确也不是难事。单片机属于后者,所以无论如何,你得用些时间,学习一些新名词并理解,甚至还得花一些小钱。但是,一旦你掌握,其乐趣也像收音机一样,很有吸引力的。本故事说给一点也不懂计算机,甚至数字电路的引引道。一般入门应该有保障。 改为:本故事说给懂电工、电子、逻辑电路的老家伙和半老家伙,如果对电子一窍不通人讲那我劝你也别瞎子点灯了,要是边讲基础边讲pic这书就不知唱到何年何月啦。 单片机不同于收音机,收音机的任务最终就是听好声音一个,单片机可以做很多事情,要你来安排它的工作。安排它就先的认识它,熟悉它 请看图1 这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。 第1、8条腿接电源+5V和地线。头两条腿是螃蟹钳子,好吃的很。现在剩下了6条腿 第2、3条腿使用时外接一个晶振的东西我们接一个4MHz的。 第4条腿是复位脚,是一个信号输入脚。单片机正常运行时接高电平。当有一个低电平脉冲输入到这个脚时单片机就复位。所谓复位就是单片机内部所有的工作部件统统回到规定的状态,程序也复位到头一句上开始逐条运行。例如,你设计的一个报警锁定的LED红灯亮后,当需要解除报警时,用一个按钮给这个脚瞬时接地一下,相当于给它一个夫脉冲,系统就复位了,led灯就熄灭了,程序从头开始。 以上5个脚,几乎所有单片机都有,包括世界上最复杂的,和世界比较简单的单片机

高手讲解PIC单片机:单片机的入门就是这么简单

高手讲解PIC单片机:单片机的入门就是这么简单 单片机入门不难,这是几年前的一篇老文章,讲得通俗易懂,分享给初学者。 这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。 第1、8条腿接电源+5V 和地线。头两条腿是螃蟹钳子,好吃的很。现在剩下了6 条腿 第2、3条腿使用时外接一个晶振的东西我们接一个4 MHz的。 第4条腿是复位脚,是一个信号输入脚。单片机正常运行时接高电平。当有一个低电平脉冲输入到这个脚时单片机就复位。所谓复位就是单片机内部所有的工作部件统统回到规定的状态,程序也复位到头一句上开始逐条运行。例如,你设计的一个报警锁定的LED红灯亮后,当需要解除报警时,用一个按钮给这个脚瞬时接地一下,相当于给它一个夫脉冲,系统就复位了,led灯就熄灭了,程序从头开始。 以上5个脚,几乎所有单片机都有,包括世界上最复杂的,和世界比较简单的单片机-----PIC12CE519 轮到第几条腿啦?奥,是第5条腿,这条叫单片机的I/O 脚。就是输入输出脚。你可通过程序动态地控制它作为输入或输出,作为输出时可以程序控制它的输出电平为高1或低0。所以,他的工作状态有四种:输入0,输入1,输出0,输出1,剩下的两条腿和第5脚功能一个样。 上边我们已经把8条腿消化掉了,其实我们要弄明白的也就3只腿,我们再简单一些,先整明白两条腿,即GP0,GP1.这两条腿低级一点的用法,可以控制继电器,LED灯,高级一些的用法可以进行I2C总线,RS232总线的通信,作为扩展输入可以模拟出来A/D转换器(6--7bit),可以测量一个电阻的粗略值。作为输出也可以直接推动扬声器奏出音乐。这是后话暂且不提。 现在要控制使用这两只腿,我这个三脚猫功夫的说书的不得不讲一下软件了,要想讲明白软件又不得不涉及到单片机的内部结构。那位说啦,你可别提这软件和结构了,以前俺就

从单片机初学者迈向单片机工程师

这个我从eehome贴过来的。写的非常的好。我们用学单片机不要停在演示的基础上。只能让单片机完成局部事。这样我们永远不会走出流水灯地狱!!! 学习单片机也已经有几年了,藉此机会和大家聊一下我学习过程中的一些经历和想法吧。也感谢一线工人提供了这个机会。希望大家有什么好的想法和建议都直接跟帖说出来。毕竟只有交流才能够碰撞出火花来^_^。 。“卖弄”也好,“吹嘘”也罢,我只是想认真的写写我这一路走来历经的总总,把其中值得注意,以及经验的地方写出来,权当是我对自己的一个总结吧。而作为看官的你,如果看到了我的错误,还请一定指正,这样对我以及其它读者都有帮助,而至于你如果从中能够收获到些许,那便是我最大的欣慰了。姑妄言之,姑妄听之。如果有啥好的想法和建议一定要说出来。 几年前,和众多初学者一样,我接触到了单片机,立刻被其神奇的功能所吸引,从此不能自拔。很多个日夜就这样陪伴着它度过了。期间也遇到过非常多的问题,也一度被这些问题所困惑……等到回过头来,看到自己曾经走过的路,唏嘘不已。经常混迹于论坛里,也看到了很多初学者发的求助帖子,看到他们走在自己曾走过的弯路上,忽然想到了自己的那段日子,心里竟然莫名的冲动,凡此总总,我总是尽自己所能去回帖。很多时候,都想写一点什么东西出来,希望对广大的初学者有一点点帮助。但总是不知从何处写起。今天借一线工人的台,唱一唱我的戏 一路学习过来的过程中,帮助最大之一无疑来自于网络了。很多时候,通过网络,我们都可以获取到所需要的学习资料。但是,随着我们学习的深入,我们会慢慢发现,网络提供的东西是有限度的,好像大部分的资料都差不多,或者说是适合大部分的初学者所需,而当我们想更进一步提高时,却发现能够获取到的资料越来越少,相信各位也会有同感,铺天盖地的单片机资料中大部分不是流水灯就是LED,液晶,而且也只是仅仅作功能性的演示。于是有些人选择了放弃,或者是转移到其他兴趣上面去了,而只有少部分人选择了继续摸索下去,结合市面上的书籍,然后在网络上锲而不舍的搜集资料,再从牛人的只言片语中去体会,不断动手实践,慢慢的,也摸索出来了自己的一条路子。当然这个过程必然是艰辛的,而他学会了之后也不会在网络上轻易分享自己的学习成果。如此恶性循环下去,也就不难理解为什么初级的学习资料满天飞,而深入一点的学习资料却很少的原因了。相较于其他领域,单片机技术的封锁更加容易。尽管已经问世了很多年了,有价值的资料还是相当的欠缺,大部分的资料都是止于入门阶段或者是简单的演示实验。但是在实际工程应用中却是另外一回事。有能力的高手无暇或者是不愿公开自己的学习经验。 很多时候,我也很困惑,看到国外爱好者毫不保留的在网络上发布自己的作品,我忽然感觉到一丝丝的悲哀。也许,我们真的该转变一下思路了,帮助别人,其实也是在帮助自己。啰啰嗦嗦的说了这么多,相信大家能够明白说的是什么意思。在接下来的一段日子里,我将会结合电子工程师之家举办的主题周活动写一点自己的想法。尽可能从实用的角度去讲述。希望能够帮助更多的初学者更上一层楼。而关于这个主题周的最大主题我想了这样的一个名字“从单片机初学者迈向单片机工程师”。名字挺大挺响亮,给我的压力也挺大的,但我会努力,争取使这样的一系列文章能够带给大家一点帮助,而不是看后大跌眼镜。这样的一系列文章主要的对象是初学者,以及想从初学者更进一步提高的读者。而至于老手,以及那些牛XX的人,希望能够给我们这些初学者更多的一些指点哈~@_@ 我们首先来看第一章节

单片机内部主要部件

1.2 单片机内部主要部件 单片机内部电路比较复杂,MCS-51系列的8051型号单片机的内部电路根据功能可以分为CPU、RAM、ROM/EPROM、并行口、串行口、定时/计数器、中断系统及特殊功能寄存器(SFR)等8个主要部件,如图1-2-1所示。这些部件通过片内的单一总线相连,采用CPU加外围芯片的结构模式,各个功能单元都采用特殊功能寄存器集中控制的方式。其他公司的51系列单片机与8051结构类似,只是根据用户需要增加了特殊的部件,如A/D转换器等。在设计程序过程中,寄存器的使用非常频繁。本节内容在了解单片机内部的组成机构基础上,重点介绍单片机内部常用的寄存器的作用。 图1-2-1 MCS-51架构 1.2.1中央处理器(CPU) 中央处理器是单片机的核心,主要功能是产生各种控制信号,根据程序中每一条指令的具体功能,控制寄存器和输入/输出端口的数据传送,进行数据的算术运算、逻辑运算以及位操作等处理。MCS-51系列单片机的CPU字长是8位,能处理8位二进制数或代码,也可处理一位二进制数据。单片机的CPU从功能上一般可以分为运算器和控制器两部分。 一、控制器 控制器由程序计数器PC、指令寄存器、指令译码器、定时控制与条件转移逻辑电路等组成。其功能是对来自存储器中的指令进行译码,通过定时电路,在规定的时刻发出各种操作所需的全部内部和外部的控制信号,使各部分协调工作,完成指令所规定的功能。各部分功能部件简述如下。 1.程序计数器PC(Program Counter) 程序计数器是一个16位的专用寄存器,用来存放下一条指令的地址,具有自动加1的功能。当CPU要取指令时,PC的内容送地址总线上,从存储器中去取出一个指令码后,PC 内容自动加1,指向下一个指令码,以保证程序按顺序执行。 PC是用来指示程序的执行位置,在顺序执行程序时,单片机每执行一条指令,PC就自动加1,以指示出下一条要取的指令的存储单元的16位地址。也就是说,CPU总是把PC 的内容作为地址,根据该地址从存储器中取出指令码或包含在指令中的操作数。因此,每当取完一个字节后,PC的内容自动加1,为取下一个字节做好准备。由于51系列单片机的寻址范围为64K,所以,PC中数据的编码范围为0000H~FFFFH,共64K。单片机上电或复位时,PC自动清0,即装入地址0000H,这就保证了单片机上电或复位后,程序从0000H 地址开始执行。

超易单片机入门(小学生都能看得懂的PIC教程)

超易单片机入门(学单片机一定要看) ( 向作者致敬!) 一. 话说人间事物的学习,不外两类:一类入门易精通难,比如矿石机,再比如练书法谁都会写两下,可写好却不是一朝一夕的事儿。另一类则入门难精通易,比如超外差收音机,学会需要各种放大、振荡、反馈、混频、中频、统调等等,但是一旦你学会,做出一个高质量的收音机,确也不是难事。单片机属于后者,所以无论如何,你得用些时间,学习一些新名词并理解,甚至还得花一些小钱。但是,一旦你掌握,其乐趣也像收音机一样,很有吸引力的。 单片机不同于收音机,收音机的任务最终就是听好声音一个,单片机可以做很多事情,要你来安排它的工作。安排它就先的认识它,熟悉它。大家自己查看一下单片机的外形,不妨将它看成是一个8条腿的小螃蟹,这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。 第1、8条腿接电源 +5V和地线。头两条腿是螃蟹钳子,好吃的很。现在已经剩下6条腿了。 第2、3条腿使用时外接一个叫作晶振的东西,我们接一个4MHz的晶振(这还不知道?还是看一下:单片机之路(https://www.360docs.net/doc/2d11034301.html,)里面对晶振的介绍吧)。 第4条腿是复位脚,是一个信号输入脚。单片机正常运行时接高电平。当有一个低电平脉冲输入到这个脚时单片机就复位。所谓复位就是单片机内部所有的工作部件统统回到规定的状态,程序也复位到头一句上开始逐条运行。例如,你设计的一个报警锁定的LED红灯亮后,当需要解除报警时,用一个按钮给这个脚瞬时接地一下,相当于给它一个夫脉冲,系统就复位了,led灯就熄灭了,程序从头开始。 以上5个脚,几乎所有单片机都有,包括世界上最复杂的,和世界比较简单的单片机-PIC12CE519。 轮到底几条腿啦?奥,是第5条腿,这条叫单片机的I/O脚。就是输入输出脚。你可通过程序动态地控制它作为输入或输出,作为输出时可以程序控制它的

51单片机CPU的内部结构

51单片机CPU的内部结构 在前面的课程中,我们已知道了单片机内部有一个8位的CPU,同时知道了CPU 内部包含了运算器,控制器及若干寄存器。在这节课,我们就与大家一起来讨论一下51单片机CPU的内部结构及工作原理。 从上图中我们可以看到,在虚线框内的就是CPU的内部结构了,8位的MCS-51单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A (8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。 1、运算器(ALU)的主要功能 A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。 B)加、减、乘、除、加1、减1、比较等算术运算。 C)与、或、异或、求补、循环等逻辑运算。 D)位处理功能(即布尔处理器)。 由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A 也用于存放运算结果。 例如:执行指令 ADD A,B 执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部

数据总线,送回到累加器A。 2、程序计数器PC PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。 程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。 3、指令寄存器IR 指令寄存器的作用就是用来存放即将执行的指令代码。 在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。 4、指令译码器ID 用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。 5、地址寄存器AR(16位) AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。 6、数据寄存器DR 用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。 7、程序状态字PSW 用于记录运算过程中的状态,如是否溢出、进位等。 例如,累加器A的内容83H,执行: ADD A,#8AH ;累加器A与立即数8AH相加,并把结果存放在A中。 指令后,将产生和的结果为[1]0DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。 8、时序部件 由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号在后面的课程中我们将会安排一节课来讲解这些专用的寄存器。

从单片机初学者迈向单片机工程师_完整.doc

目录: KEY篇第一章----按键程序编写的基础 KEY篇第二章----基于状态转移的独立按键程序设计 LED篇第三章—模块化编程初识 LED篇第四章----渐明渐暗的灯 LED篇第五章----多任务环境下的数码管编程设计 我们用学单片机不要停在演示的基础上。只能让单片机完成局部事。这样我们永远不会走出流水灯地狱! !! 学习单片机也已经有几年了,藉此机会和大家聊一下我学习过程中的一些经历和想法吧。也感谢一线工人提供了这个机会。希望大家有什么好的想法和建议都直接跟帖说出来。毕竟只有交流才能够碰撞出火花来 几年前,和众多初学者一样,我接触到了单片机,立刻被其神奇的功能所吸引,从此不能自拔。很多个日夜就这样陪伴着它度过了。 期间也遇到过非常多的问题,也一度被这些问题所困惑……等到回过头来, 看到自己曾经走过的路,唏嘘不已。经常混迹于论坛里,也看到了很多初学者发的求助帖子,看到他们走在自己曾走过的弯路上,忽然想到了自己的那段日子,心里竟然莫名的冲动,凡此总总,我总是尽自己所能去回帖。很多时候,都想写一点什么东西出来,希望对广大的初学者有一点点帮助。但总是不知从何处写起。今天借一线工人的台,唱一唱我的戏。卖弄”也好,吹嘘”也罢,我只是想认真的写写我这一路 走来历经的总总,把其中值得注意,以及经验的地方写出来,权当是我对自己的一个总结吧。而作为看官的你,如果看到了我的错误,还请一定指正,这样对我以及其它读者都有帮助,而至于你如果从中能够收获到些许,那便是我最大的欣慰了。姑妄言之,姑妄听之。如果有啥好的想法和建议一定要说出来。 一路学习过来的过程中,帮助最大之一无疑来自于网络了。很多时候,通过网络,我们都可以获取到所需要的学习资料。但是,随着我们学习的深入,我们会慢慢发现,网络提供的东西是有限度的,好像大部分的资料都差不多,或者说是适合大部分的初学者所需,而当我们想更进一步提高时,却发现能够获取到的资料越来越少,相信各位也会有同感,铺天盖地的单片机资料中大部分不是流水灯就是 LED,液晶, 而且也只是仅仅作功能性的演示。于是有些人选择了放弃,或者是转移到其他兴趣上面去了,而只有少部分人选择了继续摸索下去,结合市面上的书籍,然后在网络上锲而不舍的搜集资料,再从牛人的只言片语中去体会,不断动手实践,慢慢的,也摸索出来了自己的一条路子。当然这个过程必然是艰辛的,而他学会了之后也不会在网络上轻易分享自己的学习成果。如此恶性循环下去,也就不难理解为什么初级的学习资料满天飞,而深入一点的学习资料却很少的原因了。相较于其他领域,单片机技术的封锁更加容易。尽管已经问世了很多年了,有价值的资料还是相当的欠缺,大部分的资料都是止于入门阶段或者是简单的演示实验。但是在实际工程应用中却是另外一回事。有能力的高手无暇或者是不愿公开自己的学习经验。 很多时候,我也很困惑,看到国外爱好者毫不保留的在网络上发布自己的作品,我忽然感觉到一丝丝的悲哀。也许,我们真的该转变一下思路了,帮助别人,其实也是在帮助自己。啰啰嗦嗦的说了这么多,相信大家能够明白说的是什么意思。在接下来的一段日子里,我将会结合电子工程师之家举办的主题周活动写一点自己的想法。尽可能从实用的角度去讲述。希望能够帮助更多的初学者更上一层楼。而关于这个主题周的最大主题我想了这样的一个名字从单片机初学者迈向单片机工程师”。名字挺大挺响亮,给我的 压力也挺大的,但我会努力,争取使这样的一系列文章能够带给大家一点帮助,而不是看后大跌眼镜。这样的一系列文章主要的对象是初学者,以及想从初学者更进一步提高的读者。而至于老手,以及那些牛XX 的人,希望能够给我们这些初学者更多的一些指点哈?@_@ 我们首先来看第一章节

单片机的内部结构

单片机的主要组成 ①一个8位的微处理器CPU。 ②片内数据存储器RAM(128B/256B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。 ③片内程序存储器ROM/EPROM(4KB/8KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPBOM,如8031、8032、80C31等。 ④四个8位并行I/O(输入/输出)接口P0—P3,每个口可以用作输入,也可以用作输出。 ⑤两个或三个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。 ⑥五个中断源的中断控制系统。 ⑦一个全双工UART(通用异步接收发送器)的串行I/O口,可实现单片机与单片机或其它微机之间串行通信。 ⑧片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接,最高允许振荡频率为12MHz。 /* BYTE Registers */ 1sfr P0 = 0x80;

2sfr P1 = 0x90; 3sfr P2 = 0xA0; 4sfr P3 = 0xB0; 5sfr PSW = 0xD0;程序状态字 6sfr ACC = 0xE0;累加器 7sfr B = 0xF0;B寄存器 8sfr SP = 0x81; 堆栈指针 9sfr DPL = 0x82;DPTR数据指针 10sfr DPH = 0x83; 11sfr PCON = 0x87;电源控制寄存器 12sfr TCON = 0x88;定时/计数控制寄存器 13sfr TMOD = 0x89; 定时/计数工作方式状态寄存器 14sfr TL0 = 0x8A; 15sfr TL1 = 0x8B; 16sfr TH0 = 0x8C; 17sfr TH1 = 0x8D; 18sfr IE = 0xA8;中断允许控制寄存器 18sfr IP = 0xB8;中断优先级控制寄存器 20sfr SCON = 0x98;串行口控制寄存器 21sfr SBUF = 0x99;串行口数据缓冲器

51单片机及C语言入门教程

51单片机 及C语言入门教程 注:排成16开版式,是为了方便自已打印阅读。请不要用于非法用途。 2007.12.20

51单片机及C语言入门教程 第一课 建立您的第一个C项目 使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。 以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。(安装的方法和普通软件相当这里就不做介绍了) 安装好后,你是不是迫不及待的想建立自己的第一个C程序项目呢?下面就让我们一起来建立一个小程序项目吧。或许你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。 首先当然是运行KEIL51软件。怎么打开?噢,天!那你要从头学电脑了。呵呵,开个玩笑,这个问题我想读者们也不会提的了:P。运行几秒后,出现如图1-1的屏幕。 图1-1启动时的屏幕

接着按下面的步骤建立您的第一个项目: (1)点击Project菜单,选择弹出的下拉式菜单中的New Project,如图1-2。接着弹出一个标准Windows文件对话窗口,如图1-3,这个东东想必大家是见了N次的了,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在"文件名"中输入您的第一个C程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。 图1-2New Project菜单 图1-3文件窗口 (2)选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。此时屏幕如图1-4

单片机入门常用知识

概述: 所谓单片机就是能在一个芯片上完成计算机处理功能的设备,在芯片的内部有计算单元、数据处理单元、程序存储以及常用的外部接口管理单元。在软件程序的管理控制下可实现设计者所需要的功能。 最初的单片机受芯片设计密度的限制,功能和性能不强,随着技术的发展,目前的单片机可实现大多数的常用接口功能,软件的存储空间也越来越大,处理能力大幅增加。 单片机常用功能: 普通端口功能:单片机都带有多个逻辑端口,可作为逻辑状态的输入输出使用,可用于控制或读取外部状态。 定时功能:单片机内部包含有定时器,通过对定时时钟进行计数来产生需要的延时,延时的长短可通过设置定时器的计数值来设置。 中断功能:单片机内部设定有多个中断入口,每当产生中断条件后,程序自动跳入到中断入口,通过中断入口的跳转指令转到中断处理程序,执行完后返回到产生中断跳转程序处的下一个指令地址。在单片机接口上,有专用的中断管脚,可设置为电平中断或边沿中断,当管脚出现条件时,设置对应的中断标志,触发相应中断。除了管脚中断,串口、定时、A/D等几乎都可产生中断。同时,中断的响应还需要设置对应的寄存器到要求的状态才可。 串口功能:串口相对于并口来说,数据是通过一个管脚送出或读入,数据长度一般为8位,按顺序移位送出。串口特点具有实用管脚少,应用方式灵活的特点,通过RS232电平转换可直接和计算机的串

口进行通讯。 A/D功能:可直接输入模拟信号,软件发出转换信号后,信号的幅值可通过转换变换为数值信号送对应的寄存器上。 D/A功能:可直接输出模拟信号,信号的幅值可通过D/A端口的设置数值来设定。 以上为常用功能,有些单片机还有SPI、USB、CAN等多种接口外部常用设备: 显示和输入:单片机的处理信息一般通过液晶屏或数码管来显示处理内容,液晶屏或数码管可直接连接到单片机管脚上,按照显示需求设置软件即可,输入多用按键输入,也可直接连接到单片机管脚上,软件通过监测管脚状态可获得按键信息。 串口应用:单片机串口信号一般为TTL电平,外部常用RS232或RS485,在应用中需要加对用的转换芯片或模块。 开发环境: 单片机储存的程序为二进制格式,把程序写入到单片机需要专用的设备,早期完成这个功能采用编程器来完成,编程器通过打印机口或串口以及USB口和计算机连接,单片机则通过可锁插座装入到编程器上,通过计算机上的软件选择好单片机型号,读入要下载的二进制软件,然后运行编程,则完成下载。目前,则是通过仿真器(下载线)来完成,一般是通过USB口连接计算机,计算机上下载功能和仿真功能集合到一起。通过编译软件把软件编译成二进制文件,然后直接下载即可。下载后的软件可通过仿真运行进行调试。

单片机初学者必须掌握的几个概念

单片机初学者必须掌握的几个概念 一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢这种情况是是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称控制总线。 在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能用,分配地址当也是以电信号的形给出的,由于存储单元比较多,所以,用于地址分的线也较多,这些线被称为地址总线。 二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的─数字,或者说都是串‘0‘和‘1‘组成的序列。换言之,地址、指令也都是数据。指令由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关,不可以由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内单元的地址值已由芯设计者规定好,不可更改,外部的单元可以由单片机开发者自行决,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况: 1地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。 2方式字或控制字(如MOV TMOD,#3),3即是控制字。 3常数(如MOV TH0,#10H)10H即定时常数。 4实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执兄令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际出的值。理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指令来行了。 三、P0口、P2口和P3的第二功能用法初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间要有个切换的过程,或者说要有一条指令,事实,各端口的第二功能完全是自动,不需要指令来转换。如、分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们挥作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从 P3. 或送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用‘也并不是‘不能而是(使用者)‘不会‘将其作为通用I/O口使用。你完全可以在指令中按排一条S ETB 的指令,并且当单片机执行到这条指令时,也会使变为高电平,但使用者不会这么做,因为这通常这会导致系统当溃(即死机)。 四、程序的执行过程单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000,所以程序总是从‘0000‘单元开始执行,也就是说:在系统的ROM中一定要存在‘0000‘个单元,并且在‘0000‘单元中存放的一定是一条指令。

单片机学习感悟1.doc

单片机学习感悟1 这个我从别处贴来百度文库的。写的非常的好。我们用学单片机不要停在演示的基础上。只能让单片机完成局部事。这样我们永远不会走出流水灯地狱!!! 学习单片机也已经有几年了,藉此机会和大家聊一下我学习过程中的一些经历和想法吧。也感谢一线工人提供了这个机会。 。“卖弄”也好,“吹嘘”也罢,我只是想认真的写写我这一路走来历经的总总,把其中值得注意,以及经验的地方写出来,权当是我对自己的一个总结吧。而作为看官的你,如果看到了我的错误,还请一定指正,这样对我以及其它读者都有帮助,而至于你如果从中能够收获到些许,那便是我最大的欣慰了。姑妄言之,姑妄听之。几年前,和众多初学者一样,我接触到了单片机,立刻被其神奇的功能所吸引,从此不能自拔。很多个日夜就这样陪伴着它度过了。期间也遇到过非常多的问题,也一度被这些问题所困惑……等到回过头来,看到自己曾经走过的路,唏嘘不已。经常混迹于论坛里,也看到了很多初学者发的求助帖子,看到他们走在自己曾走过的弯路上,忽然想到了自己的那段日子,心里竟然莫名的冲动,凡此总总,我总是尽自己所能去回帖。很多时候,都想写一点什么东西出来,希望对广大的初学者有一点点帮助。但总是不知从何处写起。今天借一线工人的台,唱一唱我的戏一路学习过来的过程中,帮助最大之一无疑来自于网络了。很多时候,通过网络,我们都可以获取到所需要的学习资料。但是,随着我们学习的深入,我们会慢慢发现,网络提供的东西是有

限度的,好像大部分的资料都差不多,或者说是适合大部分的初学者所需,而当我们想更进一步提高时,却发现能够获取到的资料越来越少,相信各位也会有同感,铺天盖地的单片机资料中大部分不是流水灯就是LED,液晶,而且也只是仅仅作功能性的演示。于是有些人选择了放弃,或者是转移到其他兴趣上面去了,而只有少部分人选择了继续摸索下去,结合市面上的书籍,然后在网络上锲而不舍的搜集资料,再从牛人的只言片语中去体会,不断动手实践,慢慢的,也摸索出来了自己的一条路子。当然这个过程必然是艰辛的,而他学会了之后也不会在网络上轻易分享自己的学习成果。如此恶性循环下去,也就不难理解为什么初级的学习资料满天飞,而深入一点的学习资料却很少的原因了。相较于其他领域,单片机技术的封锁更加容易。尽管已经问世了很多年了,有价值的资料还是相当的欠缺,大部分的资料都是止于入门阶段或者是简单的演示实验。但是在实际工程应用中却是另外一回事。有能力的高手无暇或者是不愿公开自己的学习经验。 很多时候,我也很困惑,看到国外爱好者毫不保留的在网络上发布自己的作品,我忽然感觉到一丝丝的悲哀。也许,我们真的该转变一下思路了,帮助别人,其实也是在帮助自己。啰啰嗦嗦的说了这么多,相信大家能够明白说的是什么意思。在接下来的一段日子里,我将会结合电子工程师之家举办的主题周活动写一点自己的想法。尽可能从实用的角度去讲述。希望能够帮助更多的初学者更上一层楼。而关于这个主题周的最大主题我想了这样的一个名字“从单片机初学者 迈向单片机工程师”。名字挺大挺响亮,给我的压力也挺大

单片机基础知识

1.一个完整的微机系统由硬件和软件两大部分组成 2.微型计算机的性能指标: 字长、运算速度、存储容量、软件配置、外设扩展能力 字:一组二进制数,字长:该二进制数的位数,字长越大,计算机处理数据越快运算速度:表达方式:cpu主频,越高,运算速度越快 存储容量:内存储容量(cpu直接访问存储器)、外存储容量(硬盘容量) 2.计算机系统:硬件系统(冯.诺依曼结构)(运算器、存储器、控制器、输入输出设备)、软件系统(运行程序和相应文档) 3.CPU主要组成部分:运算器、控制器 ALU运算器核心、累加器A、标志寄存器FR(C进、借位,OF溢出标志)、(不影响标志位CY的指令:INC A) 寄存器组RS、控制器CU(pc程序计算器、ir指令寄存器、id指令译码器) 4.存储器:RAM、ROM,其中RAM 具有易失性,常用于存储临时性数据 存储器的地址范围是0000H~0FFFH,它的容量为4KB(16*16*16=4*1024) 5.总线bus:传递信息的公共通信公道 片总线、内总线、外总线 地址总线(AB)、控制总线(CB)、数据总线(DB) 6.单片机(芯片)包括五部分:运算器、存储器、控制器、输入部分、输出部分8051:8位单片机 8031:复位后,PC和SP为:0000H、07H 7.二进制B、八进制O、十进制D、十六进制H 8.原码、反码、补码、压缩BCD码

9.单片机引脚: P1.0VCC(40引脚)P1.1P0.0 P1.2P0.1 P1.3P0.2 P1.4P0.3 P1.5P0.4 P1.6P0.5 P1.7P0.6 RST P0.7 RXD EA/VPP TXD ALE/PROG ITR0PSDE ITR1P2.7 T0P2.6 T1P2.5 WR P2.4 RD P2.3 XTAL2P2.2 XTAL1P2.1 GND P2.0(21引脚)

单片机学习方法和步骤

单片机学习方法和步骤 学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而学。不管是哪种动机,因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据笔者的亲身学习经验和教授徒弟学习的感受,提出笔者的学习方法和步骤。 第一步:基础理论知识学习 基础理论知识包括模拟电路、数字电路和C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。 笔者始终认为,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。有些同学觉得单片机很难,越学越复杂,最后学不下去了。有的同学看书时似乎明白了,可是动起手来却一塌糊涂,究其原因就是电子技术基础没有打好,首先被表面知识给困惑了。 单片机属于数字电路,其概念、术语、硬件结构和原理都源自数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,就能轻松地迈开学习的第一步,自信心也会树立起来。相反,基础不好,这个看不懂那个也弄不明白,越学问题越多,越学越没有信心。如果你觉得单片机很难,那就应该先放下单片机教材,去重温数字电路,搞清楚触发器、寄存器、门电路、COMS电路、时序逻辑和时序图、进制转换等理论知识。理解了这些知识之后再去看看单片机的结构和原理,我想你会大彻大悟,信心倍增。 模拟电路是电子技术最基础的学科,她让你知道什么是电阻、电容、电感、二极管、三极管、场效应管、放大器等等以及它们的工作原理和在电路中的作用,这是学习电子技术必须掌握的基础知识。一般是先学习模拟电路再去学习数字电路。扎实的模拟电路基础不仅让你容易看懂别人设计的电路,而且让你的设计的电路更可靠,提高产品质量。

单片机内部AD的用法

STC系列单片机内部AD的应用 作者:郭天祥来源:原创更新时间:2008-11-27 22:16:38 浏览次数:11438 STC89LE52AD、54AD、58AD、516AD这几款89系列的STC单片机内部自带有8路8位的AD转换器,分布在P1口的8位上,当时钟在40MHz以下时,每17个机器周期可完成一次AD转换。 与AD相关的几个寄存器如表1所示。 表1 STC89系列单片机AD相关寄存器 P1_ADC_EN:P1.X口的AD使能寄存器。 相应位设置为“1”时,对应的P1. X口作为AD转换使用,内部上拉电阻自动断开。 ADC_CONTR:AD 转换控制寄存器。 ADC_START:AD转换启动控制位,设置为“1”时,AD开始转换。 ADC_FLAG:AD转换结束标志位,当AD转换完成后,ADC_FLAG=1。 CHS2、CHS1、CHS0:为模拟输入通道选择,如表2所示。 表2 STC89系列单片机AD模拟通道选择设置

ADC_DATA:AD 转换结果寄存器。模拟/数字转换结果计算公式如下: 结果=256×Vin / Vcc Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。 下面一个例程演示STC89LE516AD/X2系列单片机的A/D转换功能。时钟11.0592MHz,转换结果以16进制形式输出到串行口,可以用串行口调试程序观察输出结果。(本代码摘自宏晶科技芯片手册,经作者调试可正常运行)。 新建文件part3.4.5.c,程序代码如下: #include #include // 定义与ADC 有关的特殊功能寄存器 sfr P1_ADC_EN = 0x97; //A/D转换功能允许寄存器 sfr ADC_CONTR = 0xC5; //A/D转换控制寄存器 sfr ADC_DATA = 0xC6; //A/D转换结果寄存器 typedef unsigned char INT8U; typedef unsigned int INT16U; void delay(INT8U delay_time) // 延时函数 { INT8U n; INT16U m; for (n=0;n

云龙电子-51单片机视频教程简介

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

相关文档
最新文档