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

上传人:206****923 文档编号:90141634 上传时间:2019-06-09 格式:DOC 页数:12 大小:180KB
返回 下载 相关 举报
单片机及通信接口设计课程设计报告_第1页
第1页 / 共12页
单片机及通信接口设计课程设计报告_第2页
第2页 / 共12页
单片机及通信接口设计课程设计报告_第3页
第3页 / 共12页
单片机及通信接口设计课程设计报告_第4页
第4页 / 共12页
单片机及通信接口设计课程设计报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

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

1、单片机及通信接口设计课程设计报告题目:基于STC89S52单片机开发板的功能设计与应用 撰写日期: 2011年11月 一、设计要求二、设计电路及功能说明三、编程思路及框架四、调试结果及分析(1、这里写出题目实现结果;2、调试中出现的问题及解决的方法;3、老师的提问及解决的方法)五、总结(心得体会)目录目 录第一章 课程设计要求及功能说明11.1课程设计要求11.2课程设计电路及功能说明1第二章 程序设计及结果分析22.1程序设计思想12.2调试结果分析及问题解答1单片机及通信接口设计课程设计总结4第一章 课程设计要求及功能说明第一章 课程设计要求及功能说明1.1 课程设计要求跑马灯。设计要求:

2、“123456”6个数字由右边进入1602液晶显示器模块,再由左边走出LCD模块,连续不断。1.2课程设计电路及功能说明1.2.1设计电路1602液晶显示器电路LCD1602引脚排列LCD1602属于字符型显示器件,可显示2行16个字符,字符显示尺寸为57个像素点。在显示模块的ROM中存放ASCII码字符字模等,输出时只需提供字符编码和显示位置即可。LCD1602引脚排列如上图所示。其中,D0D7为数据口,E为使能信号,RW为读写信号,RS为寄存器选择信号,VL为亮度调节引脚,VCC、VCC1、GND和GND1均为电源引脚。LCD1602的工作流程图1.2.2功能说明“123456”6个数字由

3、右边进入1602液晶显示器模块,再由左边走出LCD模块,连续不断。单片机的P3.4脚接E执行使能控制,读操作时,高电平有效;写操作时,下降沿有效。P3.5脚接rs进行寄存器选择,当rs=1时,指向数据寄存器;当rs=0时,若执行写操作,则指向指令寄存器,若执行读操作,则指向地址计数器。9第二章 程序设计及结果分析第二章 程序设计及结果分析2.1编程思路及框架以单片机为核心,LCD1602液晶显示器为输出器件。使单片机的P3.4脚接E执行使能控制,读操作时,高电平有效;写操作时,下降沿有效。P3.5脚接rs进行寄存器选择,当rs=1时,指向数据寄存器;当rs=0时,若执行写操作,则指向指令寄存器

4、,若执行读操作,则指向地址计数器。,而LCD1602属于字符型显示器件,可显示2行16个字符,字符显示尺寸为57个像素点。在显示模块的ROM中存放ASCII码字符字模等,输出时只需提供字符编码和显示位置即可。2.2实现结果“123456”6个数字由右边进入1602液晶显示器模块,再由左边走出LCD模块,连续不断。2.3调试中出现的问题及解决的方法实验一开始将uchar table1=“123456”写入时,实验结果出现乱码。解决的办法:将定义处的“123456”中数字6的后面用空格键空出16个空位,以便“123456”在液晶显示屏上循环时不出现除123456以外的任何字符。实验一开始将writ

5、e_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,即处

6、于低电平不工作状态。另外,我在图书馆查阅到北京航空航天大学出版社出版的51单片机C语言应用与开发一书中,提到数码管的动态扫描显示的有关信息:为了防止各个显示器同时显示同一个字符,各显示器的公共端并不接到电源或地,而是接到另一组控制信号,即位输出口上。在动态扫描显示方式下,一组数码管显示器需要两组信号控。一组是字段码输出口输出的字形代码,用来控制显示的字符形状;另一组是位输出口输出的控制信号,用于控制哪一位显示器工作,也称为位码。在两组信号的共同控制下,可以按顺序一位一位地轮流点亮每一个显示器显示各自的字符,以实现数码管的动态扫描显示。怎么计算延时函数值答:延时函数值=(delay括号内的数值x

7、循环次数b)10-6s,即延时函数值由delay括号内的数值乘以循环的次数,再进行单位换算(将微秒换算成秒)如何使无限循环的跑马灯控制在有限次数内答:假设循环3次,则定义无符号字符c将for(c=0; c3; c+)语句加到主函数中,即void main() /主函数uchar a,c;init();for(c=0; c3; c+)write_com(0x80+0x15); /设置显示位置为第一行delay(1000);for(a=0;a27;a+)write_date(table1a);delay(1000);解释下列程序:void write_com(uchar com)P0=com;rs

8、=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个课时的单片机及通信接口技术课程设计教会了我如何检索和阅读文献资料、如何锻炼运用所学专业知识使之对所设计系统具有独立调试和故障处理

9、的能力、逻辑思维和形象思维的能力、文字和口头表达的能力和撰写实验报告的能力。总的来说,只要用心学,单片机用C语言写程序可以如此简单而有趣。通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢

10、过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我遇到过许多次失败的考验,经过不懈努力才完成实验:1、跑马灯“123456”在1602液晶显示器实现无限左循环的功能已实现。跑马灯之所以能比其他同学更快速地实现,一个原因是它的确简单,另一个原因是上课认真听了关于“在1602液晶显示屏的第一行第一列写学号,第二行第一列写姓名的拼音”并实现左移功能。所以我做“跑马灯123456在1602液晶显示器实现无限左循环”起来得心应手,只需在学过的程序基础上做如下修改:将定义处的“123456”中数字6的后面用空格键空出16个空位,以便“123456”在液晶显示屏上循环时不出现除123456以

11、外的任何字符。在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程序回答得吞吞吐吐没有底气。答辩完后翻

12、开自己的课堂笔记本时才恍然大悟。笔记本上写着,wela是控制数码管哪个亮的位输出选通信号,dula是控制数码管显示什么字符或数字的段码。由于本实验是使用1602液晶显示器,为使其工作时不受数码管干扰,所以将wela和 dula设置为0,即处于低电平不工作状态。另外,我在图书馆查阅到北京航空航天大学出版社出版的51单片机C语言应用与开发一书中,提到数码管的动态扫描显示的有关信息:为了防止各个显示器同时显示同一个字符,各显示器的公共端并不接到电源或地,而是接到另一组控制信号,即位输出口上。在动态扫描显示方式下,一组数码管显示器需要两组信号控。一组是字段码输出口输出的字形代码,用来控制显示的字符形状

13、;另一组是位输出口输出的控制信号,用于控制哪一位显示器工作,也称为位码。在两组信号的共同控制下,可以按顺序一位一位地轮流点亮每一个显示器显示各自的字符,以实现数码管的动态扫描显示。怎么计算延时函数值。我之前一直认为delay括号内的数就是延时函数值是可以任意修改、不需要计算的,所以老师问这个问题时我是丈二的和尚摸不着头脑。然后旁边的同学答辩后认真耐心地给我讲解:延时函数值=(delay括号内的数值x循环次数b)10-6s,即延时函数值由delay括号内的数值乘以循环的次数,再进行单位换算(将微秒换算成秒)。3、换一种方式学单片机,才发现原来51单片机用C语言写程序可以如此简单而有趣。虽然答辩时

14、老师问我的5个问题我都回答得很勉强,但是我很开心学会了单片机用C语言来写程序,再也不用看着单片机用汇编写程序烦心了。上学期学单片机课时,怎么学怎么看都不懂汇编程序,一个考试开卷就侥幸过关了,之后只要看到单片机心里就有阴影。参加理工学部第四届专业作品设计大赛时制作的“电子密码锁”也是对程序半懂半不懂地混过去的。所以我很感激老师,如果这一次没有老师的点醒,没有问我一些让我紧张不已答不出个所以然来的程序相关问题,而是问一些我会了的问题让我再一次侥幸过关。我想我永远都不会意识到自己读不懂程序写不出程序的处境究竟多危险。经过54个课时学习LED、数码管、键盘接口、1602液晶显示器和计数器这5种的使用,

15、填补了许多我在课堂上不懂的知识。4、单片机及通信接口技术课程设计教会了我如何检索和阅读文献资料。“P3.4接E执行使能控制,读操作时,高电平有效;写操作时,下降沿有效。 P3.5接rs进行寄存器选择,当rs=1时,指向数据寄存器;当rs=0时,若执行写操作,则指向指令寄存器,若执行读操作,则指向地址计数器。”和“图书馆查阅到北京航空航天大学出版社出版的51单片机C语言应用与开发一书中,提到数码管的动态扫描显示的有关信息:为了防止各个显示器同时显示同一个字符,各显示器的公共端并不接到电源或地,而是接到另一组控制信号,即位输出口上。在动态扫描显示方式下,一组数码管显示器需要两组信号控。一组是字段码输出口输出的字形代码,用来控制显示的字符形状;另一组是位输出口输出的控制信号,用于控制哪一位显示器工作,也称为位码。在两组信号的共同控制下,可以按顺序一位一位地轮流点亮每一个显示器显示各自的字符,以实现数码管的动态扫描显示。”都是我在图书馆的大收获。5、单片机

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号