网站大量收购独家精品文档,联系QQ:2885784924

计算机网络接口课程设计.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络接口课程设计

青 岛 农 业 大 学理学与信息科学学院微机接口 课 程 设 计 报 告设 计 题 目 小键盘按键显示学生专业班级计算机科学与技术2012级02班学生姓名(学号)设计小组其他同学姓名(学号)指 导 教 师完 成 时 间2015.06.12实 习(设计)地点信息楼5262015年06月13日一、课程设计目的和任务1.实验目的:1. 了解8255的工作方式及应用,学会利用8255扩展I/O接口;2. 了解键盘扫描及数码显示的基本原理,熟悉 8255的编程;3.掌握行列式键盘、7段数码显示器接口的设计方法,验证7段数码管显示原理;4.通过,了解单片机中软硬件的相依性。2.实验任务:按下15个按键,对应在七段数码管上显示相应的0至F六个数。二、分析与设计1.设计任务分析:将 8255单元与键盘单元及单片机系统单元连接,在keil uvision软件上编写程序(语言使用C语言或者汇编语言皆可)编写实验程序,编译连接加载无误后,执行程序。扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管的显示值可为0~F共16个数。实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近6次按下的按键编号。2。 设计方案论证:本次试验是软硬结合,利用计算机语言(C语言或者汇编语言)进行编程,通过keil uvision软件硬件描述语言进行控制,然后下载至机箱实现,利用keil uvision软件以实现键盘部分简单键值识别与输出。硬件电路搭建时使用的是单片机实验机箱,通过8255单元扩展了I/O接口,保证了试验的可行性!实验原理: 并行接口是以数据的字节为单位与 I/O 设备或被控制对象之间传递信息。CPU和接口之间 的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电, 能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。3.硬件设计及原理图:8255内部结构及外部引脚如图2.3.1所示: 图2.3.1 8255内部结构及外部引脚图8255控制字格式如图2.3.2所示: (1)工作方式控制字 (2)C口按位置/复位控制字 图2.3.2 8255控制字格式键盘扫描及数码管显示单元原理图如图 2.3.3所示: 图2.3.3键盘扫描及数码管显示单元原理图8255单元原理图如图2.3.4所示:图2.3.4 8255单元原理图4.程序流程图和源代码清单:程序流程图2.4.1所示:是否有按键按下否 是图2.4.1 程序流程图程序源代码如下:#include Absacc.h#define C8255_AXBYTE[0x7F00]//8255 端口地址定义#define C8255_BXBYTE[0x7F01]#define C8255_CXBYTE[0x7F02]#define C8255_CONXBYTE[0x7F03]//数码管显示编码unsigned char a[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};unsigned char b[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};//显示缓冲unsigned char key_down; unsigned char key_value; unsigned char key_count;void delay(unsigned int time){unsigned int i; for(i=0; itime; i++);}void keyscan()//按键扫描函数{unsigned char cc;C8255_A = 0x00;//X1~X4 置 0cc = C8255_C;//得到 Y1~Y4 的值 key_down = (~cc) 0x0f;}void display()//显示函数{unsigned char i, j = 0xDF; for(i=0; i6; i++){C8255_A = 0xFF;C8255_B = a[b[i]];//查表输出显示 C8255_A = j;delay(0x100);j = (j1)|(j7);}}void

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档