32H是26H返回单元格地址第几位的位地址?求详解!!

朋友们帮忙写个51单片机的按键小程序?汇编的_百度知道
朋友们帮忙写个51单片机的按键小程序?汇编的
一个按键控制一个灯,要求按一下按键,灯亮一直亮,再按一下按键灯灭,要带按键的去抖程序。
提问者采纳
试一下这个,灯接在p1.2,按键接在p3.3
MOV P3,#0FFH ;
SETB P1.2START:JNB
START ;TT0:LCALL D1MS
AJMP START;D1MS: MOV R7, #10 ;
D1:MOV R6, #250;
DJNZ R6,$;
其他类似问题
51单片机的相关知识
其他5条回答
程序如下:
P3.3, $高电平,就是没有键按下,原地等待.
CALL D20MS延时.
P3.3, START消抖.
P3.3, $等待释放.
P1.2;外接LED亮灭.
SJMP START继续.;-------------------------------D20MS:延时子程序.
R7, #20D1: MOV
DJNZ R6, $
DJNZ R7, D1
RET;-------------------------------
用中断好。
(1);P3.3小键盘按下P1.3亮再按0.5秒灭。org 0000h ajmp main0 org 0080hMAIN0: CLR 21H清标志main: mov c,p3.3检测按键 jc main MOV R6,#200设定延时 MOV R7,#200TT0: JNB 21H,TT2检测灯状态tt: mov c,p3.3检测按键 jnc tt1 JNB 20H,MAIN ;检测时间标志 CLR 20H
AJMP TT3 TT2: mov c,p3.3检测按键 jnc tt2TT3: CPL 21H改变灯状态 cpl p1.3 ajmp mainTT1: NOP延时但不是子程序 NOP NOP NOP NOP NOP DJNZ R6,TT MOV R6,#200 DJNZ R7,TT MOV R7,#200 SETB 20H AJMP TT
end(2)数码管数据 p0,数码管控制p2 独立按键p1口
,;对独立键进行按键次数计数,三位数码管显示。
*;K1按下后,进行加1计数
*;K2按下后,进行减1计数。
*;K3按下后,进行加5计数。
*;K4按下后,清计数单元,数码管显示0。
*;按住键可以快速计数。
40H显示单元首地址
P0数码管数据口定义;---------------------------------------------------------
0080H;---------------------------------------------------------MAIN:
K_OLD,#00H
K_COUNT,#00HMAIN1:
MAIN1KEY_PROG:
K_SCAN键扫描
A,K_OLD,KEY_P1
KEY_P_ENDKEY_P1:
R4,#20KEY_P2:
CONVT用显示程序来进行键延时
K_SCAN再判断键是否按下
A,K_OLD,KEY_P3
KEY_P_ENDKEY_P3:
JB ACC.0,LOOP1K1按下
JB ACC.1,LOOP2K2按下
JB ACC.2,LOOP3K3按下
JB ACC.3,LOOP4K4按下
KEY_P_ENDLOOP1:
K_COUNT键计数加1
KEY_P_ENDLOOP2:
K_COUNT键计数减1
KEY_P_ENDLOOP3:
K_COUNT键计数加5
KEY_P_ENDLOOP4:
K_COUNT,#00H键计数单元清零KEY_P_END:
RET;---------------------------------------------------------;代码变换 (HEX TO BCD);---------------------------------------------------------CONVT:
DISSTART+2,A百位存放在DISSTART+2
DISSTART+1,A十位存放在DISSTART+1
DISSTART,B个位存放在DISSTART
RET;---------------------------------------------------------; 键扫描子程序;---------------------------------------------------------K_SCAN:
K_NEW,#00H
RET;---------------------------------------------------------;延时子程序;---------------------------------------------------------DELAY:
R6,#200DEL:
RET;---------------------------------------------------------PLAY:
MOV R0,#DISSTART获得显示单元首地址
MOV R1,#07FH从第一个数码管开始
MOV R2,#03H共显示3位数码管DISP1:
MOV A,@R0获得当前位地址
MOV DPTR,#TAB_NU获得表头
MOVC A,@A+DPTR查表获得显示数据
MOV LED_DATA,A显示数据
MOV P2,R1开始显示当前位
MOV A,R1准备显示下一位
MOV R1,A下一位
INC R0取下一个单元地址
LCALL DELAY2MS延时 2 MS
DJNZ R2,DISP1重复显示下一个
P2,#0FFH关闭显示
RET显示完成,返回;---------------------------------------------------------;延时子程序;---------------------------------------------------------DELAY2MS:
R6,#10DEL1:
RETTAB_NU:
db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60字形代码表;**********************************************************
END两个例子我想够你明白的了。详细的解释,代表性的例子,可慢慢学习
很完美的按键控制可调时钟。消抖都在里面包含。好好研究~~~~~~~
B_DEBOUNCE EQU
0030HL_MAIN:
MOV SP,#62H
MOV TMOD,#11H
MOV TH0,#HIGH(62536)
MOV TL0,#LOW(62536)
MOV TH1,#HIGH(15536)
MOV TL1,#LOW(15536)
MOV B_HASKEY,#00H
MOV B_DEBOUNCE,#00H
LCALL F_CHAIFENL_LOOP:
B_DEBOUNCE,L_JSJZ
A,#0FH,L_PRESS
B_HASKEY ,L_WAJ
F_KEYRELEASE
B_HASKEYL_WAJ: LJMP L_FANHUIL_JSJZ:
B_DEBOUNCE
LCALL F_KEYservice
L_FANHUIL_PRESS:
B_HASKEY,L_GAX
F_XDYS200ms
L_FANHUI L_GAX:
B_DEBOUNCE
F_XDYS20ms
L_FANHUIF_KEYRELEASE:
RET F_KEYHOLD:
A,#02H,L_NEXT3
RETL_NEXT3:
A,#03H,L_FANHUI0
KEY3 L_FANHUI0:
L_LOOP F_KEYSCAN:
R4,#0FFHL_LOOP1:
R4;计算移动次数,得到第几位为0
R5,#0FFHL_LOOP2:
R5;计算移动次数,得到第几位为0
RET F_KEYservice:
DPTR,#T_LJMP
@A+DPTRT_LJMP:
LJMP KEY3KEY0:
MOV R_QH,#40H
JB R_BZ,L_D
MOV A,R_QH
MOV R_QH,R0
CJNE R0,#43H,L_D
MOV R_QH,#40H
JB R_BZ,L_D
MOV R1,R_QH
CJNE R1,#42H,L_LL
CJNE @R1,#24H,L_D
CJNE @R1,#60H,L_D
JB R_BZ,L_D
MOV R0,R_QH
CJNE R0,#42H,L_FENMIAO
CJNE @R0,#0FFH,L_JJ
L_DL_FENMIAO:
MOV R0,R_QH
CJNE @R0,#0FFH,L_JJ
ANL A,#0FH
MOV R0,R_QH
ANL A,#0F0H
CJNE R1,#0FH,L_D
LCALL F_CHAIFEN
F_CHAIFEN:
R1,#55HL_DD: MOV
R0,#43H,L_DD
RET;中断T0I_T0: PUSH
TH0,#HIGH(62536)
TL0,#LOW(62536)
CJNE R0,#06H,L_EXIT
R_2,#0L_EXIT:
RETI;中断T1I_T1:
TH1,#HIGH(15536)
TL1,#LOW(15536)
DJNZ R_1,L_EXIT2
R_BZ,L_EXIT2
A,#60H,L_LCHAIFEN
A,#60H,L_LCHAIFEN
A,#24H,L_LCHAIFEN
42H,#00HL_EXIT2 :L_LCHAIFEN:
LCALL F_CHAIFEN
RETIF_XDYS20ms:
R6,#100L_LOOP9:
DJNZ R6,L_LOOP9
F_XDYS200ms:
R6,#50L_LOOP11:
R7,#100L_LOOP10:
DJNZ R7,L_LOOP10
DJNZ R6,L_LOOP11
您可能关注的推广回答者:回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁这是一篇关于单片机方面的课程设计,希望可以帮到大家
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
IO口扩展与应用课程设计
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口超市存物箱模拟装置
超市存物箱模拟装置
一、设计任务与要求利用单片机制作超市存物箱模拟装置,模拟的内容包括:用户存物、用户取物、满箱提示;管理员取物、管理员修改密码;存物时用户密码通过数码管显示;存物箱状态指示、自动开/关箱、有效按键声音提示、密码输入提示、密码正确提示、密码错误提示等功能。二、硬件电路设计及原理图存物箱模拟装置的面板如图1所示,硬件电路如图2所示。89S52单片机的P0.0~P0.7接4×4矩阵键盘;P1口为七段数码管的段码输出口,P3.0一P3-3为四位数码管的位选口;P2.0一P2.7作为存物箱的存物状态指示控制口,外接8只LED指示灯D1~D8;P3.4接绿色LED指示灯D10,作为&请输入密码&提示;P3.5接红色LED指示灯D9,作为&密码错误&提示;P3.6接蜂鸣器,作为按键提示音输出。该模拟装置的输入来自4×4矩阵键盘,单片机检测按键输入情况,并据其进行相应的处理。三、程序流程及实施细则1.内存单元分配(1)10H、11H为随机密码产生单元。(2)20H~2FH为存物箱对应的8组密码存放单元。(3)30H、31H为用户输入密码存放单元。(4)32H存放40H单元改变新值之前的数据。(5)33H、34H为管理员修改密码时第一次输入的新密码存放单元。35H、36H为第二次输入的新密码。(6)40H为8个存物箱的状态存储单元。(7)41H、42H存放真正的管理员密码。(8)43H、44H为管理员输入密码存放单元。在程序中将其与41H、42H单元的内容相比较,以确认密码输入是否正确。(9)45H存放输入密码的位数。(10)50H、51H为键值存孜单元,50H将键值存放在高四位,51H将键值存在低四位。(11)521、l、53H为10H、11H中的数据的l放临时存单元。 (12)54H~57H为密码拆分成4个四位二进制数后的存放单元。其中的数据通过查表,得到对应的段码用于密码的输出。(13、)60H为主程序中A中的数据的临时存放单元。(14)61H在数值修正程序中临时存放A中的内容。(15)62H、63H也是修正后的密码存放单元。2.程序及其流程该程序分为主程序sTART、管理员程序ADMIN、存物程序SAVE、取物程序TAKE四部分。下面分别进行说明。 (1)主程序sTART主程序流程如图3昕示。40H单元的8位二进制数分别对应8个存物箱的状态,若某位为0,说明其对应的存物箱已存有物品,反之则为空箱。当.40H中的内容为全1时(即FFH)时,8个存物箱都为空箱,程序将跳过对&取&的键查询,此时按&取&键无提示音输出。 10H、11H单元为四位随机密码产生单元。每查询一次,10H单元的内容自动加1,当10H的第5位为1时11H的内容加1,以提高密码的随机性。若没有按键请求,则10H、11H两单元计数满后会重新计数,如此不断地循环计数,直至查询到有按键请求,计数才停止。(2)管理员程序ADMIN管理员程序流程如图4所示。将立即数00送Ro作为管理员使用存物箱的标专,因为程序多处用到&键盘查询&程序KEY,如管理员密码输入,用户密码输入、管理员密码修改等,所以在&键盘查询&程序中,设有不同的条件转移,(R0)=#00H就是管理员密码输入的条件。P1口为四位数码管的段码输出口,#40H即B,其中1对应的是段码的g,即&一&。在输入密码的第一位后,执行指令cLR P3.3,令四位数码管的最高位显示&一&(共阴数码管);输入密码的第二位后执行指令cLR P3.2,令数码管的高两位显示&一一&,……,四位密码输入完毕后,数码管显示为"一一一一&。先执行cLR p3.4指令将绿色LED点亮,提示&请输入密码&,接下来就可以通过键盘查询程序KEY来输入管理员密码了。键盘查询程序KEY开始前P0口全为1,该程序运行时先将P0.4口置O,然后依次查询P0.3、P0_2、PO.1(P04行与P0.0列之间没有接按键)是否为低电平,若均为高电平则将PO.4置为1,将P0.5口置0,然后依次查询P0.3、PO.2、PO.1、PO.O是否为低电平,假如P0.1为低电平则说明接在P0.5与P0.1之间的&6&号键被按下,此后程序将P0.5行和P0.1列至为高电平,然后根据所按的键进行相应的处理。上面已经提到,键盘查询是公用程序,(RO)=#OOH为管理员密码输入的标志。当程序查询到第一个数字键按下时,将对应键值放在51H的高四位和52H单元的低四位中,51H的低四位和2H单元的高四位为0000,这样做是为了方便用逻辑&或&指令将四次按键的值装在两个单元中。45t_I单元存放当前输入的位数,在开始键盘扫描之前45H中的值为:#OOH,每查到一次按键,45H的内容加1,这样便知道输入的数应该放到第几位。如第一次位,这样重复,直至45H中的内容加到4,输入四位密码的最后一位,并存于指定单元,程序将45H清0。由于(RO)=#00H,即此时为管理员密码输入,故程序转到四位数字密码输入位数判断,将输入的四位数密码整合到43H和44H单元。R0中的内容不为00H,则表示输入的是用户取物密码,程序会将所输入的四位数密码整合到30H和31H单元,进行用户密码校验。将43H和44H中的内容分别与41H和42H(真正的管理员密码)中的内容进行比较,若不相同,则点亮红色LED D9,提示&密码错误&并返回主程序;若内容相同,说明管理员密码输入正确,数码管将显示&s,表示密码正确,然后转管理员功能选择程序cHoc)SE。此时,可进行取物、修改管理员密码和退出管理功能的选择。1)取物如有用户忘记密码,管理员可按下&取物&键,程序置管理员取物条件(R2)=:#08H,并进入键盘查询程序,管理员只要输入箱号,对应的存物箱就会打开。与其他状态下的键盘查询不同的是,在查过&8&后,有个条件转移语句&CJJNE R2,#03H,G3&,意思是若R2内容为#03H则继续查询9号键,若不为#03H则转至G3(G3绕过了9号和0号键的查询),这是因为系统中没有9号和0号存物箱,所以管理员取物时要跳过对9号和0号键的查询。当管理员按下1~8号键中的某键后,对应的存物箱将打开,完成取物后关闭该存物箱并返回管理员功能选择程序CHOOSE。2)管理员修改密码按下&管理员修改密码&(下称&改密&)键后,程序置改密条件(R1) 提醒;若有空箱则返回主程序。在满箱提醒状态下,只查询"管理员&和&取&这两个按键。如果没有此二键按下,数码管始终显示&FuLL,若有上述两键按下则转相应处理程序。8个存物箱对应的密码存放单元有8组,每组两个单元,对应箱号如表1所示。(4)取物程序TAKE取物程序流程如图6所示。按下&取物&键进入取物程序TAKE后,先对键盘查询后的功能条件,如(R0)=#00H的管理员功能条件、(R1)=#05t{的管理员修改密码功能条件、(R2)=#08t_I的管理员取物功能条件等进行重新赋值,即置(RO)=#O3、(R1)=03H、(R2)=03H,以便在公用的&键盘查询&后确认此次查询是用户取物。用户从键盘输入四位数字后,由所置的功能条件的判断出是用户取物,于是将输入的四位数密码整合到30H和31H单元中,再分别将输入的四位与8个存物箱对应的8组密码存放单元中的内容相比较。当30H、31H单元中的内容与8组密码均不同时,提示密码错误,然后返回主程序;当30H、31H单元与某组密码相同时,即可由之确定该用户存物箱的号码,并转至开、关箱程序,将该用户存物的箱子打开,最后关闭该存物箱,返回主程序。=#05H,此后通过键盘查询两次输入相同的4位新密码,先将第一次输入的四位密码存入33H、34FI单元,将第二次输入的四位密码存入35H、36H单元。然后将33H和35H比较,34H和36H比较,若对应单元的内容均相同,则将输入的密码存入41H、42H单元,作为管理员的新密码;若对应单元的内容不同,则将P3.5口置0,点亮D9,提示&密码错误&并返回管理员的功能选择程序cHOOSE。3)退出管理按&管理员&键即退出管理员程序,返回主程序sTART。(3)存物程序SAVE存物程序流程如图5所示。按下&存物&键,程序转到SAVE,10H和11H单元停止计数,然后将上述两单元拆分成四位数,每一位数用四位二进制数表示,拆分时只对大于9的数进行修正,修正值为初始值与十进制数10的差值,即将A修正为0,B修正为1…..,F修正为5,小于或等于9的数不变。lOH单元的高四位和低四位数修正后分别存放在54H和55H的低四位中,11H单元的高四位和低四位数修正后分别存放在56t{和57H的低四位中,再将修正后的结果重新拼合并存在10H和11H单元中,把10H单元的数据分别与8个存物箱对应的前两位密码存放单元20H、22H、24H、26H、28H、2AH、2cH、2EH相比较,如果与某个单元的值相同,则将(10H)×2+1一(10H)后返回SAVE,重新对10H单元中的内容进行修正,如果修正后10H、11H两个单元的值均等于#00H,就将#50H和#21H分别存入10H和11H中作为密码,然后返回SAVE,如此反复修正密码,直至10H中的内容与8个存物箱对应的前两位密码存放单元的内容均不相同,用户存物密码就确定了。用户存物密码确定后,将54H、55H、56H和57H的内容依次进行查表,并通过P1口和P3.0~P3.3送至数码管显示,告知用户四位密码,显示时间为3秒左右。然后查询8个存物箱的存物状态,该状态是通过P2口的D1~D8显示并存储在40H单元中的。查询从40H单元的最低位开始,查到的第一个为&1&的位所对应的存物箱即为此用户的存物箱。接下来通过开、关箱程序使该箱对应的指示灯闪烁,提示存物箱已开,待关箱后,此存物箱对应的指示灯保持点亮状态。本制作中关箱未做重点
没有关于更多的 JSP Server当然也可以运行jsp程序。然而, 许多 JSP server都由自己特殊的特征,可以让你更好的理解你的JSP 工程。 学习更多的Jsp server如何处理jsp程序是有必要的。同样也可以优化你的 JSP 应用程序,并且使之运行得更快而不出任何问题。 训练时间:2 ~ 7 天。 8、 学习 JDBC 。 JSP 大多数应用将使用数据库,JDBC 被用于数据库连接。经常忽略的一个事实就是,每个 JDBC Driver 所支持的东西是相当不同的。了解并熟悉在jsp工程上被使用的 JDBC driver的细节是很重要的。 上面已经提到,键盘查询是公用程序,(RO)=#OOH为管理员密码输入的标志。当程序查询到第一个数字键按下时,将对应键值放在51H的高四位和52H单元的低四位中,51H的低四位和2H单元的高四位为0000,这样做是为了方便用逻辑&或&指令将四次按键的值装在两个单元中。45t_I单元存放当前输入的位数,在开始键盘扫描之前45H中的值为:#OOH,每查到一次按键,45H的内容加1,这样便知道输入的数应该放到第几位。如第一次位,这样重复,直至45H中的内容加到4,输入四位密码的最后一位,并存于指定单元,程序将45H清0。由于(RO)=#00H,即此时为管理员密码输入,故程序转到四位数字密码输入位数判断,将 ...DW-24H,DW-26H,DW-28H,DW-32H,
联系人:温纳(先生)&&
(来电时请说是从仪器交易网看到我的)
公司地址:无锡市兴源北路638号
每口每循环给油量ml
调整螺钉每转一
圈的调整量mL
SSPQ-L 系列:(注:损失量是指推动导向活塞需要的流量)。
每口每循环给油量ml
调整螺钉每转一
圈的调整量mL
SDPQ-L和SSPQ-L系列分配器使用介质为锥入度265(25℃,150g)1/10mm 润滑脂(NLGI0#~1#)或粘度等级大于N68的润滑油。使用环境温度为-10℃~80℃;介质为润滑油时,可在10MPa 压力下使用。
SDPQ-L系列单向出油的双线分配器,只在下面有出油口,活塞正向、反向排油时都由下出油口供送润滑脂。其形式与尺寸见图和表的规定
SSPQ-L系列双向出油的双线分配器,在正面和下面都有出油口,活塞正向,反向排油时,正面出油口和下面出油口交替供送润滑脂。其形式与尺寸见图与表的规定。
1、润滑泵;2、贮油器;3、换向阀;4、分配器;4a、先导活塞;4b、主活塞
5a、供油管;5b、供油管给油管;7、调整螺钉;8、指示杆
双线分配器有两个进油口,分别与5a.5b供油管连接,当其中一条由润滑泵供油时,另一条则向贮油器开放。
如上图所示,由泵压送来的润滑脂,经供油管5a输送至分配器4,进入先导活塞4a上部加压,将先导活塞4a压下,此时下部与供油管5b连通卸荷。随着先导活塞4a的下移,使主活塞4b上腔与先导活塞上腔连通,主活塞下腔与出油口连通,供送的润滑剂进入主活塞上腔,推动主活塞下移,将其下腔的润滑剂经给油管6压送到润滑点,完成第一周期的给油动作。
切换至供油管5b供油开始第二个周期的给油动作,分配器活塞按相同的顺序反向进行前述动作。
分配器每口给油口由主活塞4b的直径和行程确定,通过调节调整螺钉7,改变主活塞4b的行程,可实现规定范围的油量调节。
SSPQ-L系列分配器动作原理同上,供油管5a、5b分别供油一次其下部和正面给油口分别排油一次。
1SDPQ-L1,2SDPQ-L1,3SDPQ-L1,双线分配器,温纳双线分配器,分配器生产厂家
4SDPQ-L1,1SDPQ-L2,2SDPQ-L2,双线分配器,温纳双线分配器,分配器生产厂家
3SDPQ-L2,4SDPQ-L2,1SDPQ-L3,双线分配器,温纳双线分配器,分配器生产厂家
2SDPQ-L3,3SDPQ-L3,4SDPQ-L3,双线分配器,温纳双线分配器,分配器生产厂家
DV-32H,DV-33H,DV-34H,DV-41H,双线分配器,温纳双线分配器,分配器生产厂家
&DV-42H,DV-43H,DV-44H,DV-51H,双线分配器,温纳双线分配器,分配器生产厂家
8SSPQ-L3,2SSPQ-L4,4SSPQ-L4,双线分配器,温纳双线分配器,分配器生产厂家本页产品地址:/sell/show-3167998.html
信息内容:DW-24H,DW-26H,DW-28H,DW-32H,双线分配器,温纳双线分配器,分配器生产厂家一、使用条件适用于公称压力为20MPa的双线式集中润滑系
信息内容:DW-24H,DW-26H,DW-28H,DW-32H,双线分配器,温纳双线分配器,分配器生产厂家一、使用条件适用于公称压力为20MPa的双线式集中润滑系
信息内容:2SSPQ-L2,DW-32H,双线分配器,双线分配器价格,双线分配器生产厂家,MOGE穆格
SDPQ-L、SSPQ-L系列双线分配器(20MPa)一、使用条件适
信息内容:
信息内容:
SDPQ-L、SSPQ-L系列双线分配器(20MPa)一、使用条件适用于公称压力为20MPa的双线式集中润滑系统作为一种计量给油装置,
免责声明:以上所展示的信息由会员自行提供,内容的真实性、准确性和合法性由发布会员负责。[仪器交易网]对此不承担任何责任。
友情提醒:为规避购买风险,建议您在购买相关产品前务必确认供应商资质及产品质量!504 Gateway Time-out
504 Gateway Time-out}

我要回帖

更多关于 单元格相对地址 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信