单片机向主机发送字符串.docx
《单片机向主机发送字符串.docx》由会员分享,可在线阅读,更多相关《单片机向主机发送字符串.docx(8页珍藏版)》请在冰豆网上搜索。
单片机向主机发送字符串
大作业(论文)
课程名称:
题目:
单片机向主机发送字符串
院(系):
专业班级:
姓名:
学号:
指导教师:
年月日
摘要:
本报告系统地介绍并演示了单片机向主机发送字符串的整个流程及设计步骤。
这是单片机汇编语言的一个应用实例,本报告还为每个设计步骤作了详细的解说。
本设计报告内容较全面,结构紧凑,适合51系列单片机的初学者学习如何向主机发送字符串。
关键字:
单片微型计算机,汇编语言,程序设计,向主机发送字符串
1.大作业(论文)任务书
大作业(论文)任务书
专业班级:
学生姓名:
指导教师(签名):
1.1、大作业(论文)题目
单片机向主机发送字符串
1.2、本次大作业(论文)应达到的目的
大作业的基本教学目的是培养学生综合运用所学的基础理论、专业知识和基本技能,提高分析与解决实际问题的能力以及科技写作或设计能力。
要求学生在做大作业的过程中要有意识地培养自己的实际能力。
通过本次大作业的实践,了解单片机工作的原理及应用技术,掌握根据硬件电路设计软件的方法,了解设计过程中的各个基本环节,也为今后的实际应用奠定基础。
1.3、本次大作业(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)
操作对象:
MCS-51单片机显示板。
操作要求:
完成电路板焊接,软件编制及实验报告。
操作步骤:
1)选定题目
2)完成设计方案。
3)设计电路图,用proteus绘制图纸。
4)编制程序。
5)仿真调试
6)撰写工作报告。
7)提交报告并演示作品。
1.4、应收集的资料及主要参考文献:
1)教材
2)何立民.单片机高级教程.第1版.北京:
北京航空航天大学
3)夏继强.单片机实验与实践教程.北京:
北京航空航天大学出版社
1.5、审核批准意见
教研室主任(签字)
2.线路图
2.1、原理图
图1.原理图
3、程序功能说明
单片机按一定的时间间隔向主机发送字符串,发送内容在虚拟终端显示。
字符串主要是a-z这26个字母的大写形式,每输出10个字符后换行,并且每输出一遍后加横线,示例如下:
图2.程序运行结果
4、程序流程图
5、结束语
当程序编写好以后,我需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码烧写到80c51单片机中,最后连接好电路通电,就得到结果了。
这次数电课程设计,虽然短暂但是让我得到多方面的提高:
1.提高了我的逻辑思维能力,使我在逻辑电路的分析与设计上有了很大的进步。
加深了我对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。
另外,我还更加充分的认识到,数字电路这门课程在科学发展中的至关重要性
2.查阅参考书的独立思考的能力以及培养非常重要,我在设计电路时,遇到很多不理解的东西,有的我通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我更多的还是独立思考。
3.相互讨论共同研究也是很重要的,经常出现一些问题,比如电路设计中的虚拟终端的设计,开始并不理解虚拟终端的原理,但是和其他的专业同学讨论后,理解了该电路的基本原理后,很快的设计了电路原理图。
6、致谢
在这次课程设计的撰写过程中,我得到了许多人的帮助。
首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。
同时也感谢学院为我提供良好的做课程设计的环境。
虽然一开始是说独立完成设计,可是我发现,最后个人还是离不开集体,最后再一次感谢所有在设计中曾经帮助过我的良师益友。
7、参考文献
1)教材
2)何立民.单片机高级教程.第1版.北京:
北京航空航天大学
3)夏继强.单片机实验与实践教程.北京:
北京航空航天大学出版社
8、附录(程序清单)
#include
#defineucharunsignedchar
#defineuintunsignedint
//延时
voidDelayMS(uintms)
{
uchari;
while(ms--)for(i=0;i<120;i++);
}
//向串口发送字符
voidPutc_to_SerialPort(ucharc)
{
SBUF=c;
while(TI==0);
TI=0;
}
//向串口发送字符串
voidPuts_to_SerialPort(uchar*s)
{
while(*s!
='\0')
{
Putc_to_SerialPort(*s);
s++;
DelayMS(5);
}
}
//主程序
voidmain()
{
ucharc=0;
SCON=0x40;//串口模式1
TMOD=0x20;//T1工作模式2
TH1=0xfd;//波特率9600
TL1=0xfd;
PCON=0x00;//波特率不倍增
TI=0;
TR1=1;
DelayMS(200);
//向主机发送数据
Puts_to_SerialPort("ReceivingFrom8051...\r\n");
Puts_to_SerialPort("-------------------------------\r\n");
DelayMS(50);
while
(1)
{
Putc_to_SerialPort(c+'A');
DelayMS(100);
Putc_to_SerialPort('');
DelayMS(100);
if(c==25)//每输出一遍后加横线
{Puts_to_SerialPort("\r\n-------------------------------\r\n");
DelayMS(100);
}
c=(c+1)%26;
if(c%10==0)//每输出10个字符后换行
{
Puts_to_SerialPort("\r\n");
DelayMS(100);
}
}
}
最后说一句,文档出自“西安建筑科技大学”的学生之手,如果同校,请你适当修改!
!
切记切记!
!