单片机程序解释说明

单片机程序解释说明,第1张

ORG OOH //程序开始

START:JB P3.0,LIG //如果P3.0等于0,跳转到LIG

CLR P1.0 //赋值,P1.0=0

SJMP START //跳转到START

LIG: SETB P1.0 //置一,P1.0=1

SJMP START //跳转到START

END //结束

整个程序的作用就是:判断P3.0的状态。如果P3.0=1,则P1.0=1如果P3.0=0,则P1=0。

CNTA EQU 30H 定义CNTA为寄存器30H

COUNT EQU 31H定义COUNT为寄存器31H

ORG 00H ;程序开始

LJMP START ;开始程序入口

ORG 0BH ;定时器T0中断程序入口地址,不过最好用ORG000BH

LJMP T0X ;T0中断程序入口

ORG 0030H;主程序开始地址,初始化开始

START: MOV CNTA,#00H ;

MOV COUNT,#00H

MOV TMOD,#01H ;定时器T0工作方式1

MOV TH0,#(65536-1000) / 256 ;这是C的方式,不知道汇编支持不支持?

MOV TL0,#(65536-1000) MOD 256

SETB TR0 ;T0计时开始

SETB ET0 ;开T0中断

SETB EA ;开总中断(你这边最好按 SETBEA

SETBET0

SETBTR0的顺序)

WT: JB P2.0,WT ;判断P2.0,如果是高,等待。

MOV R6,#5 ;如果P2.0为低,延时开始

MOV R7,#248 ;这个延时是为了消抖

D1: DJNZ R7,$ ;以防误判

DJNZ R6,D1

JB P2.0,WT ;延时结束,继续判断P2.0的状态,如果不为低,继续等待

INC COUNT;如果为低,COUNT加1

MOV A,COUNT ;判断COUNT的数值

CJNE A,#03H,NEXT ;如果COUNT不等于3,转到 NEXT执行

MOV COUNT,#00H ;如果是3,清COUNT为0

NEXT: JNB P2.0,$ ;等待P2.0为高

SJMP WT ;如果P2.0释放,循环

T0X: NOP ;T0中断服务程序

MOV TH0,#(65536-1000) / 256 ;重装初值

MOV TL0,#(65536-1000) MOD 256

MOV DPTR,#TAB ;把表的基址赋予DPTR

MOV A,CNTA ;把变址给A

MOVC A,@A+DPTR;查表

MOV P3,A ;把查出的表值给P3口

MOV DPTR,#GRAPH ;把GRAPH赋予DPTR

MOV A,COUNT ;把COUNT值给A

MOV B,#8 ;

MUL AB;AB相乘,值放A里

ADD A,CNTA;A加CNTA的值放A里做变址

MOVC A,@A+DPTR;查表

MOV P1,A ;查表值给P1口

INC CNTA ;连续查

MOV A,CNTA

CJNE A,#8,NEX ;不到8次,中断返回,下次接着上个地址查表

MOV CNTA,#00H ;8次到了,从头开始

NEX: RETI ;中断返回指令

TAB: DB ;表0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH

GRAPH: DB 12H,14H,3CH,48H,3CH,14H,12H,00H

DB 00H,00H,38H,44H,44H,44H,38H,00H

DB 30H,48H,44H,22H,44H,48H,30H,00H

END

单片机是典型的嵌入式微控制器(Microcontroller Unit),由运算器,控制器,存储器,输入输出设备等构成,相当于一个微型的计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;已经从上世纪80年代的4位、8位单片机,发展到现在的32位甚至64位的高速单片机。[1]

中文名

单片机

外文名

Microcontroller Unit

性质

嵌入式微控制器

优点

体积小、质量轻、价格便宜

组成

运算器、控制器、存储器、输入输出设备

种类

3种

类别

电路芯片

相关概述

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit), 常用英文字母的缩写MCU表示单片机。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。

单片机

由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

INTEL的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到现在基于8051的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。

现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。 汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作。

应用分类

单片机作为计算机发展的一个重要分支领域,根据发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。

通用/专用型

这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

总线型/非总线型

这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

工控型/家用型

这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

相关历史

单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。

起初模型

单片机

SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。

MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。

Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。

SoC即嵌入式系统(System on Chip)寻求应用系统在芯片上的最大化解决使得专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有越来越大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。

单片机发展史

1971年intel公司研制出世界上第一个4位的微处理器;Intel公司的霍夫研制成功世界上第一块4位微处理器芯片Intel 4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。因发明微处理器,霍夫被英国《经济学家》杂志列为“二战以来最有影响力的7位科学家”之一 。  

 1971年11月,Intel推出MCS-4微型计算机系统(包括4001 ROM芯片、4002 RAM芯片、4003移位寄存器芯片和4004微处理器 )其中4004包含2300个晶体管,尺寸规格为3mm×4mm,计算性能远远超过当年的ENIAC,最初售价为200美元。  

 1972年4月,霍夫等人开发出第一个8位微处理器Intel 8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。  

 1973年intel公司研制出8位的微处理器8080;1973年8月,霍夫等人研制出8位微处理器Intel 8080,以N沟道MOS电路取代了P沟道,第二代微处理器就此诞生。

主频2MHz的8080芯片运算速度比8008快10倍,可存取64KB存储器,使用了基于6微米技术的6000个晶体管,处理速度为0.64MIPS(Million Instructions Per Second )。  

 1975年4月,MITS发布第一个通用型Altair 8800,售价375美元,带有1KB存储器。这是世界上第一台微型计算机。

1976年intel公司研制出MCS-48系列8位的单片机,这也是单片机的问世。Zilog公司于1976年开发的Z80微处理器,广泛用于微型计算机和工业自动控制设备。当时,Zilog、Motorola和Intel在微处理器领域三足鼎立。

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12111950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存