




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机实验指导书 (二) 实验五D/A0832转换实验 一、实验目的了解D/A转换与单片机的接口方法;了解D/A转换芯片DA0832的性能及编程方法。 二、实验内容利用0832输出一个从0V开始逐渐升至5V再降至0V的三角波电压,数码管显示数字量值。 三、实验器材 1、超想-3000TC综合实验仪1台 2、KEIL仿真器1台 3、连线若干根 4、计算机1台 四、接线图案 五、程序框图 五、程序框图 六、实验原理 六、实验原理D/A转换器的功能主要是将输入的数字量转换成模拟量输出,在语音合成等方面得到了广泛的应用。 本实验中采用的转换器为DAC0832,该芯片为电流输出型8位D/A转换器,输入设有两级缓冲锁存器,因此可同时输出多路模拟量。 本实验中采用单级缓冲连接方式,用0832来产生三角波,N0832初始化显示转换显示加1N输入是否到FF?输入显示减1输入是否到00?具体线路如上图所示。 VREF引脚的电压极性和大小决定了输出电压的极性与幅度,超想-3000TC综合实验仪上的DA0832的第8引脚(VREF)的电压已接为-5V,所以输出电压值的幅度为0-5V。 七、实验步骤 1、设定仿真模式为程序空间在仿真器上,数据空间在用户板上。 把DA0832的片选CS32孔接至YC3(0B000H-0BFFFH)孔。 2、编写程序、编译程序用单步、断点、连续方式调试程序,排除软件错误。 运行程序,8155键显区数码管上显示不断加大或减小的数字量,用万用表测量D/A输出孔AOUT,应能测出不断加大或减小的电压值。 八、思考问题修改程序,使能产生锯齿波。 九、实验程序OUTBIT equ0e101h;位控制口CLK164equ0e102h;段控制口(接164时钟位)DAT164equ0e102h;段控制口(接164数据位)IN equ0e103h;键盘读入口LEDBuf equ40h;显示缓冲org0000h movsp,#60h mov dptr,#0e100h;8155初始化mov a,#03h movxdptr,a mov40h,#00h;显示缓冲区置值mov41h,#08h mov42h,#03h mov43h,#02h loop1:mov r5,#00h loop2:mov dptr,#0B000h;0832DA从小到大转换mov a,r5movxdptr,a mov r0,#45h mov45h,a;拆字后送显示缓冲区acall ptds mov r6,#15h dir10:acall display;调用显示子程序djnz r6,dir10inc r5cjne r5,#00h,loop2loop3:mov dptr,#0B000h;0832DA从大到小转换dec r5mov a,r5movxdptr,a mov r0,#45h acallptdsmov r6,#15h dir11:acall displaydjnz r6,dir11cjne r5,#00h,loop3sjmp loop1Delay:mov r7,#00mov r3,#00;延时子程序DelayLoop:djnz r3,DelayLoop djnz r7,DelayLoop djnz r6,DelayLoop retDISPLAY:setb0d3h mov r0,#LEDBuf mov r1,#6;共6个八段管mov r2,#00100000b;从左边开始显示Loop:mov dptr,#OUTBIT mov a,#00h movxdptr,a;关所有八段管mov a,r0mov dptr,#LEDmap movca,a+dptr mov B,#8;送164DLP:rlc a mov r3,a mov a.0,c anl a,#0fdh mov dptr,#DAT164movxdptr,a mov dptr,#CLK164orl a,#03h movxdptr,a anl a,#0fDh movxdptr,a mov a,r3djnz B,DLP mov dptr,#OUTBIT mov a,r2movxdptr,a;显示一位八段管mov r6,#01call Delaymov a,r2;显示下一位rr a mov r2,a incr0djnz r1,Loop mov dptr,#OUTBIT mov a,#0movxdptr,a;关所有八段管clr0d3h retLEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07h db7fh,6fh,77h,7ch,39h,5eh,79h,71h ptds:mov r1,a acallptds1mov a,r1swap aptds1:anl a,#0fh movr0,a decr0ret Delay1:mov r7,#03h sjmpDelayLoop END实验六电子琴实验 一、实验目的了解发出不同音调声音的编程方法。 二、实验内容利用实验仪上提供的键盘,使数字键 1、 2、 3、 4、 5、 6、7作为电子琴按键,按下即发出相应的音调。 用P1.0口发出音频脉冲,驱动喇叭.。 三、实验原理我们知道,声音是由振动产生的,每个音符都对应了一个频率如下表所示。 利用定时/计数器T0工作在16位定时方式,通过改变TH0和TL0的值,就可以产生不同频率的脉冲,例如想产生523Hz(音符1的发音)的脉冲,其周期为1/523=1912S,因此只要让T0定时956S后,使P1.0取反,就可以在P1.0引脚上输出一个频率为523Hz的脉冲。 若晶振的频率为6MHz,则计数值为956/2=478,而计数器的初值为65536-478=65058=OFF22H,即THO=OFFH,TLO=22H。 这样每个音符都对应了一个T值,6M晶振时各音符的T值如下表音符频率以及6M晶体时对应的T值表音符频率以及6M晶体时对应的T值表音符频率T值音符频率T值126264582152365058229464685257865110333064778365965156434964819469865178539264898578465217644064968688065252749465030798865283另一方面是每个音符的发音长度,各调节拍与时间的设定如下表所示调值与节拍延时时间关系表曲调值1/4拍时间1/8拍时间调4/4125ms62ms调3/4187ms94ms调2/4250ms125ms 四、实验器材 1、超想-3000TC综合实验仪1台 2、KEIL仿真器1台 3、连线若干根 4、计算机1台 五、接线图案 六、实验步骤 六、实验步骤把P1.0用连线连至“音响与合成”框LM386的VIN1插孔上。 一、实验目的了解步进电机工作原理,掌握用单片机的步进电机控制系统的硬件设计方法,熟悉步进电机驱动程序的设计与调试,提高单片机应用系统设计和调试水平。 二、实验内容编写并调试出一个实验程序按下图所示控制步进电机旋转 三、工作原理步进电机是工业过程控制及仪表中常用的控制元件之一,例如在机械装置中可以用丝杠把角度变为直线位移,也可以用步进电机带螺旋电位器,调节电压或电流,从而实现对执行机构的控制。 步进电机可以直接接收数字信号,不必进行数模转换,用起来非常方便。 步进电机还具有快速启停、精确步进和定位等特点,因而在数控机床、绘图仪、打印机以及光学仪器中得到广泛的应用。 步进电机实际上是一个数字/角度转换器,三相步进电机的结构原理如图所示。 从图中可以看出,电机的定子上有六个等分磁极,A、A、B、B、C、C,相邻的两个磁极之间夹角为60o,相对的两个磁极组成一相(A-A,B-B,C-C),当某一绕组有电流通过时,该绕组相应的两个磁极形成N极和S极,每个磁极上各有五个均匀分布矩形小齿,电机的转子上有40个矩形小齿均匀地分布的圆周上,相邻两个齿之间夹角为9。 当某一相绕组通电时,对应的磁极就产生磁场,并与转子形成磁路,如果这时定子的小齿和转子的小齿没有对齐,则在磁场的作用下,转子将转动一定的角度,使转子和定子的齿相互对齐。 由此可见,错齿是促使步进电机旋转的原因。 三相步进电机结构示意图例如在三相三拍控制方式中,若A相通电,B、C相都不通电,在磁场作用下使转子齿和A相的定子齿对齐,我们以此作为初始状态。 设与A相磁极中心线对齐的转子的齿为0号齿,由于B相磁极与A相磁极相差120,不是9的整数倍(1209=40/3),所以此时转子齿没有与B相定子的齿对应,只是第13号小齿靠近B相磁极的中心线,与中心线相差3,如果此时突然变为B相通电,A、C相不通电,则B相磁极迫使13号转子齿与之对齐,转子就转动3,这样使电机转了一步。 如果按照ABC的顺序轮流通电一周,则转子将动9。 步进电机的运转是由脉冲信号控制的,传统方法是采用数字逻辑电路环形脉冲分配器控制步进电机的步进。 下图为环形脉搏冲分配器的简化框图。 三相六拍环形脉搏冲分配器三相六拍环形脉搏冲分配器 1、运转方向控制。 如图所示,步进电机以三相六拍方式工作,若按AABBBCCCAA次序通电为正转,则当按AACCCBBBAA次序通电为反转。 2、运转速度的控制。 图中可以看出,当改变CP脉冲的周期时,ABC三相绕组高低电平的宽度将发生变化,这就导致通电和断电时速率发生了变化,使电机转速改变,所以调节CP脉冲的周期就可以控制步进电机的运转速度。 3、旋转的角度控制。 因为每输入一个CP脉冲使步进电机三相绕组状态变化一次,并相应地旋转一个角度,所以步进电机旋转的角度由输入的CP脉冲数确定。 超想-3000TC实验仪选用的是20BY-0型4相步进电机,其工作电压为4.5V,在双四拍运行方式时,其步距角为18O,相直流电阻为55,最大静电流为80Ma。 采用8031单片机控制步进电机的运转,按四相四拍方式在P1口输出控制代码,令其正转或反转。 因此P1口输出代码的变化周期T控制了电机的运转速度n=60/T.N式中n步进电机的转速(转/分);N步进电机旋转一周需输出的字节数;T代码字节的输出变化周期。 设N=360/18=20,T=1.43ms,则步进电机的转速为2100转/分。 控制P1口输出的代码字节个数即控制了步进电机的旋转角度。 正方向A BC D反方向A DC B 四、接线图案根据步进电机工作原理,使用8031的P1.0-P1.3分别驱动步进电机A、B、C、D相,用软件控制P1口输出一脉冲序列,控制步进电机转速、方向、步距。 同时为能观察步进电机旋转状态,在A、B、C、D相输出到状态指示灯。 五、实验步骤 1、“系统资源”区的P1.0-P1.3孔接步进电机的BA-BD孔,“发光二极管组”的L0-L3孔接步进电机A、B、C、D孔。 P1.7孔连L7。 2、编写程序、编译程序。 用单步、全速断点、连续方式调试程序,观察数码管上数字变化,检查程序运行结果,观察步进电机的转动状态,连续运行时用示波器测试P1口的输出波形,排除软件错误,直至达到本实验的设计要求。 六、程序框图 六、程序框图Y(R7)-1=0?N Y (42)R6(R6)-1=0?N调用延时1ms子程序调用步进电机子程序开始清状态寄存器置正转A相通电(R7)-1=0?步计数器R7置100步延时计数器42H置200N Y (42)R6(32H)-132H(R6)-1=0?N Y调用延时1ms子程序调用步进电机子程序步计数器R7置100步(R7)-1=0?步计数器R7置100步NY (42)R6(R6)-1=0?NY调用延时1ms子程序调用步进电机子程序(42H)+142H步进电机控制主程序框图正反转步进子程序框图 七、思考问题正反转步进子程序框图 七、思考问题若将步进电机A、B、C、D相分别接到P1.4-P1.7,软件功能与本实验要求一致,需要修改那几处程序? 八、实验程序ORG0000H STRT:MOV SP,#6FH;初始化MOV20H,#0;状态寄存器清零MOV P1,#0F1H;正转A相通电MLP:MOV R7,#64H;R7为步计数器,正转100步MOV42H,#0C8H;42H为延时计数器MLP0:MOV R6,42H;调用延时200MS子程序MLP9:LCALL DELDJNZ R6,MLP9DEC42H LCALLSTEPS;调用步进子程序DJNZ R7,MLP0;以上为加速程序MOV R7,#64H;以下为恒速程序MLP1:MOV R6,42H MLPX:LCALL DELDJNZ R6,MLPX LCALLSTEPS DJNZ R7,MLP1NY开始040H(40H)+140H(20H)P1口(A)03(20H)03根据(40H)查CTABA根据(40H)查FTABA(40H)3正转?返回MOV R7,#64H;以下为减速程序MLP2:MOV R6,42H MLPY:LCALL DELDJNZ R6,MLPY LCALLSTEPS INC42H DJNZ R7,MLP2CPL7LJMP MLPSTEPS:INC20H;正反转步进子程序ANL20H,#83H MOV A,20H ANLA,#3JB7,STPSC MOV DPTR,#FTAB SJMPSTPW STPSC:MOV DPTR,#CTAB STPW:MOVCA,A+DPTR MOV P1,A RETFTAB:DB0F3H,0F6H,0FCH,0F9H CTAB:DB79H,7cH,76H,73H DEL:MOV R5,#0;延时子程序DEL0:DJNZ R5,DEL0RET END;“验证式”实验七*步进电控制机ORG0000H STRT:MOV SP,#6FH;初始化MOV20H,#0;状态寄存器清零MOV P1,#0F1H;正转A相通电MLP:MOV R7,#64H;R7为步计数器,正转100步MOV42H,#0C8H;42H为延时计数器MLP0:MOV R6,42H;调用延时200MS子程序MLP9:LCALL DELDJNZ R6,MLP9DEC42H LCALLSTEPS;调用步进子程序DJNZ R7,MLP0;以上为加速程序MOV R7,#64H;以下为恒速程序MLP1:MOV R6,42H MLPX:LCALL DELDJNZ R6,MLPX LCALLSTEPS DJNZR7,MLP1MOV R7,#64H;以下为减速程序MLP2:MOV R6,42H MLPY:LCALL DELDJNZR6,MLPY LCALLSTEPS INC42H DJNZR7,MLP2CPL7LJMP MLPSTEPS:INC20H;正反转步进子程序ANL20H,#83H MOVA,20H ANLA,#3JB7,STPSC MOV DPTR,#FTAB SJMPSTPW STPSC:MOV DPTR,#CTAB STPW:MOVCA,A+DPTR MOV P1,A RETFTAB:DB0F3H,0F6H,0FCH,0F9H CTAB:DB79H,7cH,76H,73H DEL:MOV R5,#0;延时子程序DEL0:DJNZR5,DEL0RET END实验八RAM扩展实验 一、实验目的学习RAM6264的扩展 二、实验内容往RAM中写入一串数据,然后读出,进行比较。 三、程序框图 四、接线图案 四、接线图案 五、实验步骤设计程序,运行并观察结果。 往RAM中写入一串数据读出进行比较,相同显示0,不同显示E 六、实验程序OUTBIT equ0e101h CLK164equ0e102h;段控制口(接164时钟位)DAT164equ0e102h;段控制口(接164数据位)LEDBuf equ40h INequ0e103h ORG0000H MOVsp,#60h MOVDPTR,#0e100H;8155初始化MOVA,#03H MOVXDPTR,A START:MOVDPTR,#8000H;往6264的8000H-9FFFH单元送入#55H MOVA,#55H DD:MOVXDPTR,A INC DPTR mov r0,dph CJNer0,#0A0H,DD MOVDPTR,#8000h DD1:MOVXA,DPTR;读出数据进行比较CJNE A,#55H,ERR INCDPTR MOV R0,DPH CJNER0,#0A0H,DD1mov40h,#06h;显示缓冲器初始化mov41h,#05h mov42h,#06h mov43h,#04h mov44h,#10h mov45h,#00h START1:LCALL DISPLAY;正确的显示“6464-0”SJMP START1ERR:mov40h,#06h mov41h,#05h mov42h,#06h mov43h,#04h mov44h,#10h mov45h,#0Eh;不正确的显示“6264-E。 START2:LCALL DISPLAYSJMP START2DISPLAY:setb0d3h mov r0,#LEDBuf mov r1,#6;共6个八段管mov r2,#00100000b;从左边开始显示Loop:mov dptr,#OUTBIT mov a,#00h movxdptr,a;关所有八段管mov a,r0mov dptr,#LEDmap movca,a+dptr movB,#8;送164DLP:rlc a mov r3,a mov a.0,c anla,#0fdh mov dptr,#DAT164movxdptr,a mov dptr,#CLK164orl a,#02h movxdptr,a anla,#0fDh movxdptr,a mova,r3djnz B,DLP mov dptr,#OUTBIT mova,r2movxdptr,a;显示一位八段管mov r6,#01call Delaymova,r2;显示下一位rR a mov r2,a incr0djnz r1,Loop mov dptr,#OUTBIT mova,#0movxdptr,a;关所有八段管clr0d3h retLEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07h db7fh,6fh,77h,7ch,39h,5eh,79h,71h DB40H Delay:mov r7,#00H;延时子程序DelayLoop:djnz r7,DelayLoop djnzr6,DelayLoop retend实验九工业顺序控制(INTO、INTI)综合实验 一、实验目的掌握工业顺序控制程序的简单编程,中断的使用。 二、实验内容8031P1.0-P1.6控制注塑机七道工序,现模拟控制七只发光二极管的点亮,高电平点亮。 设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。 P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出。 设定7道工序只有一位输出。 三、实验器材 1、超想3000TC综合实验仪1台 2、KEIL仿真器1台 3、计算机1台 4、连线若干根 四、程序框图 五、接线图案 五、接线图案 六、实验步骤 六、实验步骤按图接好连线。 执行程序,把K1和K0接到高电平,观察发光二极管点亮情况,确定工序执行是否正常,然后把K0置为低电平,看是否有声音报警。 恢复中断1,报警停,又从刚才报警时一道程序执行下去。 七、思考问题修改程序,使每道工序中有多位输出。 八、实验程序中断服务子程序开始开中断,P 1、P3口初始化等开工工序1延时工序2延时工序7延时主程序流程图关输出保护现场报警故障清除了吗?恢复现场返回N;掌握工业顺序控制的简单编程,中断的使用ORG0000H SJMPMAIN ORG0013H LJMPINTO MAIN:MOV P1,#00H ORLP3,#00H PO11:JNB P3.4,PO11;开工吗?ORL IE,#84H ORLIP,#04H MOVPSW,#00H;初始化MOV SP,#53H PO12:MOVP1,#01H;第一道工序ACALL PO1BH MOVP1,#02H;第二道工序ACALL PO1BH MOVP1,#04H;第三道工序ACALL PO1BH MOVP1,#08H;第四道工序ACALL PO1BH MOVP1,#10H;第五道工序ACALL PO1BH MOVP1,#20H;第六道工序ACALL PO1BH MOVP1,#40H;第七道工序ACALL PO1BH SJMPPO12INTO:MOV B,R2;保护现场PO17:MOVP1,#00H;关输出MOV20H,#0A0H;振荡次数PO18:SETB P1.7;振荡ACALL PO1A;延时CLR P1.7;停止ACALL PO1A;延时DJNZ20H,PO18;不为零转CLR P1.7ACALL PO1A JNBP3.3,PO17;故障消除吗?MOV R2,B;恢复现场RETI PO19:MOVR2,#10H;延时1ACALL DELY RET PO1A:MOVR2,#06H;延时2ACALL DELYRET PO1BH:MOVR2,#30H;延时3ACALL DELYRET DELY:PUSH02H;延时子程序DEL2:PUSH02H DEL3:PUSH02H DEL4:DJNZR2,DEL4POP02H DJNZR2,DEL3POP02H DJNZR2,DEL2POP02H DJNZR2,DELYRETEND实验十扩展时钟系统实验(DS12887) 一、实验目的 一、实验目的掌握MCS51单片机扩展时钟电路的设计方法;了解DS12887的工作原理。 二、实验内容编程实现下列功能程序第一次运行后,初始化时间显示为000000,即6位数码管显示为00.00.00。 通过键盘MON设定小时为07,通过键盘LAST设定分钟为08,通过键盘NEXT设定秒为09,两分钟后即在7.10.09时关掉电源,等待2分钟后再打开电源,这时时间应为7.12.09,即停电后DS12887中的时钟不会停止运行。 三、实验器材 1、超想-3000TC综合实验仪1台 2、KEIL仿真器1台 3、连线若干根 4、计算机1台 四、实验原理在很多应用场合要求单片机系统不仅能够准确地采集数据,而且还需要了解产生这些数据的时刻,为单片机系统增加日历时钟是一项非常有用的技术,掌握这项技术便是本实验的目的。 实验中使用DALLAS公司生产的日历、时钟加RAM芯片DS12887。 它具有接口简单,使用方便等特点,曾被用在586计算机中。 其引脚分布如图所示,内部有128字节的非易失SRAM,具体分配也如图所示。 引脚分布图存储器分布图通过对寄存器A、B、C、D的编程可以控制DS12887的工作方式。 寄存器A寄存器A D7D6D5D4D3D2D1D0UIP DV2DV1DV0RS3RS2RS1RS0UIP位当其为0时指示更新在244S内不会发生;DV2DV1DV0当其为010时,打开晶振,并允许时钟开始计时;RS3RS2RS1RS0用于选择周期中断或输出方波频率,当其分别为 0111、 1000、 1001、 1011、 1101、 1110、1111时,对应频率为512Hz、256Hz、128Hz、64Hz、32Hz、16Hz、8Hz、4Hz、2Hz。 寄存器B D7D6D5D4D3D2D1D0SET PIEAIE UIESQW DM12/24DSE SET位为0时,每秒计数一次,置1后,更新转换被禁止;PIE、AIE、UIE位当它们为1时,分别允许周期中断、报警中断和时钟数据更新结束中断,为0时,禁止中断产生;SQWE位当其为1时,按以寄存器A中由RS3RS2RS1RS0设定的频率从SQW引脚输出方波,当其为0时,SQW为低电平;当DM为1时选用二进制数据格式,反之为BCD数据格式;12/24位为1时,指定24小时时间格式,否则为12小时时间格式;DSE为1时允许夏时制发生。 寄存器CD7D6D5D4D3D2D1D0IRQF PFAF UF0000寄存器C的内容是周期中断标志位PF、报警中断标志位AF、更新结束中断标志位UF和中断请求标志位IRQF,它们之间的关系为IRQF=PF*PIE+AF*AIE+UF*UIE,只要IRQF为1,/IRQ引脚输出就保持低电平,读寄存器C将清除所有标志。 寄存器D D7D6D5D4D3D2D1D0VRT000000014BYTE000D FF00SECONDS01SECODES ALARM02MINUTES114BYTE03MINUTES ALARM04HOURS05HOURS ALARM06DAY OFTHE WEEK07DAY OFTHE MONTH08MONTH09YEAR0A REGISTERA0B REGISTERB0C REGISTERC0D REGISTERD寄存器D中仅D7有定义,读时应总为1,若为0则说明内部锂电池已耗尽。 为防止锂电池在芯片装入系统前被耗尽,DS12887在出厂时先关掉了其内部的晶振,编程时必须首先给寄存器A的DV2DV1DV0位写入010以打开晶振,然后读寄存器D以检查内部锂电池是否有效;接着根据需要对寄存器A、B进行设置。 当需要修改日历时钟时,需要先使SET位置1,当需要读日历时钟数据时,必须先查询寄存器A中的UIP位,只有当其为0时,才能进行读取数据。 五、接线图案74LS138YS7 六、程序框图 七、实验步骤 1、设定仿真模式程序空间在仿真器上,数据空间在用户板上。 2、从“接线图案”中看出,DS12887的/CS脚已连接U17译码器的YS7脚,于是可知DS12887的地址空间为0FE00H-0FFFFH。 3、硬件调试因为DS12887内部有114个内部RAM,在系统中的地址空间为0FE0EH-0FE7FH,所以,可通过查看这一区域的数据读写来判断硬件是否有故障。 超想-3000TC+KEIL仿真器,在WINDOWS调试环境下打开数据存贮器区,在0FE10H开始的地址上写入一串55H,然后按右键,弹出一窗口,点击“刷新”,如写入的的一串55H未被修改,则硬件无故障。 4、设计程序并进行调试。 八、实验程序;按“NEXT”键,调整秒位;按“LAST”键,调整分位;按MON键,调整时位;OUTBIT equ0e101h;位控制口CLK164equ0e102h;段控制口(接164时钟位)DAT164equ0e102h;段控制口(接164数据位)INequ0e103h;键盘读入口LEDBuf equ60h;显示缓冲ljmp StartLEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07h开始8155初始化DS12887初始化读秒、分、时拆字后送显示缓冲器调用显示子程序调用键扫子程序有键按下吗?是NEXT键?是LAST键?是MON键?调整秒位调整分位调整时位NYYYYNNN db7fh,6fh,77h,7ch,39h,5eh,79h,71h db00H Delay:;延时子程序mov r7,#00DelayLoop:djnzr7,DelayLoop djnzr6,Delay retDisplayLED:movr0,#LEDBuf movr1,#6;共6个八段管movr2,#00000001b;从左边开始显示Loop:mov dptr,#OUTBIT mova,#0movxdptr,a;关所有八段管mova,r0movB,#8;送164DLP:rlc a movr3,a mova.0,c mov dptr,#DAT164anla,#0fdh movxdptr,a mov dptr,#CLK164orl a,#02h movxdptr,a anla,#0fdh movxdptr,amova,r3djnz B,DLP mov dptr,#OUTBIT mova,r2movxdptr,a;显示一位八段管movr6,#1call Delaymova,r2;显示下一位rl amovr2,a incr0djnzr1,Loop retTestKey:mov dptr,#OUTBIT mova,#0movxdptr,a;输出线置为0movdptr,#IN movx a,dptr;读入键状态cpl aanla,#0fh;高四位不用ret KeyTable:;数字键码定义db00h,01h,04h,07h db0fh,02h,05h,08h db0eh,03h,06h,09h db0dh,0ch,0bh,0ah db10H,11H,12H,13H,14H db15H,16H,10H,10H,10H GetKey:MOV13H,#06H MOV12H,#20H Key2:MOVA,12H CPLA MOVR7,A MOVDPTR,#0E101H MOVA,R7MOVXDPTR,A MOVA,12H CLRCRRCA MOV12H,A MOVDPTR,#0E103H MOVXA,DPTR MOVR7,A MOVA,R7CPLAMOVR7,AMOVA,R7ANLA,#0FH MOV14H,A DEC13H MOVR7,13H MOVA,R7JZ Key1MOVA,14H JZKey2Key1:MOVA,14H JZGetKey6MOVA,13H ADDA,ACC ADDA,ACC MOV13H,AMOVA,14H JNBACC.1,GetKey1INC13H SJMPGetKey3GetKey1:MOVA,14H JNBACC.2,GetKey2INC13H INC13H SJMPGetKey3GetKey2:MOVA,14H JNBACC.3,GetKey3MOVA,#03H ADDA,13H MOV13H,A GetKey3:MOVDPTR,#0E101H CLRA MOVX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》模拟题库及答案详解【名校卷】
- 2025年教师招聘之《幼儿教师招聘》考前冲刺模拟题库含答案详解【综合卷】
- 教师招聘之《小学教师招聘》综合提升练习试题及答案详解(必刷)
- 2025年九江市八里湖新区各中小学(幼儿园)面向全市公开招聘顶岗教师笔试备考试题及答案解析
- 经济考试题库及答案详解
- 节能知识培训活动情况课件
- 人民法院法官及司法辅助人员招聘合同
- 教师招聘之《幼儿教师招聘》检测卷讲解附答案详解(能力提升)
- 2025廉政教育中心警示教育心得体会(模板)
- 校园防欺凌教师培训制度及流程
- 教师心理健康教育课件
- 多模态大语言模型领域进展分享
- 《改善患者就医体验》课件
- 农机修理工第三届全省职业技能大赛农机修理工项目技术文件
- 乳腺癌术后淋巴水肿的护理
- 超龄员工用工免责协议书
- 教科版小学科学一年级上册全册教案【全套】
- 成人肠造口护理
- 人教版英语七年级上册阅读理解专项训练16篇(含答案)
- 高效压缩空气系统供应规范(TCECA-G 0225-2023)
- 安徽省宣城市宣州区宣城市第六中学2024-2025学年九年级上学期开学物理试题
评论
0/150
提交评论