通过制作最小系统板,我们对单片机内部硬件结构、工作原理有了基本的认识,同时掌握了程序设计的基本方法;其次,我们学会了电子电路设计的基本流程,熟悉了89C51/C52芯片及一些基础电路。最后,我们学会了基于C语言的Proteus仿真,熟悉了调试单片机的应用系统的一般方法!
一.系统设计 1.最小系统
采用89C52芯片,外接时钟电路,复位电路。芯片的所有引脚
与排针相连,以方便以后的使用,并且特别引出了特殊引脚,以与其它引脚区分。
2.实现跑马灯
在系统板的P2端口,从 P20—P27 I/O端口依次连接一个发光
管二极管,在软件的控制下实现花样跑马灯!
3.电路
本次设计使用单片机芯片STC89C52,单片机最小系统电路如
下:
二.硬件单元电路 1.复位电路
本次设计复位电路采用的是上电复位方式。上电复位时通过外部
复位路的电容充电来实现的,为了保证复位成功,只要RST引脚保持足够时间。复位电路如下图所示
2.时钟电路
本次设计采用的是12MHz的晶振,两只电容在20pF~100pF之
间取值,其取值在60pF~70pF时振荡器频率稳定性较高,按照一般
经验,外接晶体时两个电容取值为30pF,本次设计选为30pF。晶振电路如下图所示
3.89C52芯片引脚
通过学习,我们认识到:STC89C52 是一种低功耗、高性能
CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功:8k字节Flash256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。 另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作允许RAM、定时器/计数器、串口、中断继续工作。
三.材料详单 1.系统组件
89C51芯片,晶振(12MHZ,1个),30pf电容(2个),20pf电容
(2个),电阻(10K,1个),单排插针;
2.跑马灯
电阻(10K,10个),发光二极管(10个); 3.焊接工具
烙铁,烙铁架,焊锡。 四.软件部分 1.依次循环亮
#include unsigned char j; for(i; i > 0; i--) for(j = 255; j > 0; j--); }char LED; main() { unsigned char i; while (1) { LED = 0xfe; for (i = 0 ;i < 4 ; i++) { P2 = LED; delay(500); LED = LED << 1; LED = LED | 0x01; } for (i = 0 ;i < 4 ; i++) { P2 = LED; delay(500); LED = LED >> 1; LED = LED | 0x80; } } } 仿真效果图1 2.两边往中间跑 #include int led[4]={0x7e,0xbd,0xdb,0xe7}; void main(void) { int i; int i; for(i=0;i P2=0xff; while(1) { } for(i=0;i<4;i++) { P2=led[i]; delay(20000); } for(i=3;i;i--) { } P2=led[i]; delay(20000); 仿真效果图2 3 依次累加 #include unsigned led1[8]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; int led2[4]={0x7e,0xbd,0xdb,0xe7}; char LED3; void main(void) { int i,j,q; P2=0xff; while(1) { for(q=0;q<1;q++) { for(i=1;i<9;i++) int } { for(j=0;jP2=led1[j]; delay(10000); } } for(q=0;q<2;q++) { for(i=0;i<4;i++) { P2=led2[i]; delay(15000); } for(i=3;i;i--) { } P2=led2[i]; delay(15000); } for(q=0;q<2;q++) { LED3=0xfe; for (i = 0 ;i < 8 ; i++) { } P2 = LED3; delay(15000); LED3 = LED3<< 1; LED3 = LED3 | 0x01; if (LED3 == 0x7f) break; for (i = 0 ;i < 8 ; i++) { P2 = LED3; delay(15000); LED3= LED3 >> 1; LED3 = LED3 | 0x80; } } } } 仿真效果图3 五.小结 此51单片机最小系统板功能简单但乐趣甚多,制作过程简单易 学,作品完成后为我们带来了视觉上的成就感,尤其让我们对电子产品的制作产生了极大的兴趣! 这几天的单片机的学习,我们在理论的基础上更深刻的掌握了单片机的深层内容,同时锻炼了我们的动手能力和思维能力,还有在软件方面的编程能力。 因篇幅问题不能全部显示,请点此查看更多更全内容