软件工程程序清单.docx

上传人:王** 文档编号:1374865 上传时间:2024-06-23 格式:DOCX 页数:8 大小:19.40KB
下载 相关 举报
软件工程程序清单.docx_第1页
第1页 / 共8页
软件工程程序清单.docx_第2页
第2页 / 共8页
软件工程程序清单.docx_第3页
第3页 / 共8页
软件工程程序清单.docx_第4页
第4页 / 共8页
软件工程程序清单.docx_第5页
第5页 / 共8页
软件工程程序清单.docx_第6页
第6页 / 共8页
软件工程程序清单.docx_第7页
第7页 / 共8页
软件工程程序清单.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
资源描述

《软件工程程序清单.docx》由会员分享,可在线阅读,更多相关《软件工程程序清单.docx(8页珍藏版)》请在优知文库上搜索。

1、这是一个频率计的主控程序,单片机晶振频率11.0592MHz。被测信号为H1.电平的矩形波,信号频率小于500kHz,从TO输入。显示采用8个1.ED数码管,动态驱动方式。闸门时间为1秒,测量间隔为5秒。闸门1.ED灯用P1.O驱动,低电平点亮。C0M8255EQU8003HPA_8255EQU8000HPB_8255EQU8001HPC_8255EQU8002HOVEREQU21H;TO计数溢出次数计次单元BUFFEREQU22H;显示缓冲区占用4个字节,22H-25HBINEQU26H;二进制数的字节数存放单元BCDEQU27H;BCD数的个位地址BIN1.EQU28H;二进制数最低字节存

2、放地址TESTBIT00H;测量标志TESTENDBITOlH;测量结束标志SEC_5BIT02H;5秒到标志ORG01.JMPSTARTORGOBHINCOVER;To溢出次数加1RETIORGIBH1.JMPTlSORG30HSTART:MOVSP,#60HMOVDPTR,#COu8255;指向8255命令口MOVA,#80H;PA、PB、PC设为基本输出模式MOV)(DPTR,AMOVTMOD,#15H;设Tl为定时器,TO为计数器MOVTHO,#0MOVT1.O,#0MOVTHl,tt4CH;T1定时50m,晶振频率11.0592MHzMOVT1.l,ttOOHSETBPTl;T1为高

3、级中断SETBETO;允许To中断SETBETl;允许TI中断SETBTRl;启动TI计数SETBEA;开中断MOVOVER,#0;溢出计次单元清零MOVBUFFER,#0;显缓区清零MOVBUFFER+1,#0MOVBUFFER+2,HOMOVBUFFER+3,#0MOVOAH,#20;1区R2,1秒中断计次MOVOBH,#100;1区R3,5秒中断计次C1.RTESTC1.RTESTENDC1.RSEC_5MAIN:JBSEC_5,1.OOP1;5秒到则开始测量1.CA1.1.DISP;显示SJMPMAIN1.OOPl:C1.RSEC_5SETBTESTC1.RP1.O;点亮闸门灯1.00

4、P2:JBTESTEND,1.00P3;测量结束则去计算1.CA1.1.DISPSJMP1.00P21.00P3:MOVR4,#0;取溢出次数乘以10000H的结果MOVR5,OVERMOVR6,#0MOVR7,#0MOVR3,THO;取TO的计数值MOVA,T1.O1.CA1.1.MADD;4字节+2字节MOV36H,R7;4字节结果转换成6字节BCD码MOV37H,R6MOV38H,R5MOV39H,R4MOVBIN1.,#36H;指向待转换数据低位MOVBIN,#4;待转换数据为4字节MOVBCD,#30H;指向转换结果的低位地址1.CA1.1.HTOB;将4字节16进制数转成6字节BC

5、D码MOVBUFFER,33H;转换的BCD码送显MOVBUFFER+1,32H;实际只有.4个字节有效MOVBUFFER+2,31HMOVBUFFER+3,30HMOVOVER,no;测量数据相关单元清零,为下次测量做初始化MOVTHO,#0MOVT1.O,#0C1.RTESTENDSJMPMAIN一主程序结束Tl中断服务程序TlS:MOVT1.l,#00H;送50ms初值MOVTHl,tt4CHPUSHPSWSETBRSO;选择1区工作寄存器JBTEST,TTlDJNZR3,TlEXITMOVR3,#100SETB:SETBSJMPTTl:DJNZC1.RTROSETBSEC_5TROTl

6、EXIT;5秒中断计数值;置5秒到标志;启动TO计数R2,TlEXIT;1秒闸门时间未到则返回;停止TO计数TESTENDC1.RTESTMOVR2,#20SETBP1.0TlEXIT:POPPSWRETI;置测量结束标志;清测量标志;送1秒中断计数值;熄灭闸门灯动态显示子程序使用寄存器:R0,R2,R3,A,DPTRDISP:MOVDPTR,#PB_8255;消隐数码管,实际实验箱上不需要MOVA,三FH;消隐数码管,实际实验箱上不需要MOVX三PTR,A;消隐数码管,实际实验箱上不需要MOVR0,#BIJFFER+3;指向显缓区最后一个字节MOVR3,#4;显示字节数为4字节MoVR2,#

7、OFEH;位码初值,点亮最右边的数码管1.OOP:MOVA,R0AN1.A,#OFH;取出低4位MOVDPTR,#TABMOVCA,A+DPTRMOVDPTR,#PA_8255MOVXDPTR,A;段码送8255的A口MOVA,R2INCDPTR;指向8255的B口MOVXDPTR,A;位码送8255的B口R1.A;位码左移MOVR2,A;存位码1.CA1.1.DE1.AY2MS;延时2msMOVDPTR,#PB_8255;消隐数码管,实际实验箱上不需要MOVA,ttOFFH;消隐数码管,实际实验箱上不需要MOVXDPTR,A;消隐数码管,实际实验箱上不需要MOVA,R0AN1.A,#OFOH

8、;取出高4位SWAPAMOVDPTR,#TABMOVCA,A+DPTRMOVDPTR,#PA_8255MOVXDPTR,A;段码送8255的A口MOVA,R2INCDPTR;指向8255的B口MOVXDPTR,A;位码送8255的B口R1.A;位码左移MOVR2,A;存位码1.CA1.1.DE1.AY2MS;延时2msMOVDPTR,#PB_8255;消隐数码管,实际实验箱上不需要MOVA,三FH;消隐数码管,实际实验箱上不需要MOVXDPTR,A;消隐数码管,实际实验箱上不需要DECRODJNZR3,1.OOPMOVA,#0FFHMOVXDPTR,A;熄灭所有数码管RETTAB:DBOCOH

9、,0F9H,0A4H,OBOH,99H,92H,82H,0F8HDB080H,90H,88H,83H,0C6H,OAlH,86H,8EH,OFFH2ms延时子程序使用寄存器:R7对于11.0592MHz晶振,实际延时2174微秒=2.174msDE1.AY2MS:MOVR7,#250DDl:NOPNOPNOPNOPNOPNOPDJNZR7,DDlRET;多字节加法程序;4字节加2字节程序;被加数在R4R5R6R7中,加数在R3和A中;和在R4R5R6R7中MADD:ADDA,R7MOVR7,AMOVA,R3ADDCA,R6MOVR6,AC1.RAADDCA,R5MOVR5,AC1.RAADDC

10、A,R4MOVR4,ARET;多字节二进制数转换成BCD数子程序;入口参数:待转换的二进制数的字节数存放在BlN单元中;待转换的二进制数从BIN1.单元内容指定的RAM单元开始存放,低位在前。;出口参数:转换后的BCD数从BCD单元内容指定的RAM单元开始存放,低位在前。HTOB:C1.RAMOVRl,BCD;指向BCD数存放的个位单元MOVR2,BIN;取二进制数的字节数INCR2;转后的BCD数的字节数可能比二进制数多2INCR2BO:MOVR1,A;清BCD数单元INCRlDJNZR2,B0MOVA,BINMOVB,#8MU1.AB;计算二进制数的位数MOVR3,A;存二进制数的位数B3:MOVR2,BIN;取二进制数的字节数MOVR0,BIN1.;取二进制数最低位地址C1.RCBl:MOVA,R0R1.CAMOVRO,AINCRODJNZR2,B1;实现二进制数整体左移一位,最高位移入Cy中MOVR2,BININCR2;计算出BCD数的字节数INCR2MOVRl,BCD;取BCD数的个位存放地址B2:MOVA,R1ADDCA,R1;实现BCD数乘2并且加上biDAAMOVR1,AINCRlDJNZR2,B2DJNZR3,B3RETEND

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 技术指导

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!