文档详情

单片机例程源代码汇编.docx

发布:2017-03-24约1.19万字共18页下载文档
文本预览下载声明
4、附录实验一源程序ORG00H AJMP START ORG 0100HSTART:MOV A,#0FEH MOV P0,A ;初始化P0口MAIN: JNB P1.0,K1 ;判断K1是否按下 JNB P1.1,K2 ;判断K2是否按下 SJMPMAINK1: LCALL DELAYMS ;延时消抖 JNB P1.0,K11 ;再次判断 SJMPMAINK11:RR A MOV P0,A LCALL DELAY SJMPMAINK2: LCALL DELAYMS ;延时消抖 JNB P1.1,K22 ;再次判断 SJMPMAINK22:RL A MOV P0,A LCALL DELAY SJMPMAINDELAYMS: MOV R3,#60 ;30MSD0: MOV R4,#248 DJNZ R4,$ DJNZ R3,D0 RETDELAY:MOV R5,#20;延时程序,延时0.2sD1: MOV R6,#20D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END实验二源程序//与程序流程图不一致ORG00HLJMPSTART;跳至主程序ORG000BH;中断子程序起始地址T0INT:PUSHPSW;状态保护MOVTH0,#0FCH;置定时器初值MOVTL0,#17HMOVA,#0FFHMOVP0,AMOVA,P2RLAMOVP2,ACJNE A,,N_LOOP1;相等就不跳转MOV DPTR,#TABLE;指针指向表头地址MOVA,#01H ;设置地址偏移量MOVCA,@A+DPTR;查表取得段码,送A存储MOVP0,A;段码送LED显示JMPEXITN_LOOP1:CJNE A,,N_LOOP2;相等就不跳转MOV DPTR,#TABLE;指针指向表头地址MOVA,#02H ;设置地址偏移量MOVCA,@A+DPTR;查表取得段码,送A存储MOVP0,AJMPEXITN_LOOP2:CJNE A,,N_LOOP3;相等就不跳转MOV DPTR,#TABLE;指针指向表头地址MOVA,#03H ;设置地址偏移量MOVCA,@A+DPTR;查表取得段码,送A存储MOVP0,AJMPEXITN_LOOP3:CJNE A,,N_LOOP4;相等就不跳转MOV DPTR,#TABLE;指针指向表头地址MOVA,#04H ;设置地址偏移量MOVCA,@A+DPTR;查表取得段码,送A存储MOVP0,AJMPEXITN_LOOP4:CJNE A,,N_LOOP5;相等就不跳转MOV DPTR,#TABLE;指针指向表头地址MOVA,#05H ;设置地址偏移量MOVCA,@A+DPTR;查表取得段码,送A存储MOVP0,AJMPEXITN_LOOP5:CJNE A,,N_LOOP6;相等就不跳转MOV DPTR,#TABLE;指针指向表头地址MOVA,#06H ;设置地址偏移量MOVCA,@A+DPTR;查表取得段码,送A存储MOVP0,AJMPEXITN_LOOP6:CJNE A,,N_LOOP7;相等就不跳转MOV DPTR,#TABLE;指针指向表头地址MOVA,#07H ;设置地址偏移量MOVCA,@A+DPTR;查表取得段码,送A存储MOVP0,AJMPEXITN_LOOP7: CJNE A,,EXIT;相等就不跳转MOV DPTR,#TABLE;指针指向表头地址MOVA,#08H ;设置地址偏移量MOVCA,@A+DPTR;查表取得段码,送A存储MOVP0,AEXIT:POPPSWRETI ORG0100HSTART:MOVP0,#0FFHMOVP2,#01HMOVTMOD,#01H;方式1,定时器MOVTH0,#0FCH;置定时器初值MOVTL0,#17HMOVIE,;EA=1,IT0=1SETBTR0;开始定时JMP$TABLE: DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H,0ffH;(0-9,off)END 实验三源程序org 0000h ajmp main org 0100h main: mov dptr,#table ;将表头放入DPTR lcall key;调用键盘扫描程序 movc a,@a+dptr ;查表后将键值送入ACC mov p0,a ;将Acc值送入P0口 lj
显示全部
相似文档