毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

智能型充电器的电源和显示的设计 第12页

更新时间:2008-6-16:  来源:毕业论文

智能型充电器的电源和显示的设计 第12页

 4-3应用构筑向导框

Timer1选项:同Timer0相同,还可设定比较寄存器以及输入捕获等功能。在这里暂不作任何设定。

第二节 调试过程

为了巩固前面所学的知识,培养对AVR单片机学习的兴趣,同时也为了学会并熟练掌握ICCAVR编译器的应用,为最后的联机调试打下基础。在这里设计了一些最简单的单片机系统实例进行调试,其核心部件采用Atmega16L芯片。

一个最简单的单片机系统的开发也需要电路设计、单片机器件选择和程序编写3个步骤。对于单片机系统,最简单的功能无非是控制输出电平的高低。单片机的最简单系统是指单片机能正常工作所必须的外围元件,主要由单片机、晶振电路和复位电路组成。

同传统的单片机系统一样,Atmega16L的晶振电路也分为外部时钟模式和内部时钟模式两种,其内部时钟电路如下图:若图片无法显示请联系QQ752018766 

                

        C2

                   

4-4 晶振电路

 

 

鉴于Atmega16L的主频范围为0-8MHz,这里选用的是晶振为7.3728MHz

复位电路采用了上电复位电路,其电路图如下: 

            

4-5  复位电路

注意这一点和有51系列的单片机是不同的,Atmega16RST是低电平复位,而8051系列单片机是高电平才发生复位,换句话说,这两种单片机复位电路的设计完全相反。

了解了以上两部分电路,再配合I/O接口中,就可以进行电路的设计了。

本来这次是准备在面包板上完成实验的,但后来觉得引脚插在面包板里面,松紧不一,且面包板是一个长条形,如果做到后面的实现随着线的增多,空间跨度太大,影响视觉,某根线一旦出了问题也不易检查,综合各方面考虑,最后选用了一次性万用板来进行,这和印制电路板差不多,是通过焊接焊上去的,这既美观,出了问题也方便查找并解决。

 编写好的程序通过并行通信下裁AVR-ISP烧到板子里面,其下裁电缆的电源由目标板提供,其管脚如下                                              

 

                       4-6 目标板管脚图

使用广东双龙电子提供的MCU下载程序软件,用数据线将ISP下载插座同电脑相连。就可以进行程序的调试了。其中下载软件界面如图5-4所示。将“通信参数设计及器件选择”栏中的“AT89C52改为“Atmega16”

4-7 MCU下载程序软件界面图

当下载软件的(1)区域出现“擦除完成,编程开始”字样时,表示它已和AVRISP插座连接好,可以进行程序下载的操作了。否则,将显示“程序编程连接失败”的字样。在第一次进行操作时,也出现了连接失败的信号。软件是最新下载的,通过万用表检查,软件周围的接线都没有问题,显然不是自身的问题。再经仔细检查,原来是Atmega16L的芯片的5V电源掉线了。单片机不能运作,当然没法进行程序的下载了。虽然这一过程花了不少时间,吃一堑,长一智,从这也看出了进行电子创作的严谨性,不通过细心的观察,冷静的分析,是不可能完成的。

前面说到,测试单片机的最简单系统最简单的就是控制输出电平的高低,这里采用发光二极管作为它的输出器件,用二极管的亮或灭表示自己设计的单片机系统是否能够正常工作。具体进行了以下实际电路的设计。

(一)一个灯的闪烁。

通过上面的介绍,Atmega16L32I/O输出口,作为第一功能时,它们是没有区别的。这次主要用它的B口进行实验。在万用板上插上Atmega16L芯片,按上面的方法接上晶振电路和复位电路。接通电源(5V),用万用表测B0口压降,测得电压+5V,可知系统正常。在B0端接上一发光二极管。

发光二极管是由于其两端的电压差超出其导通压降时开始工作,它的压降通常为1.7V-1.9V。且工作电流也要满足该二极管的发光要求。满足了这两点,发光二极管就可以开始发光了。控制B0口电平的高低,就可以实现二极管的亮灭了。

打开ICCAVR编译器,按照上面的步骤进行构筑向导框的操作。在PORTS的选项中,把B口设置为输出口,值为“1”。其它按上面的设置,进入到IDE环境。编辑显示程序,编辑窗口里面已经有初始化程序、看门狗程序等基本程序。只要进行主函数的编写就可以了。

要让输出口电平发生转换,采用了两种方法。一种是用延时的办法。初始设B0口为0,二极管不亮,经过一定时间的延时后,B0口变为1,二极管发光。再过相同时间,B0口再为0…按上述步骤循环,就可以实现二极管的亮灭了。

编写程序,由于这里采用的是C语言编写,程序相对来说比较简单,延时程序如下:

void delay_1ms(void)

{ unsigned int i;

  for(i=1;i<(unsigned int)(xtal*143-2;i++)

 ;

}

xtal是晶振频率,这里采用的是7.3728MHz,从理论上讲,应出现1ms左右的延时。编译器上通过以后,可以进行程序的下载。选中“Flash”存储器,选择保存的路径。二极管出现了快速的亮灭交替显示。将143设置为143000,将周期提高到近1s,实际运行时,小灯的闪动明显变慢,基本达到了预期目标。

第二种利用中断。主程序将B0口置1,使小灯发亮。在timer0中设置计数操作,当到达一定的数值时,B0口跳为0。程序跳到timer0中运行,实现中断。然后跳出中断,每计数到一固定的数值时,程序就执行中断操作。

第一次运行时,小灯发亮,但不闪烁。检查电路,接线完好,程序是编译通过的,语法上不可能有毛病。程序设计的思想也应该没有错误。反复读写程序,结果发现没有调用看门狗复位程序。看门狗可以保证程序执行过程中不会复位,而当程序陷入死循环后,能保证在允许的时间里复位。把看门狗程序放在timer0里面,重新下载,就发现小灯可以闪烁了。

(二)灯的循环显示

这一实验主要实现在B口接8个小灯,让小灯从B0B7逐个发亮。通过上面的两种方法的比较,当小灯个数较多时,对逐个实现延时比较麻烦。而采用中断实现时,初设小灯全部发亮,当每计数到一固定时间时,点亮1个灯,8个灯全亮时作为总的循环时间,用for语句实现,里面用switchcase语句分为8种情况。设置的时间不同,其循环时间就不一样。经过运行,小灯的显示达到了预期目标。

在一段时间里,用发光二极管作为主要输出工具,本人在指导老师和同学的大力帮助下,实现了一个又一个实验,期间出现了不少问题,但最终都顺利得到了解决。为最后实现LCD的显示迈出了重要的一步。

 << 上一页  [11] [12] [13] [14] 下一页

智能型充电器的电源和显示的设计 第12页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。