单片机4
单片机四路抢答器的设计
第一章绪论1.1单片机介绍单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
而个人电脑中也会有为数不少的单片机在工作。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。
单片机试卷4以及答案
一、填空题1、80C51单片机内部的基本组成部分有中央处理器、、数据存储器、、串行口、、中断系统、定时器/计数器。
2、单片机的晶振频率为6MHZ,则一个状态周期为,一个机器周期为。
3、80C51单片机内部数据存储器有个字节,它们分为、、和通用RAM区。
4、80C51单片机系统中,若EA接地,CPU将全部执行ROM中的程序;若EA接VCC,当PC的内容大于0FFFH时,CPU执行ROM中的程序,当PC的值不大于0FFFH时,CPU执行ROM中的程序。
5、若PSW中的内容为58H,则当前工作寄存器R0是第组工作寄存器组中的。
6、P1口的某个引脚作输入用时,应先将其对应的锁存器置。
7、欲使P2口的高4位输出0而低4位不变,应执行指令。
8、假定(SP)=62H,(61H)=30H,(62H)=70H,执行指令:POP DPHPOP DPL上述指令执行后,(DPTR)=,(SP)=。
9、假定(A)=85H,(20H)=0FFH,(CY)=1,执行指令:ADDC A,20H上述指令执行后,(A)=,(AC)=,(OV)=。
10、在片内数据存储器中,(21H)=10101101B,其中位地址为08H——0FH的8个位正好就是21H单元的8位,执行指令:MOV C,0DH上述指令执行后,C=。
11、P2口通常用作_______,也可以作通用的I/O口使用。
12、MCS-51单片机的P0~P4口均是____I/O口,其中的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的______和______,在P0~P4口中_______为真正的双向口,_______为准双向口。
13、指令JB 0A 7H,ABC的作用是若P2口的第7位为则跳转到ABC 。
(0A7H是P2.7的地址)14、将CY与A的第0位的非求或的指令是,若原A=0,执行后A= 。
二、选择题1、MCS-51单片机有片内ROM容量( )A. 4KBB. 8KBC. 128BD. 256B2、MCS-51单片机的位寻址区位于内部RAM的( )单元。
单片机4-2
A
半字节
RAM
半字节
图3-8 半字节交换操作
1.要用传送类指令访问 要用传送类指令访问MCS-51片外 片外RAM,它的指令操作码助 要用传送类指令访问 片外 它的指令操作码助 记符是 1)MOV ) 2)MOVX 3)MOVC 4) 以上都行 2.PSW=18H时,当前工作寄存器 时 1)0组 ) 组 2)1组 ) 组 3)2组 ) 组 4)3组 ) 组
A 一字节 源操作数 一字节
⑵半字节交换指令 汇编指令格式 操作 XCHD A,@Ri ; (A0~3) ((Ri) 0~3) (A0 间接寻址的单元内容与累加器A中的内容的低 位互换, 将Ri间接寻址的单元内容与累加器 中的内容的低 位互换, 间接寻址的单元内容与累加器 中的内容的低4位互换 位内容不变。 高4位内容不变。该操作只影响标志位 。 位内容不变 该操作只影响标志位P。 这条指令为低字节交换指令。该指令将累加器 的低 位与 的低4位与 这条指令为低字节交换指令。该指令将累加器A的低 R0或R1所指出的片内 所指出的片内RAM单元的低 位数据相交换,各自的 单元的低4位数据相交换 或 所指出的片内 单元的低 位数据相交换, 位不变。 所示。 高4位不变。其操作如图 所示。 位不变 其操作如图3-8所示
A寄存器 寄存器
寄存器间接寻址@R1, 寄存器间接寻址 , R0(外RAM0B~255B) ( )
寄存器间接寻址@DPTR 寄存器间接寻址 (外RAM0B~64KB) )
图3-6 外部数据存储器传送操作
8. 栈操作指令(2条) 栈操作指令( 条 ⑴PUSH(入栈)指令 (入栈) 汇编指令格式 操作 字节 PUSH direct 先(SP)+1→SP 2 后(direct)→(SP) ⑵POP(出栈)指令 (出栈) 汇编指令格式 操作 POP direct 先((sp))→direct (SP)后(SP)-1→(SP)
单片机4
80C51单片机指令系统及程序设计一、单项选择题1、下列指令可将累加器A最高位置1的是。
(分数:1分)A. ORL A,#7FHB. ORL A,#80HC. SETB 0E0HD. ORL E7H, #80H正确答案:B 2、80C51寻址方式中,操作数Ri加前缀“@”号的寻址方式是。
(分数:1分)A. 寄存器间接寻址B. 寄存器寻址C. 基址加变址寻址D. 立即寻址正确答案:A 3、主程序执行完ACALL后返回主程序后,堆栈指针SP的值。
(分数:1分)A. 不变B. 加2C. 加1D. 减2正确答案:D 4、当需要从80C51单片机程序存储器取数据时,采用的指令为____.(分数:1分)A. MOV A, @R1B. MOVC A, @A + DPTRC. MOVX A, @ R0D. MOVX A, @ DPTR正确答案:B 5、执行指令MOVX A,@DPTR时, 读、写引脚的电平为。
(分数:1分)A. 读引脚高电平,写引脚高电平B. 读引脚低电平,写引脚高电平C. 读引脚高电平,写引脚低电平D. 读引脚低电平,写引脚低电平正确答案:B 6、下列哪条指令可将累加器A清零。
(分数:1分)A. ANL A,0FHB. ORL A,00HC. MOV A,00HD. XRL A,#0E0H正确答案:C 7、将立即数40H传送至A中的指令是 。
(分数:1分)A. MOV A,40HB. MOV #40H,AC. MOV A,#40HD. MOV 40H,A正确答案:C 8、80C51指令系统中,清零指令是。
(分数:1分)A. CPL AB. RLC AC. CLR AD. RRC A正确答案:C 9、80C51单片机的中断矢量地址是________.(分数:1分)A. 0000HB. 000BHC. 0007HD. 001FH正确答案:B 10、在80C51指令中,下列指令中是无条件转移指令。
(分数:1分)A. LCALL addr16B. DJNZ direct,relC. SJMP relD. ACALL addr11正确答案:C 11、80C51汇编语言指令格式中,唯一不可缺少的部分是。
单片机 4位时钟数码管
单片机控制4位时钟数码管的方法如下:
连接硬件:将4位数码管的共阳(或共阴)引脚连接到单片机的I/O口,连接数码管的段选引脚到单片机的另外4个I/O口。
同时,连接一个晶振和相关的电容电阻到单片机的时钟输入引脚和地。
设置引脚:在代码中定义每个数码管引脚对应的I/O口为输出模式,用于控制数码管的显示。
编写代码:使用单片机的定时器功能,通过编程计算出每个数码管显示的数字对应的段选编码,并在定时器中断服务程序中更新数码管的显示。
调试程序:将程序下载到单片机中,通过观察数码管的显示效果,调整程序中的参数或代码,以达到预期的显示效果。
需要注意的是,具体的实现方式可能因单片机的型号和数码管的类型而有所不同,需要根据实际情况进行相应的调整。
郭天祥单片机教学LESSON4数码管动态显示优秀课件.ppt
主程序
中断响应
中断请求
执行主 程序
断点
继续执行 主程序
执行 中断 处理 程序
中断返回
4.1 80C51中断的控制
一、中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏 蔽是由中断允许寄存器IE控制的。
▪EX0(IE.0),外部中断0允许位; ▪ET0(IE.1),定时/计数器T0中断允许位; ▪EX1(IE.2),外部中断0允许位; ▪ET1(IE.3),定时/计数器T1中断允许位; ▪ES(IE.4),串行口中断允许位; ▪EA (IE.7), CPU中断允许(总允许)位。
▪TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自 动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU 可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可 以用软件置1或清0,同硬件置1或清0的效果一样。 ▪TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置 0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/ 计数器的启动与停止。 ▪TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 ▪TR0(TCON.4):T0运行控制位,其功能与TR1类同。
TL0
TCON
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
外部中断相关位
T1方式
内部总线 TMOD T0方式
4.2.2 定时/计数器的控制
80C51单片机定时/计数器的工作由两个特殊功 能寄存器控制。TMOD用于设置其工作方式; TCON用于控制其启动和中断申请。
一个单片机4键控制四个数码管显示的程序或思路
例如你刚上电单片机复位你的单片机先是p1口输出高电平到数码管的段选然后p2口ቤተ መጻሕፍቲ ባይዱ出高电平到反相器然后再输出低电平到数码管的位选
[单片机][控制][数码]求一个单片机4键控制四个数码管显示的程序或思路
应该是P2.0-P2.3控制四个位选码 P2.0-P2.78个段选码
使用两个74HC573 锁存器 并另外用两个端口入P1.0 P1.1分别控制段选使能和位选使能 1^0 1^1 写程序时,先开位选dula=1 再送数P2=0xxx 关段选dula=0 位选操作如上
/*********************************************************
164串行输出段码:
P4.4 U164CP
P4.5 U164D
138输出位选
P4.3选通138
P4.0对应138A
P4.1对应138A
P4.2对应138A
*********************************************************/
}
&= ~BIT3;
}
首先你要看你的数码管是哪类啊?是共阳极还是共阴极。如果你全部都是亮的话,而且是显示个8字的。那么你控制位选,可以改变数码管的显示个数。如果你想改变数码管显示的数字,就改变段选吧。其实你这个一接电源就亮着是有原因的,你接上电源时,单片机的输出端口P0,P1,P2,P3都是复位的。除了P0口外,其他都处于高电平输出。当然,你的板子上也是肯定有个反相器,使高电平变成低电平。例如你刚上电,单片机复位,你的单片机先是P1口输出高电平到数码管的段选,然后P2口输出高电平到反相器,然后再输出低电平到数码管的位选。这样数码管就亮着啦。(我举例的数码管是共阴极的)
单片机的4种工作方式介绍
单片机的4种工作方式介绍单片机共有复位、程序执行、低功耗和编程与加密四种工作方式,下面分别加以介绍。
1.复位方式(1)为什么要复位大家知道,单片机执行程序时总是从地址0000H 开始的,所以在进入系统时必须对CPU 进行复位,也叫初始化;另外由于程序运行中的错误或操作失误使系统处于死锁状态时,为了摆脱这种状态,也需要进行复位,就象电脑死机了要重新启动一样。
(2)复位的原理单片机复位的方法其实很简单,只要在RST 引脚(9 脚)上加一个持续时间为24 个振荡周期(即两个机器周期)的高电平就可以了。
如果晶振为12M,计算一下这个持续脉冲需要多长时间?(3)如何进行复位复位操作有上电自动复位、按键复位和外部脉冲复位3 种方法,上电自动复位是通过外部复位电路的电容充电来实现的,当电源刚接通时电容C 对下拉电阻开始充电,由于电容两边的电压不能突变,所以RTS 端维持高电平,只要这个充电时间不超过1ms,就可以实现对单片机的自动上电复位,即接通电源就完成了系统的初始化,在实际的工程应用中,如果没有特殊要求,一般都采用这种复位方式;按键复位的电路如图2 所示,它其实就是在上电复位的基础上加了R2 和SA,这种电路一般用在需要经常复位的系统中;外部脉冲复位的电路如图3 所示,外部复位通常用于要求比较高的系统,比如希望系统死锁后能自动复位。
外部复位是由专门的集成电路来实现的,也就是我们通常俗称的“看门狗”电路,这种电路有很多,它们不但能完成对单片机的自动复位功能,而且还有管理电源、用作外部存储器等功能,比如X25045,MAX813L 等等就是比较常用的此类芯片。
(4)复位后的状态这就是单片机复位后内部系统的状态。
2.程序执行方式程序执行是单片机的基本工作方式,由于复位后PC=0000 ,所以程序就从地址0000H 开始执行,此时单片机就根据指令的要求完成一系列的操作控制,比如前面讲的让LED 灯闪烁起来,不过在实际使用中,程序并不会从0000H 开始执行,而总是安排一条跳转指令,比如LJMP START ,为什么要这样安排,我们讲到中断时再来解释。
单片机 第四章答案
LP1: JBC TF0 ,LP2
JB P3.2 , LP1
INC R0
;低电平到,停止定时器1,存储单元地址加1
SJMP LP0
;低电平到,停止定时器1 宽度
LP2: INC @R0
;存储溢出次数加1ms
MOV TH0,#0FCH ;定时1ms
MOV TL0,#18H SJMP LP1
INT1
INT1 为高时T1 开始计数
中断程序结构框架
20.利用定时/计数器T0从P1.0输出周期为1s,脉宽为20ms的正 脉冲信号,晶振频率为12MHz。试设计程序。参照【例4-6】
解:因方式2是8位计数器,其最大定时时间为:256×1 s = 256 s,为实现1 s延时,
可选择定时时间为200 s,再循环5000次。定时时间选定后,可确定计数值为200,则定
时器0的初值为:X = M 计数值=256 200 = 56 。采用定时器0,方式2工作,因此,
TMOD =02H。
ORG 0000H
MOV TMOD,#02H ;置定时器0为方式2
MOV TH1,#56
;置定时器初值
MOV TL1,#56
CLR P1.0 MAIN: MOV R5,#50
;置20 ms计数循环初值 1s
②计算定时500us初值:方式0:X = 213 - 500 = 7692 = 1E0CH
ORG START:MOV
CLR CLR MOV MOV MOV SETB LOOP: JNB CLR MOV MOV INC CJNE MOV CPL JNB CPL SJMP END
0000H TMOD, #00H
ORG 0000H
START:MOV TMOD, #02H;定时器T0工作方式2
基于单片机的4通道模拟信号采集与显示系统
设计(论文)内容及要求:一、设计内容1、分析理解常用的单片机模拟电压测量电路系统,设计一可同时测量4路0~5V直流电压的电路,系统具有4路顺序循环采集与指定某一路采集的功能,且能通过显示出通道和电压值;2、学习Keil uVision2和proteus7电子仿真软件;3、将设计的电路通过仿真软件进行运行,并能得到正确结果;4、总结写出设计论文。
二、设计要求[1] 根据设计任务书设计内容,作出设计进度安排,写出开题报告;[2] 撰写毕业设计(论文),篇幅不少于1.5万字,图表数据完整;[3]收集查找资料,参考资料不少于六本,并于引用处标明;[4]按毕业设计(论文)规范要求,打印装订成册两本;[5]完成英语译文一篇。
三、主要参考资料[1] 谢自美. 电子线路设计*实验*测试.华中科技大学出版社.[2] 张友德等. 单片微型机原理、应用和实验.电子工业出版社.[3] 吴经国等.单片机应用技术. 中国电力出版社.[4] 李群芳.单片机微型计算机与接口技术.电子工业出版社.[5] 阉石.数字电子技术基础.高等教育出版社.[6] 黄智伟.全国大学生电子设计竞赛训练教程.电子工业出版社.[7] 周立功.单片机实验与实践.北京航空航天大学出版社.南华大学本科生毕业设计(论文)开题报告设计(论文)题目基于单片机的4通道模拟信号采集与显示系统设计(论文)题目来源其它设计(论文)题目类型软件仿真起止时间07年12月-08年5月一、设计(论文)依据及研究意义:依据:单片机I/O口的输入输出功能、AD转换原理及LCD显示原理意义:多通道的模拟信号采集与显示系统比单通道的实用范围更广二、设计(论文)主要研究的内容、预期目标:(技术方案、路线)1、主要研究内容:分析理解常用的单片机模拟电压测量电路系统,设计一可同时测量4路0~5V直流电压的电路,系统具有4路顺序采集与指定某一路采集的功能,且能通过显示屏显示出通道数的电压值。
单片机keil4的使用方法
Keil μVision是一款用于嵌入式系统开发的集成开发环境(IDE),适用于多种单片机架构,如ARM、8051等。
以下是在Keil4中使用的基本步骤:1. 项目创建:•打开Keil μVision。
•选择 "Project" -> "New µVision Project"。
•选择项目保存的目录,输入项目名称,点击 "Save"。
•选择单片机型号(例如,ARM Cortex-M系列、8051系列)。
•定义目标设备的时钟频率等设置。
2. 源文件添加:•在 "Project" 窗口中右键点击 "Target 1",选择 "Manage Project Items"。
•在 "Files" 标签页中添加你的源文件(C、Assembly等)。
3. 编写程序:•在 "Project" 窗口中双击你的源文件,进入编辑界面。
•编写你的嵌入式 C 程序。
4. 构建项目:•选择 "Project" -> "Build Target" 或者点击工具栏上的 "Build" 图标。
•检查编译过程中是否有错误。
5. 调试配置:•在 "Project" 窗口中右键点击 "Target 1",选择 "Options for Target 'Target 1'"。
•在 "Debug" 标签页中选择调试器和仿真器等设置。
6. 调试程序:•选择 "Debug" -> "Start/Stop Debug Session" 或者点击工具栏上的 "Start/Stop Debug Session" 图标。
单片机第4章
中断响应及处理过程 保护断点 寻找中断源 中断处理 中断返回 保护断点和寻找中断源都是由硬件自动完成的,用户不用考虑。
4.2 MCS 51中断系统
MCS-51提供了5个中断源,2个中断优先级控制,可实现2个中断 服务嵌套。可通过程序设置中断的允许或屏蔽,设置中断的优先级。 CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位, 若查到某标志位被置位,将启动中断机制。 MCS-51的中断源 5个中断源: 外部中断源(中断标志为IE0和IE1 ) 由P3.2端口线引入,低电平或下降沿引起。
4 MCS® 51单片机中断系统
4.1 中断系统概念
4.2 MCS 51中断系统 4.3 MCS 51中断响应过程 4.4 MCS 51中断系统编程 4.5 MCS 51外部中断扩展
4.1 中断系统概念
中断是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中 止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完 毕(中断服务完成)后,CPU自动返回原程序的过程。 作用:采用中断技术可以提高CPU效率、解决速度矛盾、实现并行 工作、分时操作、实时处理、故障处理、应付突发事件,可使多项任务 共享一个资源(CPU)。 中断与子程序的最主要区别:子程序是预先安排好的,中断是随机 发生的。 中断涉及的几个环节:中断源、中断申请、开放中断、保护现场、 中断服务、恢复现场、中断返回。
EX0/EX1/ET1/ET0/ES :分别是INT0/INT1、T0/T1、串行口的中断允 许控制位。 =0 :禁止中断; =1 :允许中断。 EA:总的中断允许控制位(总开关): =0 :禁止全部中断; =1 :允许中断。
中断优先级控制寄存器IP(0B8H)
PX0/PX1:INT0/INT1优先级控制位: =0 :属低优先级; =1 :属高优先级。 PT0/PT1:T0/T1中断优先级控制位: =0 :属低优先级; =1 :属高优先级。 PS1:串行口中断优先级控制位: =0 :属低优先级; =1 :属高优先级。
单片机第4章输入输出接口P0~P3
2020/6/6
6
编程如下:
CLR P1.0
;使发光二极管灭
AGA:SETB P1.1;对输入位P1.1写“1”
JB P1.1,LIG ;开关开,转LIG
SETB P1.0
;开关合上,二极管亮
SJMP AGA
LIG: CLR P1.0 ;开关开,二极管灭
SJMP AGA
2020/6/6
7
例:如图5-3所示, P1.0~ P1.3接4个发光二极管LED, P1.4~ P1.7 接4个开关,编程将开关的状态反映到发光二极管上。
DIR: MOV R0,#0
;R0存字形表偏移量
MOV R1,#01
;R1置数码表位选代码
NEXT:MOV A,R0
MOVC A,@A+DPTR ;查字形码表1
MOV P1,A
;送P1口输出
2020/6/6
14
MOV A,R1 MOV P3,A ;输出位选码 ACALL DAY ;延时
INC R0 RL A
P3口(P3.0~P3.7):P3口同样是内部带上拉电阻的8位准 双向I/O口,P3口除了作为一般的I/O口使用之外,其 还具有特殊功能。
。 2020/6/6
4
P3 口的第二功能
2020/6/6
5
5.2 编程举例
例:设计一电路,监视某开关K,用发光二极管LED 显示开关状态,如果开关合上,LED亮;开关打开, LED熄灭。
2020/6/6
3
5.1 P0~P3端口的功能和内部结构
P0口(P0.0~P0.7):该端口为8位准双向口,负载能力为 8高LSTTL负载。
P1口(P1.0~P1.7):8位准双向I/O口,P1口的驱动能力为 4个LSTTL负载。
单片机的4位数码管秒表
原理图:源程序:/*************************************************************标题:定时器中断精确到00.01的秒表效果:能清零重新开始,暂停,继续计时,能精确到0.01秒作者:皖绩小挺说明:使用12M晶振,四位数码管,3个按键****************************************************************/ #include<reg52.h>#define uint unsigned int#define uchar unsigned charuint temp,tt,qian,bai,shi,ge;sbit smg_q=P1^0;sbit smg_b=P1^1;sbit smg_s=P1^2;sbit smg_g=P1^3;sbit key1 = P3^7;sbit key2 = P3^6;sbit key3 = P3^5;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //带小数点void keyscan();void display(uint shi,uint ge);void delay(uint z);void init();/************************************************************** 主函数******************************************************************/void main(){init();//初始化子程序while(1){if(tt==1){tt=0;temp++;if(temp==10000){temp=0;}qian=temp/1000;bai=temp%1000/100;shi=temp%100/10;ge=temp%10;}keyscan();display(shi,ge);}}/********************************************************************* 延时***********************************************************************/ void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/*********************************************************************按键控制***********************************************************************/ void keyscan(){if(key1==0) //清零并重新开始计时{temp=0;TR0=1;}if(key2==0) //暂停计时{TR0=0;}if(key3==0) //继续计时{TR0=1;}}/********************************************************************* 显示***********************************************************************/ void display(uint shi,uint ge){smg_q=0;P0=table[qian];delay(1);smg_q=1;P0=0xff;smg_b=0;P0=table1[bai];delay(1);smg_b=1;P0=0xff;smg_s=0;P0=table[shi];delay(1);smg_s=1;P0=0xff;smg_g=0;P0=table[ge];delay(1);smg_g=1;P0=0xff;}/********************************************************************* 初始化***********************************************************************/ void init(){smg_q=1;smg_b=1;smg_s=1;smg_g=1;temp=0;TMOD=0x01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;}/********************************************************************* 中断***********************************************************************/ void t0() interrupt 1{TH0=(65536-10000)/256;TL0=(65536-10000)%256;tt++;}。
单片机4 7章参考答案
单片机4 7章参考答案单片机4--7章参考答案“单片机原理及应用”课程习题与解答第4章4-4:外部中断1所对应的中断入口地址为()h。
请问:0013h4-5:下列说法错误的是:a、各中断收到的中断请求信号,都会标记在mcs-51系统的ie寄存器中。
b、各中断收到的中断请求信号,都会标记在mcs-51系统的tmod寄存器中。
c、各中断收到的中断请求信号,都会标记在mcs-51系统的ip寄存器中。
d、各中断收到的中断请求信号,都会标记在mcs-51系统的tcon与scon寄存器中。
答:abc4-7:中断查阅证实后,在以下各种8031单片机运转情况中,能够立即展开积极响应的就是:a、当前正在执行高优先级中断处理b、当前正在执行reti指令c、当前指令是div指令,且正处于取指令的机器周期d、当前指令是mova,r3答:d4-8:8031单片机积极响应中断后,产生短调用指令lcall,继续执行该指令的过程包含:首先把()的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送(),使程序执行转向()中的中断地址区。
答:pc、pc、程序存储器4-9:编写成外部中断1为冲沿引爆的中断初始化程序。
请问:setbit1setbex1setbea4-10:在mcs-51中,需要外加电路实现中断撤除的是:a、定时中断b、脉冲方式的外部中断c、外部串行中断d、电平方式的外部中断答:d4-12:以下观点恰当的就是:a、同一级别的中断请求按时间的先后顺序响应。
b、同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。
c、低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。
d、同级中断不能嵌套。
答:acd4-13:中断服务子程序回到指令reti和普通子程序回到指令ret存有什么区别?答:reti指令在返回的同时清除相应的优先级触发器,以允许下次中断第5章mcs-51的定时/计数器1.如果采用晶振的频率为3mhz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?解答:因为机器周期tcy?1212??4(?s)6fosc3?10,所以定时器/计数器工作方式0下,其最大定时时间为tmax?213?tc?213?4?10?6?8.192(ms);同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1.024ms。
单片机第四章答案
第四章习题与思考答案4-3外设端口有哪两种编址方法?各有什么特点?答:微型计算机对 I/O 端口进行编址的方式有两种:单独编址和统一编址。
1.外设端口单独编址特点:(1) 需要专用 I/O 指令,实现 CPU 和外设间数据传送。
(2)I/O端口地址的独立。
2.外设端口与存储器统一编址特点: (1) 无需专用 I/O 指令(2)I/O端口地址是内存地址中的一部分。
4-4 I/O 数据有哪四种传送方式?各有什么特点?CPU 与外设之间的数据传送方式有无条件传输方式、查询方式、中断方式和 DMA 方式。
1.无条件传输方式无条件传送又称为同步传送或直接传送方式。
CPU 在与外设进行数据交换时,外设随时处于准备好的状态,这样 CPU 不必查询外设的状态,也不必等待,而是直接进行数据的输入输出。
2.查询传输方式查询传输方式也称为异步传输、条件传输方式。
采用查询方式时, CPU 每次与外设进行数据传输前,都要先读取状态端口的信息,查询外设是否准备就绪,只有在外设处于“就绪”状态时,才能向外设的数据端口发送数据或从其中读取数据,如果外设未就绪,就需要 CPU 原地循环等待外设完成准备工作,所以 CPU 的工作效率不高。
3.中断传输方式在中断传输方式中,以外设为主动方,每次外设准备好就可以向 CPU 发出一次中断请求,使 CPU 暂停当前正在执行的程序,转去与外设进行一次数据传输工作,当完成了本次数据的输入或输出后,再回到原先被打断的地方继续执行原来的程序。
中断方式可以大大提高 CPU 的效率和系统的实时性。
4. DMA 方式DMA 方式即直接存储器存取方式,是一种在DMA控制器的控制下实现的外设与存储器之间的直接数据传输方式。
在整个DMA 传输过程中,是不需要 CPU 参与的,完全是通过硬件逻辑电路用固定的顺序发地址和读写信号来实现的,数据不需要经过 CPU 而是在外设和存储器之间高速传输。
4-5 8051 内部的并行I/O 口有哪些?各有什么功能?1.P0 口P0 口的第一功能是作为通用I/O 口使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川工程职业技术学院单片机应用技术课程电子教案Copyright © 第讲48051及P89V51RD2单片机数据存储器本讲主要内容4-1. 51单片机内部RAM结构4-2. 51单片机的数据存储器管理4-3. 增强型51单片机P89V51RD2的内部RAM 4-4. 51单片机的RAM扩展4-1. 51系列单片机的RAM 结构51系列单片机RAM 结构图片外扩展RAM低128字节RAM内部扩展RAM高128字节RAM特殊功能寄存器区00H7FH80H FFH片内片外在上图中,单片机内部低128字节RAM 和特殊功能寄存器区是每种51单片机都具备的,高128字节RAM 和内部扩展RAM 只是部分增强型单片机才具有。
大多数单片机应用系统都需要片外扩展RAM ,但不绝对。
51系列单片机的数据存储器管理✧51系列单片机对数据存储器RAM的管理是通过16bit的特殊功能寄存器DPTR(Data Pointer)来实现,每个RAM单元(byte)也对应一个特定的地址编码(Address),因此,51系列单片机的地址的编码范围(通常称为寻址范围):0000 0000 0000 0000B ~1111 1111 1111 1111B(二进制)0 0 0 0 H ~ F F F F H(十六进制)0 ~65535 (十进制)因此51系列单片机的RAM寻址范围也是64K✧51系列单片机ROM和RAM 的地址编码范围都是0000H~FFFFH,但由于在寻址时硬件电路上有区别,所以不会混淆。
✧51系列单片机中,单片机外接的接口芯片如A/D、D/A等都有互不相同的地址,这些地址都是占用单片机外部RAM 的地址编号。
51系列单片机的数据存储器管理✧目前的51系列单片机视型号不同内部有128-1024byte不等的RAM空间。
用户最好选择合适的单片机型号,避免外扩RAM存储器。
标准51系列单片机的内部RAM✧所有51单片机内部都含有低128B 字节RAM 和特殊功能寄存器区。
内部扩展RAM高128字节RAM特殊功能80H 寄存器区00H7FHFFH低128字节RAM32字节工作寄存器区16字节位寻址区00H2FH 7FH80字节用户区1FH 20H 30H 低128字节RAM标准51系列单片机的内部RAM ——低128B低端32个字节分成4个工作寄存器组,每组8个单元(R0~R7)。
当前工作寄存器组的机制便于快速现场保护。
特殊功能寄存器PSW 的RS1、RS0两位决定当前工作寄存器组号。
32字节工作寄存器区16字节位寻址区00H2FH 7FH80字节用户区1FH20H 30H 0组00H10H08H 18H 1组2组3组1FH 组号RS1RS0R7R6R5R4R3R2R1R000007H 06H 05H 04H 03H 02H 01H 00H 1010FH 0EH 0DH 0CH 0BH 0AH 09H 08H 21017H 16H 15H 14H 13H 12H 11H 10H 3111FH1EH1DH1CH1BH1AH19H18H标准51系列单片机的内部RAM ——低128B32字节工作寄存器区16字节位寻址区00H2FH 7FH80字节用户区1FH20H 30H 16字节位寻址区标准51系列单片机的内部RAM ——低128B✧该区域每个单元可以作为一般RAM 单元整体使用。
例如:MOV 20H ,#23H ;将20H 单元赋值为23H 指令执行后:✧单元中每一位也可以作为独立的可寻址位单独使用。
例如:20H 单元的最低位可表示为00H ——位地址20H.0——存储单元地址加位例如:SETB 20H ;将24H 单元的最低位置为1指令执行后:32字节工作寄存器区16字节位寻址区00H2FH 7FH80字节用户区1FH20H 30H 011120H24H120H 位地址单元地址单元地址标准51系列单片机的内部RAM ——低128B位寻址区之后的30H-7FH 共80个字节为通用RAM 区,也称用户区,这些单元可以作为数据缓冲器使用。
这一区域的操作指令非常丰富,数据处理方便灵活。
在实际应用中,常需在此区设置堆栈。
32字节工作寄存器区16字节位寻址区00H2FH 7FH80字节用户区1FH20H 30H标准51系列单片机的内部RAM——堆栈✧堆栈——是在RAM区中划定的一个区域,对该区域RAM单元的读写操作必须遵守特定的顺序。
比如先入先出,或先入后出原则。
✧堆栈的作用——主要用在子程序的调用过程中或作为特殊的数据交换区。
堆栈的开辟✧栈顶的位置由SP(堆栈指针)寄存器指示。
✧复位时SP的初值为07H,在系统初始化时可以根据用户的需要重新设置。
✧标准8051的堆栈一般设在30H~7FH的范围内。
标准51系列单片机的内部RAM ——堆栈✧堆栈的操作65H 64H63H62H 61H栈底60H 59H内部RAMPUSH PUSH PUSH X Y Z入栈过程65H 64H63H 62H 61H栈底60H 59H内部RAMPOP L POP MPOP NXY Z 出栈过程先入后出后入先出SPSP SP SP SP SP指针先移动,数据后进栈。
数据先进栈,指针后移动。
标准51系列单片机的内部RAM ——SFR✧51单片机内部都含有128B 的特殊功能寄存器区,其地址为80H —FFH 。
✧但不同的单片机内部特殊功能寄存器的个数是不等的。
✧这些特殊功能寄存器用于存放单片机中相应功能部件的控制命令、状态或数据。
低128字节RAM 00H7FH80H FFH特殊功能寄存器区标准51系列单片机的内部RAM —SFR✧列举其中的几个:寄存器位地址/位名称符号地址ACC0E0H0E7H0E6H0E5H0E4H0E3H0E2H0E1H0E0H B0F0H0F7H0F6H0F5H0F4H0F3H0F2H0F1H0F0H PSW0D0H0D7H0D6H0D5H0D4H0D3H0D2H0D1H0D0HCY AC F0RS1RS0OV-P DPL82HDPH83H标准51系列单片机的内部RAM —SFR使用方法:✧在这个存储区中,除了特殊功能寄存器之外剩余的空闲单元,用户不得使用;✧必须使用直接寻址方式进行访问,可使用寄存器的名称或地址:例如:0E0H——累加器的地址A——累加器的名称✧只有具有位地址和位名称的寄存器才可以位寻址;例如:0D7H——程序状态字最高位的位地址CY——程序状态字最高位的位名称0D0H.7——程序状态字字节地址加位PSW.7——程序状态字字节名称加位内部RAM 容量为1KB ,增加了高128B 和扩展RAM (768B )。
低128字节RAM内部扩展RAM高128字节RAM特殊功能寄存器区00H7FH80H FFH000H2FFH内部高128B✧具有和SFR 区相同的地址;✧访问方式——必须使用间接寻址方式访问例:给90H 单元赋值30H 可采用如下方式:MOV R0,#90H ;指向90H 单元MOV @R0,#30H ;赋值为30H低128字节RAM 内部扩展RAM高128字节RAM 特殊功能寄存器区00H7FH80H FFH000H2FFH低128字节RAM 内部扩展RAM高128字节RAM 特殊功能寄存器区00H7FH 80H FFH000H2FFH内部扩展RAM000H2FFH 内部扩展RAM (768B ):000H ~2FFH✧访问受AUXR (辅助寄存器)中的EXTRAM 位控制扩展RAM2FFH000HFFFFH0000H间接寻址外部数据存储器EXTRAM=0EXTRAM=10300HFFFFH间接寻址外部数据存储器内部扩展RAM (768B ):000H ~2FFH✧访问方式——间接寻址访问✧访问指令——MOVX例如:访问内部扩展RAM 中0A0H 单元可采用:方法一:MOV R0,#0A0H MOVX A ,@R0方法二:MOV DPTR ,#00A0HMOVX A ,@DPTR内部扩展RAM000H2FFH4-4. 51单片机的RAM 扩展外部RAM 扩展实例✧外扩RAM 容量:6116×2(2KB ×2)✧访问方式——间接寻址✧访问指令——MOVX✧访问所需控制信号:地址总线低8位—P0口提供地址总线高3位—P2口提供6116A 片选——P2.66116B 片选——P2.7控制信号:/RD (P3.7)—读允许/WR (P3.6)—写允许E A/VP 31X119X218RE SE T 9RD 17W R16INT 012INT 113T 014T 115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSE N 29AL E /P 30T XD 11RXD 10MCS-518765432123221918211820910111314151617RAM 2048×8A0____2047E N&[I][O]U16116A 8765432123221918211820910111314151617RAM 2048×8A0____2047E N&[I][O]U26116B OC 1C 111D 31Q 22D 42Q 53D 73Q 64D 84Q 95D 135Q 126D 146Q 157D 177Q 168D 188Q19U374L S373GND。