实验三p3.3口输入、p1口输出实验

实验三p3.3口输入、p1口输出实验

ID:25093124

大小:140.00 KB

页数:5页

时间:2018-11-18

实验三p3.3口输入、p1口输出实验_第1页
实验三p3.3口输入、p1口输出实验_第2页
实验三p3.3口输入、p1口输出实验_第3页
实验三p3.3口输入、p1口输出实验_第4页
实验三p3.3口输入、p1口输出实验_第5页
资源描述:

《实验三p3.3口输入、p1口输出实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验三4.1P3.3口输入、P1口输出实验系别专业:电子系12级电信2班学号:3121003210姓名:李书杰指导老师:刘志群老师4.1.1实验要求1.复习KeilC51调试硬件的操作方法。2.复习单片机作为通用I/O口的注意事项。3.复习单片机操作I/O口的程序设计方法。4.1.2实验设备PC机一台,TD-NMC+教学实验系统4.1.3实验目的1.熟悉单片机仿真实验软件KeilC51调试硬件的方法。2.了解P3、P1口作通用I/O口的使用方法。3.掌握延时子程序的编写和使用方法。4.了解单片机对简单I/O的扩展方法。4.1.4实

2、验内容实验1根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。程序如下:KEY:MOVP1,#0F0H;令所有行为低电平KEY1:MOVR7,#0FFH;设置计数常数DJNZR7,KEY1;延时MOVA,P1;读取P1口的列值ANLA,#0F0H;判别有键值按下吗?CPLA;求反后,有高电平就有键按下JZEKEY;无键按下时退出LCALLDEL20ms;延时20ms去抖动SKEY:M

3、OVA,#00;下面进行行扫描,1行1行扫MOVR0,A;R0作为行计数器,开始为0MOVR1,A;R1作为列计数器,开始为0MOVR3#0FEH;R3暂存行扫描字,低4位为行扫描字SKEY2:MOVA,R3MOVP1,A;输出行扫描字,高4位全1NOPNOPNOPMOVA,P1;读列值MOVR1,A;暂存列值ANLA,#0F0H;取列值CPLA;高电平则有键闭合S123:JNZSKEY3;有键按下转SKEY3INCR0;行计数器加1SETBC;准备将行扫描左移1位,;形成下一行扫描字,C=1保证输出行扫描字中高4位全为1,;为列

4、输入作准备,低4位中只有1位为0MOVA,R3;R3带进位C左移1位RLCAMOVR3,A;形成下一行扫描字→R3MOVA,R0CJNEA,#04H,SKEY1;最后一行扫(4次)完了吗?EKEY:RET;列号译码SKEY3:MOVA,R1JNBACC.4,SKEY5JNBACC.5,SKEY6JNBACC.6,SKEY7JNBACC.7,SKEY8AJMPEKEYSKEY5:MOVA,#00HMOVR2,A;存0列号AJMPDKEYSKEY6:MOVA,#01HMOVR2,A;存1列号AJMPDKEYSKEY7:MOVA,#02

5、HMOVR2,A;存2列号AJMPDKEYSKEY8:MOVA,#03HMOVR2,A;存3列号AJMPDKEY;键位置译码DKEY:MOVA,R0;取行号ACALLDECODEAJMPEKEY;键值(键号)译码DECODE:MOVA,R0;取行号送AMOVB,#04H;每一行按键个数MULAB;行号×按键数ADDA,R2;行号×按键数+列号=键值RET实验2根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P3.3口作状态输入口(接一个逻辑开关,即拨码开关),P1口做输入口(接八只发光二极管D

6、0~D7)。当P3.3=1时循环轮流点亮一个LED灯;当P3.3=0时循环轮流点亮相邻两个LED灯。程序如下:BUFFEQU30HKEYADR:MOVA,BUFF;键号→ACJNEA,#0FH,KYARD1AJMPDIGPRO;等于F,转数字键处理KYARD1:JCDIGPRO;小于F,转数字键处理KEYTBL:MOVDPTR,#JMPTBL;送功能键地址表指针CLRC;请进位位SUBBA,#10H;功能键值(10H~1FH)减16RLA;(A)×2,使(A)为偶数:0,2,4,…JMP@A+DPTR;转相应的功能键处理程序JMP

7、TBL:AJMPAAAAJMPBBBAJMPCCCAJMPDDDAJMPEEEAJMPFFFAJMPGGGAJMPHHHAJMPIIIAJMPJJJJAJMPKKKAJMPLLLAJMPMMMAAA:DIS:MOVR0,#7EH;显示缓冲区末地址→R0MOVR2,#01H;位控字,先点亮最低位(右边)MOVA,R2MOVDPTR,#TAB;字型表头地址→DPTRLP0:MOVP1,AMOVA,@R0;取显示数据MOVCA,@A+DPTR;取出字形码MOVP0,A;送出显示ACALLD1MS;调延时子程序DECR0;数据缓冲区地址减

8、1MOVA,R2JBACC.5,LP1;扫描到最左面的显示器了吗?RLA;没有到,左移1位MOVR2,AAJMPLP0LP1:RETTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FHDB6FH,77H,7CH,39H

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。