第一范文网 - 专业文章范例文档资料分享平台

给初学单片机的40个实验 (5)

来源:用户分享 时间:2020-06-24 本文由一人一梦 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11 LJMP DK3 NK12: NOP DK3:

MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A

DK3A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK3A NOKEY3:

MOV P3,#0FFH CLR P3.7 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY4

LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY4 MOV A,P3 ANL A,#0FH

CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4

NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4

NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4

NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4 NK16: NOP DK4:

MOV A,KEYBUF MOV DPTR,#TABLE

MOVC A,@A+DPTR MOV P0,A

DK4A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK4A NOKEY4: LJMP WAIT DELY10MS: MOV R6,#10

D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H END

7. C语言源程序

#include

unsigned char code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; unsigned char temp; unsigned char key; unsigned char i,j;

void main(void) {

while(1) {

P3=0xff; P3_4=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e: key=7; break;

case 0x0d: key=8; break;

case 0x0b: key=9; break;

case 0x07: key=10; break; }

temp=P3; P1_0=~P1_0; P0=table[key]; temp=temp & 0x0f; while(temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; } } }

P3=0xff; P3_5=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f;

switch(temp) {

case 0x0e: key=4; break;

case 0x0d: key=5; break;

case 0x0b: key=6; break;

case 0x07: key=11; break; }

temp=P3; P1_0=~P1_0; P0=table[key]; temp=temp & 0x0f; while(temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; } } }

P3=0xff; P3_6=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e:

key=1; break;

case 0x0d: key=2; break;

case 0x0b: key=3; break;

case 0x07: key=12; break; }

temp=P3; P1_0=~P1_0; P0=table[key]; temp=temp & 0x0f; while(temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; } } }

P3=0xff; P3_7=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e: key=0; break;

case 0x0d:

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育给初学单片机的40个实验 (5)全文阅读和word下载服务。

给初学单片机的40个实验 (5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1101423.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top