近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时监测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
单片机最小系统是在以51单片机为基础上拓展,使其能更方便地运用于测试系统中。本设计主要在51单片机上扩展I/O口,实现液晶显示,定时等功能,并写好一定的底层程序。
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
摘 要 II 第1章 绪论 1 1.1 单片机基础知识 1 1.2 单片机的应用领域 1 1.3 单片机的发展趋势 2 第2章 硬件结构剖析 4 2.1 51单片机的内部结构 4 2.2 89C52单片机的引脚功能 5 第3章 单片机的硬件设计 9 3.1 最小系统设计 9 3.2 LCD显示电路 11 3.2.1 LCD1602 引脚功能 11 3.2.2 LCD1602显示模块指令集 12 3.2.3LCD12864 引脚功能 14 3.3 USB供电下载电路 15 3.3.1 USB供电电路 15 3.4单片机最小系统电路设计完整资料 16 第4章 单片机学习板的测试 19 4.1 51单片机学习板电路图 19 4.2 流水灯(P1口) 19 4.2.1 接口图及测试照片 19 4.2.2 测试程序(部分) 19 4.2.3 测试结论 20 4.3 数码管(P0口) 20 4.3.1 接口图及测试照片 20 4.2.2 测试程序(部分) 22 4.3.3 测试结论 22 4.4 液晶(P2口) 22 4.4.1 接口图及测试照片 22 4.4.2 测试程序(1602部分) 22 4.4.3 测试结论 24 4.5 其他(P3口) 24
USB供电下载电路 3.3.1 USB供电电路 USB供电电路如图3-6所示: 图3-6 USB供电电路 3.3.2 USB下载电路 USB供电电路如图3-7所示: 图3-7 USB下载电路 3.4单片机最小系统电路设计完整资料 3.4.1 单片机最小系统电路设计完整原理图及pcb
图3-8 单片机最小系统总原理图
图3-9 单片机最小系统pcb图 图3-10 单片机最小系统pcb 3D预览图 3.4.2单片机最小系统电路设计元件清单 | | | | | | |
| | |
| | |
| | |
| | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | D11, D12, D13, D13.2
,D14, D15, D16, D17, D18 | | | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | | | |
| | | | | |
| RL1, RL2, RL3, RL4,
RL5, RL6, RL7, RL8 | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | | | | | | | | | | | | | | | | | |
表3-4 单片机最小系统电路设计元件清单
第4章 单片机学习板的测试
4.1 51单片机学习板电路图 图4-1 单片机学习板最小系统原理图
4.2 流水灯(P1口) 4.2.1 接口图及测试照片 图4-2 单片机学习板led流水灯接口图 图4-3 单片机学习板led流水灯测试图 4.2.2 测试程序(部分) - #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- void delay(uint z);
- void main()
- {
- uchar num,dat1,dat2;
- delay(500);
- P0=0;
- while(1)
- {
- dat1=0xfe;
- dat2=0x7f;
- for(num=0;num<7;num++)
- {
- P1=dat1; //初始化赋值
- dat1=dat1<<1; //右移一位
- delay(500); //延时
- }
- for(num=0;num<7;num++)
- {
- P1=dat2; //初始化赋值
- dat2=dat2>>1; //右移一位
- delay(500); //延时
- }
- }
- }
复制代码
4.2.3 测试结论 按照流水灯接口图进行编程后实现流水灯功能。因此该学习板P1口工作正常,led正常。
4.3 数码管(P0口)  4.3.1 接口图及测试照片 图4-4单片机学习板数码管接口图 图4-5单片机学习板数码管测试图
4.3.2 测试程序(部分) - #include <reg52.h>
- #define uchar unsigned char
- sbit P2_0 = P2^0;
- sbit P2_1 = P2^1;
- sbit P2_2 = P2^2;
- sbit P2_3 = P2^3;
- uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
- 0xf8,0x80,0x90};
- void delay(uchar i)
- {
- uchar j,k;
- for(j=i;j>0;j--)
- for(k=125;k>0;k--);
- }
- void display()
- {
- P0=table[0];
- P2_0 = 0;
- delay(5);
- P2_0 = 1;
- P0=table[1];
- P2_1 = 0;
- delay(5);
- P2_1 = 1;
- P0=table[2];
- P2_2 = 0;
- delay(5);
- P2_2 = 1;
- P0=table[3];
- P2_3 = 0;
- delay(5);
- P2_3 = 1;
-
- }
- /*演示主程序*/
- void main(void)
- {
- unsigned int a;
-
- while(1)
- {
- for(a=100;a>0;a--)
- {
- display();
复制代码4.3.3 测试结论 按照数码管接口图进行编程后实现数码管显示0123功能。因此该学习板P0口工作正常,数码管正常。
4.4 液晶(P2口) 4.4.1 接口图及测试照片
图4-6单片机学习板液晶接口图 图4-7单片机学习板1602液晶测试图 图4-8 12864液晶测试图 4.4.2 测试程序(1602部分) - # include <reg51.h>
- # include <intrins.h>
- typedef unsigned char BYTE;
- typedef unsigned int WORD;
- typedef bit BOOL;
-
- sbit rs=P0^7;
- sbit rw=P0^6;
- sbit ep=P0^5;
-
- BYTE code dis1 []={" ***********"};
- BYTE code dis2 []={" ************"};
-
- void delay (int m)
- {
- unsigned char i,j;
- for (i=0;i<m;i++)
- for (j=0;j<253;j++);
- }
-
- BOOL lcd_bz()
- {
- BOOL result;
- rs=0; // 读忙信号
- rw=1;
- ep=1;
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- result = (BOOL)(P2&0x80);
- ep=0;
- result ;
- }
-
- void lcd_pos (BYTE pos)
- {
- lcd_wcmd (pos|0x80);
- }
- main ()
- {
- BYTE i;
- lcd_init ();
- delay (10);
-
- lcd_pos (0);
- i=0;
- while (dis1 [i]!='\0')
- {
- lcd_wdat (dis1 [i]);
- i++;
- }
-
- lcd_pos (0x41);
- i=0;
- while (dis2 [i]!='\0')
- {
- lcd_wdat (dis2 [i]);
- i++;
- }
- while (1);
- }
复制代码
测试结论 按照两块液晶屏接口图进行编程后实现液晶屏基本显示功能。因此该学习板的P2口与液晶屏数据传输正常,接口电路及液晶屏正常。
4.5 其他(P3口) 由于P3端口作为按键,传感器等输入端口不便于测试,因此我们采用杜邦线加led对端口进行逐个测试,经过测试结论为P3口输出正常。 全部资料51hei下载地址(pcb+文档): |