mcs-51mcs51系列单片机原理a0-a10的硬件原理图怎么画呢

单片机原理 【范文十篇】
单片机原理
范文一:AT89S52单片机最小系统设计报告
此最小系统以AT89S52单片机为中心控制器,包括电源模块和USB下载电路、晶振电路、复位电路。
一、51单片机最小系统及复位电路
如下图1-1、1-2、1-3所示,为AT89S52单片机引脚图及其晶振和复位电路。
图1-1 AT89S52单片机引脚图
AT89S52单片机是ATMEL公司生产的一款低功耗、高性能的CMOS 8位微控制器,具有8K在系统可编程Flash存储器,使用该公司高密度非易失性存储器技术制造,与MCS-51单片机兼容(引脚和指令完全兼容)。
AT89S52具有一下标准功能:8K字节Flash,256字节RAM,32位I/O接口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路,支持低功耗空闲和掉电模式。我个人认为,51单片机的一个优点就是具有丰富的位操作指令。
图1-2 单片机晶振电路
单片机晶振两个电容的作用:这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮发。它会影响到晶振的谐振频率和输出幅度,一般订购晶振时候供货方会问你负载电容是多少。 晶振的负载电容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg为分别接在晶振的两个脚上和对地的电容,Cic(集成电路内部电容)+△C(PCB上电容)经验值为3至
图1-3 单片机复位电路
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经过一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机复位电路参数的选定须在振荡稳定后保证复位高电平持续时间大于2个机器周期。
AT89S52单片机是整个开发板的控制中心,我们在选用电路时应该保证它的
可靠性和抗干扰性.在选用具体电子器件的时候,应该确定它的各项参数,尽量使用参数相当的器件。
二、USB下载电路及电源模块
如下图2-2所示,为开发板的电源电路。开发板使用+5V稳压电源,可以使
用插针供电,也可以使用电源插座。
图2-2 开发板电源电路和USB下载电路
图中IN4004为稳压二极管,最大反向电流为400V,电路中C7为整流电容,C6、C8为滤波电容,放光二极管是电源工作指示灯。对于发光二极管串联电阻的选取,我们可以这样计算:R=(VCC-Vd)/Id。其中Vd为发光二极管的压降,Id为发光二极管正常发光时的额定电流。一般红色发光二极管的压降为2.0--2.2V,黄色发光二极管的压降为1.8—2.0V,绿色发光二极管的压降为3.0—3.2V,正常发光时的额定电流约为20mA。
我们使用与开发板配套的USB下载器下载,在线调试程序,方便笔记本用户使用该开发板。其中,S17为多路选择插针,通过短路冒端接左右两个针,可以选择是电源供电还是USB供电。
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机
初学者以启发,更快地成为单片机领域的优秀人才。
2.硬件组成
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、
电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。
图1 流水灯硬件原理图
从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反, 如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,
否则我们就看不到“流水”效果了。
3.软件编程
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点
和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几
种软件编程方法。
这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电
平,从而来控制相应LED灯的亮灭。程序如下:
ORG 0000H ;单片机上电后从0000H地址执行
AJMP START ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
START:MOV SP,#60H ;设置堆栈起始地址为60H
CLR P1.0 ;P1.0输出低电平,使LED1点亮
ACALL DELAY ;调用延时子程序
P1.0 ;P1.0输出高电平,使LED1熄灭
P1.1 ;P1.1输出低电平,使LED2点亮
ACALL DELAY ;调用延时子程序
P1.1 ;P1.1输出高电平,使LED2熄灭
P1.2 ;P1.2输出低电平,使LED3点亮
ACALL DELAY ;调用延时子程序
P1.2 & ;P1.2输出高电平,使LED3熄灭
P1.3 ;P1.3输出低电平,使LED4点亮
ACALL DELAY ;调用延时子程序
P1.3 ;P1.3输出高电平,使LED4熄灭
P1.4 ;P1.4输出低电平,使LED5点亮
ACALL DELAY ;调用延时子程序
P1.4 ;P1.4输出高电平,使LED5熄灭
P1.5 ;P1.5输出低电平,使LED6点亮
ACALL DELAY ;调用延时子程序
P1.5 ;P1.5输出高电平,使LED6熄灭
P1.6 ;P1.6输出低电平,使LED7点亮
ACALL DELAY ;调用延时子程序
P1.6 ;P1.6输出高电平,使LED7熄灭
P1.7 ;P1.7输出低电平,使LED8点亮
ACALL DELAY ;调用延时子程序
P1.7 ;P1.7输出高电平,使LED8熄灭
ACALL DELAY ;调用延时子程序
START ;8个LED流了一遍后返回到标号START处再循环
;延时子程序
MOV R0,#255
;延时一段时间
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
END ;程序结束
3.2循环移位法
在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环
移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以
实现“流水”效果。具体编程如下所示,程序结构确实简单了很多。
ORG 0000H ;单片机上电后从0000H地址执行
AJMP START ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
START:MOV SP,#60H ;设置堆栈起始地址为60H
A,#0FEH ;ACC中先装入LED1亮的数据(二进制的)
P1,A ;将ACC的数据送P1口
R0,#7 ;将数据再移动7次就完成一个8位流水过程
LOOP: RL A ;将ACC中的数据左移一位
MOV P1,A ;把ACC移动过的数据送p1口显示
ACALL DELAY ;调用延时子程序
DJNZ R0,LOOP ;没有移动够7次继续移动
AJMP START ;移动完7次后跳到开始重来,以达到循环流动效果
;延时子程序
MOV R0,#255
;延时一段时间
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
END ;程序结束
上面的两个程序都是比较简单的流水灯程序,“流水”花样只能实现单一的“从左到右”流方式。运用查表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果。我们首先把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVC A,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。具体源程序如下,TAB标号处的数据表可以根据实现效果的要求任意修改。
ORG 0000H ;单片机上电后从0000H地址执行
AJMP START ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
START:MOV SP,#60H ;设置堆栈起始地址为60H
MOV DPTR,# TAB ;流水花样表首地址送DPTR
LOOP: CLR A ;累加器清零
MOVC A,@A+DPTR ;取数据表中的值
CJNE A,#0FFH,SHOW;检查流水结束标志
AJMP START ;所有花样流完,则从头开始重复流
SHOW: MOV P1,A ;将数据送到P1口
ACALL DELAY ;调用延时子程序
INC DPTR ;取数据表指针指向下一数据
AJMP LOOP ;继续查表取数据
;延时子程序
MOV R0,#255
;延时一段时间
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET & ;子程序返回
;下面是流水花样数据表,用户可据要求任意编写
DB B ;二进制表示的流水花样数据,从低到高左移
DB B ;二进制表示的流水花样数据,从高到低右移
DB 0FEH,0FDH,0FBH,0F7H ;十六进制表示的流水花样数据
DB 0EFH,0DFH,0BFH,7FH
DB 7FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 0FFH ;流水花样结束标志0FFH
END ;程序结束
当上述程序之一编写好以后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码烧写到AT89C51单片机中,最后连接好电路通电,我们就看到LED1~LED8的“流水”效果了。本文所给程序实现的功能比较简单,旨在抛砖引玉,用户可以自己在此基础上扩展更复
杂的流水灯控制,比如键盘控制流水花样、控制流水灯显示数字或图案等等。
范文三:复位电路的工作原理
在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。
开机的时候为什么为复位
在电路图中,电容的的大小是10uf,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
按键按下的时候为什么会复位
在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。
1、复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。
2、按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。
关于三极管的开关作用
时间:来源:电路图之家 作者:编辑
使用单片机(8051)驱动NPN管时,基极外接一个上接电阻,大小为1K,目的是增大基极电流,让三极管开速处于饱和状态,发射极直接接地.这时基极电流大小为:(5-0.7)/1K=4.3mA,当基极电流为4.3mA,是否可以让等中小功率的处于饱和状态,这时CE间的电压根据资料显示为0.3V左右,根据你所需要的
Ic的大小,计算Rc.Rc的大小是否这样计算:(Vc-0.3)/Ic=Rc
NPN型的三极管在基极输入一个1(高电平,如5V),三极管导通;PNP则在基极输入0(低电平,如0V),才能让三极管导通。对于PNP型,电流从发射极进入,然后分为两路分别从基极和集电极输出,且满足关系:Ic=βIb。在饱和时也是如
此,但是Ic
以AT89C52为例,在输出为0时引脚能吸收的电流为为1.6mA,如果要驱动9012,那么计算方法如下:9012基极通过电阻接到引脚上,当9012用5V供电时,使用的电阻大小为:(5-0.7)/1.6=2.7K。事实上这个电阻可以小一些,保证不烧坏单片机的情况下取2.5K,这时基极电流为1.7mA。注意这时要知道9012的β值,这是评估三极管是否饱和的关键,9012的β=300,因此集电极电流最大可以为500mA,如果不考虑三极管的饱和压降,对应的电阻为5/0.5=10Ω。所以让9012饱和的条件就很明显了。只要接在集电极的电阻大于10Ω就可以让三极管
PNP导通:Ue>Ub>Uc,也就是如B极送低电平,它导通。反之,如B极送是高电平,
已知条件:输入Vi=5V,电源电压Vcc=5V,三极管直流放大系数beta=10.
集-射饱和电压Vcesat=0.2V时,集电极电流Ic=10mA,则集电极电阻
Rc=(Vcc-Vcesat)/Ic =(5-0.2)/10 =480 欧。
则Ib=Ic/beta=10/10=1 mA,基极限流电阻Rb=(Vi-Vbe)/=(5-0.6)/1=4.4K,取为
以2.5V为逻辑电平的阈值来计算,则Rb==(Vi-Vbe)/Ib=(2.5-0.6)/1=1.9K,
取为1.8K,或2K
NPN管,e串一电阻与5V电源相连,e与b之间有限流电阻,让三极管工作在截止
2、让b 极的电位低于或小于e 极的电位,才截止。只要Ve>Vb.不截止都不行
三极管除了有对电流放大作用外,还有开关作用(即通、断作用),当基极加上正偏压时,NPN型三极管即导通处于饱和状态及灯会亮,反之,三极管就不导通,灯不
按接线图接好电路,注意三极管e、b、c三个管脚及发光二极管的极性不要接错。R1是基极的偏置电阻,当用W接到高电平时都可向基极加上偏置电流使三极管导
通,(即c、e极间相当于短路),发光二极管D导通发光。当W接到电位低,三极管
不导通(即c、e间相当于断路)发光二极管D不发光。
电阻R1基极偏置用,电阻R2有限流作用,也是三极管集电极的负载电阻。发光二
极管D指示作用,三极管T开关作用,电池E供电
I/O口即通用输出输出口,I/O口只能出入或者输出0和1,0对应低电平,1对应高电平,如果是3.3V系统,高电平就为3.3,如果为5V,那高电平就为5V,低电平为0V。如果做输出口的话,就是单片机通过软件置位相关寄存器让端口置高电平或低电平,达到电平输出的目的,如果做输入口,就是单片机捕捉端口的电平然后置位相关寄存器,然后软件读取寄存器中0或1,达到输入作用。这是很通俗的理解,如果想更深的了解可以参考通用I/O的结构。
范文四:单片机的电路原理 单片机技术自发展以来已走过了近20年的发展路程 。单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。小到遥控电子玩具,大到航空航天技术等电子行业都有单片机应用的影子。针对单片机技术在电子行业自动化方面的重要应用,为满足广大学生、爱好者、产品开发者迅速学会掌握单片机这门技术,于是产生单片机实验板普遍称为单片机开发板、也有单片机学习板的称呼。比较有名的例如电子人DZR-01A单片机开发板。
单片机开发板是用于学习51、STC、AVR型号的单片机实验设备。根据单片机使用的型号又有51单片机开发板、STC单片机开发板、AVR单片机开发板。常见配套有硬件、实验程序源码、电路原理图、电路PCB图等学习资料。例如电子人单片机开发板,针对部分学者需要特别配套有VB上位机软件开发,游戏开发等教程学习资料。开发此类单片机开发板的公司一般提供完善的售后服务与技术支持。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
单片机(Microcontrollers)诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
常见配套资源如下:
1、硬件实验板及其配件如:连接线、CPU芯片、流水灯、点阵显示、ds18b20温度检测、彩色TFT液晶屏,SD卡,游戏开发(推箱子游戏)、收音机、mp3解码等。
2、实验程序源码,包含汇编源程序、C语言源程序。
3、电路原理图、PCB电路图。
4、实验手册、使用手册。
5、针对单片机开发板的详细讲解视频。
6、附加PCB设计制作、VB软件开发等计算机学习资料
1、8个LED灯,可以练习基本单片机IO操作,在其他程序中可以做指示灯使用。
2、2个四联8段数码管,显示温度数据,HELLO欢迎词、时钟等。
3、高亮8*8点阵,如练习数字,字母,图片显示,或者小游戏的开发如贪吃蛇等。 4、4个独立按键,可以配置为中断键盘,为程序的按键扫描节省更多的时间。
5、8个AD按键,主要设计为游戏开发如推箱子等,去掉了矩阵键盘,AD键盘在实际中的应用相当广泛,如电视机加减搜台等都是采用AD键盘,一根AD线可以扩展几百个按键,更接近工程。
6、PCF8591具有AD/DA功能,其采用IIC总线协议,可练习IIC总线的操作。
7、DS18B20温度检测:单线多点检测支持。
8、光敏电阻测试光线强度,感受白天黑夜的区别。
9、FM收音机:能接收80M到110MHz之间的FM频段。可实现自动搜台和手动搜台。
10、DS1302时钟芯片提供实时时钟,带3V电池,在掉电的情况下,时钟仍然可以继续运行。
11、可读写SD卡文件系统,保存数据显示到TFT液晶屏等。
12、继电器可以控制高电压的设备,高压危险,请小心使用。
13、直流电机接口,控制直流电机。
14、步进电机接口,控制步进电机运行。
15、蜂鸣器,可以做电子琴、音乐发声等。
16、74HC595芯片练习串行转并行数据扩展。
17、74HC573锁存扩展芯片,可以扩展接口。
18、ULN2003电机驱动芯片。(这里用它来驱动步进电机,直流电机,继电器和蜂鸣器)
19、MAX232串口数据传输延长发送距离。(可与计算机通信,同时也可做为STC单片机下载程序的接口)
20、PL2303下载单片机,一线下载,直接的USB下载方式,高速下载。
21、TFT液晶屏,单片机也可以控制彩屏了,让你的学习充满乐趣
22、nRF24L01无线数据传输芯片接口,可以插nRF24L01芯片,做高速无线数据传输。
23、LCD1602液晶接口,字符液晶两行,每行可以显示16个字符。
24、LCD12864带字库液晶接口。
25、LCD12864图形液晶接口。
26、DS18B20单线多点温度采集接口。一根线上便可拓展多个DS18B20温度传感器,先提供两个。
27、提供ISP下载接口,可下载AVR、AT的单片机。支持AVR单片机。
28、40针扩展接口,可以无限扩展。以后的DZR-01A开发板配件将从此端口扩展出去。
29、PS2鼠标键盘接口。配合红外遥控器甚至可以遥控我们的电脑!(配例程)
30、AVR/51复位按键。可以复位51 STC AVR单片机,全部支持
31、TEA5767的IIC总线控制。学习IIC控制
32、SD卡的SPI总线控制。扩展大容量存储器
33、红外遥控接收器,可采集红外遥控发出的信号,可使用遥控信号控制其他设备。
34、外接5V供电电源座。
35、RXD、TXD、POWER电源指示灯
36、40PIN紧锁座(非常方便单片机芯片的取放)
37、带LM稳压芯片(为彩屏液晶,SD卡和无线模块供电)
38、USB供电(USB可以提供500MA的电流,完全能满足开发板的需求了)
39、预留电源+5V,GND
接口各四个(方便用户扩展其他外围电路时取电和共地)
学习51单片机必须做大量的实验,与其说51单片机是学出来的,倒不如说51单片机是“玩”出来的。就好像个人电脑一样,让你在那看十天使用说明不如你亲自玩一天收获大。为了方便大家做一些51单片 /ccgx/index.html 机的入门实验,制作了这块51单片机实验板。 该51单片机实验板,支持AT89C51、AT89C52、AT89S51、AT89S52这四款51单片机进行实验。它由DS1302、DS18B20、AT24CXX(可以更换AT24C02、AT24C04、AT24C16等存储容量大小不同的EEPROM)、蜂鸣器、继电器、六个数码管、四个发光二极管、一个四乘四的矩阵键盘、四个独立按键、一个1602液晶接口等组成。如下图所示:
电路图左上角的接口如下:
该实验板利用7805构成了自己的稳压电路,为该实验板提供 +5V
的稳压电源。其电路图如下:
说明:J4为心为负电压的DC插座;J5为接正电压的针脚;J6为接负电压的针脚;J9为接+5V的针脚。
实验板上硬件连接
利用短路帽,使P2口的P20至P25分别与数码管的位选1至6依次连接,用于控制选通哪一个数码管亮;使P0口的P00至P07分别与数码管的段码SM1至SM8依次连接,用于输出相应的段码。
数字 0 1 2 3 4 5 6 7 8 9 段码
四、 源程序
#include #include
#define unchar unsigned char #define unint
unsigned int
/*****************************定义端口*****************************/ #define smg P2
//利用P2_0到P2_5由右向左依次选择要显示的数码管 #define dm
//利用P0口输出段码
/***************************************************************** 函数功能:延迟子函数(晶振12MHz),延时时间为n乘以10us,n最大为255 入口参数:n 出口参数:
*****************************************************************/ void delay_smg(unchar n) {
}while(n); }
/***************************************************************** 函数功能:显示六位数以内的正整数,最高位不显示零 入口参数:dat 出口参数:
*****************************************************************/ void xianshi_smg(unsigned long dat) {
bit flag=0;
unchar i=0;
//确定所给正整数为几位数
unchar shu[6];
//由0至5依次存放所给正整数的由高到低各位上的数
unchar code code0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90};//将数码管的段码定义到程序存储区
unchar j,k;
for(j=0,n=100000;j<=5;j++,n=n/10)
shu[j]=dat/n;
if(shu[j]!=0||flag==1) //flag初值为0。shu[j]不为0时,if语句
//成立,i增加1,flag置1。无论shu[j] i++;
//为何值,if语句皆成立。故,可完成i
//记录所给正整数为几位数的功能。但,所 }
//给正整数若为零,会出现i为0这种情况,
dat=dat%n;
//故,需在最后判断i是否为0。若i为0,
//需将i置1。 if(i==0)
for(j=1,k=0j<=i;j++)
dm=code0[shu[6-j]]; delay_smg(100); k=~k; k=k<<1; k=~k; dm=0 smg=0 } }
/*****************************主函数*******************************/ main() {
//循环显示0、3、145、3这五个正整 {
//数,以检验所编写的显示函数。 for(()j=0;j<200;j++)(/haishen/index.html
) xianshi_smg(0); for(j=0;j<200;j++) xianshi_smg(3); for(j=0;j<200;j++) xianshi_smg(145); for(j=0;j<200;j++) xianshi_smg(30005); for(j=0;j<200;j++) xianshi_smg(860922); } }
4×4矩阵式键盘识别实验
用51单片机的P1口接4×4矩阵键盘;在数码管上显示每个按键的“0”至“F”序号。对应的按键的序号排列如下图所示 :
电路原理图
实验板上硬件连接
利用短路帽,使P1口的P10至P17与4×4矩阵键盘的ZJ1至ZJ8依次连接,完成51单片机与矩阵键盘的连接;使P0口的P00至P07分别与数码管的段码SM1至SM8依次连接,用于输出相应的段码;使P2口的P20与数码管的位选1连接,利用一个数码管静态显示即可完成实验。 四、源程序
#include #include
#define unchar unsigned char #define unint
unsigned int
/****************************定义端口*******************************/ #define m1 P1_3 #define m2 P1_2 #define m3 P1_1
#define m4 P1_0
//m1至m4分别对应实验板由上到下对应的行 #define n1 P1_4 #define n2 P1_5 #define n3 P1_6
#define n4 P1_7
//n1至n2分别对应实验板由左向右对应的列
/******************************************************************** 函数功能:延迟子函数(晶振12MHz),延时时间为n乘以10us,n最大为255 入口参数:n 出口参数:
********************************************************************/ void delay_jzaj(unchar n) {
do{ _nop_();
}while(n); }
/******************************************************************** 函数功能:按矩阵键盘上的16个按键使最右边的数码管显示由0到F这16个数 入口参数: 出口参数:
********************************************************************/ void keyscan(void) {unchar m,n,a,b,c,d;
if(n1==0||n2==0||n3==0||n4==0)
delay_jzaj(50);
if(n1==0||n2==0||n3==0||n4==0)
switch(a*1000+b*100+c*10+d)
case 111: n=1;
case 1011:n=2;
case 1101:n=3;
case 1110:n=4;
if(m1==0||m2==0||m3==0||m4==0)
delay_jzaj(50);
if(m1==0||m2==0||m3==0||m4==0)
switch(a*1000+b*100+c*10+d)
case 111: m=1;
case 1011:m=2;
case 1101:m=3;
case 1110:m=4;
while(m1==0||m2==0||m3==0||m4==0); //直至按键松开此循环结束
switch(10*m+n)
case 11:P0=0xc0; //显示"0"
case 12:P0=0xf9; //显示"1"
case 13:P0=0xa4; //显示"2"
case 14:P0=0xb0; //显示"3"
case 21:P0=0x99; //显示
case 22:P0=0x92; //显示"5"
case 23:P0=0x82; //"6"
case 24:P0=0xf8; //显示"7"
case 31:P0=0x80; //"8"
case 32:P0=0x90; //显示"9"
case 33:P0=0x88; //"A"
case 34:P0=0x83; //显示"b"
case 41:P0=0xc6; //"C"
case 42:P0=0xa1; //显示"d"
case 43:P0=0x86; //"E"
case 44:P0=0x8e; //显示"F"
/******************************主函数*******************************/ main()
//选择最右边的那个数码管 while(1)
keyscan() 显显显显显示示示示示
范文五:1.先介绍电脑上与单片机进行通讯的接口的名称
(1)一般是用电脑串口来进行通讯的,平常大家说的电脑的串口是指台式电脑主机后面的九针接口,如下图
这个接口有个专业的名称,叫RS23接口,而RS232接口是串口通讯的一种,其实所谓的接口,我的理解就是一种通信协议,规定了传输电平,传输方式,及怎么传输数据等等。协议标准规定采用一个25个脚的DB25连接器,还规定了连接器的每个引脚的信号内容,同时还对各种信号的电平加以规定。但随着设备的不断改进,出现了代替DB25的DB9接口,现在都把RS232接口叫做DB9。
(2)电脑上的RS232接口采用的是负逻辑电平:
-15~-3表示逻辑1;
+15~+3表示逻辑0;
电压值通常在7V左右
(3)我们可以使用串口电缆直接连接两台PC机的串口,实现两台PC机的串口通讯。但是PC机和单片机的通讯却不能够用电缆直接进行连接,原因是PC机RS232串口的电平标准和单片机的TTL电平不一致,因此单片机和PC机之间的串口通讯必须要有一个RS232/TTL电平转换电路。通常这个电路都选择专用的RS232接口电平转换集成电路进行设计,如MAX232、HIN232等。
2.单片机串口输出的逻辑电平
单片机的串口输出电路采用的逻辑电平是TTL电平。这种电平信号由TTL器件产生的,一般的芯片,如运放,数字器件等...
TTL:Transistor-Transistor Logic 三极管结构。
Vcc:5V;VOH>=2.4V;VOL<=0.5V;
VIH>=2V;VIL<=0.8V
3.单片机与电脑串口的连接
首先解决的就是逻辑接口电平的问题,其次就是通信方法及方式的问题
(1)在这里我们可以使用集成芯片MAX232,这是一款专门用来进行信号电平的转换的芯片,使用起来简单方便,这里把电路贴出。
(2)当然,我们也可以使用分立元件来搭建RS232电平转换电路以供我们实验使用,下图给出了一个常见电路,只要器件完好,电路焊接完毕后即可正常工作,经实际使用,效果良好。不用MAX232实现DSP或MCU与PC通讯的电路,元件经济,结构简单设计巧妙
用三极管实现RS-232转TTL电路
电路如下图
1.DB9的2脚 TXD:为RS-232电平信号接收端,RXD;3脚为RS-232电平信号发送端,
2.图中的Vcc应该是+5V,TXD接单片机TXD,RXD接单片机RXD。
工作原理是:从TTL转为RS2323电平,由于二极管与电容的作用使得在二极管D1与电容C7交接处的电压保持在-3V~-15V.
当TXD为"1"(TTL)时,Q3截止,PCRXD上的电压与PCTXD电压相等,也是-3~-15V,为"1"(RS232)
当TXD为"0"(TTL)时, Q3导通,则PCRXD电压约为+5V,这个电压在+3~+15V之间,根据RS232电平,它是"0"....也就是说TTL的"1"经过这个电平转换电路后,RS2323可以识别出它是"1",是"0"也能识别为0.这就实现了从TTL到RS232的电平转换.
从RS232转换为TTL电平那就简单了,当PCTXD为"1",即-3~-15V时,Q4截止,RXD电压约为5V,为"1",,当PCTXD为"0"时,Q4导通,电压为0,电平为"0".那么从RS232到TTL的电平转换也实现了.
备注:D2是为了防止Q4的BE反向击穿,TXD的最低电压时15V,Q4的BE耐压是6V左右。
简略大概的说:
当TXD=1时,Q3截止,导致PCRXD=1;
当TXD=0时,Q3导通,导致PCRXD=0;
当PCTXD=1时,Q4导通,导致RXD=1;
当PCTXD=0时,Q4截止,导致RXD=0;
自己总结的,希望对有需要的人有帮助
/********希望我能幸福,也希望能给别人带来幸福***/
范文六:第一课,了解单片机及单片机的控制原理和DX516的用法,控制一个LED灯的亮和灭
本章学习内容:
单片机基本原理,如何使用DX516仿真器,如何编程点亮和灭掉一个LED灯,如何进入KEILC51uV调试环境,如何使用单步,断点,全速,停止的调试方法
聂小猛 2006年6月
单片机现在是越来越普及了,学习单片机的热潮也一阵阵赶来,许多人因为工作需要或者个人兴趣需要学习单片机。可以说,掌握了单片机开发,就多了一个饭碗。
51单片机已经有30多年的历史了,在中国,高校的单片机课程大多数都是51,而51经过这么多年的发展,也增长了许多的系列,功能上有了许多改进,也扩展出了不少分支。而国内书店的单片机专架上,也大多数都是51系列。可以预见,51单片机在市场上只会越来越多,功能只会越来越丰富,在可以预见的数十年内是不可能会消失的。
作为一个初学者,如何单片机入门?需要那些知识和设备呢?知识上,其实不需要多少东西,会简单的C语言,知道51单片机的基本结构就可以了。一般的大学毕业生都可以快速入门,自学过这2门课程的高中生也够条件。
就算你没有学过单片机课程,只掌握了C语言的皮毛,通过本系列的教程,您也会逐渐的进入单片机的大门。当然在学习的过程中,您还是必须多去研读单片机书籍,了解他们的基本结构及工作方式。
下面以51为例来了解一下单片机是什么东西,控制原理又是什么?
在数字电路中,电压信号只有两种情况,高电平和低电平,用数字来记录就是1和0。单片机内部的CPU,寄存器,总线等等结构都是通过1和0两种信号来运作的,数据也是以1或者0来保存的。单片机的输入输出管脚,也就是IO口,也是只输出或识别1和0两种信号,也就是高电平和低电平。当单片机输出一个或一组电平信号到IO口后,外部的设备就可以读到这些信号,并进行相应操作,这就是单片机对外部的控制。当外部一个或一组电平信号送到单片机的IO口时,单片机也可以读到这些信号,并进行分析操作,这就是单片机对外部设备信号的读取。当然实际的操作中,这些信号可能十分复杂,必须严格地按照规定的时间顺序(时序)输入输出。每种设备也都规定了自己的时序,只要都严格遵守,就可以控制任何设备,做出只要你想象得出的任何事情。
您可能会再问,我如何让单片机去控制和分析外部设备呢?答案是程序,您可以编写相关的程序,并且把他们烧写到单片机内部的程序空间,单片机在上电时,就会一步一步按照您写的程序去执行指令,做您想做的事情。
在51标准芯片中,有32个输入输出IO,分为4组,每组8个,分别为P0口,P1口,P2口,P3口。P1口的8条脚就用P1.0至P1.7表示,其余类似。51就是用这32个口来完成所有外部操作的。对于51的内部结构,如果您已经了解,那是最好;如果不懂,也可以先放下,在完成了本教程开始的几个章节之后,您就会大有兴趣,自己去寻找资料阅读了。当然,如果您希望成为一个优秀的单片机开发程序员,还是必须熟悉单片机的内部结构及工作原理,切不可偷懒!
在这一章,您将用程序去控制一个LED发光管的亮和灭。你应该知道,LED发光管在通过一定电流时亮,不通电就灭。为了不让LED通过太大的电流把它烧坏,我们还要串上限流电阻。51的IO是弱上拉的方式,在输出高电平时,只能输出几十微安的电流到地,而在输出低电平时,VCC电源可以输入几十毫安的电流到IO。一般LED需要10毫安左右电流点亮,我们就将LED接在电源VCC和IO口之间,中间串上电阻,当IO输出低电平时,灯就亮了,反之,灯就灭了。我们在这个程序里要控制的是P1.0。请参考一下我们将要使用的试验板的电路图,这个试验板是在购买dx516仿真器是赠送的。
图1,试验电路图
图2:试验板外观图
下面介绍一下仿真器和仿真环境。
在实际的单片机学习和开发中,你可以用仿真器模拟一个CPU芯片,让它按照您编写的程序工作,并且进行调试,一步步排除程序的bug,使程序正常工作。程序工作正常后,您就可以用烧写器将您编写的程序烧入购买来的单片机芯片中,让它自己去运行了。
要使用仿真器,还得有一个编译调试的环境,这个环境是在计算机上运行的,我们就在计算机上编写和调试程序,计算机和仿真器有连接,仿真器中的各种数据和程序,都可以从计算机上观察到,并可以观察变量,写入变量的值,单步调试程序,在程序中设置断点调试,全速运行,停止程序运行,等等操作。
我们使用世界上目前最先进的keilC51编译调试环境,仿真器使用大虾电子网(
)设计的DX516专业版仿真器,这个仿真器功能齐全,性价比最佳,是学习开发的好工具!
您可以在此页/product/dx58/ 的资料下载栏目里下载到keilc51相关的中文说明资料,这些资料详细地说明了如何使用C51编程和如何使用keil uV2环境调试,请在本章试验完成或者试验过程中,如果遇到不懂的地方,一定要抽时间阅读!
您应该也可以在上面的网页中找到下载破解版本的keilc51的办法。中国法律规定,在学习和研究工作中使用有版权的软件是可以的,但是,如果您开发产品时,建议您还是去购买一个正版的软件。
下面是DX516仿真器的使用介绍:
将仿真器和试验板按图3组装好,串口线按照正确方向插入仿真器,另一端和电脑串口连接,请尽量使用计算机的硬串口。
仿真器底座左边的跳线,请放在EMB这边,以进入仿真状态。如果放在RUN这边,将会进入脱机运行状态。
晶振选择跳线请放在IN这边,以使用仿真器内部晶振,内部晶振更加可靠。如果放在OUT这边,则会使用外部的用户板晶振。
图3 仿真器插在试验板上
因为用户板使用电流不大,可以使用usb取电,usb最大电流可以提供500mA,将usb取电板插入电脑的usb口中。(实际应用中,如果用户板使用电流超过100mA,我们就建议使用外部电源)
在仿真器上电,或者按一下仿真器上面的按钮时,仿真器会发出“嘀-”,表示仿真器正常启动。同时仿真器上面的灯闪烁一次,表示进入正常仿真状态。
4。仿真设置
第一个设置:
C51用户请在您的代码的main()函数前面,加上一句:
char code dx516[3] _at_ 0x003b;
如果以上设置你没有做,在装载过程中,仿真器会发出“嘀嘀嘀” 的三声短声报警,这时的仿真结果将可能不正确。
在我们的例程中,这句话已经加入了。这句话并不会影响程序的工作,可以一直保留。
第二个设置:
请在硬件仿真设置选项中,选择serial interrupt,在前面打勾。
如果以上设置你没有做,在装载过程中,仿真器会发出“嘀-” 的一声长声报警,这时的仿真结果将可能不正确。
其余设置:
请选择use keil Monitor-51 Driver ,这样才会使用硬件仿真
请选择load Application at start
,在启动时直接装载程序
请选择Go till main ,装载后直接运行到main函数
请在硬件仿真设置选项中,选择115200bps波特率,所有cache都可以不选,或者只选cache code。同时请选择正确的串口号。
图4仿真设置
好了,现在可以开始做试验了,我们打开已经建立好的工程和编写好的程序试验。顺便还会学习一下程序调试的技巧。至于如何建立一个新工程,请参考C51的帮助文件,或者自己摸索一下,的DX516
专栏里也有“一步步教你如何第一次做…”的文章可以学习。
请双击lessoncode01目录下的lesson1.uv2,打开后界面如下:
图6:程序界面
这个界面是uV3的,和uV2是一样用的。
点一下上图第三排第2或者第3个按钮(您的编译器按钮位置不一定在那个位置,自己找找),就可以看到编译结果了。上面显示是0errrs,0warnings,这是最佳的编译结果,如果有error,则无法进行下一步仿真,如果有warning,一定要尽量消除,确实无法消除的,也要确认不会对程序造成影响,才进行下一步的仿真。
在编译结果中,我们还可以看到有data,xdata,code等用了多少字节的报告,要注意您的单片机中是否有这么多的资源,如果不够,将来烧片运行时就可能出现问题。比如AT89C51的程序空间是4K,xdata如果没有外扩就是0个,data是128个。超出这些范围,程序就不能在AT89c51中运行。不同的芯片有不同的容量,如SST89E516RD就有64K程序,内部768字节XDATA,还有256个字节的data。我们的例程中肯定都考虑了这些了,肯定不会超出,因为DX516仿真器是和SST89E516RD有同样的容量的,将来自己开发时就要注意了。
下面我们故意把第9行的P10写成P11,点编译,因为没有预先定义P11,所以就报告错误了,如下
双击一下错误报告的那一行,窗口就也会跳到这一行,方便您进行修改。好了,现在请把错误改回去,再编译一次,出现报告正确了以后,下面开始仿真了。
点一下第二行第5个一个放大镜里面一个d字母的按钮,就可以进入仿真了,仿真器要事先连接好哟。进入仿真后要退出仿真环境也是点这个按钮。注意,等会如果程序在正在全速运行时,仿真环境是不能直接退出的,得先点停止运行后,再点仿真按钮才可以退出。
点进入仿真按钮,程序开始装载,PC自动运行到了main()停下,并指向了main()函数的第一行。
下面是进入了仿真环境的截图:
再顺便把调试界面上的按钮介绍一下:
图5:按钮说明
进入仿真窗口后,如果出现的不是前面的源代码窗口,而是夹有反汇编代码的窗口,直接关掉这个窗口就会恢复到代码窗口。下次进入也会直接进入到源代码窗口。
现在先试验单步,点单步(两个单步都可以,一般点单步跨过)。可以看到灯亮了。PC指针也指向了下一个程序行。
图:照片,灯亮
再点一下单步,PC又走下一步,灯灭了。
再点一次,PC走到挂起的程序行了,继续点仍然在这一行。这句指令其实就是使程序不断地跳到自己这一行,别的什么也不做。一般称作程序挂起。
一般的实际应用中的程序是不会挂起的,一般是在main函数里做一个大循环,程序如下:
void main(void) // 主程序
P11=0;//亮灯
P10=1;//灭灯
请将main函数程序改为上面的代码,我们下一步将试验断点的操作。
编译后结果如下: 图:
进入仿真后
可以看到下面的提示窗口中显示:“connected to Monitor-51 V.DX”,后面的V.DX就是已经连接到大虾仿真器的提示了。V.DX是大虾仿真器特有的标识。
在第15行双击一下,可以看到程序行左边出现了一个红方块,这就是设置断点,再双击一次,断点就取消了。如果程序在全速运行的过程中遇到断点,就会自动停下来给你分析。注意在进入仿真后,并且程序是停止状态时,才可以设置或者取消断点。
图:设置了断点
现在点全速运行,可以看到程序在断点处停了下来,并且由于前一句指令刚刚执行了点灯,所以这时灯是亮着的。
现在在第14行设置断点,并且取消上一个断点。
图:设置了另一个断点
现在点全速运行,可以看到程序在断点处停了下来,并且由于刚刚执行了灭灯,灯是灭着的。
好,现在试验全速运行和停止。
把断点取消,再点全速运行,可以看到灯是亮着的,但是不是很亮,这是由于程序是循环的,亮灭交替进行,亮的时间并不是全部的时间。
现在点停止,可以看到程序停止了,重复几次进行全速和停止,可以发现每次停止的地方不一定是同一位置。
这一课就先结束了,我们学习了如何点灯及一些基本的编译和调试操作,下一课将学习如何使LED闪烁,和更多的调试方法,和如何查看运行状态和设置内部寄存器的值。
课后作业:
改为第2个LED灯(P1.1)做完本章的试验。
单片机原理数码
管动态显示论文
机械工程学院
机械设计制造及其自动化
单片机原理数码管动态显示
基于51单片机的LED数码管动态显示,LED数码管动态显示就是一位一位地轮流点亮
各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留”
效应,采用循环扫描的方式,当扫描速度达到一定程度时,人眼就分辨不出来了。文章从硬
件和软件等方面对LED数码管的动态显示进行了分析,并简要说明了各功能的实现方法。
关键词: 动态显示,数码管,有停留
单片机是指一个集成在一块芯片上的完整计算机系统,在控制数码管
显示的应用面积很广泛,实用性极强,而其的设计是基于嵌
入式的控制器设计。单片机微型计算机是微型计算机发展中的一个重要的分支,
它以其独特的结构和性能,越来越普及地应用到国民经济的各个领域。 随着
大规模、超大规模集成电路技术的发展和计算机微型化的需要,将微型算机的基
本功能部件:中央处理器(CPU)、存储器、输入/输出接口、定时器/计数器、
中断系统等多种资源集成在一个半导体芯片上,使得一块集成电路芯片就能构成
一个完整的微型计算机。在单片机的结构设计上,它的硬、软件系统及I/O接口
控制能力等方面都有独到之处,具有较强而有效的功能。从其组成、逻辑功能上
来看,单片机都具备了微型系统的基本部件。但需要指出的是,单片机毕竟还只
是一个芯片,只有在配置了应用系统所需的接口芯片、输入/输出设备后,才
能构成使用的单片机应用系统。
数码管在单片机应用系统显示器是一个不可缺少的人机交互设备之一,是单
片机应 用系统中最基本的输出装置。通常需要用显示器显示运行状态以及中间
结果等信息,便于人们观察和监视单片机系统的运行状况。而单片机系统中最为
常见的显示器是发光二极管数码显示器(简称LED显示器)。LED显示器具有低
成本、配置简单、安装方便和寿命长等特点。但显示内容比较有限,一般不能用
于显示图形。
一、设计任务
(1) 使用四位数码管动态显示;
(2) 显示内容为6789。
二、硬件设计
硬件设计的任务是根据总体设计要求,在所选定的单片机类型的基础上,具
体确定系统中所用的元器件及系统构成方式。单片机应用系统中可用的各种元器
件的种类繁多、功能各异、价格不等,这就为用户在元器件功能、特性等方面的
选择提供了较大的自由度。
LED数码管显示原理及电路
LED数码管是由若干个发光二极管按一定的规律排列而成的, 当某个发光二
极管导通时, 相应的段就会被点亮。根据内部发光二极管连接方式的不同, LED
数码管可以分为共阳极和共阴极两类。 共阴极LED显示器的发光二极管的阴极
连接在一起,通常是其公共阴极接地当某个发光二极管的阳极为高电平时,发光
二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连
接在一起,通常是其公共阳极接正电压,当某个发光二极管的阴极接低电平时,
发光二极管被点亮,相应的段就被显示。在控制LED数码管过程中,将不同的8
位二进制数送到数码管中就可以使数码管显示不同的数字了。在单片机应用系统
中,单片机与数码管的连接可以分为静态显示和动态显示。
(1)静态显示
静态显示就是各个LED数码管同时显示各自的字符, 并维持不变, 直到显
示下一个字符为止。在单片机系统设计时,静态显示通常利用单片机的串行口实
现。当显示器位数较少时,采用静态显示的方法比较适合。N位静态显示器要求
有N*8根I/O口线,占用I/O口线较多,所以在位数较多时往往采用动态显示方式。
(2)动态显示
动态显示就是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方法
称为位扫描,这是将所有数码管相同的段选线并联, 各数码管位选线轮流选通,
分时多路复用。这种方案在任一时刻只有一位数码管被选中发光, 然后利用人
眼的视觉暂留特点实现同时显示的效果。本显示面板有4个数码管, 只需要4个
位驱动线和4个段驱动线。但4位循环显示时, 每一位数码管的发光时间只占1/4
循环时间, 可能导致数码管显示闪烁。通常,各位数码管的段选线相应并联在
一起,由一个8位的I/O口控制;各位的位选线(公共阴极或阳极)由另外的I/O
口线控制。
单片机控制数码管显示的设计与实现
共阴极8段数码管的信号端高电平有效,只要在各个位段上加上相应的信号
即可使相应的位段发光;共阳极的8段数码管则相反,在相应的位段加上低电
平即可使该位段发光。因而,一个8段数码管就必须有8位(即1个字节)数
据来控制各个位段的亮灭。如此推算,有几个8段数码管,就必须有几个字节的
数据来控制各个数码管的亮灭。这样控制虽然简单,却不切实际,MCU也不可能提供
这么多的端口用来控制数码管,为此,往往是将几个8段数码管合在一起使用,通
过一个称为数据口的8位数据端口来控制段位。MCU的两个8位端口就 可以控
制一个8连排的数码管。若是要控制更多的数码管,则可以考虑外加一个译码芯
LED数码管动态显示电路图
片。要让各个数据管均显示需要的数字,则必须逐个使相应位选信号其他位选信
号为1,并将要显示的一位数字送到数据线上。
发光二极管电路
发光二极管电路的设计比较简单。可将单片机P3口的P3.0、P3.1、P3.2、
P3.3分别与四个发光二极管的阳极相连, 以便控制四个发光二极管的工作。
三、软件设计
本LED显示面板的功能可用C51语言实现。软件功能包括正常运行和仪表参数
3.1 主程序
本设计的主程序主要完成显示面板功能的确定、系统初始化、定时器初始化
(1) 显示面板功能的确定
该显示面板的主要功能是按照设计要求能够正常显示数字,当按下演示按键
时,LED显示面板能够交替显示数字6789。
定时器的初始化包括定时器工作方式的设定和定时初值的设置。本文的LED数码管采用动态(扫描) 驱动显示方法, 设计时要注意扫描时间的设置。该时间要既能保证LED数码管的亮度, 又不会使人眼感觉到闪烁。定时器的工作模式为方式1。此模式下的计数脉冲频率为fcont=fosc/12, 计数初值X可以通过公式设定:X=M-计数值=M-t/T=M-fosct/12其中, fosc为振荡器的振荡频率, t为要定时的时间, M为定时器的最大定时时间。根据视觉暂留特性, 人眼睛对动态频次的分辨率一般为1/16~1/24 s, 因此, 可以将LED数码管轮流显示的时间设定为小于这个分辨率的任何一个时间。
3.2 中断程序
中断程序功能是在定时时间到时,将段码值赋
给相应的数码管, 并将时间初值装入相应的寄存
器。参数设定时, 设定位要实现闪烁, 以确定
正在被设置的数据位。实现闪烁的基本思想是每
隔500 ms,当前闪烁数据位的段码值就由数据状态变为空码状态, 下一个500 ms再由空码状态变为数据状态, 并不断循环执行此操作(共阳极显示 方式下空码值为0XFF)。这样, 从用户角度看,当
前被设定的数据位就是闪烁的。这里可通过设定一
个计数器来确定转换时间, 当计数值达到时, 当
前闪烁数据位就进行段码值转换。 四、测试
打开keil uVision3程序,然后新建工程,编辑该电路的设计程序并保存执行后生成.hex可执行文件,再在Proteus软件中打开设计好的电路图,鼠标左键双击80C51单片机芯片,找到可执行文件所在位置并将其导入,点击演示按钮,便可以看到数码管依次交替显示数字6789,至此,测试阶段完成,则设计的该程序和电路可以完成预期的目的。数字的动态循环显示电路如下图所示(以数字7为例):
经过一段时间的努力,我们顺利的完成了这次单片机论文,这是一个磨练意志的过程。从论文题目的选择开始,电路图的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。一方面通过C51单片机等一些器件的设计让我学习和掌握了单片机技术的基础知识和技术要点,也使以前学的很多知识都得到了运用;另一方面在用Proteus软件画电路图时,然后再转换成一维的WORD中进行编辑,这个过程中让我掌握了计算机辅助的设计技术。当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。需要的是细心和耐心。在很大程度上培养了我拼搏的工作精神。使我受益匪浅,更加明确了自己专业的方向。
通过本次论文的设计,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我感觉到团队合作的重要性。其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。该过程是一个通过思考、发问、自己解惑并动手、提高的过程。
我会在以后的学习中不断学习,积累经验,完善自己。
对于这次单片机论文设计不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次论文设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固。总之,这次的论文设计使我受益匪浅。
程序编辑:
sbit one=P3^0;
sbit two=P3^1;
sbit three=P3^2;
sbit fourth=P3^3;
shumaguan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义数码管段码
void delay(uint a)
void display()
//延时函数 for(i=a;i>0;i--)
for(j=110;j>0;j--);
//打开第一位位码 P2=shumaguan[6];
//送数据 delay(500);
//延时500ms
//关闭第一位位码
P2=shumaguan[7];
delay(500);
P2=shumaguan[8];
delay(500);
P2=shumaguan[9];
delay(500);
void main()
{ display();
[1] 张齐,朱宁西,单片机应用系统设计技术,北京:电子工业出版社,2009.
[2] 力学礼,基于Proteus的8051单片机实例教程,北极;电子工业出版社,2008
[3] 黄惟公,邓成中,王艳,单片机原理与应用技术,西安:子安电子科技大学出版社,2007.
[4]张道德,杨光友,单片机接口技术,北京:电子工业出版社,2007.
[5] 徐爱钓,孟志勇,单片机高级语言应用实践,北京:电子工业出版社,2008.
[6] 周润景等,PROTEUS入门实用教程,北京:机械工业出版社,2007.
[7]丁明亮,唐前辉,51单片机应用技术与仿真,北京:北京航空航天大学出版社,2007.
…__…__…__…__…__…__… __…_ __… 心…中…习 学… _…_ __…__线__… __…_ __… __…__…_ 号…学…__…__…__…__…__封__…__… __…号 班… …
… __…__…_ __…__…__…__…__…__…_称…名密业… 专…
_… __…_ __… __…__…_ __…__…__…_名…姓…………电子科技大学网络教育考卷(A卷)
日(120分钟) 课程 单片机原理及应用
教师签名 沈宏科
一、论述题(每题5分,共15分)
1. 什么是单片机
2. 89C51单片机片内RAM的区间是如何划分的?各有什么主要功能?
3. 89C51单片机的控制线有几根?每一根控制线的作用是什么?
二、判断分析题,正确的在括号中画“√”,错误的在括号中画“×”(每题1分,共10分) 1. 89C51单片机的EA端接地后,它的功能和89C51完全一样。(
) 2. 89C51单片机执行PUSH A指令后,则堆栈指针SP的内容自动减1。(
3. 89C51单片机没有专门的输入/输出指令,都是用MOVC指令来操作外部I/O口的数据。(
) 4. 89C51单片机的程序存储器中只能存放程序,不能存放数据。(
5. 89C51单片机复位后,P1口输出高电平。(
6. 为了使P1.1输出“1”状态而不影响P1口的其它位的状态,采用指令: SETB P1.1 。(
) 7. 89C51单片机内部只包括CPU、存储器和I/O接口电路。(
) 8. 单片机在复位后,所有的中断请求都被开放。(
9. 89C51的TMOD是16位的寄存器。(
10. 位累加器C中的数据不能传送给累加器A。(
三、填空(每空1分,共20分)
1.89C51单片机外部数据储存器的地址范围是(
)。 2.89C51复位后,SP初始化为(
),使得堆栈从(
)单元开始存放。
3.89C51单片机片内RAM中00H~1FH为(
)单元,20H~2FH为(
)单元。 4.DPTR的主要功能是(
)。 5.P0口可用作(
)总线,还可用作(
6.作为普通输入输出口使用时,P0~P3口都是(
)口,当由输出转为输入时,必须向口锁存器写(
)。7.PSW中的工作寄存器指针是(
),它们把R0~R7分成(
)组。 8.对选定的寄存器R0~R7,只有(
)既能存放数据又能作为间址寄存器。 9.RET和RETI的区别在于(
)。 10.当定时/计数器T0工作于工作方式2时,其最大计数范围为(
11.当TMOD中的GATE=1时,只有在INTX为(
)、TRX为(
)时,才能启动相应的定时器工作。12.中断是通过(
)来改变CPU运行的方向。 13.MOV A,30H表示(
)。 14.MOV C,30H表示(
)。 四、单项选择题(每题1分,共10分)
1.片外数据存储器的数据传送到累加器A中,应采用哪条指令?(
(A)MOV A,@R0
(B)MOV A,@R1
(C)MOVC A,@A+DPTR
(D)MOVX A,@DPTR
2.SP指针的功能是(
),修改SP指针,则堆栈地址发生变化。
(A)便于中断前保存数据
(B) 便于中断服务程序返回后恢复现场数据 (C) 便于子程序的调用和返回
(D)指出栈区的位置
3.DA A是十进制加法调整指令,但在两数相加时,加数和被加数都必须是(
(B)无符号数
(D)BCD码形式的十进制数
4.下列程序段执行后,累加器A中的内容是(
MOV A,55H
5.89C51单片机的位地址00H~7FH,指的是(
)单元中各位的位地址。
(A)片内RAM 00H~1FH
(B) 片内RAM20H~2FH
(C)片内RAM 80H~FFH
(D)片外RAM 0020H~002FH 6.程序状态字寄存器PSW的作用之一是(
(A)指示出每条指令执行后,A中的内容是否为零
(B) 指示出指令INC A是否有进位
(C)指示出当前使用的工作寄存器组号
(D)指示程序转移的偏移量 7.89C51单片机的堆栈区应设在(
(A)在片外RAM 00H~7FH
(B) 在片内RAM 00H~7FH (C)在片外RAM0000H~00FFH
(D)在片内RAM 00H~FFH 8.89C51单片机片内I/O口有(
(D)14 9.AJMP 指令的转移范围可以在(
(A)0000~00FFH之间
(B)0000H~FFFFH之间
(C)000H~FFFHZ之间
(D)1000H~17FFH之间
10.89C51单片机有5个中断2个优先级,中断的管理和控制是由(
)来控制的。
(A)IE、PSW、PC、SP
(B)PCON、SCON、SP、IE (C)IE、IP、TCON、SCON
(D)IE、SP、TCON、IP
五、分析题 (每题5分,共25分)
1. 试说明下段程序中每条指令的作用,当指令执行完后,R1中的内容是什么?
MOV R1,#0ABH
2.下述程序执行后,SP=? A=? B=?
MOV SP,#40H
MOV A,#30H
LCALL 2500H
ADD A,#10H
MOV B,A L1: SJMP L1
MOV DPTR,#2009H
3. 指出下列指令哪些是错误的:
(1) INC @R1
(2) DEC @DPTR
(3) MOV A,@R2
(4) MOV 40H,@R1
(5)MOV 20H,30H
(6)ANL 60H,#0F0H
4、阅读下列程序,画出片内RAM单元的示意图,并说明程序的功能。
R0,#40H MOV
A,@R0 . INC
@R0,A AFH CLR
A,#0 . .
5、片内RAM中addr1和addr2两个单元中存有两个无符号数。画出下列程序段的流程图,并简述该程序段的主要功能。
A,addr1 CJNE
A,addr2,BIGER SJMP
A,addr2 STORE:
附录:几个SFR的格式定义
TMOD(89H):高4位用于T1,低4位用于T0。
SCON(98H):
六、设计题(20分)
89C51串行口按异步双工方式收发ASCII字符,最高位用来作奇偶检验位,采用奇检验方式,要求传送的波特率为2400b/s,设发送数据区的首地址为20H,接收数据区的首地址为40H,fOSC?6???,SMOD=0。定时器T1采用工作模式2,可以避免计数溢出后用软件重装定时初值的工作。 (1)串行口工作于哪种模式下?定时器的初值为多少? (2)编写有关的通信程序。
范文九:《单片机原理与应用》教学大纲
本课程大纲依据物联网工程专业2015版人才培养方案制定。 课程名称:单片机原理与应用 课程代码:*B1501311
课程管理:电子信息工程学院物联网工程教研室 教学对象:物联网工程专业
教学时数:总时数48学时,其中理论教学28学时,实验20学时。 课程学分:3学分
课程开设学期:第5学期 课程性质:专业必修课 课程衔接:
(1)先修课程:《电路》、《数字电子技术》、《模拟电子技术》 (2)后续课程:《单片机原理与应用课程设计》
一、课程教学目标及要求
本课程是物联网工程专业的一门专业必修课。本课程介绍了MCS-51系列单片机的结构原理与指令系统、特殊功能寄存器SFR的功能特点及设置方法、系统扩展及接口、单片机应用系统的软硬件设计等。通过该课程的学习,使学生具备完成一个具有一定测控功能的单片机应用系统软硬件设计的能力,提高学生分析、设计、调试计算机应用系统的能力,为今后能独立进行单片机应用系统的开发设计工作打良好的基础。
二、教学内容及要求
单片机基础知识 (一)教学目标
通过本章学习,激发学生学习单片机的兴趣,使学生掌握单片机学习方法。 (二)知识点及要求 第一节
什么是单片机 了解单片机的概念。
单片机的发展历史 了解单片机的发展历史。 第三节
单片机的特点 了解单片机的特点。 第四节
单片机的应用 了解单片机的应用领域。 第五节
单片机的发展趋势 了解单片机的发展趋势。 (三)教学重点与难点 单片机的特点。
MCS-51单片机的硬件结构 (一)教学目标
通过本章学习,准确掌握各引脚的功能,区分不同类型的存储器及SFR的使用。 (二)知识点及要求
MCS-51单片机的硬件组成
了解MCS-51单片机的硬件特点和组成。
MCS-51的引脚功能 掌握MCS-51的引脚功能。 第三节
MCS-51的CPU
掌握MCS-51的运算器和控制器的特点和功能。 第四节
MCS-51存储器的结构 1、了解位地址空间;
2、掌握MCS-51程序存储器空间分配和数据存储器空间分配; 3、理解特殊功能寄存器的作用和特点。 第五节
MCS-51的并行I/O口
1、了解MCS-51并行口驱动简单外设; 2、掌握MCS-51的I/O口的结构特点。 第六节
时钟电路与时序
1、掌握MCS-51时钟电路的设计;
2、掌握机器周期、指令周期与指令时序。 第七节
复位操作和复位电路
掌握复位电路的工作原理和设计方法。 (三)教学重点与难点
单片机的结构特点,存储器配置与空间的分布,程序状态寄存器(PSW),单片机的指令时序。
MCS-51的指令系统 (一)教学目标
通过本章学习,使学生掌握各种寻址方式和指令的使用方法。 (二)知识点及要求 第一节
指令系统概述
1、了解机器指令的字节编码形式和书写格式; 2、掌握指令格式及常用符号。 第二节
掌握机器指令的字节编码形式和指令的书写格式。 第三节
指令系统的寻址方式
掌握寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、变址寻址、相对寻址、位寻址方式。
MCS-51指令系统分类介绍
掌握数据传送类指令、算术运算类指令、逻辑与循环类指令、控制转移类指令、位操作类指令。
(三)教学重点与难点
数据传送类指令、算术运算类指令、逻辑与循环类指令、控制转移类指令、位操作类指令的使用方法。
MCS-51汇编语言程序的设计 (一)教学目标
通过本章学习,使学生能熟练编写汇编语言程序。 (二)知识点及要求
汇编语言程序设计概述 1、掌握汇编语言的语句和格式;
2、掌握常用伪指令。
源程序的编辑与汇编 1、了解汇编语言程序编制步骤; 2、掌握常用伪指令的使用方法。
MCS-51汇编语言程序设计举例 掌握顺序程序、分支程序、循环程序。 (三)教学重点与难点
分支程序、循环程序的设计特点,子程序的编写和应用。
MCS-51单片机的中断系统 (一)教学目标
通过本章学习,使学生掌握中断源的使用方法,能熟练编写相应程序。 (二)知识点及要求
MCS-51中断系统
1、了解MCS-51中断系统概念;
2、理解中断系统结构、中断源和中断的控制。 第二节
MCS-51中断处理过程 1、理解中断响应的条件和时间; 2、掌握中断响应过程和中断返回。 3、掌握中断源的使用方法 (三)教学重点与难点
中断响应的条件和中断优先级的应用。
MCS-51的定时器/计数器 (一)教学目标
通过本章学习,使学生能熟练掌握定时器/计数器的应用。 (二)知识点及要求
定时器/计数器的结构 1、了解定时器/计数器的结构;
2、掌握定时器/计数器TMOD和TCON的作用。 第二节
定时器/计数器的4种工作方式 掌握定时器/计数器4种工作方式的特点。 第三节
定时器/计数器的编程和应用 掌握定时器/计数器编程方法。 (三)教学重点与难点
定时器/计数器的初始化,定时器/计数器中断的应用。
MCS-51单片机的串行口 (一)教学目标
通过本章学习,使学生掌握串口的各种工作方式,并进行编程。 (二)知识点及要求 第一节
串行口的结构
掌握串行口的控制寄存器SCON和特殊功能寄存器PCON。 第二节
串行口的4种工作方式 掌握串行口4种工作方式的特点。
掌握多机通信的设置方法。 第四节
波特率的制定方法 掌握波特率的制定方法。 (三)教学重点与难点
MCS-51单片机串行通信的应用。
MCS-51单片机与输入/输出外部设备的接口 (一)教学目标
通过本章学习,使学生掌握常用输入/输出接口设备的设计方法。 (二)知识点及要求
LED数码管的显示原理 掌握LED数码管显示的原理。 第二节
键盘接口原理 掌握键盘接口的原理。 (三)教学重点与难点
显示、键盘接口技术的综合应用。
MCS-51单片机与D/A转换器、A/D转换器的接口 (一)教学目标
通过本章学习,使学生掌握D/A转换器、A/D转换器的接口电路设计和编程方法。 (二)知识点及要求
D/A转换器及其与单片机的接口 1、理解DAC0832芯片主要特性与结构; 2、掌握DAC0832与单片机的接口方法。 第二节
A/D转换器及其与单片机的接口 掌握ADC0809芯片及其与单片机的接口。 (三)教学重点与难点
A/D、D/A接口电路设计和程序设计。
三、实验教学内容与基本要求
实验一 闪烁灯 1、目的要求
(1)掌握51单片机开发平台的搭建; (2)掌握51单片机I/O口基本应用。 2、实验内容
按所给电路,实现单片机控制LED灯闪烁。 3、所需实验设施设备 (1)计算机; (2)KEIL软件; (3)PROTEUS软件;
(4)硬件电路相关元器件。 4、教学形式及过程 (1)多媒体讲解;
(2)学生分组实验,教师具体指导并对实验结果进行检查。
5、教学重点与难点
(1)单片机开发平台的搭建; (2)51单片机I/O口基本应用。
实验二 流水灯 1、目的要求
(1)掌握51单片机汇编语言指令系统相关指令; (2)了解51单片机汇编语言程序的书写方法和歩骤。 2、实验内容
按所给电路,实现单片机控制LED灯流水点亮。 3、所需实验设施设备 (1)计算机; (2)KEIL软件; (3)PROTEUS软件;
(4)硬件电路相关元器件。 4、教学形式及过程 (1)多媒体讲解;
(2)学生分组实验,教师具体指导并对实验结果进行检查。 5、教学重点与难点
(1)51单片机汇编语言指令系统相关指令; (2)51单片机汇编语言程序的书写方法和歩骤。
实验三 按键控制数码管 目的要求
(1)掌握51单片机控制LED数码管硬件连接方法;
(2)掌握51单片机控制LED数码管对应硬件电路程序的书写; (3)掌握51单片机51单片机外部中断的使用; (4)掌握51单片机外部中断服务函数书写。 2、实验内容
按所给电路,实现 KEY1、KEY2控制LED数码管显示。按 KEY1,数值加2,按KEY2数值加3
3、所需实验设施设备 (1)计算机; (2)KEIL软件; (3)PROTEUS软件;
(4)硬件电路相关元器件。 4、教学形式及过程 (1)多媒体讲解;
(2)学生分组实验,教师具体指导并对实验结果进行检查。 5、教学重点与难点
(1)51单片机LED数码管硬件连接方法及对应硬件电路程序的书写; (2)51单片机外部中断服务函数书写。
实验四 呼吸灯
1、目的要求
(1)掌握51单片机定时计数器使用; (2)掌握51单片机PWM波产生方式。 2、实验内容
按所给电路,实现电路中LED亮度逐渐变化。 3、所需实验设施设备 (1)计算机; (2)KEIL软件; (3)PROTEUS软件;
(4)硬件电路相关元器件。 4、教学形式及过程 (1)多媒体讲解;
(2)学生分组实验,教师具体指导并对实验结果进行检查。 5、教学重点与难点
(1)51单片机定时计数器使用; (2)51单片机PWM波产生方式。
实验五 串口双机通信
1、目的要求
(1)掌握51单片机串口使用;
(2)掌握51单片机串口波特率产生方式。 2、实验内容
按所给电路,实现两个单片机电路系统串口通信。 3、所需实验设施设备 (1)计算机; (2)KEIL软件; (3)PROTEUS软件;
(4)硬件电路相关元器件。 4、教学形式及过程 (1)多媒体讲解;
(2)学生分组实验,教师具体指导并对实验结果进行检查。 5、教学重点与难点
(1)51单片机串口使用;
(2)51单片机串口波特率产生方式。
实验六 LCD显示 1、目的要求
(1)掌握51单片机控制1602显示方法; (2)了解KEIL软件多个源程序管理设置。 2、实验内容
按所给电路,实现LCD1602显示指定的字符串。 3、所需实验设施设备 (1)计算机; (2)KEIL软件;
(3)PROTEUS软件;
(4)硬件电路相关元器件。 4、教学形式及过程 (1)多媒体讲解;
(2)学生分组实验,教师具体指导并对实验结果进行检查。 5、教学重点与难点
51单片机控制1602显示方法。
四、课程时数分配表
五、课程考核
(一)考核方式 1、考试
2、考试方式:闭卷笔试
(二)成绩评定
课程考核由平时成绩、实验成绩和期末考试成绩构成,平时成绩占20%,实验成绩占30℅,期末考试成绩占50%。平时成绩根据平时作业和考勤情况综合评定。实验成绩由实验操作、实验报告构成,其中实验操作占50%,实验报告占50%。
六、教学参考书
1、张毅刚.单片机原理及应用【M】.北京.高等教育出版社.2010年. 2、盛珣华.单片机原理与应用【M】.北京.华中科技大学出版社.2014年. 3、李林功.单片机原理与应用【M】.北京.机械工业出版社.2014年.
4、霍孟友.单片机原理与应用【M】.北京.北京航空航天大学出版社.2009年. 5、杭和平.单片机原理与应用【M】.北京.机械工业出版社.2008年.
执笔人:邓鹏
教研室负责人审核:何习佳
教学院长审核:向汉江 完成时间:日
范文十:桂林电子科技大学成教院学习资料
单片机原理及应用(二)
一、单项选择题
1、补码为ffH的机器数真值是(
D:127D 2、单片机中EA引脚与VCC相接时,说明(
A:片外数据RAM有效
B:片内数据RAM有效
C:片外程序ROM有效
D:片内程序ROM有效
3、AT89S52单片机的(
)口的引脚,还具有外中断、串行通信等第二功能。
4、PSW中的RS1、RS0=11时,选中的工作寄存器组的地址为(
)。 A:00H~07H
B:08H~0FH
C:10H~17H
D:18H~1FH 5、在串口控制寄存器SCON中,REN是(
A:串行接收中断
B:串行接收允许位 C:串行发送中断 D:多机通讯允许位 6、ALE在MCS-51扩展系统中起到什么样的作用(
A.ROM的读信号 B: 地址锁存信号
C.RAM.的读信号 D. 数据锁存信号
7、已知PSW = 00H, R0= 06H,R1 = 08H, 有定义char idata *p; 其中p = 0x01则*p =
8、MCS-51单片机一个机器周期包含的时钟周期为(
9、能同时将TF1清零的跳转指令是(
TF0,LOOP C:JNB
RI,LOOP 10、DIV在MCS-51程序中表示(
AT89S51的异步通信口为(单工/半双工/全双工), 2.当MCS-51执行MOVC
A,@A+DPTR指令是 3.
AT89S51的口为多功能IO口;
AT89S51唯一的一条16位数据传送指令为
共4页 / 第1页
若A中的内容为60H,那么P标志位为。
6、定时/计数器实质上是一个加1计数器,它可以工作于定时方式,也可以工作于计数方式,两种工作方式实际都是对脉冲计数,工作于定时方式时,对_____计数;工作于计数方式时,对_ ___________计数;
7、AT89S52单片机复位后,PC与SP的值为_____. 8、AT89S51单片机寄存器R7是_____位的。 9、AT89S51单片机有_____地址线。
10、AT89S51单片机里 MOV A,#2AH 是_____寻址方式。
三、编程题
1、RAM中单元地址为30H、35H、45H的内容相加运算,结果存放在地址为50H和51H两个存储单元中,其中低字节结果放在50H中,高字节结果放在51H单元中。
2、T0作为定时器,工作方式1,从P0.7输出20MS方波,机内晶振为12MHz
四、综合应用题
1已知AT89S51单片机系统时钟频率为fOSC=12MHz,试利用定时器T0作为定时器,实现P0.0输出矩形脉冲。(采用查询方式实现)
2、有一原理图如下图所示,编写程序实现P0口上的8个发光二极管轮流循环左移,亮灭时间1S。(采用延时方式实现)
共4页 / 第2页
单片机原理及应用参考答案(二)
一、选择题
基址加变址寻址 3.
movx dptr,#data16 5.
片内脉冲、片外脉冲7.
0000H,07H 8 .
16 10. 立即数
ADC A,#00H
ADC A,#00H
MOV TMOD ,#01H
LOOP: MOV TL0,#0F0H
MOV TH0,#0D8H
共4页 / 第3页
unsigned char t=0; void main(void)
{ TMOD=0x01;
{if(TF0==1)
{TF0=0;TH0=0x3c;TL0=0xb0;
t++;if(t==20){t=0;P0_0=~P0_0;}}
void delay(unsigned int t) {unsigned int i,j; for(i=0;i<t;i++)
{ for(j=0;j<200;j++);} }
void main()
unsigned char KK;
unsigned char a=0;
for(KK=0;KK<8;KK++)
//8个发光二极管轮流循环;
{delay(500); P1=P1<<1;P1=P1+1;
共4页 / 第4页}

我要回帖

更多关于 mcs51系列单片机原理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信