资源描述:
《pc课程设计 led灯闪烁显示控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、CODESEGMENTASSUMECS:CODEORG1000HSTART:MOVBP,0MOVDI,002CH;填中断IR3矢量表LEAAX,DISPMOV[DI],AXINCDIINCDIMOVAX,CSMOV[DI],AXINCDIINCDI;8253控制字初始化MOVAL,13H;ICW1,边沿触发,要ICW4,单片8259MOVDX,20H;送出,0020HOUTDX,ALMOVAL,08H;ICW2,中断类型号MOVDX,21H;送出,0021HOUTDX,ALMOVAL,09H;ICW4,8088,缓冲方式,一般嵌套OUTDX,AL;8253初始化MOVDX,4BH;计数
2、器0--初使话---地址为4BHMOVAL,00110110B;计数器0,方式三OUTDX,ALMOVAL,10110110B;计数器2--初使话OUTDX,AL;计数器2,方式三MOVDX,4BH;计数器0--初使话---地址为4BHMOVAL,00110110B;计数器0,方式三OUTDX,ALMOVAL,10110110B;计数器2--初使话OUTDX,AL;计数器2,方式三MOVDX,48H;写计数器0的初值-----地址为48HMOVBP,0MOVAX,CS:[BP+A0];取存储器内的初始设定值OUTDX,AL;先送低八位MOVAL,AHOUTDX,AL;后送高八位MOVD
3、X,4AH;写计数器2的初值----地址为4AHMOVBP,0MOVAX,CS:[BP+A2];取存储器内的初始设定值OUTDX,AL;先送低八位MOVAL,AHOUTDX,AL;后送高八位;8255初始化MOVAL,10001000B;A,B输出方式0,c口高四位输入,低四位输出MOVDX,63HOUTDX,AL;控制字的地址63HMOVBX,00HSTICALLSUANXUNHUAN:MOVDX,62HINAL,DXMOVCX,500HLOOP$;消抖软件延时TESTAL,80H;判断是否按下set键JZXUNHUAN;没有按下就循环扫描,否则向下执行JIAJIAN:MOVCX,5
4、00HLOOP$;消抖软件延时TESTAL,40H;判断是否↑键置高电平JNZXIA0;是话跳转至xia1JIANJIAN:MOVCX,500H;消抖软件延时LOOP$TESTAL,20H;判断是否↓键置高电平JNZXIA1;是的话跳至xia1QEUDING0:MOVCX,500H;消抖软件延时LOOP$TESTAL,10H;判断是否enter键置高电平JNZXIA2;是的话跳至xia2JMPXUNHUANXIA0:MOVDX,62H;判断是否置低电平INAL,DXTESTAL,40HJNZXIA0CALLJIA;调用加一秒程序JMPXUNHUANXIA1:MOVDX,62H;判断是否
5、置低电平INAL,DXTESTAL,20HJNZXIA1CALLJIAN;调用减一秒程序JMPXUNHUANXIA2:MOVDX,62H判断是否置低电平INAL,DXTESTAL,10HJNZXIA2CALLQUEDING重新给定时器2写入定时初值JMPXUNHUAN;============算出刚开始显示的时间=================SUAN:MOVBx,0;算出刚开始显示的时间MOVAX,WORDPTRDS:[BX+A2]MOVDX,0MOVCX,WORDPTRDS:[BX+AHZ1]DIVCX;A2除以2000,得到分频后输出方波信号的半周期,即点亮时间MOVBL,10
6、;算出数码管显示的数值DIVBLMOVBX,00HMOVBYTEPTRDS:[BX+SAVE],AL;显示时间值--低位MOVBYTEPTRDS:[BX+SAVE+1],AH;显示时间----高位RETDISP:CLI中断定时时间到进入数码管显示程序PUSHAXPUSHBXPUSHCXPUSHDXPUSHFMOVAL,DS:[BP+SAVE]INCBPMOVBX,OFFSETTAB1XLATMOVDX,61H;8255b口断选OUTDX,ALMOVAL,BYTEPTRDS:[WEI];取存储器的位值MOVDX,62HOUTDX,ALROLAL,1;左移一位MOVbyteptrds:[W
7、EI],ALCMPAL,0FBHJZFUZHIJMPEXITFUZHI:MOVBYTEPTRDS:[WEI],0FEHMOVBP,00HEXIT:MOVAL,20H;退出中断MOVDX,0020hOUTDX,ALPOPFPOPDXPOPCXPOPBXPOPAXSTIIRETJIA:;加键MOVBP,0MOVAX,WORDPTRDS:[BX+A2]ADDAX,2000MOVWORDPTRDS:[BX+A2],AXCALLSUAN;调整显示时间,c