




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 68 单片机面试总结 说出 51的 5 个中断名,及其对应的中断入口地址。 0003H;外部中断 0 000BH;定时器 0中断 0013H;外部中断 1 001BH;定时器 1中断 0023H;串口中断 描述冒泡排序法。 51单片机第 9 脚是什么? 画出一个 AT89S52 的最小系统,并扩展 1 个外部 RAM,并要求可实现 ISP。 2 / 68 51 单片机延时 1s 的程序,汇编、 c 分别写一个,要求使用中断。 基于 51 实现 4x4 的键盘阵列,要求画出原理图,并写出程序。 #include #define uchar unsigned char sbit LED=P1 ; uchar time; void InitTimer0(void) TMOD = 0x01; /定时器 0,工作方式 1 TH0 = 0x3c; 3 / 68 TL0 = 0xb0; /50ms 中断一次 EA = 1;/总中断控制位 ET0 = 1;/定时器 T0中断控制位 TR0 = 1; void Timer0Interrupt(void) interrupt 1 TH0 = 0x3c; TL0 = 0xb0; time+; 4 / 68 void m ain(void) InitTimer0(); while(1) /这里无分号,表示反复循环执行下面红色字体部份程序 if(time=20) /中断 20次, 1s time=0; LED=!LED; /上的 LED1s 亮灭一次 5 / 68 1.关与总线 : 总线 : SPI:高速同步串行口。 3 4 线接口,收发独立、可同步进行 . SPI(Serial Peripheral Interface-串行外设接口 )总线系统是一种同步串行外设接口,它可以使 MCU与各种外围设备以串行方式进行通信以交换信息。外围设置 FLASHRAM、网络控制器、 LCD显示驱动器、 A/D转换器和 MCU 等。 SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用 4 条线: 串行时钟线、主机输入 /从机输出数据线 MISO、主机输出 /从机输入数据线 MOST和低电平有效的从机选择线 SS(有的 SPI 接口芯片带有中断信号线 INT 或INT、有的 SPI 接口芯片没有主机输出 /从机输入数据线MOSI)。 II SPI: Software Process Improvement. 软件过程改进。是6 / 68 软件企业项目过程质量的改进, CMM, ISO9000 3 说的就是这个。 一 SPI 协议概括 SPI,是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola首先在其 MC68HCXX系列处理器上定义的。 SPI接口主要应用在 EEPROM, FLASH,实时时钟, AD转换器,还有数字信号处理器和数字信号解码器之间。 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如 AT91RM9200. SPI 的通信原理很简单,它以主从方式工作,这种模式通常有一个 主设备和一个或多个从设备,需要至少 4根线,事实上 3根也可以。也是所有基于 SPI的设备共有的,它们是 SDI,SDO, SCK, CS。 SDO 主设备数据输出,从设备数据输入 7 / 68 SDI 主设备数据输入,从设备数据输出 SCLK 时钟信号,由主设备产生 CS 从设备使能信号,由主设备控制 其中 CS 是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时,对此芯片的操作才有效。这就允许在同一总线上连接多个 SPI设备成为可能。 接下来就负责通讯的 3根线了。通讯是通过数据交换完成的,这里先要知道 SPI 是串行通讯协议,也就是说数据是一位一位的传输的。这就是 SCK 时钟线存在的原因,由 SCK 提供时钟脉冲, SDI, SDO 则基于此脉冲完成数据传输。数据输出通过 SDO 线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少 8 次时钟信号的改变,就可以完 成 8位数据的传输。 要注意的是, SCK 信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于 SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普8 / 68 通的串行通讯不同,普通的串行通讯一次连续传送至少 8 位数据,而 SPI允许数据一位一位的传送,甚至允许暂停,因为 SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对 SCK 时钟线的控制 可以完成对通讯的控制。 SPI 还是一个数据交换协议:因为 SPI 的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的 SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。 在点对点的通信中, SPI 接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比 I2C 系统 要稍微复杂一些。 最后, SPI 接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。 AT91RM9200 的 SPI 接口主要由 4个引脚构成: SPICLK、 MOSI、MISO及 /SS,其中 SPICLK是整个 SPI总线的公用时钟, MOSI、MISO 作为主机,从机的输入输出的标 志, MOSI 是主机的输出,从机的输入, MISO 是主机的输入,从机的输出。 /SS 是9 / 68 从机的标志管脚,在互相通信的两个 SPI 总线的器件, /SS管脚的电平低的是从机,相反 /SS 管脚的电平高的是主机。在一个 SPI 通信系统中,必须有主机。 SPI 总线可以配置成单主单从,单主多从,互为主从。 SPI 的片选可以扩充选择 16 个外设 ,这时 PCS 输出 =NPCS,说NPCS03 接 4-16 译码器 ,这个译码器是需要外接 4-16 译码器,译码器的输入为 NPCS03,输出用于 16个外设的选择。 SPI 是一个环形总线结构,由 ss、 sck、 sdi、 sdo 构成,其时序其实很简单,主要是在 sck的控制下,两个双向移位寄存器进行数据交换。 假设下面的 8位寄存器装的是待发送的数据 10101010,上升沿发送、下降沿接收、高位先发送。 那么第一个上升沿来的时候 数据将会是 sdo=1;寄存器=0101010x。下降沿到来的时候, sdi 上的电平将所存到寄存器中去,那么这时寄存器 =0101010sdi,这样在 8 个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个 spi时序。 10 / 68 举例: 假设主机和从机初始化就绪:并且主机的 sbuff=0xaa,从机的 sbuff=0x55,下面将分步对 spi 的 8 个时钟周期的数据情况演示一遍 :假设上升沿发送数据 这样就完成了两个寄存器 8位的交换,上面的上表示上升沿、下表示下降沿, sdi、 sdo 相对于主机而言的。其中 ss 引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是 16 位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的命令准备数据,主机在下一个 8位时钟周期才把数据读回来。 SPI 总线是 Motorola公司推出的三线同步接口,同步串行 3 线方式进行通信 :一条时钟线 SCK,一条数据输入线 MOSI,一条数据输出线 MISO;用于 CPU 与各种外围器件进行全 双工、同步串行通讯。 SPI主要特点有 :可以同时发出和接收串行数据 ;可以当作主机或从机工作 ;提供频率可编程时钟 ;发送结束 中断标志 ;写冲突保护 ;总线竞争保护等。下图示出 SPI 总线工作的四种方式,其中使用的最为广泛的是 SPI0和 SPI3方式 (实线表示 ): 11 / 68 SPI总线四种工作方式 SPI 模块为了和 外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性对传输协议没有重大的影响。如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA=0,在串行同步时钟的第一个跳变沿数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿数据被采样。 SPI 主模块和与之通信的外设备时钟相位和极性应该一致。 SPI总线包括 1根串行同步时钟信号线以及 2根数据线。 SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性对传输协议没有重大的影响。如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA=0,在串行同步时钟的第一个跳变沿数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿数据被采样。 SPI 主模块和与之通信的外设音时钟相位和极性应该一致。 SPI 接口时序如图 3、图 4所示。 12 / 68 补充: 上文中最后一句话: SPI 主模块和与之通信的外设备时钟相位和极性应该一致。个人理解这句话有 2 层意思:其一,主设备 SPI 时钟和极性的配置应该由外设来决定;其二,二者的配置应该保持一致,即主设备的 SDO同从设备的 SDO配置一致,主设备的 SDI同从设备的 SDI 配置一致。因为主从设备是在 SCLK 的控制下,同时发送和接收数据,并通过 2 个双向移位寄存器来交换数据。工作原理演示如下图: 上升沿主机 SDO 发送数据 1,同时从设备 SDO 发送数据 0;紧接着在 SCLK 的下降沿的时候从设备的 SDI 接收到了主机发送过来的数据 1,同时主机也接收到了从设备发送过来的数据 0. 三 SPI 协议心得 SPI接口时钟配置心得: 在主设备这边配置 SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备13 / 68 是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。但要注意的是,由于主设备的 SDO 连接从设备的 SDI,从设备的 SDO 连接主设备的 SDI,从设备SDI 接收的数据是主设备的 SDO 发送 过来的,主设备 SDI 接收的数据是从设备 SDO发送过来的,所以主设备这边 SPI 时钟极性的配置跟从设备的 SDI接收数据的极性是相反的,跟从设备 SDO发送数据的极性是相同的。下面这段话是 Sychip Wlan8100 Module Spec 上说的,充分说明了时钟极性 The 81xx module will always input data bits at the rising edge of the clock, and the host will always output data bits on the falling edge of the clock. 意思是:主设备在时钟的下降沿发送数据,从设备在时钟的上升沿接收数据。因此主设备这边 SPI时钟极性应该配置为下降沿有效。 又如,下面这段话是摘自 LCD Driver IC SSD1289: SDI is shifted into 8-bit shift register on every rising edge of SCK in the order of data bit 7, data bit 6 data bit 0. 14 / 68 意思是:从设备 SSD1289在时钟的上升沿接收数据,而且是按照从高位到地位的顺序接收数据的。因此主设备的 SPI 时钟极性同样应该配置为下降沿有效。 时钟极性和相位配置正确后,数据才能够被准确的发送和接收。因此应该对照从设备的 SPI 接口时序或者 Spec 文档说明来正确配置主设备的时钟 I2C(Inter Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。 I2C总线产生于在 80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1 I2C总线特点 I2C 总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此 I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度15 / 68 可高达 25英尺,并且能够以 10Kbps 的最大传输速率支持 40个组件。 I2C 总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收 的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 2 I2C总线工作原理 总线的构成及信号类型 I2C 总线是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU与被控 IC之间、 IC与 IC之间进行双向传送,最高传送速率 100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中, I2C 总线上并接的每一模块电路既是主控器,又是发送器,这取决于它所要完成的功能。 CPU 发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别及需要调整的量。这样,各控制电路虽然挂在同一条总 线上,却彼此独立,互不相关。 I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信16 / 68 号。 开始信号: SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。 结束信号: SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的 IC在接收到 8bit数据后,向发送数据的 IC发出特定的低电平脉冲,表示已收到数据。 CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 目前有很多半导体集成电路上都 集成了 I2C 接口。带有 I2C接 口 的 单 片 机 有 : CYGNAL 的 C8051F0XX 系 列 ,PHILIPSP87LPC7XX 系列, MICROCHIP 的 PIC16C6XX 系列等。很多外围器件如存储器、监控芯片等也提供 I2C接口。 3 总线基本操作 I2C规程运用主 /从双向通讯。器件发送数据到总 线上,则定17 / 68 义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件控制,主器件产生串行时钟控制总线的传输方向,并产生起始和停止条件。 SDA 线上的数据状态仅在 SCL 为低电平的期间才能改变, SCL 为高电平的期间, SDA 状态的改变被用来表示起始和停止条件。 控制字节 在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符,接着三位为片选,最后一位为读写位,当为1 时为读操作,为 0 时为写操作 1、简单描述一个单片机系统的主要组成模块,并说明各模块之间的数据流流向和控制流流向。简述单片机应用系统的设计原则。 答:单片机是一种微型的计算机,应该由运算器、控制器、存储器、输入设备、输出设备组成 2、画出 8031与 2716 的连线图,要求采用三 -八译码器, 8031的 ,和参加译码,基本地址范围为 3000H-3FFFH。该 2716 有18 / 68 没有重叠地址?根据是什么?若有,则写出每片 2716 的重叠地址范围。 3、用 8051 设计一个带一个 8*16 键盘加驱动八个数码管的原理图。 5、中断的概念?简述中断的过程。 答:中断的慨念:当外部请求服务时,暂时中断当前主程序,转而执行中断处理程序,完 成后自动返回被中断的主程序继续运行 中断的过程: 中断源发出中断请求 对中断请求进行响应 执行中断服务程序 返 回主程序。 6、如单片机中断几个 /类型,编中断程序注意什么问题; 答:中断初始化,工作方式,中断入口,中断返回 ,优先级别。 19 / 68 7、要用一个开环脉冲调速系统来控制直流电动机的转速,程序由 8051 完成。简单原理如下:由输出脉冲的占空比来控制转速,占空比越大,转速越快;而占空比由 K7-K0八个开关来设置,直接与 P1口相连,要求占空比为 N/256。 下面程序用计数法来实现这一功能,请将空余部分添完整。 MOV P1, #0FFH LOOP1 : MOV R4, #0FFH - MOV R3, #00H LOOP2 : MOV A, P1 - SUBB A, R3 20 / 68 JNZ SKP1 - SKP1: MOV C, 70H MOV , C ACALL DELAY :此延时子程序略 - - AJMP LOOP1 8、单片机上电后没有运转,首先要检查什么? 答: 1,电源,查看单片机各引脚电压值是否正确 2,查看晶振是否正常工作,可以用示波器查看 3,查看最小系统有无接错,断路等毛病,用万用表 21 / 68 9、 What is PC Chipset? 芯片组是主板的核心组成部分,按照在主板上的排列位置的不同,通常分为北桥芯片和南桥芯片。北桥芯片提供对 CPU的类型和主频、内存的类型和最大容量 ISA/PCI/AGP 插槽、ECC纠错等支持。南桥芯片则提供对 KBC、 RTC、 USB、 Ultra DMA/33(66)EIDE 数据传输方式和 ACPI 等的支持。其中北桥芯片起着主导性的作用,也称为主桥。 除了最通用的南北桥结构外,目前芯片组正向更高级的加速集 线架构发展, Intel 的 8xx 系列芯片组就是这类芯片组的代表,它将一些子系统如 IDE 接口、音效、 MODEM 和 USB 直接接入主芯片,能够提供比 PCI总线宽一倍的带宽,达到了266MB/s。 10、如果简历上还说做过 cpu之类,就会问到诸如 cpu如何工作,流水线之类的问题。 11、计算机 的基本组成部分及其各自的作用。 12、请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图。 13、 cache的主要部分什么的。 答:它由 Cache 22 / 68 存储部件和 Cache 控制部件组成。 Cache 存储部件一般采用与 CPU同类型的半导体存储器件,存取速度比内存快几倍甚至十几倍。而 Cache 控制器部件包括主存地址寄存器、 Cache 地址寄存器,主存 Cache 地址变换部件及替换控制部件等 14、同步异步传输的差异 答:异步串行通信是指通信双方以一个字符作为数据传格单位且发送方传送字符的间隔时间不一定。同步串行通信是指允许连续发送一序列字符而每个字符的数据位数都相同且没有 起始位和停止位 16、 RS232c高电平脉冲对应的 TTL 逻辑是 ?(负逻辑 ?) 信号与系统 1、的话音频率一般为 3003400HZ,若对其采样且使信号不失真,其最小的采样 频率应为多大?若采用 8KHZ的采样频率,并采用 8bit的 PCM编码,则存储一秒钟的信号数据量有多大? 2、什么耐奎斯特定律 ,怎么由模拟信号转为数字信号。 23 / 68 3、如果模拟信号的 带宽为 5khz,要用 8K的采样率,怎么办?lucent) 两路? 4、信号与系统 :在时域与频域关系。 5、给出时域信号,求其直流分量。 6、给出一时域信号,要求写出频率 分量,写出其傅立叶变换级数; 当波形经过低通滤波器滤掉高次谐波而只保留一次谐波时,画出滤波后的输出波形。 7、 sketch 连续正弦信号和连续矩形波 (都有图 )的傅立叶变换 。 8、拉氏变换和傅立叶变换的表达式及联系。 题:用任意一单片机设计一个 4X4 的键盘并编出程序得到键值,要求有去抖,去抖时单片机可以做其它事情,按一下键盘蜂鸣器叫一下,蜂鸣器叫过程中也要单片机可以做其它事24 / 68 情。 题目是我做后记下来的,当时在做得时候写的很乱,被老师评为编程不怎么样。回来后想想其实很简单就一个中断函数搞定: void time1_sv() interrupt 5 using 2 EA=0; TF2=0; /清中断标志位 if(spcnt-)=0)spcnt=0;SPEAK=0x00; if(scankey()count+; if(count8)getkeyval();count=0;spcnt=30;SPEAK=0xff; else count=0; 25 / 68 EA=1; 思路是:连续 n 次进入中断时都检测到有按键 ,那就去取按键值,并使蜂鸣器叫,蜂鸣器叫多长时间由 spcnt 的值决定。 试验源程序: #include /定义外围器件地址 #define SPEAK XBYTE0xC000 #define KEYIN XBYTE0xE000 #define KEYOUT XBYTE0xF000 #define PORTA XBYTE0xa000 26 / 68 #define PORTB XBYTE0xb000 #define LEDD XBYTE0x9000 /3000 个机器周期中断一次 #define TIME_H (65535-3000)/256 #define TIME_L (65535-3000)%256 /LED显示译码 uchar code table=0x0C0,0x0F9,0x0A4,0x0B0,0x99,0x92,0x82,0x0F8,0x80,0x90,0x88,0x83,0x0C6,0x0A1,0x86,0x8E,0x7F,0x89; /全局变量 uchar key_value,count,spcnt; /判断有无 按键 27 / 68 uchar scankey() KEYOUT=0x00; if(KEYIN)&0x0f)!=0) return(1); /有键按下 else return(0); /得到键值 void getkeyval(void) KEYOUT=0x0e; switch(KEYIN&0x0f) case 14:key_value=0;break; 28 / 68 case 13:key_value=1;break; case 11:key_value=2;break; case 7:key_value=3;break; default:break; KEYOUT=0x0d; switch(KEYIN&0x0f) case 14:key_value=4;break; case 13:key_value=5;break; case 11:key_value=6;break; case 7:key_value=7;break; 29 / 68 default:break; KEYOUT=0x0b; switch(KEYIN&0x0f) case 14:key_value=8;break; case 13:key_value=9;break; case 11:key_value=10;break; case 7:key_value=11;break; default:break; KEYOUT=0x07; 30 / 68 switch(KEYIN&0x0f) case 14:key_value=12;break; case 13:key_value=13;break; case 11:key_value=14;break; case 7:key_value=15;break; default:break; /定时 T2中断 89c52, w78e58之类的单片机都有定时器 2 void time1_sv() interrupt 5 using 2 EA=0; 31 / 68 TF2=0; /清中断标志位 if(spcnt-)=0)spcnt=0;SPEAK=0x00; if(scankey()count+; if(count8)getkeyval();count=0;spcnt=30;SPEAK=0xff; else count=0; EA=1; /粗劣延时 mS级 void msec(uint x) unsigned int j; 32 / 68 while(x-)!=0) for(j=0;j ; /数码管显示 void dir(uchar leddat) ORTA=0x00; ORTB=0xff; LEDD=tableleddat; 33 / 68 msec(2); ORTA=0xff; LEDD=tableleddat; ORTB=0x00; msec(2); ORTB=0xFF; /主函数 main() C_T2=0; /T2 工作在定时器 34 / 68 大公司电子类招聘题目精选 2、画出 8031与 2716 的连线图,要求采用三 -八译码器, 8031的 ,和 参加译码,基本地址范围为 3000H-3FFFH。该 2716 有没有重叠地址?根据是什么?若 有,则写出每片 2716的重叠地址范围。 3、用 8051 设计一个带一个 8*16 键盘加驱动八个数码管的原理图。 4、 PCI 总线的含义是什么? PCI总线的主要特点是什么? 5、中断的概念?简 述中断的过程。 6、如单片机中断几个 /类型,编中断程序注意什么问题; 7、要用一个开环脉冲调速系统来控制直流电动机的转速,程序由 8051 完成。简单原理如 35 / 68 下:由输出脉冲的 占空比来控制转速,占空比越大,转速越快;而占空比由 K7-K0八 个开关来设置,直接与 P1 口相连,要求占空比为 N/256。 下面程序用计数法来实现这一功能,请将空余部分添完整。 MOV P1, #0FFH ;做输入 LOOP1 : MOV R4, #0FFH ; - MOV R3, #00H LOOP2 : MOV A, P1 - SUBB A, R3 JNZ SKP1 36 / 68 - SKP1: MOV C, 70H MOV , C ACALL DELAY :此延时子程序略 - - AJMP LOOP1 8、单片机上电后没有运转,首先要检查什么? 9、 What is PC Chipset? 芯片组是主板的核心组成部分,按照在主板上的排列位置的不同,通常分为 北桥芯片和南桥芯片。北桥芯片提供对 CPU的类型和主频、37 / 68 内存的类型和最大容量、 ISA/PCI/AGP 插槽、 ECC纠错等支持。南桥芯片则提供对 KBC、RTC、 USB、 Ultra DMA/33(66)EIDE 数据传 输方式和 ACPI等的支持。其中北桥芯片起着主导性的作用,也称为主桥。 除了最通用的南北桥结构外,目前芯片组正向更高级的加速集线架构发展, Intel的 8xx 系列芯片组就是这类芯片组的代表,它将一些子系统如IDE接口、音效、 MODEM 和 USB直 接接入主芯片,能够提供比 PCI总线宽一倍的 带宽,达到了266MB/s。 10、如果简历上还说做过 cpu之类,就会问到诸如 cpu如何工作,流水线之类的问题。 11、计算机的基本组成部分及其各自的作用。 38 / 68 12、请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图。 13、 cache 的主要部分什么的。 14、同步异步传输的差异 15、串行通信与同步通信异同 ,特点 ,比较。 16、 RS232c高电平脉冲对应的 TTL 逻辑是 ?(负逻辑 ?) 决定 8255A选口地址的引脚有哪几条?作用是什么? 解答: A0、 A1,用于选中 A 口、 B 口、 C 口和控制字寄存器中哪一个工作。 8255 如何辨认方式控制字和 C 口单一置复 位控制字?方式控 制字各位定义如何? 解答:这两个控制字以 D7位状态作为标志。 39 / 68 方式控制字的定义见书上 P252页图 7-13。 结合图 7-17 简述 8255A 口在模式 1 选通输入方式下的工作过 程。 解答:见书上 P255 页图 7-17下面 8255 B 口可以设定为方式 2吗?为什么? 解答:不可以,因为方式 2作为双向 I/O,只适用于 A口。 在采用 8255 扩展 I/O 口时, 若把 8255 A 口作为输入, A口每一位接一个开关, B 口每一位接一个发光二极管。请编写 A 口开关接 1 时 B 口相应位发光二极管点亮的程序。 解答: 假设电路如图所示,当开关闭合时,使发光二极管点亮。 设 8255的 A、 B、 C、控制口地址分别为 8000H、 40 / 68 8001H、 8002H 和 8003H。 控制字: 10010000B ( 90H ) 即 A 口输入、方式 0; B口输出、方式 0。 程序如下: ORG 1000H MOV DPTR, # 8003H MOV A, # 90H MOVX DPTR, A ;写控制字 LOOP: MOV DPTR, # 8000H MOVX A, DPTR ;将 A 口的数据送到累加器 A 中 INC DPTR MOVX DPTR, A ;将累 加器中的数从 B 口输出 41 / 68 SJMP LOOP END 某一生产过程共有 6 道工序, 每道工序的时间均为 10s, 生产过程循环进行。先要用 MCS-51通过 8255 A口进行过程控制, A口中每一位都可控制一道工序的启停。试画出有关硬件电路并编写有关程序, 设有一 DELAY延时程序可供调用, 延时时间为 1s。 解答: 假设用 PA0 PA5 分别控制 6 道工序,当 PA0 PA5 等于 1时,相应的工序启动,当工序停止时, A口相应的位等于 0。 设 8255的 A、 B、 C、控制口地址分别为 8000H、 8001H、 8002H 和 8003H。 控制字: 1000 0000B ( 80H ) 即 A 口输出、方式 0 42 / 68 假设 MCS-51的时钟频率为 12MHz,则其时钟周期应为 1s ,采用延时程序来设置延时时间为 1s。 程序如下: ORG 1000H 1.看门狗复位重置点应该放在程序什么地方 2.六个按键最少需要几个普通 IO口线 答案:两 根 #include #define uchar unsigned char sbit IO1=P1 ; sbit IO2=P1 ; uchar keybuf,keydat; 43 / 68 bit bkeyok; void delay_us(unsigned int n) while(-n); void delay_ms(unsigned int n) do delay_us(1000); 44 / 68 while(-n); bit scan_key(void) uchar tempkey; IO1=1;IO2=1; if(!IO1) if (!IO2) tempkey=3; else 45 / 68 tempkey=2; else if (!IO2) tempkey=1; else IO1=0; if (!IO2) 46 / 68 IO1=1;IO2=0; if (!IO1) tempkey=4; else tempkey=6; else IO1=1;IO2=0; if (!IO1) tempkey=5; else 47 / 68 tempkey=0; IO1=1;IO2=1; if(keybuf !=0) & (keybuf = tempkey) bkeyok=1; keydat=tempkey; 48 / 68 keybuf=tempkey; return(bkeyok); uchar read_key(void) bkeyok=0; return(keydat); void doanything(uchar key) /-按键处理只有有按键并正确消抖时才会进入,功能自己随便写 ; 49 / 68 void main(void) while(1) if(scan_key() doanything(read_key(); delay_ms(10); 3.普通 IO口如何实现 LED 十六级亮度调节 答案: PWM 控制 50 / 68 加速度传感器求位移算法。 数字滤波算法。 51浮点运算方法。 CD4060 微积分 Ucos操作系统 GUI 编程 继电器 R电路 运放电路分析 USB驱动 位运算是指按二进制进行的运算。在系统软件中,常 常需要处理二进制位的问题。 C 语言提供了 6 个位操作运算符。这些运算符只能用于整型操作数,即只能用于 51 / 68 带符号或无符号的 char,short,int 与 long 类型。 C 语言提供的位运 算符列表: 运算符 含义 描述 进制位右移 N 位,移到右端的低位被舍弃,对于无符号数,高位补 0 1、 “ 按位与 ” 运算符 按 位与是指:参加运算的两个数据,按二进制位进行 “ 与 ”运算。如果两个相应的二进制位都为,则该位的结果值为1;否则为 0。这里的 1 可以理解为逻辑中的 true,0 可以理解为逻辑中的 false。按位与其实与逻辑上 “ 与 ” 的运算规则一致。逻辑上的 “ 与 ” ,要求运算数全真,结果才为真。若, A=true,B=true,则 AB=true 例如: 3&5 3的二进制编码是 11(2)。内存储存数据的基本单位是字节,一个字节由8 个位补足成一个字节,则是 00000011。 5 的二进制编码是101,将其补足成一个字节,则是 00000101 按位与运算: 52 / 68 00000011(2) &00000101(2) 00000001(2) 由此可知 3&5=1 c 语言代码: #include main() int a=3; (来自 : 海 达范文网 :单片机面试总结 ) int b = 5; printf(%d,a&b); 53 / 68 按位与的用途: 清零 若想对一个存储单元清零,即使其全部二进制位为 0,只要找一个二进制数,其中各个位符合一下条件: 原来的数中为 1的位,新数中相应位为 0。然后使二者进行 &运算,即可达到清零目的。 例:原数为 43,即 00101011,另找一个数,设它为 148,即10010100,将两者按位与运算: 00101011 &10010100 00000000 54 / 68 c 语言源代码: #include main() int a=43; int b = 148; printf(%d,a&b); 取一个数中某些指定位 若有一个整数 a(2byte),想要取其中的低字节,只需要将 a与 8 个 1 按位与即可。 a 00101100 10101100 b 00000000 11111111 55 / 68 c 00000000 10101100 保留指定位: 与一个数进 行 “ 按位与 ” 运算,此数在该位取 1. 例如:有一数 84,即 01010100,想把其中从左边算起的第 3,4, 5, 7, 8位保留下来,运算如下: 01010100(2) &00111011(2) 00010000(2) 即: a=84,b=59 c=a&b=16 c 语言源代码: 56 / 68 #include main() int a=84; int b = 59; printf(%d,a&b); 2、 “ 按位或 ” 运算符 两个相应的二进制位中只要有一个为 1,该位的结果值为 1。借用逻辑学中或运算的话来说就是,一真为真 。 例如: 60|17,将八进制 60 与八进制 17 进行按位或运算。 57 / 68 00110000 |00001111 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿里地区2025-2026学年八年级下学期语文期末模拟试卷
- 2025 年小升初天津市初一新生分班考试数学试卷(带答案解析)-(冀教版)
- emshkm2025年河南省建设工程造价员资格认证考试试卷
- 社区节前安全知识培训课件
- 山东省聊城市东昌府区王口小学2024-2025学年二年级下学期数学期末检测卷(无答案)
- 北师大版五年级上册数学第二单元 轴对称和平移 检测卷(无答案)
- 退休人员应聘合同范本
- 燃气施工安装合同范本
- 社区春季消防知识培训课件
- 建材维修安装合同范本
- 机关公文写作课件
- 手术病例书写规范
- 对标一流-2025年国央企风控合规案例白皮书
- 《心律失常了解》课件
- 数字位移:重新思考数字化
- 四川省成都盐道街中学2025届高考考前模拟数学试题含解析
- 新北师大版二年级上册数学总复习课件
- 剧场技术管理与舞台监督考核试卷
- 建筑劳务公司合同
- 304不锈钢圆管检验报告
- 老年精神科安全护理管理
评论
0/150
提交评论