当前位置:新励学网 > 秒知问答 > 如何用唐都试验箱上的8255和8254制作电子琴

如何用唐都试验箱上的8255和8254制作电子琴

发表时间:2024-07-13 08:21:44 来源:网友投稿

BUZZEQUP3.3

ORG0000H

LJMPMAIN

ORG000BH

LJMPINT_T0

ORG0100H

MAIN:

MOVSP,#60H;初始化堆栈指针

MOV30H,#00;定时器初值清零

MOV31H,#00

MOVP1,#0FFH;设置P1口为输入模式

MOVTMOD,#01H;设置定时器0为工作模式1

SETBET0;开定时器0中断

SETBEA;开总中断

CLRTR0;关闭定时器0

START:

MOVR0,P1

CJNER0,#0FFH,KEY1;键盘扫描

CLRTR0

SJMPSTART

KEY1:

CJNER0,#0FEH,KEY2;K1键按下

MOV30H,#0FBH;设置音阶1

MOV31H,#0E9H

LJMPSET_TIMER

KEY2:

CJNER0,#0FDH,KEY3;K2键按下

MOV30H,#0FCH;设置音阶2

MOV31H,#5CH

LJMPSET_TIMER

KEY3:

CJNER0,#0FBH,KEY4;K3键按下

MOV30H,#0FCH;设置音阶3

MOV31H,#0C1H

LJMPSET_TIMER

KEY4:

CJNER0,#0F7H,KEY5;K4键按下

MOV30H,#0FCH;设置音阶4

MOV31H,#0EFH

LJMPSET_TIMER

KEY5:

CJNER0,#0EFH,KEY6;K5键按下

MOV30H,#0FDH;设置音阶5

MOV31H,#045H

LJMPSET_TIMER

KEY6:

CJNER0,#0DFH,KEY7;K6键按下

MOV30H,#0FDH;设置音阶6

MOV31H,#92H

LJMPSET_TIMER

KEY7:

CJNER0,#0BFH,NOKEY;K7键按下

MOV30H,#0FDH;设置音阶7

MOV31H,#0D6H

SET_TIMER:

SETBTR0;发声

SJMPSTART

NOKEY:

CLRTR0;无键按下

SJMPSTART

INT_T0:;T0中断服务程序

MOVTH0,30H;定时器赋初值

MOVTL0,31H

CPLBUZZ;输出方波

RETI

END

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!