文档库 最新最全的文档下载
当前位置:文档库 › 爱上单片机

爱上单片机

爱上单片机
爱上单片机

https://www.wendangku.net/doc/523298751.html,/program.html

面包板入门单片机:

https://www.wendangku.net/doc/523298751.html,/articles.html

《单片机编程魔法学校》:

https://www.wendangku.net/doc/523298751.html,/articles/0802_MCU_Magic_School/MCU_Magic_Sch ool.rar

先别急着看芯片手册

试试用面包板入门单片机:https://www.wendangku.net/doc/523298751.html,/video/BREAD_1/index.html 无需焊接,修改方便

简单入门:https://www.wendangku.net/doc/523298751.html,/video/STC/index.html

单片机入门制作专辑:

https://www.wendangku.net/doc/523298751.html,/articles/0711_MCU_entry_album/MCU_entry_album.r ar

单片机编程魔法学校:

https://www.wendangku.net/doc/523298751.html,/articles/0802_MCU_Magic_School/MCU_Magic_Sch ool.rar

推荐本书《爱上单片机》

如何看懂芯片手册:(完整版的带图片的在单片机编程魔法学校最后一篇)

要想彻底了解AT89S52,那就要看它的技术手册,因为这是单片机生产商提供的资料,是最正确、最权威的数据,

我们在其它文章中看到的对S52单片机的介绍都是从技术手册里看到,然后添枝加叶写出来的,实质性的东西万变不离技术手册。我在这里千言万语也不如你静下心来认真去看一看它,如果英语不好的朋友也可以先看看51 系列的中文翻译版然后再对照英文的看一遍,总之英语的一定要看,记住一些重要词汇,其它类似的手册中也会出现。

一般我们要了解一款芯片都要在技术手册上找以下几个重点,接口定义、主要技术参数(如电压范围、功耗)、时序、操作方法、封装形式等。理论总是有点抽象,举一个实用的例子吧,我们一般不会找电阻和电容的技术手册,

也是相当少见,一般我们需要的是芯片的手册,主要的还是和单片机的接口芯片,我们就是来学单片机的嘛。我们拿一款常用的实时时钟芯片DS1302 开刀,虽然熟悉的朋友感觉讲这个没有什么新意,不过用它更容易讲明道理。

想一想一个时钟芯片我们需要它的什么功能?很简单,它要提供给单片机一个时间,这是最基本的。我们的目的就是让单片机得到这个时间。首先要有一个硬件电路,是电路都得有电源吧,我们要在技术手册里先找到芯片的工作

电压什么范围,再看一下哪一个接口是连接电源的,备用电池接到哪个接口。其次就是看通信接口是哪几个,是什么通信方式的,I2C、ISP、还是其它协议,最后看看它还有什么别的功能。图1 所示是DS1302 时钟芯片技术手册

上关于接口的定义和说明,虽然是英文的,但是为了想当高手也得学着看呀,不会的查词典去。在软件上要了解芯片的通信时序,不管是什么芯片无非就是读和写两个操作,图2所示是技术手册上关于数据读、写的时序。

时序图这个地方应该说道说道,可能有一些朋友还不太明白、不懂分析。图2 所示的时序图是读和写两个时序图,上面的是读时序。所谓时序就是按照时间顺序的一个操作过程,在读时序部分有三条弯延曲折的横线,左边有它们

的名字,分别是RST、SCLK、I/O,这是对应着芯片上的三个接口,时间从左边开始向右走,横线向上走了就表示在单片机控制上要拉成高电平(操作数据为1),横线向下走则控制成低电平(操作数据为0),如果又有上走又有下走(像I/O 时序线上的)就表示根据实际情况定义电平高低。现在我们用一个尺子竖在图表上,从左向右滑动来模拟时序的行走。一开始三条线都是平静的,突然RST 向上走了,表示RST 接口需要变成高电平。继续走突然I/O线又变成高或者低电平了。I/O 是数据线,所以这个高或低可能是读出来的值或是需要写入的值,I/O 时序部分下面有一行字写着“WRITE COMMAND BYTE(写入指令字节)”意思说这个值是需要单片机写入的,至于写什么内容要看数据指令对照表。假设我们的单片机在这时向I/O 接口写入0 或1,继续向下走。突然SCLK 变高电平了,我们要让单片机把SCLK 接口变成高电平,之后就这样一直走下去。这个识图的过程就好像我们刚学习识别电路图一样,需要一个过程。现在经验告诉我RST 是一个芯片使能接口,高电平使芯片允许读写数据。单片机向SCLK 写入高低电平变化的时钟信号,I/O 按照这个时钟信号在SCLK从低电平变成高电平的时候将芯片写入0、1 数据或是读出数据。可能有些朋友暂时还看不明白,不过没有关系,只要多看多思考就会有效果的,要知道能看懂数据手册就变成设计者了,这还不够你显摆的吗。在写程序的时候就可以根据时序表的顺序操作,[程序1]是一个简单的示范,并不能真正应用,它就是按时序表顺序编写的,时序表和数据指令对照表是芯片驱动程序编写的本源,不信你找一找别人写过的DS1302 驱动程序,看看是不是和这个时序表中所介绍的一样呢。

技术手册是一个好东西,每当你见到不熟悉的芯片时首先就要想到找一找它的技术手册,当你可以独立欣赏技术手册时,你就已经不简单了。如果还可以根据技术手册写出驱动程序来,那你就可以考虑向《无线电》杂志投稿了,

至于能不能发表是另一回事情,因为事实已经证明你从初学者一跃成为设计者兼教育者的高手。

https://www.wendangku.net/doc/523298751.html,/soft2.htm

https://www.wendangku.net/doc/523298751.html,/material2.htm

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 单片机需外置振荡电容。

单片机35个实例1(汇编)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。

4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此, 我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太 大,所以我们在执行某一指令时,插入延时程序,来达到我们 的要求,但这样的延时程序是如何设计呢?下面具体介绍其原 理: 如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒 机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248 =498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002

因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7 =248时,延时10ms,以此为基本的计时单位。如本实验要求 0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如 下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据 发光二极管的单向导电性可知,这时发光二极管L1熄灭;当 P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我 们可以使用SETB P1.0指令使P1.0端口输出高电平,使用 CLR P1.0指令使P1.0端口输出低电平。 5.程序框图

51单片机C语言入门教程详细解说

单片机c语言入门 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具 体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使

单片机内部主要部件

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 地址开始执行。

基于protuse的单片机模拟的实例

本人对单片机的一些了解,在这里和大家分享。 (1)基于AT89C52的同步串口通信 ①单片机1程序 (程序在Kile C51上运行通过。) /******************************************************************** * 文件名:液晶1602显示.c * 描述: 该程序实现了对液晶1602的控制。 * 创建人:东流,2009年4月10日 * 版本号:2.0 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int //这三个引脚参考资料 sbit E=P3^5; //1602使能引脚 sbit RW=P3^6; //1602读写引脚 sbit RS=P3^7; //1602数据/命令选择引脚 sbit aaa=P1^0; sbit bbb=P1^1; sbit aa=P3^0; sbit bb=P3^1; /******************************************************************** * 名称: delay() * 功能: 延时,延时时间大概为140US。 * 输入: 无 * 输出: 无

***********************************************************************/ void delay() { int i,j; for(i=0; i<=100; i++) for(j=0; j<=20; j++) ; } /******************************************************************** * 名称: enable(uchar del) * 功能: 1602命令函数 * 输入: 输入的命令值 * 输出: 无 ***********************************************************************/ void enable(uchar del) { P2 = del; RS = 0; RW = 0; E = 0; delay(); E = 1; delay(); } /******************************************************************** * 名称: write(uchar del) * 功能: 1602写数据函数 * 输入: 需要写入1602的数据 * 输出: 无 ***********************************************************************/ void write(uchar del) { P2 = del; RS = 1; RW = 0; E = 0; delay(); E = 1; delay();

单片机的内部结构

单片机的主要组成 ①一个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口连接计算机,计算机上下载功能和仿真功能集合到一起。通过编译软件把软件编译成二进制文件,然后直接下载即可。下载后的软件可通过仿真运行进行调试。

51单片机50个实例代码

51单片机50个例程代码程序里有中断,串口等驱动,直接复制即可使用1-IO输出-点亮1个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.wendangku.net/doc/523298751.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 sbit LED=P1^0;// 用sbit 关键字定义LED到P1.0端口, //LED是自己任意定义且容易记忆的符号 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用bit位对单个端口赋值 LED=1; //将P1.0口赋值1,对外输出高电平 LED=0; //将P1.0口赋值0,对外输出低电平 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 2-IO输出-点亮1个LED灯方法2 /*-----------------------------------------------

名称:IO口高低电平控制 论坛:https://www.wendangku.net/doc/523298751.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用1个字节对单个端口赋值 P1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉, //ff换算成二进制是1111 1111 P1 = 0xfe; //P1口的最低位点亮,可以更改数值是其他的灯点亮 //0xfe是16进制,0x开头表示16进制数, //fe换算成二进制是1111 1110 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 3-IO输出-点亮多个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.wendangku.net/doc/523298751.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的多个LED灯

单片机实例下载大全

单片机资料下载,省去找资料的麻烦 ,只供学习参考用,下载24内删掉,祝大家学习进步 单片机点阵学习资料 https://www.wendangku.net/doc/523298751.html,/forum.php?mod=viewthread&tid=1703&extra=page%3D1 手把手教你学单片机--教程视频 https://www.wendangku.net/doc/523298751.html,/forum.php?mod=viewthread&tid=1688&extra=page%3D1 力天把手教你学单片机视频教程 https://www.wendangku.net/doc/523298751.html,/forum.php?mod=forumdisplay&fid=110&page=1 谱中单片机开发板例程 https://www.wendangku.net/doc/523298751.html,/forum.php?mod=viewthread&tid=1683&extra=page%3D1 初学单片机的30多个小实验,硬件简单,对初学者有帮助 https://www.wendangku.net/doc/523298751.html,/forum.php?mod=viewthread&tid=1962&extra=page%3D1 用单片机制作的MP3 https://www.wendangku.net/doc/523298751.html,/forum.php?mod=viewthread&tid=1701&extra=page%3D1 51单片机应用开发大全所含100个范例代码及电路图 https://www.wendangku.net/doc/523298751.html,/forum.php?mod=viewthread&tid=1820 学林电子最新图文教程【含28个单片机实例流程图】 https://www.wendangku.net/doc/523298751.html,/forum.php?mod=viewthread&tid=1959&extra=page%3D1 谱中单片机程序烧录工具STC https://www.wendangku.net/doc/523298751.html,/forum.php?mod=viewthread&tid=1682&extra=page%3D1 吉林大学《单片机技术》32讲

单片机基础知识

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引脚)

基于51单片机光电对管智能小车从入门到精通全教程分解

电子科技协会--《电子实践制作教程》
目录
第九章、基于 51 单片机的红外循迹小车..................................................................................... 2 1、制作要求............................................................................................................................. 2 2、制作目的............................................................................................................................. 2 3、制作方案(硬件方面) ..................................................................................................... 2 3.1 系统概述.................................................................................................................... 2 3.2 单片机模块................................................................................................................ 3 3.3 指示灯原理图............................................................................................................ 4 3.4 红外对管原理图 ........................................................................................................ 4 3.5 电机驱动模块............................................................................................................ 5 4、制作方案(软件方面) ..................................................................................................... 7 4、 附录................................................................................................................................... 9 5.1 实物和效果展示 ........................................................................................................ 9 5.2 参考程序: ........................................................................................................... 9 5.3 基于 C51 控制红外循迹小车原理图 ................................................................. 17
1 / 18

1小时学会51单片机C语言入门教程

1小时学会51单片机C语言入门教程相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚,更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已~ 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机,但是具体长成什么样子,却一点也不知道~看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大机长成什么样子呢~而我对单片机的痴迷更是常四毕业的人也同样不知道单片人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候,我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂, 或但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出,许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门

单片机内部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

单片机内部资源分配

2.3 单片机内部资源分配 2.3.1 MCS-51存储器空间 MCS-51单片机在物理结构上有四个存储空间: 片内程序存储器(ROM) 片外程序存储器(外扩) 片内数据存储器(RAM) 片外数据存储器(外扩) 但在逻辑上,即从用户的角度上(地址分配),8051单片机有三个存储编址空间,即:片内程序存储器、片外程序存储器统一编址的64KB(26*210=65536个单元)的程序存储器地址空间(C:)、256B(8位地址)的片内数据存储器的地址空间(D:)以及64KB(216)片外数据存储器的地址空间(X:)。在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。 在MCS-51单片机的芯片内部,主要有RAM和ROM两类存储器,即所谓的片内RAM和片内ROM。 1、片内数据存储器区(RAM) 8051的内部RAM共有256个单元,通常把这256(28)个单元按其功能划分为两部分:低128(0~127)单元(单元地址为00H~7FH)和高128(128~255)单元(单元地址为80H~FFH)。表2.2所示为低128字节单元的配置情况。 低128单元是单片机的真正RAM存储器,按用途划分为工作寄存器区、位寻址区和用户RAM区三个区域。

表2.2 低128字节单元的配置 30~7FH 数据缓冲区 20~2FH 位寻址区(00~7FH) 18~1FH 工作寄存器组3(R0~R7) 10~17H 工作寄存器组2(R0~R7) 08~0FH 工作寄存器组1(R0~R7) 00~07H 工作寄存器组0(R0~R7) (1)工作寄存器区 8051共有4组工作寄存器,每组8个寄存单元,各组都以R0~R7作寄存单元名称。工作寄存器常用于存放操作数中间结果等。由于它们的功能及使用不作预先规定,因此称之为工作寄存器,有时也叫通用寄存器。4组工作寄存器占据内部RAM的00H~1FH共32个单元地址。 在任何时刻,CPU只能使用其中的一组工作寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1(D4)、RS0(D3)位的状态组合来决定。 (2)位寻址区(只有位寻址区的位可单独访问,其余的单元均只能按字节为单位访问) 内部RAM的20H~2FH单元,既可作为一般RAM字节单元使用,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,计128位,每一位都有独立的位地址,其范围为00H~7FH。MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。这种位寻址能力是MCS-51的一个重要特点。表2.3为位寻址区的位地址。

(1小时学会C语言51单片机)C语言入门教程

相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具 体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使 你每天捧着本书,把那本书翻烂,也永远学不会单片机的!刚接触单片机的朋友,看了资料,一定会对以下几个词见的比较多,但是具体的概 念还是比较模糊,现作如下说明: (1)编程器编程器是用来烧单片机芯片的,是把HEX或者BIN文件烧到单片机ROM里

单片机应用实例报告

单片机应用实例报告 零.序 这个学期一开始便接触了《单片微型计算机原理与接口技术》,听说是《微型计算机控制技术实用教程》的基础,对于工科的我来说学以致用无非是一切的一切,虽然还是个该领域的菜鸟,但是单片机之于自动化的意义不言而喻,对于这篇论文,以下开始展开,不足之处谅解。 一.概述 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 关于80C51:该系列单片机是采用高性能的静态80C51 设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12 时钟和 6 时钟操作P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行I/O 口可用于多机通信 I/O 扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0 。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM 定时器,串口和中断系统仍然工作掉电模式保存RAM的内容但是冻结振荡器导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复的。 二.应用领域 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、

相关文档