51板最小系统与电源设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A T89C51最小系统与5V电源设计
电子科学与技术:0701/0702
姓名:
AT89C51最小系统与5V电源设计
摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。集成三端稳压器是一种串联调整式稳压器,内部设有过热、过流和过压保护电路。它只有三个外引出端(输入端、输出端和公共地端),将整流滤波后的不稳定的直流电压接到集成三端稳压器输入端,经三端稳压器后在输出端得到某一值的稳定的直流电压。7805为三端正稳压器电路,TO-220F封装,能提供多种固定的输出电压,应用范围广。内含过流、过热和过载保护电路。带散热片时,输出电流可达1A。虽然是固定稳压电路,但使用外接元件,可获得不同的电压和电流。本文利用C程序及AT89C51开发了一个具有八路LED显示流水灯系统,LM7805用于直流稳压电路中为单片机提供工作电流。
关键词:单片机三端集成稳压器LED显示
1.设计目的
1.1熟悉C51单片机的引脚功能,为毕业设计单片机部分做准备;
1.2 锻炼设计以及按照工具原理图焊接并调试电路板的能力;
1.3复习C语言,熟悉用C语言对单片机的编程;
1.4熟悉三端集成稳压器并用其制作直流稳压电路;
1.5培养良好的实验习惯,进步了解熟悉PCB板。
2.设计要求2.1 确定任务:
(1)设计5V直流稳压供电电源
(2)开发单片机(AT89C51)最小系统
2.2任务分析:该系统具有的功能:
(1)具有八路发光二极管显示各种流水灯。
(2)直流稳压电源给单片机提供工作电流
2.3功能分析
(1)利用桥式整流和三端集成稳压器(LM7805)实现5V输出;
(2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能;(3)利用单片机的第9脚可以设计成复位系统,我们采用按键复位。
3.硬件电路:
3.1稳压电路部分
直流稳压电源是一种将220V工频交流电转换成稳压输出的直流电压的装置,它需要经过变压、整流、滤波、稳压四个环节才能完成。具体电路见图一。
四个环节的工作原理如下:
(1)电源变压器:是降压变压器,它将电网220V交流电压变换成符合需要的交流电压,并送给整流电路,变压器的变比由变压器的副边电压确定。
(2)整流滤波电路:整流电路将交流电压Ui变换成脉动的直流电压。再经滤波电路滤除较大的纹波成分,输出纹波较小的直流电压U1。常用的整流滤波电路有全波整流滤波、桥式整流滤波等。
(3)滤波电路:可以将整流电路输出电压中的交流成分大部分加以滤除,从而得到比较平滑的直流电压各滤波电容C满足RL-C=(3~5)T/2,或中T为输入交流信号周期,RL为整流滤波电路的等效负载电阻。
(4)稳压电路:稳压电路的功能是使输出的直流电压稳定,不随交流电网电压和负载的变化而变化。本文中用三端集成稳压器LM7805进行稳压。
图一直流稳压电路原理图
3.2单片机部分
AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。AT89C51有40个引脚,32个外部双向输进/输出(I/O)端口,同时内含2个外
中断口,2个16位可编程定时计数器,2个全双工串行通讯口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。其引脚图见图二。
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图三所示。
图二AT89C51引脚图
图三流水灯硬件原理图
4.软件部分
运行程序:
#include
#define uint unsigned int
#define uchar unsigned char
Uchar z,a,b,temp,table[]={0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7}; void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
for(a=0;a<=3;a++)
{
P1=table[a];
delay(400);
}
temp=0xfe;
for(b=0;b<=8;b++)
{ P1=temp;
delay(400);
temp=temp<<1;
}
temp=0x7f;
for(b=0;b<=8;b++)
{ P1=temp;
delay(400);
temp=temp>>1;
}
for(a=4;a<=7;a++)
{
P1=table[a];
delay(400);
}
}
}
5.参考文献: