资源描述:
《采用AT89S52单片机与MAX232芯片配合串口精灵软件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、;-------------------------------------------------;-------------------------------------------------ORG0000HLJMPCSH;转初始化程序ORG0023HLJMPINTS;转串行口中断程序ORG0050H;--------------------------------------------------;---------------初始化程序-------------------------CSH:MOVTMOD,#20H;设置定时器1工作方式2:自动再装入8位
2、计数器MOVTL1,#0F3H;设置波特率4800:初值为243MOVTH1,#0F3HSETBTR1;MOVSCON,#50H;设置串行寄存器工作方式1:10位UARTMOVPCON,#80H;设置波特率倍增位SETBEASETBES;允许串行口中断MOVP2,#0FFH;按键初始化:低电平检测MOVR0,#36H;动态扫描初始位MOVDPTR,#TAB;查表首地址MOV3EH,#0FEH;数码管位控制寄存器赋初值:P1.7控制36HLJMPMAIN;--------------------------------------------------;--------
3、-----串行口中断程序-----------------------INTS:CLREA;关总中断:保证正常执行中断申请CLRRIPUSHDPL;保护栈值PUSHDPHMOV70H,A;保护累加器A的内容MOVA,SBUFMOV30H,A;接收PC机发送过来的数据:用30H寄存POPDPHPOPDPL;出栈;-------MOVA,71H;对71H取反:作中断执行标志判断CPLAMOV71H,A;-------MOVA,70H;还原A值SETBEA;开总中断RETI;--------------------------------------------------;
4、-------------------主程序-------------------------MAIN:MOVA,71H;71H内容取反CPLAMOV71H,AMOVA,72H;72H内容取反CPLAMOV72H,A;71H-71H:为判断是否发生中断服务;---------ACALLGETDATA;调用预发送数据程序ACALLDISPLAY;调用显示程序ACALLSENDDATA;调用数据发送程序LJMPMAIN;返回MAIN;-------------------------------------------------;---------预发送数据程序-----
5、---------------------GETDATA:CLR00H;个位按键标志位CLR01H;十位按键标志位ACALLDIWEI;调用低半字节修改程序ACALLGAOWEI;调用高半字节修改程序ACALLFUYONG;调用按键复用程序RET;--低半字节处理程序------DIWEI:JBP2.0,DIWEIRET;P2.0:个位按键控制口:低电平有效ACALLDELAY;消抖JBP2.0,DIWEIRETSETB00H;按键有效置标志位INC31HMOVR3,31H;个位按键稳定性处理:按一次执行一次服务CJNER3,#01H,DIWEIRETINC32H;个位
6、控制寄存器32HMOVR3,32HMOV3BH,R3;个位数值寄存器3BHCJNER3,#10H,DIWEIRET;十六进制溢出处理MOV32H,#00HMOV3BH,#00H;溢出清零DIWEIRET:RET;---高半字节处理程序---GAOWEI:JBP2.1,GAOWEIRET;P2.1:十位按键控制口:低电平有效ACALLDELAY;消抖JBP2.1,GAOWEIRETSETB01H;按键有效置标志位INC33HMOVR3,33H;十位按键稳定性处理:按一次执行一次服务CJNER3,#01H,GAOWEIRETINC34H;十位控制寄存器34HMOVR3,34
7、HMOV3AH,R3;十位数值寄存器3AHCJNER3,#10H,GAOWEIRET;十六进制溢出处理MOV34H,#00HMOV3AH,#00H;溢出清零GAOWEIRET:RET;----按键复用程序-----FUYONG:JNB00H,CLR31H;标志位判断:个位计数处理MOVR3,31HCJNER3,#32H,NEXTMOV31H,#01HINC32HMOVR3,32HMOV3BH,R3CJNER3,#10H,NEXT;十六进制溢出处理MOV32H,#00HMOV3BH,#00H;溢出清零LJMPNEXTCLR31H:MOV31