单片机及通信接口设计课程设计报告.doc

上传人:b****3 文档编号:2490060 上传时间:2022-10-30 格式:DOC 页数:12 大小:180KB
下载 相关 举报
单片机及通信接口设计课程设计报告.doc_第1页
第1页 / 共12页
单片机及通信接口设计课程设计报告.doc_第2页
第2页 / 共12页
单片机及通信接口设计课程设计报告.doc_第3页
第3页 / 共12页
单片机及通信接口设计课程设计报告.doc_第4页
第4页 / 共12页
单片机及通信接口设计课程设计报告.doc_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

单片机及通信接口设计课程设计报告.doc

《单片机及通信接口设计课程设计报告.doc》由会员分享,可在线阅读,更多相关《单片机及通信接口设计课程设计报告.doc(12页珍藏版)》请在冰豆网上搜索。

单片机及通信接口设计课程设计报告.doc

单片机及通信接口设计课程设计报告

题目:

基于STC89S52单片机开发板的功能设计与应用

撰写日期:

2011年11月

一、设计要求

二、设计电路及功能说明

三、编程思路及框架

四、调试结果及分析(1、这里写出题目实现结果;2、调试中出现的问题及解决的方法;3、老师的提问及解决的方法)

五、总结(心得体会)

目录

目录

第一章课程设计要求及功能说明 1

1.1课程设计要求 1

1.2课程设计电路及功能说明 1

第二章程序设计及结果分析 2

2.1程序设计思想 1

2.2调试结果分析及问题解答 1

单片机及通信接口设计课程设计总结 4

第一章课程设计要求及功能说明

第一章课程设计要求及功能说明

1.1课程设计要求

跑马灯。

设计要求:

“123456”6个数字由右边进入1602液晶显示器模块,再由左边走出LCD模块,连续不断。

1.2课程设计电路及功能说明

1.2.1设计电路

1602液晶显示器电路

LCD1602引脚排列

LCD1602属于字符型显示器件,可显示2行16个字符,字符显示尺寸为5×7个像素点。

在显示模块的ROM中存放ASCII码字符字模等,输出时只需提供字符编码和显示位置即可。

LCD1602引脚排列如上图所示。

其中,D0-D7为数据口,E为使能信号,RW为读写信号,RS为寄存器选择信号,VL为亮度调节引脚,VCC、VCC1、GND和GND1均为电源引脚。

LCD1602的工作流程图

1.2.2功能说明

“123456”6个数字由右边进入1602液晶显示器模块,再由左边走出LCD模块,连续不断。

单片机的P3.4脚接E执行使能控制,读操作时,高电平有效;写操作时,下降沿有效。

P3.5脚接rs进行寄存器选择,当rs=1时,指向数据寄存器;当rs=0时,若执行写操作,则指向指令寄存器,若执行读操作,则指向地址计数器。

8

第二章程序设计及结果分析

第二章程序设计及结果分析

2.1编程思路及框架

以单片机为核心,LCD1602液晶显示器为输出器件。

使单片机的P3.4脚接E执行使能控制,读操作时,高电平有效;写操作时,下降沿有效。

P3.5脚接rs进行寄存器选择,当rs=1时,指向数据寄存器;当rs=0时,若执行写操作,则指向指令寄存器,若执行读操作,则指向地址计数器。

,而LCD1602属于字符型显示器件,可显示2行16个字符,字符显示尺寸为5×7个像素点。

在显示模块的ROM中存放ASCII码字符字模等,输出时只需提供字符编码和显示位置即可。

2.2实现结果

“123456”6个数字由右边进入1602液晶显示器模块,再由左边走出LCD模块,连续不断。

2.3调试中出现的问题及解决的方法

①实验一开始将uchartable1[]=“123456”写入时,实验结果出现乱码。

解决的办法:

将定义处的“123456”中数字6的后面用空格键空出16个空位,以便“123456”在液晶显示屏上循环时不出现除123456以外的任何字符。

③实验一开始将write_com(0x80+00);设置为第一行第一列时屏幕不显示任何数字。

解决的办法:

经过精确计算将write_com(0x80+00);程序改为write_com(0x80+0x15);设置显示位置为第一行第15列即可。

④实验一开始只显示“123456”,但是不循环。

解决的办法:

将原来程序最后一行while

(1);去掉即可。

2.4老师的提问及解决的方法

①说说“wela=0;dula=0;”在程序中的作用?

答:

wela是控制数码管哪个亮的位输出选通信号,dula是控制数码管显示什么字符或数字的段码。

由于本实验是使用1602液晶显示器,为使其工作时不受数码管干扰,所以将wela和dula设置为0,即处于低电平不工作状态。

另外,我在图书馆查阅到北京航空航天大学出版社出版的《51单片机C语言应用与开发》一书中,提到数码管的动态扫描显示的有关信息:

为了防止各个显示器同时显示同一个字符,各显示器的公共端并不接到电源或地,而是接到另一组控制信号,即位输出口上。

在动态扫描显示方式下,一组数码管显示器需要两组信号控。

一组是字段码输出口输出的字形代码,用来控制显示的字符形状;另一组是位输出口输出的控制信号,用于控制哪一位显示器工作,也称为位码。

在两组信号的共同控制下,可以按顺序一位一位地轮流点亮每一个显示器显示各自的字符,以实现数码管的动态扫描显示。

②怎么计算延时函数值

答:

延时函数值=(delay括号内的数值x×循环次数b)×10^-6s,即延时函数值由delay括号内的数值乘以循环的次数,再进行单位换算(将微秒换算成秒)

③如何使无限循环的跑马灯控制在有限次数内

答:

假设循环3次,则定义无符号字符c

将for(c=0;c<3;c++)语句加到主函数中,即

voidmain()//主函数

{

uchara,c;

init();

for(c=0;c<3;c++)

{

write_com(0x80+0x15);//设置显示位置为第一行

delay(1000);

for(a=0;a<27;a++)

{

write_date(table1[a]);

delay(1000);

}

}

}

④解释下列程序:

voidwrite_com(ucharcom)

{

P0=com;

rs=0;

lcden=0;

delay(10);

lcden=1;

delay(10);

lcden=0;

}

答:

该段程序是写指令到LCD。

当rs=0时,执行写操作,则指向指令寄存器写入命令;lcden=0执行使能控制,写操作时,下降沿有效。

⑤使跑马灯的123456”6个数字从1602液晶显示器的第一行第二列开始

答:

将主函数中的write_com(0x80+0x15);改为write_com(0x80+01)。

单片机及通信接口设计课程设计总结

单片机及通信接口设计课程设计总结

一共54个课时的单片机及通信接口技术课程设计教会了我如何检索和阅读文献资料、如何锻炼运用所学专业知识使之对所设计系统具有独立调试和故障处理的能力、逻辑思维和形象思维的能力、文字和口头表达的能力和撰写实验报告的能力。

总的来说,只要用心学,单片机用C语言写程序可以如此简单而有趣。

通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。

使之不断地战胜别人,超越前人。

同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。

设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

这个设计过程中,我遇到过许多次失败的考验,经过不懈努力才完成实验:

1、跑马灯“123456”在1602液晶显示器实现无限左循环的功能已实现。

跑马灯之所以能比其他同学更快速地实现,一个原因是它的确简单,另一个原因是上课认真听了关于“在1602液晶显示屏的第一行第一列写学号,第二行第一列写姓名的拼音”并实现左移功能。

所以我做“跑马灯`123456`在1602液晶显示器实现无限左循环”起来得心应手,只需在学过的程序基础上做如下修改:

①将定义处的“123456”中数字6的后面用空格键空出16个空位,以便“123456”在液晶显示屏上循环时不出现除123456以外的任何字符。

②在LCD初始化的程序中,将显示光标移动的设置write_com(0x06);程序改为write_com(0x05);以实现整屏显示左移。

1602液晶显示器的显示位置

如上图:

将write_com(0x80+00);程序改为write_com(0x80+0x15);设置显示位置为第一行。

④将原来程序最后一行while

(1);去掉。

2、在答辩回答老师问题时才真正体会“书到用时方恨少”,原来读懂程序、会写程序是那么的重要。

①说说“wela=0;dula=0;”在程序中的作用?

听到这一问题时,我脑子突然间一片空白。

紧张得把之前上课最熟练的wela和dula程序回答得吞吞吐吐没有底气。

答辩完后翻开自己的课堂笔记本时才恍然大悟。

笔记本上写着,wela是控制数码管哪个亮的位输出选通信号,dula是控制数码管显示什么字符或数字的段码。

由于本实验是使用1602液晶显示器,为使其工作时不受数码管干扰,所以将wela和dula设置为0,即处于低电平不工作状态。

另外,我在图书馆查阅到北京航空航天大学出版社出版的《51单片机C语言应用与开发》一书中,提到数码管的动态扫描显示的有关信息:

为了防止各个显示器同时显示同一个字符,各显示器的公共端并不接到电源或地,而是接到另一组控制信号,即位输出口上。

在动态扫描显示方式下,一组数码管显示器需要两组信号控。

一组是字段码输出口输出的字形代码,用来控制显示的字符形状;另一组是位输出口输出的控制信号,用于控制哪一位显示器工作,也称为位码。

在两组信号的共同控制下,可以按顺序一位一位地轮流点亮每一个显示器显示各自的字符,以实现数码管的动态扫描显示。

②怎么计算延时函数值。

我之前一直认为delay括号内的数就是延时函数值是可以任意修改、不需要计算的,所以老师问这个问题时我是丈二的和尚摸不着头脑。

然后旁边的同学答辩后认真耐心地给我讲解:

延时函数值=(delay括号内的数值x×循环次数b)×10^-6s,即延时函数值由delay括号内的数值乘以循环的次数,再进行单位换算(将微秒换算成秒)。

3、换一种方式学单片机,才发现原来51单片机用C语言写程序可以如此简单而有趣。

虽然答辩时老师问我的5个问题我都回答得很勉强,但是我很开心学会了单片机用C语言来写程序,再也不用看着单片机用汇编写程序烦心了。

上学期学单片机课时,怎么学怎么看都不懂汇编程序,一个考试开卷就侥幸过关了,之后只要看到单片机心里就有阴影。

参加理工学部第四届专业作品设计大赛时制作的“电子密码锁”也是对程序半懂半不懂地混过去的。

所以我很感激老师,如果这一次没有老师的点醒,没有问我一些让我紧张不已答不出个所以然来的程序相关问题,而是问一些我会了的问题让我再一次侥幸过关。

我想我永远都不会意识到自己读不懂程序写不出程序的处境究竟多危险。

经过54个课时学习LED、数码管、键盘接口、1602液晶显示器和计数器这5种的使用,填补了许多我在课堂上不懂的知识。

4、单片机及通信接口技术课程设计教会了我如何检索和阅读文献资料。

“P3.4接E执行使能控制,读操作时,高电平有效;写操作时,下降沿有效。

P3.5接rs进行寄存器选择,当rs=1时,指向数据寄存器;当rs=0时,若执行写操作,则指向指令寄存器,若执行读操作,则指向地址计数器。

”和“图书馆查阅到北京航空航天大学出版社出版的《51单片机C语言应用与开发》一书中,提到数码管的动态扫描显示的有关信息:

为了防止各个显示器同时显示同一个字符,各显示器的公共端并不接到电源或地,而是接到另一组控制信号,即位输出口上。

在动态扫描显示方式下,一组数码管显示器需要两组信号控。

一组是字段码输出口输出的字形代码,用来控制显示的字符形状;另一组是位输出口输出的控制信号,用于控制哪一位显示器工作,也称为位码。

在两组信号的共同控制下,可以按顺序一位一位地轮流点亮每一个显示器显示各自的字符,以实现数码管的动态扫描显示。

”都是我在图书馆的大收获。

5、单片机

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1