单片机课程项目报告课题名称:太阳能蓄电池充放电控制器项目学生:陈辉原09221063陈春东09221062邹鹏辉09221060指导老师:赵建东联系电话:15210585223(陈辉原)目录一·课程设计的任务基本要求二·课程设计1)设计要求2)设计思路3)相关芯片(1)AT89C51(2)ADC08084)总线路图5)软件实现及编程6)Proteus仿真三·分析总结一·课程设计的基本要求:以单片机为核心,设计一个蓄电池控制器。采用中断方式对蓄电池电压0~5v的模拟电压进行循环采集,采集的数据送入LED显示,并存入内存。用指示灯闪烁显示相应的状态。二·课程设计1)设计要求以单片机为核心,设计一个蓄电池控制器。采用中断方式对蓄电池电压0~5v的模拟电压进行循环采集,采集的数据送入LED显示,并存入内存。用指示灯闪烁显示相应的状态。2)设计思路本质上是以单片机为控制器,以滑动变阻器模拟蓄电池两端电压的改变。用ADC0808将信号转换,通过AT89C51进行控制。为了得可读电压值,我们对所采集的信号进行计算,并显示在LED上,本项目中ADC0808的参考电压为+5v,采集的二进制信号addata所指电压值为:(addata/256)×5V考虑将显示小数后两位,将其乘以100得:addata×1.96V将小数点显示在第二位数码管上,即为实际电压3)相关芯片4)总线路图四·软件实现及编程汇编程序:LED_0EQU30HLED_1EQU31HLED_2EQU32H;存放段码TEMPEQU43HADCEQU35HCLOCKBITP2.4;定义ADC0808钟位STBITP2.5EOCBITP2.6OEBITP2.7ORG0000HSJMPSTART开始数据初始化采集蓄电池两端的电压<1.2V?<2.5V?<4V?待机延时(蜂鸣器不响,D1,D2管不亮)恒压充电(蜂鸣器不响,D2亮,D1灭)停止充电(蜂鸣器响,D1亮,D2亮ENDYNNYNYORG0050HLJMPINT_TOSTART:MOVLED_0,#00HMOVLED_1,#00HMOVLED_2,#00HMOVDPTR,#TABLE;段码表首地址MOVTMOD,#02HMOVTH0,#245MOVTL0,#00HMOVIE,#82HSETBTR0WAIT:CLRSTSETBSTCLRSTCLRP3.7CLRP3.6CLRP3.5JNBEOC,$SETBOEMOVADC,P1;读取AD转换结果CLROEMOVA,ADCMOVTEMP,ASUBBA,#200;判断电压JCFFSETBP3.5FF:MOVA,TEMPSUBBA,#128;判断电压JCJUD1SETBP3.6JUD1:MOVA,TEMPSUBBA,#64;判断电压JCJUD2SETBP3.7JUD2:MOVA,TEMPMOVB,#51;结果转为BCD码DIVABMOVLED_2,A;整数位MOVA,BMOVB,#10MOVTEMP,ASUBBA,#25JCJUD3MULABSUBBA,#5MOVB,#51DIVABADDA,#05HSJMPV1JUD3:MOVA,TEMPMULABMOVB,#51DIVABV1:MOVLED_1,A;小数点后第一位MOVA,BMOVTEMP,ASUBBA,#25JCV1_2MULABSUBBA,#5MOVB,#51DIVABADDA,#05HSJMPV2V1_2:MOVA,TEMPMULABMOVB,#51HDIVABV2:MOVLED_0,A;小数点后第二位WERT:LCALLDISPAJMPWAITINT_TO:CPLCLOCKRETIDISP:MOVA,LED_0;显示子程序MOVCA,@A+DPTRCLRP2.3MOVP0,ALCALLDELAYSETBP2.3MOVA,LED_1MOVCA,@A+DPTRCLRP2.2MOVP0,ALCALLDELAYSETBP2.2MOVA,LED_2MOVCA,@A+DPTRCLRP2.1ADDA,#80HMOVP0,ALCALLDELAYSETBP2.1RETDELAY:MOVR6,#1;延迟5毫秒D1:MOVR7,#100DJNZR7,$DJNZR6,D1RETTABLE:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHEND7)proteus仿真会有三种情况:1:蓄电池电压过大,蜂鸣器响低压浮充,D2亮表充电状态,D1亮表可以向负载放电2:蓄电池电压在2.5V~4V之间;蜂鸣器不响恒压充电;D2亮;D1亮3:蓄电池电压在1.2V~2.5之间:D2亮,D1灭。只充电不向负载放电三·分析总结通过做出一个具体项目,让我们对本学期单片机课程的内容有更深刻的理解。用ADC0808采集数据并转换成二进制,用AT89C51对采集来的数据进行判断,并控制输出设备的启动与静止。单片机具有体积小,控制功能强,应用灵活,价格低廉等特点,非常适用于嵌入式产品,在工业控制,智能仪表,家用电器,智能玩具,通信设备等诸多领域均显示出了较为广阔的应用前景,学好它并应用它非常重要。