460 likes | 588 Views
期中考试分析和硬件实验有关说明. 2009.11. 内容提要. 期中考试分析 课件与教材对应关系 实验系统与硬件实验介绍. 期中考试分析. 总体情况: (总人数 92 , 2 人请假, 1 人缺考) 90 分以上: 19 人; 80-89 : 23 人; 70-79 : 26 人; 60-69 : 9 人; 60 分以下: 12 人。. 期中考试分析. 简答题: 1.PSEN 、 EA 引脚功能不太清楚。 ALE :地址锁存允许输出信号,在访问外部存储器时, ALE 用于锁存 P0 口 输出的低 8 位地址,以实现低位地址和数据的分离;
E N D
期中考试分析和硬件实验有关说明 2009.11
内容提要 • 期中考试分析 • 课件与教材对应关系 • 实验系统与硬件实验介绍
期中考试分析 • 总体情况:(总人数92,2人请假,1人缺考) • 90分以上:19人; • 80-89:23人; • 70-79:26人; • 60-69:9人; • 60分以下:12人。
期中考试分析 简答题: 1.PSEN、EA引脚功能不太清楚。 ALE:地址锁存允许输出信号,在访问外部存储器时,ALE用于锁存P0口 输出的低8位地址,以实现低位地址和数据的分离; PSEN:片外程序存储器读选通信号,低电平有效,输出; EA:外部程序存储器选择信号,低电平有效,输入。EA为0,认为低端程序在片外,EA为1,认为低端程序在片内。 2.NOVC指令理解不够。 程序存储器访问指令(查表指令),如:MOVC A,@A+PC 3.77H带符号数,是正数,数值是119。
期中考试分析 填空题: 8. 若标号LABEL所在地址为1000H,则地址1040H处的指令SJMP LABEL的转移偏移量为。(选择项中无正确结果) • (A)3EH (B) 42H (C) 40H (D) 0E0H • 目的地址:1000H; • 源地址:1040H; • Rel=目的地址-源地址-2=1000H-1040H-2=-42H=BEH
期中考试分析 读程序题: • 2. 已知(SP)=70H,子程序SUB1的首地址为1234H,现执行位于5678H的“LCALL SUB1”三字节指令后,(PC)=,(71H)=,(72H)= 。 • ORG 1234H • SUB1: ..... • ...... • RET • 5678H:LCALL SUB1 ;3字节指令 • 567BH: .……;子程序返回后要执行的指令, • ;要压入堆栈保护的地址 • ……. 1234H 7BH 56H
期中考试分析 3. 设(A)=99H,(B)=11H,请写出执行下列各条指令后的结果。 • ADD A,B A=, B=, C=, P=; • DA A A=, B=, C=, P=; • MOV B,A A=, B=, C=, P=; • DEC A A=, B=, C=, P=; • DA A指令没有完全理解。 AAH 11H 0 0 1 1 10H 11H 10H 10H 1 1 0FH 0 10H 1
期中考试分析 • 4.已知(A)=0FH,(DPTR)=0100H,问调用子程序SBR返回时,(A)=00H ,(DPTR)= 010FH ; • 0100H SBR: DEC A • 0101H JZ SBR1 • 0103H ACALL SBR • 0105H SBR1: INC DPTR • RET • SBR子程序执行一次,A的内容减1,DPTR内容+1; • 如(A)=1,SBR程序执行1次,结果为(A)=0,(DPTR)=1; • 如(A)=2, SBR程序执行2次,结果为(A)=0,(DPTR)=2; (SP)=5FH
期中考试分析 • 编程题: • 1. 很多人 MOVX, @DPTR, A指令用错,多数是A换做立即数 • DJNZ和CJNE混用,理解不够; • R0和R1错用做DPTR,存放四位数; • 位运算不熟练,不会判断最高位,有和#00H相减判断正负的。 • 2.不会使用INC DPTR 指令 • 多数错误在R0等单元存放大于0FFH数据。
期中考试分析 • 1.在外部RAM 2040H中存有一个数据,检查它的符号,若为正数,在2050H中存入80H;若为0,在在2050H中存入00H;若为负数,在2050H中存入0FFH,试编一程序完成上述功能。 • ORG 0000H • PROG: MOV DPTR,#2040H • MOVX A,@DPTR • JB ACC.7,NEG • JZ ZERO • POS: MOV A,#80H • SJMP FINISH • ZERO: MOV A,#00H • SJMP FINISH • NEG: MOV A,#0FFH • FINISH: MOV DPTR,#2050H • MOVX @DPTR,A • SJMP $ • END
期中考试分析 • 2.编写一程序将片外数据存储器中7000H~71FFH单元全部清零。 • ORG 0000H • LJMP MAIN • ORG 0040H • MAIN: MOV DPTR,#7000H • MOV R0,#02H • LOOP1: MOV R1,#00H • LOOP: CLR A • MOVX @DPTR,A • INC DPTR • DJNZ R1,LOOP • DJNZ R0,LOOP1 • SJMP $ • END
网站资料 作业与练习: • 335个客观题, 45个主观题。可以检查自己的知识掌握情况。 • 163个精选习题和62个例题详解。 • 在“理论教学”的“相关下载”中,有前一年的期中考试题、考试情况分析、练习和复习题和内容提要等信息。请能够充分利用课程提供的学习资源。
硬件实验时间 • 1、冬学期第2、3、5、6、7周,共5周,实验内容以实验指导书内容为准;有精力的同学请做扩展内容。 • 2、具体时间: • 周1下午、周2下午: 第一批1:15~4:30;第二批:5:30~8:30; 第一批1:15~4:30;第二批:5:30~8:30; • (1:15~8:30期间,实验室都有老师)
实验系统介绍 D1区电源开关
硬件实验介绍-实验一 实验一:I/O控制实验 基础型实验1:片内并行口用作输出口,控制LED显示。 例程功能:使发光二极管从右到左轮流循环点亮
硬件实验介绍-实验一 基础型实验2:片内并行口用作输入口,连接拨动开关,检测开关的位置。 读入P2口内容,获取8个拨动开关的状态;并将该状态输出到连接LED的P1口,即显示出拨动开关的状态。
硬件实验介绍-实验一 基础型实验3:外部中断应用与编程 外部中断INT0接一个按键,一次按键动作触发一次中断,中断程序使连接到P1.0的LED显示状态翻转。
硬件实验介绍-实验一 设计型实验: • 画出流程并设计程序,实现8位逻辑电平显示模块的奇偶位的亮灭闪烁显示,闪烁间隔为1S。 • 画出流程并设计程序,实现8位逻辑电平显示模块的LED轮流点亮,间隔为1S。(可以考虑用定时器进行定时) • 设计硬件连接图,画出流程并设计程序实现当拨码开关K0=1,K1=0时,实现设计型实验内容步骤①;当开关K0=0,K1=1时,实现设计型实验内容步骤②;当K0=1,K1=1时,LED全亮;否则LED全灭。 (予以提示说明) • 累计INT0按键的中断次数,保存到内部RAM的30H单元。
设置K0,K1 N N K0=1 K1=1 K0=1 K1=0 K0=0 K1=1 N 全灭 Y Y Y 实验内容步骤① 实验内容步骤② 全亮 硬件实验介绍-实验一 设计型实验3说明
硬件实验介绍-实验一 扩展实验及思考 • P0口做为基本的输入输出口与P1、P2、P3口有何区别?硬件上要如何设计保证它做为基本输入输出口与P1、P2、P3口的结果一致? (思考题,不用实验验证) • 利用P1口及LED显示器件,实现十字路口交通灯控制实验的模拟。 (考虑用双色LED实现,可以参考电子版实验指导书中的内容) • 采用外部中断的电平触发方式,编写并运行程序,观察运行结果。记录一次按键动作,进入中断的次数。 (用一个单元记录中断次数,进入中断程序,该单元内容+1)
硬件实验介绍-实验一 双色发光二极管,即在一个LED发光二极管中是由二个单独的PN结构成,可通过控制达到简单的“彩色”显示效果。 红 绿 • 当发红光的PN结被点亮,发绿光PN结不点亮时,发光二极管发出的光显示为红色; • 当发红光的PN结不点亮,发绿光的PN结被点亮时,发光二极管发出的光呈绿色; • 当发红光和发绿光的PN结同时被点亮时,发光二极管发出的光呈橙色; • 当控制双色LED红、绿两个PN结流过不同比例的电流时,可以发出粉红、淡绿、淡黄、黄色等不同彩色来。
硬件实验介绍-实验一 双色LED连接电路
音乐编程实验 • 频率的实现见实验说明,采用半周期取反的形式实现,根据发音频率设置定时器初值。 • 节拍由延时来实现。 • 音乐代码放于表格DAT中,前四位代表频率,根据频率代码查找定时器初值,后四位代表节拍,其大小表示延时的长短。 • (请参考电子版实验指导书(第二版)中的详细说明) • 编写能发出“哆”到“西”的程序,每个音均为一拍(选做题) • 用一根口线如P1.0控制蜂鸣器,能够按程序控制发声,放出音乐。 • 蜂鸣器连接方式
硬件实验介绍-实验二 • 实验二:定时器计数器实验 • 基础型实验1:10ms定时,可以查看一下TF0、TH0、TL0的结果。请加以修改实现不同时间的定时。 • 基础型实验2与实验一内容重复。 • 基础型实验3:定时器应用,定时1s到,LED翻转。 • 采用定时方式2,定时时间100us,因为10000个100us是1s,所以100us的中断次数为10000。
ORG 0000H AJMP MAIN ORG 000BH AJMP IT0P ORG 0040H MAIN: MOV TMOD,#01H ;方式1定时 MOV 20H, #14H ;中断20次1S MOV TH0,#3CH MOV TL0,#0B0H ;定时50ms SETB ET0 SETB EA SETB TR0 LOOP: …… …… SJMP LOOP ORG 2000H IT0P: MOV TH0,#3CH ;重新载入初值 MOV TL0,#0B0H DJNZ 20H,RE MOV 20H,#14H CPL P1.0 ;LED翻转 RE: RETI 硬件实验介绍-实验二
硬件实验介绍-实验二 MOV C100us, #HIGH(TICK) ;#high(Tick) MOV C100us+1, #LOW(TICK) ;#low(Tick) CPL LEDBuf ;100us 记数器为0, 重置记数器, 取反LED Exit: POP PSW RETI Start: MOV TMOD, #02h ; 方式2, 定时器 MOV TH0, #t100us MOV TL0, #t100us MOV IE, #10000010b ; EA=1, IT0 = 1 SETB TR0 ; 开始定时 CLR LEDBuf CLR P1.0 MOV C100us, #HIGH(TICK) MOV C100us+1, #LOW(TICK) Loop: MOV C, LEDBuf MOV P1.0, C SJMP Loop END • TICK EQU 10000=2710H ; 10000 x 100us = 1s • T100us EQU 206 ; 100us时间常数(6M) • C100us EQU 5h ; 100us记数单元 • LEDBuf BIT 00H • LED BIT P1.0 • ORG 0000H • LJMP START • ORG 000BH • LJMP T0Int • ORG 0100H • T0Int: PUSH PSW • MOV A,C100us+1 • JNZ Goon • DEC C100us • Goon: DEC C100us+1 • MOV A, C100us • ORL A, C100us+1 • JNZ Exit ;100us 记数器不为0, 返回
硬件实验介绍-实验二 设计型实验: • 编程使第1~4和5~8发光二极管循环点亮的时间分别为0.25s、0.5s、0.75s、1s。 • 画出流程并设计程序实现采用定时器设计一分钟倒计时器。(先不用显示,用一个单元记秒数,初值为60,每到1s,单元内容-1;第三个实验时再与显示结合起来) • 采用T0的计数器工作方式,设计程序实现外部按键次数的计数。(将一个按键连接到T0引脚,T0实现按键次数的计数,保存到一个单元,可以进行查看)
硬件实验介绍-实验二 实验扩展及思考 • 画出流程并设计程序实现24小时的实时时钟显示。(显示可以在实验三后进行) • 画出流程并设计程序实现对100KHz频率TTL方波信号进行十分频,占空比为4:1的设计,并用示波器查看结果。 (100KHz信号在D5区的时钟发生区,该脉冲连接到T0,T0工作在计数方式,根据占空比要求,改变一条口线的电平,实现占空比为4:1的方波的输出 ) • 基于测频原理,画出流程并设计程序实现测量外部脉冲信号的频率,并实时显示测量频率值。 (用T0做计数器,记录外部脉冲的个数;T1做定时器,定时1s;1s时间到读取T0的计数值,即为测量的频率值。显示可以在实验三后进行)
硬件实验介绍-实验二 T0计数方式,采用方式2,设置初值FEH,允许中断;记录2个脉冲后申请中断; 4次中断后令P1.0变0,再1次中断后令P1.0变1,如此循环,即可得到所需波形。
50ms单元 秒个位 秒十位 分钟个位 分钟十位 小时个位 小时十位 2AH 2BH 2CH 2DH 2EH 2FH 30H 24小时的实时时钟说明 • 主程序: • 初始化程序; • 接收按键输入的实时时间:时、分、秒,并均拆分成2位数,保存到相应的显示缓冲区单元; • 循环显示“显示缓冲区” 内容。 2.T0中断(50ms一次): • 50ms个数+1,判断是否进到秒; • 若进到秒,则秒+1,50ms个数清0; • 判断是否进到秒的十位,若进到秒的十位,则其+1,秒个位清0; ……. …… 硬件实验介绍-实验二 显示缓冲区
硬件实验介绍-实验三 • 实验三 按键与显示实验 • 基础型实验1:查询式按键和静态显示实验 • 根据按键操作,在静态数码管上显示相应的数字。 8个独立式按键电路
硬件实验介绍-实验三 串行扩展的6位静态显示电路
硬件实验介绍-实验三 基础型实验2:动态显示,在动态数码管上显示168168 动态数码管显示电路
硬件实验介绍-实验三 设计型实验内容 • 在最后一个数码管上依次显示a、b、….f各段,每段显示时间为100ms,用T0定时器实现; • 分别指定IO控制动态扫描显示模块、静态显示模块电路,画出流程并设计程序实现数码管显示自己的学号后六位号码; • 用按键输入自己的学号,并在静态或动态数码管上显示出来。
硬件实验介绍-实验三 扩展实验及思考 • 循环显示6个数码管的边缘各段,形成一个运动着的大边框。 • 按键连击的消除和利用。利用连击现象,当按键时间长于2秒时,每0.5秒一个单元内容加1,并显示在2位数码管上,连续累加,直到按键释放。 • 分别基于动态扫描显示模块、静态显示模块电路,画出流程并设计程序实现数码管从右到左滚动显示自己的学号的所有位数;
硬件实验介绍-实验四 • 实验四 并行A/D、D/A转换实验 • 基础型实验1:ADC0809转换实验 ADC0809连接电路
硬件实验介绍-实验四 • 基础型实验2:DAC0832输出方波 DAC0832硬件电路
硬件实验介绍-实验四 设计型实验 • 采用中断法设计ADC0809数据采集程序,并将采集到的十六进制结果显示在LED显示模块上。 • 编程是DAC0832电路输出0.5V、1.0V、2.5V、3.0V、4.5V,并用万用表测量其实际输出电压值。 • 用中断方式编写A/D转换程序,每秒以100ms的间隔采集8次,求8次结果的平均值,保存到内部RAM40H开始的单元,共采集30秒钟。 • 要求同②,计算出每秒的平均值并显示在静态数码管上。
硬件实验介绍-实验四 实验扩展及思考 • 采用ADC0809的8个通道采集8个模拟量信号,并将实际电压值分通道、分时地显示在LED上。 • 根据基础型实验的步骤①、②,由DAC0832输出模拟量,ADC0809采集数据。分配端口实现的硬件连接,画出流程并设计程序实现该过程,比较输出的数据跟采集到的数据是否一致,如不一致分析一下产生误差的原因。 • 采用DAC0832设计一简易的信号发生器,设计流程并编写程序实现50Hz的方波、锯齿波。
实验报告注意点 • 实验报告要求: 1、要按格式要求撰写实验报告。 2、实验报告中实验类型的填写要求: (1)软件实验填写:综合型; (2)硬件实验填写:设计型、研究型。 3、指导教师:齐杭丽、王晓萍 或 齐杭丽、刘玉玲、梁宜勇
键值单元清零 设置为输入方式 读入键值 Y 无按键按下 全为1? N 有按键按下 延时2S 键值单元+1 调用DISP 读入键值 Y 全为1? 结束 已释放 N 仍按下 延时0.5S • 按键连击的消除和利用。利用连击现象,当按键时间长于2秒时,每0.5秒在个位上加1,连续累加,直到按键释放。