单片机基础备课笔记.doc_第1页
单片机基础备课笔记.doc_第2页
单片机基础备课笔记.doc_第3页
单片机基础备课笔记.doc_第4页
单片机基础备课笔记.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

单片机基础备课笔记4.0单片机基础备课笔记王晓荣教材:单片机基础李广弟 北航出版社 2002教学辅导书:单片机学习辅导测验及解答讲义李朝青 北航出版社2003年上半年第一稿(讲授班级:电气0012)2003年下半年第二稿(讲授班级:自0015)2004年上半年第三稿(讲授班级:电气0112) 2004年下半年第四稿(讲授班级:自0116)第一讲(需带教具:8051芯片、编程器、仿真器)自我介绍(姓名 信箱 电话)课堂纪律:1)上课提前10分钟到,我要检查作业;2) 缺课需有请假条(请假条数实到人数=应到人数)3) 禁止小声讲话点名教材:单片机基础李广弟 北航出版社(单片机方面的最好教材)1 单片机概述什么叫单片机(拿出8051芯片) 大家一起谈谈对单片机的印象SCMC(Single Chip MicroComputer) 简单的说:一个单片的微型计算机。 不会吧(屏幕呢、键盘呢):当然没有(CPU、内存、硬盘、主板) 单片机的特点1) 价格低(8元)2) 体积小3) 功耗小4) 处理速度慢(与计算机和DSP相比)(8位12M,20多年历史)单片机的应用(随处可见,大家一起来寻找单片机的应用)1) 智能仪器仪表、智能电器、智能玩具2) 工业控制(温度控制系统)应用这么广,学好它找工作不成问题。单片机的种类单片机的种类很多。很多公司生产单片机:Intel公司、Motorola公司、Atmel公司等每个公司生产很多种类的单片机:例如Intel公司 :MCS-51系列、MCS-96系列MCS-51系列:几十种。大家不要怕:计算机型号多不多?那我们怎么学计算机?我们这门课仅讲授1种单片机:8051(大同小异)(工艺上、功能上)MCS-51系列单片机的市场占有量:54还有很多公司的单片机以MCS-51为内核:如Atmel公司AT89系列大家想想看,为什么8位、12M不被淘汰(386早已被淘汰)?。单片机的设计如果让单片机具有显示功能,如何设计?简单:插上显卡,接上显示器,装驱动程序即可。这就对了!硬件设计:芯片、外设、连接!软件设计:操作系统、驱动程序 我们这门课的任务就是教会大家如何进行单片机的软硬件设计。*实例1:用8051实现发光二极管的闪烁这么简单的功能,没必要用32位的Intel奔四处理器吧?硬件电路:(错误:1。缺电阻 2。接地)1、 方框:8051单片机(边画边讲、展示8051芯片)2、 40个引脚(P15、不要怕,以后慢慢介绍,今天先讲用到的引脚)3、 电源(当然是必不可少的了):VCC(40)接+5V,VSS(20)接地4、 时钟电路(P30):固定接法,大家记住即可。5、 复位:固定接法,大家记住即可。6、 EA引脚(记住区别1:单片机只能执行固定的程序。简介:“1”从内部开始、“0”从外部开始):EA引脚接到正电源端7、 发光二极管(p10(1)软件部分: 我们这里使用汇编语言(由111条指令)组成LOOP: SETB P1.0 ;标明位置、指令、;程序说明LCALL DELAY CLR P1.0 LCALL DELAY AJMP LOOP ;以下子程序DELAY: MOV R7,#50H;P150D1: MOV R6,#0e0H D2: NOP(12M晶振:约1us)NOPDJNZ R6,D2 DJNZ R7,D1 RET END 问题:1、编程环境(汇编语言、C语言:翻译成机器语言)(伟福公司网站:)(需要下载一个文件:COMP51放到跟目录下) 2、程序存在哪?(ROM:片内、片外) 3、程序如何存?(编程器)(讲解:程序如何运行) 4、程序调试(编程器、仿真器) 5、调试完成(编程器)因为这门课内容比较多,但是学时又比较少。我讲课只能是大家自学不了的地方多讲,能自学的地方少讲。打开目录:自学章节:1、3、4作业:1)自学单片机概述2)8051、80C51、89C51的区别 3)如果采用片内ROM,8051中的/E/A引脚如何接?4)民用级、工业级、军用级的温度范围是?5)单片机的英文简称 6)用8051实现两个发光二极管轮流发光第二讲 *2 单片机芯片的硬件结构我们一起来看看这小小芯片内到底有什么东西。P11的图2.1使单片机结构一目了然。21 CPU读取指令、执行指令(P12的图不看)22 *256B的RAM(P17图) 内部数据存储器(RAM)共有256个单元(每个单元存放1个字节数据),分为5个区域(有重叠):通用寄存器区、用户RAM区、专用寄存器区、位寻址区、堆栈区1 通用寄存器区(00H-1FH):R0-R7共4组 1) 例中的R6、 R7,程序中作为临时变量用2) MOV R7, #50H = MOV 07H, #50H MOV R1, #50H (如果(R1) 30H)(MOV 01H, #50H则不可,MOV R2, #50H也不可)3) 简述4组好处4)这里的汇编同普通的汇编不一样,这里汇编语言共有111条指令(P70)5)间接寻址 2 用户RAM区(20H-7FH) 普通的存储单元,用法同普通的寄存器差不多 MOV 20H, 30H / MOV R6, R7 3 专用寄存器区(80H-0FFH) #共有128个单元,但只利用了其中的23个单元,每个单元都有专门的用途。 #我们把有专门用途的存储单元叫做专用寄存器。如:MOV P1,0FFH 是不是有专门用途啊? #P21表大家数数共多少个(21个占用21个存储单元)表的名称应该叫可寻址专用寄存器一览表 什么叫可寻址:有单元地址如:MOV P1,0FFH 其中P1可以换成90H,这就是可寻址。 1)程序计数器PC(还有一个专用寄存器它不可寻址) a)还有一个专用寄存器?不对吧?应该还有两个吧?16位 b)在高128个字节当中,没有单元地址( MOV PC,0FFH )c)CPU根据PC的内容读取指令(PC值是多少,CPU就到什么地方取指令;PC复位时:0000H;讲解例1的读取指令过程;每读一个字节,PC就自动加1;用户不能直接更改其内容。 d)能寻址64k(程序长度大于64k,要考虑换单片机了)。 2) 累加器A 问:用到普通存储单元的有多少条指令? 同寄存器和普通存储单元一样,但它的指令更丰富。 ADD 20H, 30H - MOV A, 20H/ ADD A , 30H 3) 程序状态字PSW(P20) 它的第三位和第四位就是改变寄存器组号的。 子程序的开始部分一般加上语句: PUSH PSW MOV PSW #08H CY:进位标志(自动变化);位累加器 AC:半进位标志;了解 OV:溢出标志;了解 P:奇偶校验位(A中的“1”的数量为奇数,则为“1”);了解 例:MOV A,#10H/MOV PSW, A/ADD A, #01H 问:(PSW)?(A)? 4 位寻址区(20H-2FH、部分专用寄存器) 1)可进行位寻址 (有位地址)(P18 、P22) 问:CLR A/ CLR C/CLR 20H (P72) 2)20H-2FH是用户RAM区也是位寻址区 问:a)如果将2BH.3位置位,用什么指令?查P18表,SETB 5BHb)CLR 0D4H/ SETB 0D3H是什么意思?(改变寄存器组号)c)如果将3BH.3位置位,用什么指令?MOV A, 3BH ORL A, #08HMOV 3BH, A5 堆栈区 1)堆栈的用途:保护断点和保护现场(子程序调用和中断程序调用) 2)堆栈指针SP:默认值为07H 举例1讲解保护断点和保护现场的过程。(存储区域重叠,等会解决) 3)程序的开头:MOV SP,#60H (P161)4)堆栈区:60H7FH 作业:1、为什么许多程序中要加MOV SP, #60H 语句? 2、单片机执行的第一个语句在ROM中的地址是多少?3、堆栈的用途是?4、简述子程序调用时,堆栈区是如何工作的第三讲片外RAM 如果片内RAM不够怎么办?最多可以扩展64K的外部RAM。问:MOV A,30H 是将片内RAM还是片外RAM中的数据读到A?有人说片内!片外RAM的地址分配和硬件连线有关,地址重叠是允许的。片内还是片外?答案是片内!凡是MOV指令都是针对片内RAM的。那么将片外0030H的内容送到A中,怎么实现?P75:共有4条指令(其中两条最好删掉不用)MOVX A,DPTRMOVX DPTR, ADPTR:一个16位的专用寄存器(2个8位的专用寄存器)MOV DPTR, #0030H(为什么不用MOVX?)MOVX DPTR, A23 4KB的ROM ROM的作用:存放程序和原始数据 最多可以扩展64k的ROM CPU执行的第一条指令是片内的还是片外的?(/E/A决定) 不提倡片内ROM和片外ROM混用。 原始数据问:RAM上电以后是没有内容的,如果程序用到原始数据怎么办呢? 答:可以利用ROM来存数据 如何存呢?比如在例1中存入0C0H、0F9H、0A4H 在end前加: TAB: DB 0C0H/ DB 0F9H/ DB 0A4H (也可写成一行) 如何取ROM中的数据呢? P75: MOVC A,A+DPTR (MOV内部RAM;MOVX外部RAM;MOVC-ROM) MOV DPTR # TAB /MOV A,#2/MOVC A,A+ DPTR24 2个16位定时/计数器 例子是软件定时(缺点是主程序不能干别的事了),也可将例子中的定时改为硬件定时,以后详细讲。25 并口8051并口是8位的,共4个(P0、P1、P2、P3;32个引脚;(P0-P3)=0FFH)1)4个并口都可以作为通用I/O口使用例1中的P1.0是输入口还是输出口?2)P1口作输入口使用时,应先写“1”: MOV P1,0FFH(为什么一定要先写“1”,这是结构问题) 为什么例1中没有先写“1”3)P0口、P2口 例:MOVX A,DPTR(简述执行过程):假设MOVX A,DPTR存放在外部ROM的0100H单元中 CPU的作用是读取指令和执行指令;根据/E/A引脚的电位决定读取内部ROM还是外部ROM;当(PC )自动加到0100H时,读取该指令;如果是读内部ROM好办,CPU把0100H地址的指令代码读进来,然后执行;外部ROM是另外一个芯片,必须要把0100H通过地址线送到外部ROM,然后再把指令代码通过数据线读进来。那么。 P0口:低8位地址线 P2口:高8位地址线。P0口:数据线(共用) 外接ROM和外接RAM时共用地址线和数据线如何解决?/P/S/E/N:发送取指信号(读取外部ROM指令时,自动向该引脚发送一个低电平信号)。/W/R(P3.6)、/R/D(P3.7):地址发出去了,单元选定了,读还是写呢,要告诉外部RAM。3)P3口 P3.0 串行数据接收;P3.1 串行数据发送(通讯用;由于课时原因,串行通讯部分由学生自学,考试考前七章) P3.2 外部中断0申请;P3.3外部中断1申请(介绍;以后会详细讲) P3.4 T0计数输入;P3.5 T1计数输入(介绍;以后会详细讲)5)P27-P29只要了解我上面讲的内容即可。26 串口27 中断(以后会详细讲)5个:2个外部中断(键盘、数据输入等)、2个定时/计数中断(计数输入)、1个串行中断(通讯:如发送数据准备好了,发出一个中断信号)28 时序1.时钟电路:6M、12M晶振、固定电路(如P30图2.11)2.指令周期(如果晶振定下来,那么执行一条指令要多长时间?)a)指令周期:执行一条指令的时间(1-4个机器周期)b)机器周期:一个机器周期共有12个拍节。c)拍节:振荡脉冲的周期问:晶振为6M时,一个机器周期是多长时间?(2us) 晶振为6M时,执行指令MOV A, R7、MOVX A, DPTR需多长时间?(2us)29 信号引脚学生看图(P15图2.3)40引脚:并口(32)+电源(2)晶振(2)RST/E/AALE+/P/S/E/NALE:地址锁存信号;接锁存器P0口地址和数据线共用;低8位地址线同外部ROM(RAM)间要接锁存器。部分引脚有两个功能(一起来看一下)!P16表下面作业:自学第三章部分指令要熟悉;1)2) 自学第四章(我基本上不讲;考试必考)要求读懂:例4.1、例4.2、*例4.5、*例4.11、P99较长时间定时及计算公式。3) 简述MOV、MOVX、MOVC指令的区别4) 编程将片内RAM 30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。5) 执行一条指令要多长时间?6) 单片机共有哪些引脚?第四讲3 指令系统31 伪指令指令通过汇编程序转换成机器语言存在ROM中。伪指令是发给汇编程序的命令,不转换成机器语言。例:DSP1 EQU 50H DSP2 EQU 51HORG 0000HAJMP MAINORG 0030HMAIN: MOV SP, #60H.MOV A, DSP1.ORG 1000HTAB: DB 0C0H, 0F9H, 0A4H DB 90H, 39H, 44HORG 1100HTAB1: DW 0ABCDH, 3333H, 2222H DW 5555H, 5555H, 7777HEND讲解:1) 汇编语言经汇编程序转换成机器语言,然后编程器将该机器语言烧进ROM中。2) ORG 0000H不转换成机器语言,而是告诉汇编程序将AJMP MAIN的机器语言代码存在0000H单元。3) MOV A, DSP1;DSP1 EQU 50H(同样不转换成机器语言);DSP1 EQU 50H4) 0C0H在ROM中的地址是?2222H在ROM中的地址是?5) DB “0,1,2,3”:存放ASCII码6) END在后面加一条语句:MOV A,30H错不错?32 部分指令1)ADD与ADDC: 影响CY(P51)例:MOV A,#0C0H/ ADD A,#60H/(A)=? 20H;例:SETB C /MOV A,50H /ADD A, 50H/ ADDC A, 50H /A=? 0F0H2)A与ACC的区别 ACC在内部RAM中的地址是多少?(P21) 0E0HA在内部RAM中的地址是多少?(P21) 0E0HACC EQU 0E0HMOV 30H, ACC/ MOV 30H, A(P74):结果一样但代码不一样MOV A,R0/ MOV ACC,R0 :结果一样吗?3) INC举例:MOV A,#33H/INC A (A) = ?举例:MOV A,#0FFH/INC A (A) = ? (CY) = ? 对进位标志不影响举例:MOV A,#00H/DEC A (A) = ? (CY) = ? 对进位标志不影响4)DA A A 什么叫BCD码?(十进制)B BCD码如何进行相加呢?只管相加,然后加一句DA A即可,其它一概不管!例:如何将BCD码50存放在内部RAM30H单元中? 例: MOV A,#50H /MOV R1,#50H/ ADD A, R1/ A=? MOV A,#50H /MOV R1,#50H/ ADD A, R1/ DA A/ A=?5)LCALL与LJMP LCALL: A.子程序调用指令(必须返回;RET和RETI的区别)B. ACALL(短调用,用法相同) LJMP: A. 直接跳转指令(不返回) B. AJMP、SJMP(短转移,用法相同)addr11、addr16、rel全部改为标号即可(80年代手工汇编时,这个地方很麻烦)JMP: JMP A+DPTR (针对ROM还是RAM?) 用于实现多分支程序转移 P88例题6)CJNE / DJNZ CJNE: 用于两个数的比较;对CY有影响(左边小,C=1);P86例题DJNZ: 用于循环(第一堂课的例子)7) 第三章的内容不要按顺序看,看后面的指令表,看不懂的指令查一下前面的内容即可。第四章几个例题要熟悉作业: 1. 2000H(ROM): 3FH/06H/5BH/4FH/ 20H (RAM):01H 执行程序:MOV A,20HINC AMOV DPTR,#2000HMOVC A,A+DPTRCPL A(A)=? A4H2. MOV 60H,#2BH MOV 61H,#61HCLR C MOV A,#91H SUBB A,60H /66H ADD A,61H DA A (A)=? 27H3. (A)=3BH, ANL A, #9EH, (A)=? 1A (CY)=? 不影响4. 下面哪条指令在8051单片机的引脚产生低电平信号?( ) (A) MOVX A, DPTR (B) MOVC A, A+PC (C) MOVC A, A+ DPTR (D) MOVX DPTR, A5. 判断正误 1)将片外RAM中3057单元的内容传送给A MOVX A, 3057H (F) MOVX DPTR, #3057H/ MOVX A, DPTR (T) 2)将SFR中的PSW内容读入A MOV A, PSW (T) MOV A, 0D0H (T) MOV R0, #0D0H/MOV A,R0 (00H-7FH) (F) PUSH PSW/POP ACC (T)6.编程将片内RAM 30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。解:START:MOV R0,#30H MOV R7,#0FHMOV DPTR,#3000H LOOP:MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET7. 用查表法编一子程序,将40H单元中的BCD码转换成ASCII码。(已知:0的ASCII码为30H、1的ASCII码为3H)提示:TAB DB 30H 31H 32H解:START:MOV A,40H MOV DPTR,#TABMOVC A,A+DPTRMOV 40H, ARET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H8.求片外RAM3000H、3001H单元数据的平均值,并传送给3002H单元。解: MOV DPTR,#3000HMOVX A,DPTRMOV R0,A INC DPTRMOVX A,DPTR ADD A, R0 RRC AINC DPTRMOVX DPTR,ARET9. 在片外RAM空间有一个数据块如图所示1000H数据块长度1001HX11002HX21003HX3 (1) 若该数据块为无符号数,求该数据块中数据最小值存于片内RAM20H单元。解: ORG 0030HMOV DPTR,#1000HMOVX A,DPTRMOV R7,A INC DPTR CLR C MOV 20H,#00H LOOP: MOVX A,DPTR CJNE A,20H,00H JNC NEXT MOV 20H, A NEXT: INC DPTR DJNZ R7, LOOP RET (2)若该数据块为有符号数,求正数、负数和零的个数,并将它们的个数分别存到12H、11H、10H单元中。解: ORG 0030HMOV DPTR,#1000HMOVX A,DPTRMOV R7,AMOV 12H,#00HMOV 11H,#00HMOV 10H,#00H L2: INC DPTRMOVX A,DPTR JZ NEXT1 JB ACC.7, NEXT2 JNC 12H LJMP L1 NEXT1: INC 10H LJMP L1NEXT2: INC 11H L1: DJNZ R7,L2 RET第五讲5 单片机存储器扩展51 RAM扩展讲解以2764为例(1片、2片);其它芯片52 ROM扩展讲解以6264为例(1片、2片);地址固定讲解作业作业:1)课本第一题 2)画硬件电路图第六讲 *6 中断与定时系统*今天讲课内容为课本中P137-P147;其中3处删去不看。61中断程序和子程序子程序:子程序调用语句;执行子程序;子程序返回中断程序:中断申请(2+2+1);执行中断程序;中断程序返回62外部中断1.申请信号的引脚/INT0或/INT12.申请信号的种类脉冲信号(下降沿有效)、电平信号(低电平有效)信号种类需要事先告诉单片机。我先给大家介绍一个专用寄存器3定时器控制寄存器TCON (P138) A. 单元地址 88H 位地址:88-8FHB. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0C. IT0、IT1:脉冲触发(下降沿有效)1电平触发(低电平有效)0(默认值是0)例:SETB IT0 D一旦/INT0有中断申请信号,则IE0自动置“1”。4. 中断允许控制寄存器IE(P139)A. 单元地址 0A8H 位地址:0A8-0AFHB. EA / / ES ET1 EX1 ET0 EX0 (“1”:接通 “0”:断开)EA:总开关; ES ET1 EX1 ET0 EX0:小开关例:CLR EA : 关闭所有中断SETB EA/SETB EX0:打开外部中断0C. 复位后:(IE)=00H 是接通还是断开?5中断程序执行过程 一旦IE01且相应中断开关打开,主程序响应中断(自动执行语句LCALL 0003H/000BH/0013H/001BH/0023H)(P25) 还有几个小问题6中断优先级 如果INT0和/INT1同时有申请信号,8051自动将IE0、IE1都置“1”;如果两个外部中断开关都打开, 8051到底执行哪个中断? 不急,我们再学一个专用寄存器中断优先级控制寄存器(IP)P140:0B8H-0BFH()A. 单元地址 0B8H 位地址:0B8-0BFH B. / / / PS PT1 PX1 PT0 PX0如果相应位置“1”: 则优先响应中断;否则,按顺序!例:SETB PX17IE0(IE1)自动清零1)响应中断后,IE0(IE1)自动清零。(为什么)2) 如果电平触发,低电平时间过长,结果会怎样?如何解决呢?A. 硬件图(P145:加一个D触发器)B. D触发器:当CP有正跳变时,Q=D;其余Q保持不变! 当SD(直接置位端)有负跳变时,Q=1!C. 触发过程(需软件(中断程序开头)送负跳变:SETB P10/ CLR P10) 6.3 定时中断我们先了解一下定时/计数器的工作方式1定时/计数器的工作方式定时和计数的区别(数振荡脉冲的个数;数脉冲输入的个数)共四种方式,其中最常用的工作方式是:1和2(0、3不看)如何设置定时/计数器的工作方式呢?再学一个专用寄存器:(P148)工作方式控制寄存器TMOD(89H)(不在位寻址区)GATE C/T M1 M0 GATE C/T M1 M0M1 M0:决定了四种工作方式;其中最常用的工作方式是:1和2 C/T=1:定时工作方式;C/T=0:计数工作方式(数外部输入脉冲的个数,时间并不固定)GATE:定义启动方式(如果=1则换一种启动方式)2方式11)两个存储单元组成一个16位的大存储单元这个16位的大存储单元在什么地方呢?(P22)再学几个专用寄存器:TL0(8AH)、TL1(8BH)、TH0(8CH)、TH1(8DH)2)存储单元自动加13)溢出自动改变TCON中的TF1、TF0(同IE1、IE0类似)4) 定时器控制寄存器TCON:P138(88H-8FH)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0顺便讲一下TR1、TR0(一种硬件启动方式)TR1、TR01:启动定时/计数器TR1、TR00:停止定时/计数器5)定时时间如何确定?很简单!给这几个专用寄存器赋初值即可!设机器周期为Tp, 定时时间为T, 定时初值为nT=Tp(216-n)6)响应中断,硬件自动将TCON中的TF1、TF0清零作业:1.定时中断用到哪些专用寄存器? 2. 简述外部中断的整个过程。第七讲 3举例P161例中的中断程序需要再次给TL、TH置初值,方式2可以不用置初值4方式2两个存储单元:TL、TH方式2:只用1个存储单元TL;TH中存放初值;溢出后自动转存缺点:8位。当6M晶振时,最大定时为512us大家先看一下P152例6.2如果换成方式2程序是怎样的?请两个学生上来写,其他人在下面写该程序也可不用中断程序:查询P161例改为查询方式,是否正确?定时不准确ML0:LCALL SMXS +JBC TF0 ,PITO RETI-LJMP ML0例:利用定时计数器1编程实现:当外部向8051输入1000个脉冲(15号引脚)时,定时10ms,然后再数1000个脉冲,如此循环。L1: MOV TMOD, #50H MOV TH1, #0FCH MOV TL1, #18H CLR EA SETB TR1LOOP1: JBC TF1,L2 SJMP LOOP1L2 : CLR TR1 MOV TMOD, #10H MOV TH1, #0ECH MOV TL1, #78HSETB TR1LOOP2: JBC TF1,L1 SJMP LOOP2作业:1. P152例6.2中的方式1换成方式22. P152例6.2中的方式1换成方式2并且使用查询方式 3编程实现(6M):P1.0口输出矩形波,其中高电平宽50us,低电平宽300us第八讲7 单片机I/O口的扩展及应用7.1 为什么需要I/O口扩展1) I/O口数量不够;2) 协调高速单片机与低速外设的匹配问题; 打印一个字符需几十ms传输一个字符需几个us3) 增加驱动能力I/O扩展芯片分两种:通用可编程I/O芯片、简单I/O芯片7.2 简单I/O芯片常用的简单I/O芯片有:244:八三态(3S)缓冲器(解释三态缓冲器)(P175:8+8+2+220)245:八双向三态缓冲器(有时候始终选通)373:八D锁存器(/G低电平有效、CK高电平传输低电平锁存)/G:片选信号(为什么不叫/C/E,应该去问生产厂家;还有叫/EN的)377:八上升沿D锁存器(CK上升沿传输)例:P203(参1)图373:Q接二极管、D接P0口、CK接高电平、/G接/WR和P2.7;244:D接按键、Q接P0口、/CE1/CE2接/RD和P2.7;也可同时外接ROM和RAM。外部设备和RAM统一编址。程序: LOOP: MOV DPTR, #8000H/#0FFFFHMOVX A, DPTR MOVX DPTR, A SJMP LOOP373这种接法实际是把锁存器当缓冲器用了,没有锁存功能。按P178图的接法才有锁存功能。7.3 通用可编程I/O芯片常用的通用可编程I/O芯片有:8255: 3个可编程并行I/O口8155: 3个可编程并行I/O口;1个14位可编程定时计数器;256B的RAM8279: 专用接口芯片(接键盘和LED)7.4 键盘接口技术键盘接口技术分为硬件和软件硬件:举例工业色谱仪的面板。1)共23个键2)给每个键分配一个键码分成行和列(每行8个共8列、行数根据键的个数确定)3)每列各引出一根线共8根线送到输出口(P201)4)每行各引出一根线共3根线送到输入口(P201)5)送去加工;8根列线3根行线6)接法:8根列线接输出口;3根行线接输入口(P201)软件:1) 判断是否有键按下(先

温馨提示

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

评论

0/150

提交评论