资源描述:
《DA转换控制系统源程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、附录A2AD、DA转换控制系统源程序;############主程序#####################################ORG0000Hmain:mov50h,#150movsp,#70h;指定堆栈指针为70HB0:setbp1.5;关掉温度系统工作指示灯LCALLADC;调用温度控制子程序ADCjnbp1.0,B1;判断功能切换键是否按下SJMPB0B1:setbp1.4;关掉转速系统工作指示灯LCALLDAC;调用转速控制子程序DACjnbp1.0,B0;判断功能切换键是否按下SJMPB1;##########转速控制子程序######
2、##########################DAC:clrp1.4;开转速系统工作指示灯lcalldelay;调用延时子程序mov23h,#11;数码显示最后一位显示字符‘P’lcallDAC1;调用转速控制子程序DAC1lcallZS;调用转测试子程序ZSRET;##########温度控制子程序###############################ADC:clrp1.5;开温度系统工作指示灯mov23h,#10;数码显示最后一位显示字符‘C’lcalldelaylcallAD;调用温度转换子程序ADlcallBCD;调用BCD码转换子程序BC
3、Dlcalldisp;调用显示子程序displcalldelayRET;###########转控制子程序#################################DAC1:mova,50h;在50H单元取数movdptr,#07FFFh;指向DAC0832控制口地址movx@dptr,a;送到DAC0832中进行转换lcalldisp;调用显示子程序dispjnbp1.2,dac2;加1键是否按下jnbp1.3,dac3;减1键是否按下retdac2:lcalldisp;按键去抖lcalldisplcalldisplcalldisplcalldispm
4、ova,50hadda,#01h;加1mov50h,aretdac3:lcalldisp;按键去抖lcalldisplcalldisplcalldisplcalldispdec50h;减1ret;##########转速测试子程序##########################################3ZS:movtmod,#15h;设置定时器1为定时器工作方式1,T0为计数器工作方式1movth0,#00hmovtl0,#00hmovth1,#0bh;定时1/16smovtl1,#0d2hsetbtr1;启动T1setbtr0;启动T0js0:jb
5、ctf1,js2;等待定时时间到lcalldispsjmpjs0js2:clrtr1;停止T1clrtr0;停止T0sj1:mova,tl0movr0,#38hmov@r0,a;38H保存低8位数TL0incr0mova,th0mov@r0,a;39H保存高8位数TH0lcallzhbcd;调用十六位二进制数转十进制子程序lcallfjbcd;分解BCD码子程序lcalldispRET;########十六位二进制数转十进制子程序#############################;编程说明:因为(a15a14……a1a0)2=(……(0×2+a15)×2
6、+a14……)×2+a0所以将二进制数从高位逐次左移入BCD码寄存器的最底位,并且每次都实现(……)×2+ai的运算。zhbcd:movr1,#30h;BCD码的存储地址movr2,#02h;要转换的字节数clra;清Abb0:mov@r1,a;30H,31H,32H单元清零incr1djnzr2,bb0;是否全部清完movr3,#10h;十六位二进制数移位位数bb1:movr0,#38h;设置R0指针指向38H单元movr2,#02hclrcbb2:mova,@r0;把38H中的数TL0取出rlca;左移一次mov@r0,a;返送到38H中保存incr0;指针
7、加1djnzr2,bb2;再把39H中的数TH0取出左移一次并保存movr2,#03hmovr1,#30hbb3:mova,@r1;把R1所指单元中的数送Aaddca,@r1;带进位加daa;十进制调整mov@r1,a;把A中的数据送到R1所指单元incr1djnzr2,bb3;30H,31H,32H三个单元是否全部加了一次djnzr3,bb1;要进行十六次移位ret;############分解BCD码子程序##################################fjbcd:movr1,#22h;设置BCD码分解码存放首地址movr0,#30hmo
8、va,@r0anla,#