个人近期工作内容以及总结单片机_第1页
个人近期工作内容以及总结单片机_第2页
个人近期工作内容以及总结单片机_第3页
个人近期工作内容以及总结单片机_第4页
个人近期工作内容以及总结单片机_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 50 个人近期工作内容以及总结单片机 口、一个全双工的串行口、 2 个 16 位的定时器 /计数器、 5个中断源、 2个中断优先级。 机器周期是指: 完成 MCS-51一个典型的指令花费的振荡周期称为一个机器周期 ;一个机器周期由 六 个状态组成,包含有 12个 振荡周期; 当外部中断采用低电平触发方式时 ,为了避免在中断返回后再次响应该中断,要求外部中断源在执行的中断程序返回前撤销中断请求信号 ; 程序计数器 PC是用来存放 下一条将要执行的 指令地址,共 16 位。单片机上电复位后, PC = 0000H ; 当单片机的 P1 口做为一般的 I/O 口使用时,为 8 位准双向口的意思是指: 当输入信号时,需先向 P1口锁存器写 1,以保证读引脚的正确性 ; 何谓堆栈?它设置在哪个存储区?在实际编程中,它有何应用价值? 答:堆栈是一个后进先出的特殊的数据缓冲区,并由栈指针2 / 50 SP指示堆栈中的数据深度。 在 MCS-51 系列单片机中,堆栈设置在内部 RAM 数据存储 区内。在实际编程中,可用于数据的传递,数据的交换、保存CPU现场等作用 简述 MCS?51 单片机程序存储器的几个特殊入口地址的含义。 0000H:复位入口地址 0003H:外部中断 0 中断服务程序入口地址 000BH:定时器 /计数器 0 溢出中断服务程序入口地址 0013H:外部中断 1 中断服务程序入口地址 001BH:定时器 /计数器 1 溢出中断服 务程序入口地址 0023H:串行口中断服务程序入口地址 何谓静态显示?何谓动态显示?两种显示方式有何优缺3 / 50 点? 所谓静态显示,是指当显示器显示某一个字符时,相应的发光二极 管恒定地导通或截止,公共端接固定的电平。 LED 动态显示是将所有位的段选线并接在一个 I/O 接口上,称为段口,共阴极端或共阳极端分别由相应的 I/O 接口线控制,称为位口。 静态显示显示稳定,但软件简单;动态显示硬件简单,但软件需要不断地刷新。 编程将片内 RAM 30H 39H单元中的内 容送到以 3000H 为首的存储区中。 MOV MOV MOV R0, #30H DPTR,#3000H R7, #10 L1: MOV MOVX 4 / 50 INC INC DJNZ RET A,R0 DPTR,A R0 DPTR R7, L1 片内 RAM 60H 开始存放 20 个数据,试统计 正数、负数及为零的数据个数,并将结果分别存在 50H、 51H、 52H 单元中。 MOV 50H,#0 MOV 51H,#0 MOV 52H,#0 MOV R7,#20 MOV R0, #60H L3: MOV A,R0 JZ L1 JB ,L2 INC 50H SJMP LEND L2: INC 51H SJMP LEND L1: INC 52H LEND: INC R0 DJNZ R7,L3 RET 从片外 RAM 2000H 单元开始存有 20 个有符号数,要求把它们传送到片外 RAM 3000H开始的单元,但负数 不传送,试编写程序。 5 / 50 L1: L2: L3: MOV DPTR,#2000H MOV R0,#20H MOV R7,#20 MOVX A,DPTR MOV R0,A INC DPTR INC R0 DJNZ R7,L1 MOV DPTR,#3000H MOV R0,#20H MOV R7,#20 MOV A,R0 JB ,L3 MOVX DPTR,A INC DPTR INC R0 DJNZ R7,L2 RET 在片外 RAM 2000H、 2001H 和 3000H、 3001H中分别存放两个字数据,试比较两个数的大小,把大数存放在 4000H、 4001H单元中。 MOV DPTR,#2000H L1: L2: MOVX MOV INC MOVX MOV MOV MOVX MOV INC MOVX MOV CLR MOV SUBB MOV SUBB JNC MOV MOV SJMP MOV MOV MOV MOVX INC MOV MOVX RET A,DPTR 20H,A DPTR A,DPTR 21H,A DPTR,#3000H A,DPTR 30H,A DPTR A,DPTR 31H,A C A,21H A,31H A,20H A,30H L1 A,20H B,21H L2 A,30H B,31H DPTR,#4000H DPTR,A DPTR A,B DPTR,A 试编写一段对中断系统初始化的程序,允许外部中断 0、6 / 50 外部中断 1、定时器 /计数器 T0 溢出中断、串行口中断,且使定时器 /计数器 T0溢出中断为高优先级中断。 SETB EA SETB EX0 SETB EX1 SETB ET0 SETB ES SETB PT0 D6 _ D5 _ D4 ES D3 ET1 D2 EX1 D1 ET0 D0 EX0 D7 IE EA 。 ORG 0000H LJMP MAIN ORG 000BH LJMP T0INT ORG 0030H MAIN: MOV SP, #60H MOV R7, #0 MOV TMOD, #01H MOV TH0, #0FDH MOV TL0, #66H SETB EA SETB ET0 SETB TR0 L1: SJMP L1;中断服务程序 7 / 50 T0INT: MOV TH0, #0FDH MOV TL0, #66H INC R7 CJNE R7, #1, LL1 CLR SJMP LLEND LL1: CJNE R7,#3, LLEND SETB MOV R7, #00H LLEND: RETI ;初始化 ;定时 666微妙 ;重载初始值 如果 MCS?51单片机系统的晶振频率为 12MHz,分别指出定时器 /计数器方式 1 和方式 2的最长定时时间。 方式 1:65536us; 方式 2:256us 设 MCS?51 单片机的晶振频率为 12MHz,要求在输出周期是200ms的方波,试编 写程序。 ORG 0000H LJMP MAIN ORG 001BH LJMP T1INT ORG 0030H MAIN: MOV SP,#70H MOV TMOD,#10H MOV TH1, #3CH MOV TL1, #0B0H MOV R7, #2 SETB EA SETB ET1 SETB TR1 SJMP $ T1INT: MOV TH1, #3CH ;T1 方式 1 ;定时 50ms ; 50ms*2=100ms L1: MOV DJNZ MOV CPL RETI TL1, #0B0H R7, L1 R7,#2 8 / 50 设串行异步通信的传送速率为 2400 波特,传送的是带奇偶校验的 ASCII 码字符,每个字符包含 10 位,试编程初始化程序。 设定串行口位方式 1. MOV MOV MOV MOV MOV SCON,#40H PCON,#80H TMOD,#20H TH1, #0F4H TL1,#0F4H SETB TR1 设外部晶频率振为,串行口工作在方式 1,波特率为4800b/s。编写用 T1 作为波特率发生器的方式字并计算 T1的计数初值。 9 / 50 TMOD:20H TH1=TL1=0FAH 设计一个单片机的双机通信系统,串行口工作在方式 1,编写通信程序将甲机内部 RAM 30H 3FH 存储区的数据块通过串行口传送到乙机内部 RAM 40H 4FH 存储区中。 甲机发送: MOV MOV MOV MOV LOOP: MOV MOV 10 / 50 MOV MOV WAIT: JBC SJMP NEXT: INC DJNZ RET SCON, #80H PCON, #00H R0, #30H R2, #10H A,R0 C, P TB8, C SBUF, A TI, NEXT WAIT R0 R2,LOOP ;设置工作方式 2 ;置 SMOD = 0,波特率不加倍 ;数据区地址指针 ;数据长度 ;取发送数据 ;奇偶位送 TB8 ;送串行口并开始发送数据 ;检测是否发送结束并清 TI ;修改发送数据地址指针 乙机 接收: 11 / 50 LOOP: MOV MOV MOV MOV JBC SCON, #90H PCON, #00H R0, #40H R2, #10H RI, READ ;工作方式 2,并允许接收 ;置 SMOD = 0 ;置数据区地址指针 ;等待接收数据长度 ;等待接收数据并清 RI 工作总结 经验、失误 a、片机项目组 对于单片机 项目小组的经验,这一点我没有做的很好,每一次的让大家在实验室完成作业都是钱行定的时间,这也算我的失误吧。但是在我和钱行共同的督促下大家把该完成的作业完成的还不错。 b、算机义务维修队 经验:在这两个中计算机的人数不算太多,基本保持平均每天一个人的频率。经验来说主要是对队伍中的每个人维 修分配时,在天象需要维修的电脑均有我来负责。在校内需要维修的电脑我会根据无课表把要维修的电脑分配给队员,这也12 / 50 是对维修队队员考核的项目之一。以及做好计算机维修的长期记录,在每周的交流心得时共同讨论计算机常见的问题以及没有解决的问题,这样长期总结可以提高维修队伍中每一人的维修技能。利于计算机义务维修队的长期发展。 失误: a于六招新,预计周六的维修交流本周维修心得没能够按时的举行。 b 在计算机维修时校 内维修的没有做好及时的记录,导致有些电脑维修了没有记录。 C、个人工作经验及失误 个人总结 作为一个初学者,对于单片机我了解了一段时间,但总感觉无从入手 ,理论性的东西看了几遍也不会把它用到实处,通过这次彩灯控制实验,我也对单片机有了一定的了解。单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识,它的是怎样工作的,能干些什么?以前看学长做的流水灯我还不知道原理,现在总算清楚了。 在短短的几周里,真的学了很多,对我来说,编程是个问题,13 / 50 但我知道这是任重而道远的。我上的第一节课 是关于流水灯左右循环移动在实验箱上的实现,这个程序老师教了但还是搞不懂,后来通过同学之间相互探讨,终于理解了,最重要的还是 C 语言没学好,二进制转换为十六进制是很普通的但我还是不会,现在已经掌握了。 纸上得来终觉浅 ,绝知此事要躬行。 在短暂的学习过程中,我深深感觉到自己在实际应用中的专业知识的匮乏,总以为自己还可以,一旦接触到实际,才知道自己知道的是多么少,这时才真正领悟到 学无止境 的含义。 千里之行,始于足下。 这是一个短暂而充实的话。每看懂一个程序自己试着学人家编,去修改,去记录,终于能略懂,这确实让人深有体会。兴趣是最好的老师,这样才能坚持,要在以后积累很多经验。主要肯不耻下问,那就会学到很多东西。最后一句:基础很重要,实践也同样重要。必须要有学习单片机的热情,这样才能学好单 片机。谢谢老师几周以来的指导。 总结人: * 编程综述 14 / 50 单片机编程其实就是对寄存器的操作,更多的是用流程控制语句来决定寄存器对应行为的先后时间顺 序。什么时候该让寄存器干什么,什么时候停止。 Keil-c 也 可 以 使 用 指 针 来 定 义 字 符 串 。 uchar *trdata=hello,RS232n; send_char(trdatai); unsigned char *puchMsg ; while (usDataLen-) /* 传输消息缓冲区 */ while(TI=0);/直到 TI=0才往下执行。 尽量在子程序中少用 while(1) /死循环。 void sendchar(void) while(1) /死循环。 15 / 50 if(RI) /如果接收到数据。 RI = 0; /软件清 0 dat = SBUF; /将接收到的数据赋给之前定义的变量。 SBUF = dat; /将接收到的数据又发送出去。 while(!TI); / 等特数据传送 , 查询是否发送完毕。 TI = 0; /对发送标志位清 0。 当其他程序调用 sendchar(void)时将不能跳出死循环,所以在写子程序时要严格使用死循环。 标志位、控制位的对应 16 / 50 一般将标志位作为判断条件来执行对应程序。结合中断使用的频率较高。 例如 SendFlag = 0就必须有对应置 1 的条件, 而控制位更是要有对应的切换过程。 例如 RS485E=1; / RS5485E=0 为接 收状态 RS5485E=1为发送状态 if(TI = 1) TI = 0; SendFlag = 0; if(RI = 1) /RI 接受中断标志 RI = 0; /清除 RI接受中断标志 17 / 50 Data = SBUF; /SUBF 接受 /发送缓冲器 SendFlag = 1; if (SendFlag=1) / 如果中断程序响应了,即就是单片机接收到数据这时就将接收到的数据进行回显,发送到 PC RS485E=1; / RS5485E=0 为接收状态 RS5485E=1为发送状态 SBUF=Data; /发送数据 delay(50); else 18 / 50 RS485E=0; /接收状态 TM1629地址写的不对导致显示字符不对。 display2( 0xc0, LED14Num0); display2( 0xc1, LED14Num1); display2( 0xc2, LED14Num2); display2( 0xc3, LED14Num3); 往后在编程过程中一定要注意写地址命令的地址格式。 TM1629 数码管字符显示乱码 const unsigned char LED14Num= 0xa1, / 0 LSB 19 / 50 0x07, / 0 MSB 0x01, / 1 LSB 0x01, / 1 MSB 0x4A, / 2 LSB 0x1C, / 2 MSB / Number Encode 原因就在于焊接数码管引脚时没有按照顺序来,而导致编码没办法进行统一编码。下次可以根据编码推理出管脚位置然后再焊接引脚。 I+导致的编码错误 switch(*pt) case 0: disdatai =LED14Num0;disdatai+1 =LED14Num1; break; case 1: disdatai 20 / 50 =LED14Num2;disdatai+1 =LED14Num3; break; i+; 导致每次显示都会将 i+1覆盖; i+1和 i+重复了。改为 i=i+2; 小数点的错位 for(k=0;k if(disdataj=LED14Num7) display2( LED_GRIDj-2, 0x40|disdataj-2) ; k=j-1; j+;/让下一个数据得到正确显示。 21 / 50 display2( LED_GRIDk, disdataj); j+; 在没有小数点时要显示的数据正好和显示的位置对应但一旦有了小数点则将会使要显示的数据和显示的位置错了一位,所以选择 k,j 两个变量来进行位和数据的选择。注意j+;/让下一个数据得到正确显示。的位置。 对寄存器的操作进行打包成为固定函数,直接对该函数进行调用 #define PORT_KEY1 #define PIN_KEY1 (PTC_BASE_PTR) (5u) (PORT_KEY1-PDDR |= SHIFT_DATA (PORT_KEY1-PDDR &= (SHIFT_DATA #define KEY1_HIGH() (PORT_KEY1-PSOR |= SHIFT_DATA (PORT_KEY1-PCOR 22 / 50 |= SHIFT_DATA (PORT_KEY1-PTOR |= SHIFT_DATA (PORT_KEY1-PDIR & (SHIFT_DATA #define KEY1_CONFIG_PTR (PORTC_PCR5) #define KEY1_FUNC_CFG(fun) (KEY1_CONFIG_PTR &= PORT_PCR_MUX_MASK, KEY1_CONFIG_PTR |= fun static u32 jbak = 0; TIMER_1MS_CLR_FLAG(); /清零 jiffies+; / 变 量 值 增 加 if(_pasti(jbak)60000)Minutes_count+;jbak=jiffies; /Minutes 将固定的简单运算用宏定义来实现 #define _pasti(jbak) (u32)(jiffies - jbak) 将要包含的头文件建立成一个总的头文件,其他文件只用包含这个总的头文件 其他文件包含 #include 为以下内容 23 / 50 /* Include the derivative-specific header file */ #include #include #include #include Extern 用法 extern enum enum_menu_step menu_step; extern enum enum_menu_step limit_screen; 将 enum_menu_step 对外输出 menu_step和 limit_screen相当于起了两个别名。 extern void menu_proc(void);让menu_proc 函数可以被其他文件的函数调用 有两种用法: 1. 在本 .H 中进行 extern 声明,然后在其他 .h 中包含24 / 50 本 .H(只在本 .h中声明对外要用的东西 ) 2. 在其他 .h中声明来源于其他文件的 extern变量,这样其他 .h 中就不用包含本 .H 建议使用第一种用法减少变量重复声明,改动变量类型时无需大范围查找。 51 单片机关键字SFR 51单片机关键字 SFR 用于定义特定功能专用寄存器,编译器会把 SFR定义的寄存器使用直接访问方式访问,如果不定义后定义为普通变量, 51编译器访问的是通用寄存器,应为 51单片机的专用寄存器与部分通用寄存器地址空间重叠。 Char 型和 int型用于延时程序延时区别很大。 不管你使用哪种进制来传输数据计算机最终都会转化为 2进制来处理。P0=255 和 P0=0xff 没有区别。 通过移位运算来实现不同类型数据的传输。 unsigned long l; unsigned int m,n; while(1) l=65280; /ff00 m=l8; /l 的高 8 位 ff P0=m; delay(500); n=l; /l 的低 8 位 00,高 8 位没地方存 P0=n; delay(500); 第 1 章 25 / 50 1、微型计算机通常由哪些部分组成?各有哪些功能? 答:微型计算机通常由控制器、运算器、存储器、输入 /输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊的协调工作;运算器主要完成算数运算和逻辑运算;存储器用于存储程序和数据 ;输入 /输出接口电路完成 CPU 与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。 2、单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器 ROM和 RAM和 I/O端口引脚具有复用功能;软件上,采 用面向控制的指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性高等特点。 3、单片机的几个重要指标的定义。 26 / 50 答:单片机的重要指标包括位数、存储器、 I/O 口、速度、工作电压、功耗和温度。 4、单片微型计算机主要应用在哪些方面? 答:单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方面。 5、单片机的特点 存储器 ROM和 RAM 严格分工;采用面向控制的指令系统;输入 /输出端口引脚具有复用功能;品种规格的系列化;硬件功能具有广泛的通用性 6、水塔水位的控制原理 (1)当水位上升达到上限时, B、 C棒与 A棒导电,从而与 +5V电源连通。 b、 c两端均呈高电平状态,这时应使电机和水泵停止工作,不再给水塔供水。 (2)当水 位降到下限以下时, B、C 棒不与 A 棒导电,从而断开与 +5 V电源的连通。 b、 c两端均呈低电平状态。这时应启动电机,带动水泵工作给水塔供水。 (3)当水位处于上下限之间时, B 棒与 A 棒导电,而 C棒不与 A 棒导电。 b 端呈高电平状态, c 端呈低电平状态。这时无论是电机已在运转还是停止,都应维持电机和水泵的现27 / 50 有工作状态,直到水位上升到水位上限或下降到水位下限。 第 2 章 1、 MCS-51 单片机内部包含哪些主要功能部件?它们的作用是什么? 答: MCS-51单片机在一块芯片中集成了 CPU、 RAM、 ROM、定时 /计数器、多功能 I/O口和中断控制等基本功能部件。 1)单片机的核心部分是 CPU, CPU是 单片机的大脑和心脏。 2)程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。 3)定时 /计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时,它是定时器;当它对外部事件进行计数时,它是计数器。 4)I/O 接口的主要功能包括:缓冲与锁存数据、地址译码、信息格 式转换、传递状态和发布命令等。 5)中断控制可以解决 CPU 与外设之间速度匹配的问题,使单片机可以及时处理系统中许多随机的参数和信息,同时,它也提高了其处理故障与应28 / 50 变能力的能力。 2 、 MCS-51 单片机的 EA 、 ALE 和 PSEN 端的功能是什么? 答: ALE ALE为地址锁存允许信号,在访问外部存储器时,ALE用来锁存 P0送出的低 8位地址信号。 PSEN 外部程序存储器的读选通信号。当访问外部 ROM 时, PSEN 产生负脉冲作为外部 ROM 的选通信号;在访问外部 RAM 或片内 ROM时,不会产生有效的 PSEN 信号。 PSEN 可驱动 8 个 LSTTL 门输入端。 EA 访问外部程序存储器控制信号。对 8051和 8751,它们的片内有 4KB的程序存储器。当 EA 为高电平时, CPU 访问程序存储器有两种情况:一是访问的地址空间在 0 4K 范围内, CPU 访问片内程序存储器;二是访问的地址超出 4K 时, CPU 将自动执行外部程序存储器的程序。对于 8031, EA 必须接地,只能访问外部 ROM。 3 、 MCS-51单片机的核心器件是 CPU。它由运算器、控制器和布尔处理器组成。 4、运算器是用于对数据进行算术运算和逻辑操作的执行部件。它包括:算术逻辑单元累加器程序状态字暂存器 B寄存器等部件 5、程序状态字寄存器 PSW 是一个 8 位寄存器,用 来存放运29 / 50 算结果的一些特征。 Cy:进位标志位。 AC:半进位标志位。F0:用户自定义标志位。 RS1 和 RS0:工作寄存器组选择位OV:溢出标志位 P:奇偶校验标志位。 6、控制器是 CPU 的大脑中枢,它的功能是逐条对指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作,完成指令规定的操作。 7、程序存储器中特殊地址的功能 7、工作寄存器地址为 00H 1FH 的 32 个单元,并分成 4 个工作寄存器组,每个组有 8 个工作寄存器,名称为 R0R7。工作寄存器和 RAM 地址的对应关系如表所示。 11、单片机的外部复位电路有上电自动复位和按键手动复位两种。作用是 使 CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。 上电复位上电复位利用电容器的充电实现。在时钟电路工作后,在 RST端连续给出 2 个机器周期的高电平就可完成复位操作。 上电加按键复位,当复位按键按下后,复位端通过 51 的小电阻与 +5V 电源接通,迅速放电,使 RST 引脚为高电平;30 / 50 当复位按键弹起后, +5V电源通过 2K电阻对 22F 电容重新充电, RST引脚端出现复位正脉冲。其持续时间取决于 RC电路的时间常数。 12、 MCS-51单片机的基本工作方式是程序执行方式,它分为连续执行工作方式和单步执行工作方式。 13、电源控制寄存器 PCON待机方式和掉电方式由专用寄存器 PCON中的有关位控制, PCON 字节地址为 87H 14、终止待机方式的方法有以下两种: 1)通过硬件复位通过中断方法 15、单片机的内部结构:一个 8位 CPU; 4 KB 程序存储器,采用 ROM或 EPROM;128 B通用数据存储器; 21个特殊功能寄存器;一个可编程全双工串行口;具有 5个中断源,两个优先级嵌套结构;两个 16位定时 /计数器;一个片内振荡器与时钟电路。 8、并行 I/O 口特点 4 个并行 I/O口都是双向的。 P0口为漏极开路驱动; P1、 P2、P3口均具有内部上拉电阻驱动,它们有时 称为准双向口。 32根端口线都可用做输入或输出,还可进行位操作。 当并行 I/O口作为输入时,该口的锁存器必须先写入 1 ,这是一个重要条件。否则,该口不能读入正确数据。 9、 I/O31 / 50 口功能 Pl 口只有一种功能,即通用输入 /输出接口。; P2 口有两种用途:通用 I/O 口或高 8 位地址总线。; P3 口是双功能口,默认为第一功能,通过编程可设定为第二功能。; P0 口有两种功能:地址 /数据分时复用总线;通用 I/O口 16 、 4 个 8 位并行口,其中 P0、 P2、 P3 是复用口; P0 端口:第一功能:是一个 8 位漏极开路型的双向 I/O 口,这时P0口可看成用户数据总线;第二功能:是在访问外部存储器时,分时提供低 8 位地址和 8位双向数据总线,这时先用做地址总线再用做数据总线。 P1 口:内部带上拉电阻的 8 位准双 向 I/O 口。 P2 口:第一功能:一个内部带上拉电阻的8 位准双向 I/O 口。第二功能:在访问外部存储器时,输出高 8 位地址。 P3 口:第一功能:内部带上拉电阻的 8 位准双向 I/O 口。在系统中,这 8个引脚都有各自的第二功能。 18 P0、 P1、 P2、 P3并行端口使用注意事项 如果单片机内部有程序存贮器,不需要扩展外部存贮器和 I/O 接口,单片机的 4 个口均可作为 I/O 口使用; 4 个口在作为输入口使用时,均应先对其写 1 ,以避免误读; 32 / 50 P0口作为 I/O 口使用时应外接 10K 的上拉电阻,其它口则可不必; P2口某几根口线作地址使用时,剩下的口线不能作为I/O口线使用; P3 口的某些口线作第二功能时,剩下的口线可以单独作为 I/O 口线使用。 19 第 3 章 1、什么是寻址方式? MCS-51 指令系统有哪些寻址方式?相应的寻址空间在何处? 答:在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据所在的地址单元。如何找到参与运算的这个数据或数据所在的地 址就称为寻址方式。 MCS-51 指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址和位寻址等七种。 8 存储空间对应的寻址方式 在 MCS-51 单片机的指令系统中,指令对哪一个存储器空间33 / 50 进行操作,是由指令的操作码和寻址方式确定的。 1)对程序存储器只能采用立即寻址和基址加变址寻址方式; 2)对特殊功能寄存器只能采用直接寻址方式,不能采用寄存器间接寻址; 3)对 8032/8052 等单片机内部 RAM 的高 128 个 字节,只能采用寄存器间接寻址,不能使用直接寻址方式; 4)对位操作指令只能对位寻址区操作; 5)外部扩展的数据存储器只能用 MOVX指令访问; 6)内部 RAM的低 128个字节既能用直接寻址,也能用间接寻址。 4 加法和减法指令影响哪些标志位?怎么影响的? 答:在带进位的加法运算中,会影响进位位 Cy,最终要将 A 中的值和其后面的值以及进位位 Cy中的值相加,最终结果存在 A。 在带进位减法指令中,要将累加器 A 的内容与第二操作数及进位标志相减,结果送回到累加器 A 中。在执行减法过程中,如果位 7 有借位,则进位标志 Cy 置 1 ,否则清 0 ;如果位 3有借位,则辅助进位标志 AC置 1 ,否则清 0 ;34 / 50 如位 6 有借位而位 7 没有借位,或位 7 有借位而位 6 没有借位,则溢出标志 OV 置 1 ,否则清 0 。若要进行不带借位的减法操作,则必须先将 Cy 清 0 。 7MCS-51单片机能够识别并执行的指令共有 111条。 (2)按指令所占字节数、指令执行时间和指令功能进行分类。 (3)指令由操作码和操作数组成。 (4)指令的基本格式 符号地址 : 操作码 操作数 1 ,操作数 2 ,操作数 3 ;注释 第 4 章 1、 MCS-51系列单片机汇编语言进行程序设计的步骤如何? 答:单片机汇编语言进行程序设计的步骤: (1)分析题意,明确要求 ; (2)确定算法; (3)画程 序流程图,用图解来描述和说明解题步骤; (4)分配内存工作单元,确定程序与数据区的 存放地址; (5)编写源程序; (6)程序优化; (7)上机调试、35 / 50 修改和最后确定源程序。 2、程序设计的方法 1模块化程序设计 2尽量采用循环及子程序结构 3自上而下的程序设计 3、常用的程序结构有哪几种?特点如何? 答:常用的程序结构有顺序、分支、循环、查表及子程序结构;特点是程序的结构清晰、易 于读写和验证、可靠性高。 4、子程序调用时,参数的传递方法有哪几种? 答:传递方法有传递数据、传送地址和通过堆栈传递参数。 5、伪指令 伪指令是便于 程序阅读和编写的指令,它即不控制机器的操作也不能被汇编成机器 代码,只是为汇编程序所识别的常用符号,并指导汇编如何进行,故称为伪指令。 6子程序调用 在子程序调用过程中须解决以下两个方面的问题: 1) 保护现场和恢复现场。 2) 调用程序与被调用程序之间的参数传36 / 50 递。 保护现场和恢复现场:方法就是在进入子程序时,将需要保护的数据推入堆栈,而空出这些数 据所占用的工作单元,供子程序中使用。在返回调用程序之前,再将推入堆栈的数据弹出到原有的工作单元,恢复其原来的状态,使调用程序可以继续往下执行。 参数传递:子程序调用时,要特别注意主程序与子程序之间的信息交换问题。在调用一个子程序时,主程序应先把有关参数放到某些约定的位置,子程序在运行时,可以从约定的位置得到有关参数。同样子程序结束前,也应把处理结果送到约定位置。返回后,主程序便可从这些位置得到需 要的结果,这就是参数传递。 7 参数传递大致可分为以下几种方法: 1) 传递数据 2) 传送地址 3) 通过堆栈传递参数 第 6章 1、试分析以下几种中断优先级的排列顺序是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理由。 37 / 50 (1) 定时器 T0 中断,定时 T1 中断,外中断 1NT0,外中断INT1,串行口中断; (2) 串行口中断,外中断 1NT0,定时器 T0中断,外中断 INT1,定时器 T1中断; (3) 外中断 INT0、定时器 T1中断,外中断 INT1,定时器 T0中断,串行口中断。 答: 可以,将定时器 T0中断,定时T1 设置为高优先级中断,将外中断 1NT0,外中断 INT1,串行口中断 可以,将串行口中断设置为高优先级中断,将外中断 1NT0,定时器 T0 中断,外中断 INT1,定时器 T1中断设置为低优先级中断; 不行,因 为 MCS-51 单片机有 2 级中断优先级别,同级中断还存在按次序决定的第二优先级结构,由高到 低依次为外中断 1NT0、定时器 T0 中断、外中断 INT1、定时器 T1中断、串行口中断。 3 、中断系统的内部结构: MCS-51单片机的中断系统由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路组成。 4、中断源:把向 CPU提出中断申请的设备称为中断源。 MCS-51单片机的中断系统提供了 5个中断源。 38 / 50 5、 MCS-51 中断系统在 4 个特殊功能寄存器控制下工作。这4 个特殊功能寄存器是定时 /计数器控制寄存器、串行口控制寄存器、中断允许控制寄存器和中断优先级控制寄存器。通过对这 4 个特殊功能寄存器的各位进行置位或复位操作,可实现各种中断控制功能。中断请求控制、中断允许控制、中断优先级控制。 6 7 中断响应过程流程图 8、中断响应的过程 1) 检测中断 2) 保护现场 3) 中断服务 4) 清除中断标志位5) 恢复现场 6) 中断返回 9、在实际应用中有以下几种情况可采取中断方式工作。 (1) I/O设备。 (2) 硬件故障。 (3) 实时时钟。 (4) 为调试程序而设置的中断源。 10、中断优先级控制 8051 有 2 个中断优先级,每一个中断请求源均可编程为高优先级中断或低优先级中断,从而实现2 级中断嵌套。 39 / 50 11、中断优先级控制 3条基本规则: 1)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后, CPU 才响应新的中断请求。2)正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。 3) CPU 同时接收到几个中断请求时,首先响应优先级最高的中断请求。 第 7章 1、定时 /计数器有哪些专用寄存器,它们有几种工作模式?如何设置? 答:有定时控制寄存器和工作方式寄存器 ,具有四种工作方式:方式 0、方式 1、方式 2和方式 3,四种方式由工作方式寄存器的 M1 和 M0 两位决定。 2、如果采用晶振的频率为 3MHz,定时 /计数器工作方式 0、 1、 2 下,其最大的定时时间 为多少? 答:内部定时脉冲周期 =机器周期 =12/3Mhz=4us 工作方式0: Tmax=8192*4us= 工作方式 1: Tmax=65536*4us= 工作方式 2: Tmax=256*4us= 3、帧格式为 1 个起始位, 8 个数40 / 50 据位和 1 个停止位的异步串行通信方式是方式几?。 答:是异步串行通信方式 1。 4、简述串行口通信的第 9 数据位的功能。 答:在工作方式 2 和 3 下,才有第 9 数据位,既可作为奇偶校验位使用,也可作为控制位使用。 5 为什么定时 /计数器 T1 用做串行口波特率发生器时,应采用方式 2?若已知时钟频率 、通信波特率,如何计算其初值? 答:因为方式 2是有自动重装载计数值的功能,从而可以产生精确的波特率。串行工作方式 0和方式 2波特率是固定的,所以不用设初值;串行工作方式 1 和方式 3 时: 波特率:BR = (2SMODTd)/32 溢出一次的时间: 1/Td = (256-TH1)*12/fosc 溢出率:Td = fosc/12(256 -TH1) 初值: TH1 = 256- fosc/ 6 MCS-51串行通信接口与特殊功能寄存器:发送缓冲寄存器 41 / 50 (SBUF);发送控制器;发送控制门;接收缓冲寄存器 (SBUF);接收控制寄存器;移位寄存器;中断 7 与串行通信有关的控制寄存器共有 4 个:接收 /发送缓冲器 SBUF、串行控制寄存器 SCON、电源控制寄存器 PCON 和中断允许控制寄存器 IE。 8 波特率及时钟频率:波特率 (BR):单位时间传输的数据位数。 单位: bps (bit per second), 1 bps=1 bit/s。波特率的倒数即为每位传输所需的时间。 fT/R=nBRT/R 式中, fT/R为发 /收时钟频率,单位: Hz; BRT/R 为发 /收波特率,单位:bps; n 为波特率因子。同步通信 n=1。异步通信 n 可取 1、16 或 64。 9、数据通信的传输方式有:单工方式:数据仅按一个固定方向传送。半双工方式:数据可 实现双向传送,但不能同时进行。全双工方式:允许双方同时进行数据双向传送。 10、串、并行通信方式对比? 并行通信:是数据的每位被同时传输出去或接收进来。串行42 / 50 通信:数据传输是逐位传输的。 在相同条件下,串行通信比并行通信传输速度慢。采用串行通信,不管发送或接收的数据是多少,最多只用两根 导线,其工程实现上造价要低得多。串行通信已被越来越广泛地采用 11MCS-51单片机内有 2 个 16位可编程的定时 /计数器,即定时器 0 和定时器 1。 两个定时 /计数器都有定时 或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等应用。受特殊功能寄存器 TMOD 和 TCON 控制。 12定时 /计数器 T0、 T1可以有四种不同的工作方式:方式 0、方式 1、方式 2 和 方式 3 4 种工作方式由 TMOD 中的 M1、 M0两位决定,见表 7-3 所示。 第 8 章 43 / 50 1、画图说明单片机系统总线扩展方法。 答:单片机系统扩展总线原理如下图所示,扩展后 由 P0 口经锁存器形成低 8 位地址, P2口形成高 8 位地址,共同形成16 位地址总线; P0 口形成 8 位数据线, /WR、 /RD 及 /PSEN形成控制总线。 2、说明程序存储器扩展的一般原理。 答: 程序程序存储器扩展原理如下图所示,从图中可以看出,程序存储器扩展实际上是将程序存储器挂在单片机扩展的系统总线上,需要注意的是,单片机的 /PSEN 引脚连接至程序存储器的 /OE 端,保证 /PSEN 有效时能读出程序存储器中数据 ,而程序存储器的 /CS 端直接接地,即始终有效,保证始终可以取指令。 3、 说明单片机应用系统中 LED显示器的两种显示方式? 答:常用 LED 显示方式有两种,即动态显示方式和静态显示方式。 44 / 50 动态显示方式是指将待显示数据分时送到各显示位并保持一定时 间,任何时刻只能有一位显示器通电,其它显示位靠余辉维持发光,因而动态显示方式需不断进行刷新。静态显示方式是指将待显示数据分别送到显示器的各位,各显示位同时通电,因单片机的数据端口不能一直被占用,因而要求显示器与单片机数据端口之间有具有数据锁存功能的单元电路,即每一位 LED 输入端加一个锁存器,因而 硬件电路比动态显示方式复杂,但不需要刷新,可以节省 CPU 时间,显示数据可以一直维持到下一次更新。 4、说明 LCD 显示器件的工作原理? 答: LCD 是一种被动式的显示器,由于功耗低、抗干扰能力强,在低功耗单片机系统中得到广泛应用。 LCD 本身不发光,通过调节光的亮度进行显示。 LCD工 作过程如下: 在玻璃电极上加上电压之后,在电场的作用下,液晶的扭曲结构消失,其旋光作用也消失,偏振光便可以直接通过。去掉电场之后,液晶分子又恢复其扭曲结构,把这样的液晶置于两个偏振片之间,改变偏振片的相对位置,就可以得到白底黑字或黑底白字的显示形式。 5、单片机应用系统中为什么要进行系45 / 50 统扩展? 答: 8031、 8032 等单片机不提供用户程序存储器,必须进行程序存储器的扩展,以存放控制程序、数据 表格等; 8751等单片机虽然向用户提供 EPROM程序存储器,但程序存储器空间容量不大,程序存储空间不足时,还必须扩展外部程序存储器。 MCS-51 系列单片机内部通常有 128B 至 256B 的片内数据存储器,用于一般的控制及运算是足够的,但若用于数据存储,其容量是不足的,在这种情况下,必须扩展数据存储 器。 MCS-51 系列单片机对外提供 32 条 I/O 口线,但其 P0口作为地址 /数据复用口, P2口用于提供 高 8 位地址,而其 P3 口具有第二功能,若扩展了程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论