- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
movp1#0ffh;让led全灭jbp20l1;判断k0按键按下没
任务10 8键控制8灯 4学时 1.掌握单片机的位操作指令的功能及应用 2.掌握单片机位控制转移指令的应用 一.任务目标 二.任务要求 任务描述:用8个按键(K0-K7)控制8个发光二极管,每个按键独自控制1个LED的亮灭,当按下K0时,对应D0亮,按下K1时,对应D1亮,以此类推 。 仿真演示 三. 相关知识 (一)位地址 1.位寻址区 2.可以位寻址的特殊功能寄存器 SFR的特点是其字节地址均可被8整除 (二)位操作指令位 1.位传送指令 MOV C,BIT MOV BIT,C 位地址与存储器地址的区别:MOV A,20HMOV C,20H 2.位清0指令 CLR C ;使CY=0 CLR bit ;使位地址bit所对应的一位存储器等于0。 例:CLR P1.0 ;即使P1.0变为0 位操作指令位 3.位置1指令 SETB C ;使CY=1 SETB bit ; 使位地址bit所对应的一位存储器等于1。 例:SETB P1.0 ;使P.0变为1 4.位取反指令 CPL C ;使CY等于原来的相反的值,由1变为0,由0变为1。 CPL bit ;使指定的位的值等于原来相反的值,由0变为1,由1变为0。 位操作指令位 5.位逻辑运算指令 (1)位与指令 ANL C,bit ;CY与指定的位地址的值相与,结果送回CY ANL C,/bit ;先将指定的位地址中的值取出后取反,再和CY相与,结果送回CY,但注意,指定的位地址中的值本身并不发生变化。 (2)位或指令 ORL C,bit ;CY与指定的位地址的值相与,结果送回CY ORL C,/bit;先将指定的位地址中的值取出后取反,再和CY相或,结果送回CY,但注意,指定的位地址中的值本身并不发生变化。 位操作指令位 6.位控制转移指令 (1)判CY转移指令 JC rel; (CY)=1转移, JNC rel; (CY)=0转移, (2)判位变量转移指令 JB bit,rel????????; 指定的bit位中的值是1,则转移。 JNB bit,rel????????; 指定的bit位中的值是0,则转移 JBC ?bit, rel? (三)按键电路 单个的独立按键电路如图2.4.5,由按键K0和R1电阻构成 四、任务分析 1、硬件电路硬件电路见图2.4.6,发光二极管D0-D7受P1口的8个管脚控制,输出1时灭,输出0时亮,K0-K7和8个电阻构成8个独立按键电路,可以控制P2口的8个管脚的电平高低,按下键,相应管脚输入低电平,不按键,输入高电平 硬件电路 2、软件分析 开始 P2.0是否为0(k0按下否) 8个LED全灭 是 图2.4.7 8键控制8LED程序流程图 让D0亮 否 P2.1是否为0(k1按下否) 是 让D1亮 否 P2.24 是 让D2亮 否 P2.3是否为0(k3按下否) 是 让D3亮 否 P2.4是否为0(k4按下否) 是 让D4亮 否 P2.5是否为0(k5按下否) 是 让D5亮 否 P2.6是否为0(k6按下否) 是 让D6亮 否 P2.7是否为0(k7按下否) 是 让D7亮 否 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV P1,#0FFH ;让LED全灭 JB P2.0 L1 ;判断K0按键按下没,没按下就跳到L1去 CLR P1.0 ;让灯D0亮 L1:JB P2.1 L2 ;判断K1按键按下没,没按下就跳到L2去 CLR P1.1 ;让灯D1亮 L2:JB P2.2 L3 ;判断K2按键按下没,没按下就跳到L3去 CLR P1.2 ;让灯D2亮 L3:JB P2.3 L4 ;判断K3按键按下没,没按下就跳到L4去 CLR P1.3 ;让灯D3亮 L4:JB P2.4 L5 ;判断K4按键按下没,没按下就跳到L5去 CLR P1.4 ;让灯D4亮 软件分析 软件分析 L5:JB P2.5 L6 ;判断K5按键按下没,没按下就跳到L6去 CLR P1.5 ;让灯D5亮 L6:JB P2.6 L7 ;判断K6按键按下没,没按下就跳到L7去 CLR P1.6 ;让灯D6亮 L7:JB P2.7 L ;判断K7按键按下没,没按下就跳到L去 CLR P1.7 ;让灯D7亮 L:LCALL DELAY ;通过延时程序让8个灯的状态保持一段时间 LJMP MAIN DELAY:MOV R1,#255 LOOP1:MOV R2,#255 DJNZ R2,$ DJNZ R1,LOOP1 RET END 五.任务实施 1、在PROTEUS软件中按图搭接好电路; 2、在伟福软件中编辑程序,进行编译,得到.HEX格式文件; 3、将所
原创力文档


文档评论(0)