《电子工程训练》课程实验报告.docx
- 文档编号:9784430
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:15
- 大小:317.94KB
《电子工程训练》课程实验报告.docx
《《电子工程训练》课程实验报告.docx》由会员分享,可在线阅读,更多相关《《电子工程训练》课程实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
《电子工程训练》课程实验报告
大连理工大学本科实验报告
题目:
基于AT89S52单片机的点阵显示
与串口通信控制设计
课程名称:
《电子工程训练》
学院(系):
电子信息与电气工程学部
专业:
自动化
班级:
0804
学号:
200881197
学生姓名:
何韬
成绩:
2011年5月14日
题目:
基于AT89S52单片机的点阵显示与串口通信控制设计
1.设计要求
以AT89S52单片机为核心,设计、焊接并调试一个实际单片机控制系统,通过串口通信控制点阵显示预期的不同内容。
系统设计具体要求:
(1)51单片机最小系统
(2)点阵显示(三极管驱动方式)
(3)动态显示方式
(4)自定义点阵显示内容和具体显示方式
(5)串口通信(使用串口调试助手,通过计算机串口输入16进制数控制点阵显示对应内容)
2.设计分析及系统方案设计
围绕AT89S52单片机,把系统的设计划分为两部分:
硬件部分:
(1)设计并绘制原理图
(2)按照原理图焊接电路板
软件部分:
(1)编写实验程序
(2)系统调试
将单片机最小系统电路的P0口和P2口作为点阵控制端口,P0口进行逐列扫描输入字形,P2口进行逐行扫描。
单片机点阵显示系统通过MAX232电平转换电路与计算机连接,采用RS232C通讯协议。
系统总电路图为:
3.各功能模块硬件电路设计
各功能模块具体硬件电路如下:
(1)最小系统电路图为:
其中:
复位电路:
选用10K电阻和10μF电容
振荡电路:
根据实验要求,选择30pF电容12MHz晶振
(2)点阵系统电路图为:
(3)信号转换电路:
单片机系统使用的是TTL电平而串口输出的信号也是TTL电平,串行口通讯中一般使用的是RS232C通讯协议,两者的电平不相同,需要外接电路进行电平匹配。
解决方案:
MAX232芯片可完成TTL和RS-232C的双向电平转换。
4.系统软件设计
(1)点阵显示软件:
#define_OVER_C_
#include"reg51.h"
#include"over.h"
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
ucharcodetable2[]=
{0x00,0x00,0x7f,0x08,0x08,0x08,0x7f,0x00,//H
0x00,0x00,0x7f,0x49,0x49,0x49,0x00,0x00,//E
0x00,0x40,0x40,0x7f,0x40,0x40,0x40,0x00,//T
0x04,0x08,0x30,0x50,0x50,0x30,0x08,0x04,//A
0x00,0x00,0x3c,0x42,0x42,0x3c,0x00,0x00//O
};
uintm,n,h;
voiddelay(uintz);
voidmain()
{
while
(1)
{
for(h=0;h<40;h++)//控制显示字数(40/8=5个)
{
for(n=0;n<15;n++)//控制帧移动速度
{
for(m=0;m<8;m++)//显示1帧扫描(分8行,
{
P2=table1[m];
P0=0xff-table2[m+h];
delay
(2);
}
}
}
}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;z>0;z--)
for(y=110;y>0;y--);
}
流程图为:
等于5
(2)串口系统软件:
#define_1_C_
#include"reg51.h"
#include"1.h"
#include
#defineucharunsignedchar
#defineuintunsignedint
unsignedchart;
ucharcodetable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
ucharcodeS[]=
{
0x00,0x00,0x7f,0x41,0x41,0x22,0x1c,0x00,//D
0x00,0x7e,0x01,0x01,0x01,0x7e,0x00,0x00,//U
0x00,0x40,0x40,0x7f,0x40,0x40,0x40,0x00,//T
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
ucharcodeM[]=
{
0x00,0x00,0x7f,0xd5,0x55,0x55,0x7f,0x00,//自
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,//0
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,//8
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,//0
0x00,0x0c,0x74,0x04,0x04,0x7f,0x04,0x00,//4
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
ucharcodeN[]=
{
0x00,0x00,0x7f,0x08,0x08,0x08,0x7f,0x00,//H
0x00,0x00,0x7f,0x49,0x49,0x49,0x00,0x00,//E
0x00,0x40,0x40,0x7f,0x40,0x40,0x40,0x00,//T
0x04,0x08,0x30,0x50,0x50,0x30,0x08,0x04,//A
0x00,0x3e,0x41,0x41,0x41,0x41,0x3e,0x00,//O
0x00,0x00,0x00,0x00,0x00,0x00
};
ucharcodeH[]=
{
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,//2
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,//0
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,//0
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,//8
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,//8
0x00,0x00,0x21,0x7f,0x01,0x00,0x00,0x00,//1
0x00,0x00,0x21,0x7f,0x01,0x00,0x00,0x00,//1
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00,//9
0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00,//7
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
voiddelay(uintz)
{
uintx,y;
for(x=z;z>0;z--)
for(y=110;y>0;y--);
}
voidschool(void)//学校缩写
{uintm,n,h;
for(h=0;h<24;h++)//控制显示字数(24/8=3个)
{
for(n=0;n<10;n++)//控制帧移动速度
{
for(m=0;m<8;m++)//显示1帧扫描(分8行,
{
P2=table[m];
P0=0xff-S[m+h];
delay
(2);
}
}
}
}
voidclass()//专业班级
{uintm,n,h;
for(h=0;h<40;h++)//控制显示字数(40/8=5个)
{
for(n=0;n<10;n++)//控制帧移动速度
{
for(m=0;m<8;m++)//显示1帧扫描(分8行,
{
P2=table[m];
P0=0xff-M[m+h];
delay
(2);
}
}
}
}
voidname()//英文名字
{uintm,n,h;
for(h=0;h<40;h++)//控制显示字数(40/8=5个)
{
for(n=0;n<10;n++)//控制帧移动速度
{
for(m=0;m<8;m++)//显示1帧扫描(分8行,
{
P2=table[m];
P0=0xff-N[m+h];
delay
(2);
}
}
}
}
voidnumber()//学号
{uintm,n,h;
for(h=0;h<72;h++)//控制显示字数(72/8=9个)
{
for(n=0;n<10;n++)//控制帧移动速度
{
for(m=0;m<8;m++)//显示1帧扫描(分8行,
{
P2=table[m];
P0=0xff-H[m+h];
delay
(2);
}
}
}
}
voidmain()
{TMOD=0x20;//定时器1工作于8位自动重载模式,用于产生波特率
TH1=0xFD;//波特率9600
TL1=0xFD;
SCON=0x50;//设定串行口工作方式
PCON&=0xef;//波特率不倍增
RI=0;
TR1=1;
while
(1)
{if(RI)
{
RI=0;
t=SBUF;
if(t==0x01)
school();
elseif(t==0x02)
class();
elseif(t==0x03)
name();
elseif(t==0x04)
number();
}
else{
P0=0x00;
P2=0x00;
}
delay(10);
}
}
流程图为:
未识别
识别
5.系统调试运行结果说明计分析
(1)系统运行的硬件环境:
80X86cpu电脑一台
(2)系统运行的软件环境:
MedWin(集成开发环境),SuperPro/Z(编程器),软件仿真KeilC51(C51编译器),8X8点阵字模提取软件
其中字符滚动的速度由软件中设置的计数初值给定,可以自由修改。
(3)实验结果:
点阵实验中,成功显示“HETAO”5个预设的字符,并实现滚动循环显示。
串口实验中,点阵显示“DUT”、“自0804”、“HETAO”、“200881197”四个预设字符串,接收串口“0x01”信号时,滚动显示“DUT”;接收“0x02”信号时,滚动显示“自0804”;接收“0x03”信号时,滚动显示“HETAO”;接收“0x04”信号时,滚动显示“200881197”;无输入时点阵全亮。
6.结论
此次实验电路的设计基本符合设计要求,焊接过程中难度不大,勇于动手就会熟能生巧。
其间应严格按照电路图连接,否则拆除时很麻烦。
在点阵显示过程中,能够滚动显示预设内容,但每次程序执行结束会出现一小段乱码,原因尚未找到,需要进一步的研究。
串口实验中,成功实现了通过串口发送16进制数控制点阵滚动显示4个不同的字符串,实验结果很完美。
通过改变P0口列扫描的代码,可以显示更多的文字图形。
参考文献
1《单片机原理与实例应用》清华大学出版社
作者:
万隆、巴奉丽、陈文刚、王玮等
2《单片机原理与应用实例仿真》北京航空航天大学出版社
作者:
李泉溪
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子工程训练 电子 工程 训练 课程 实验 报告