《数字显示与键盘输入设计_课程设计-推荐.doc》由会员分享,可在线阅读,更多相关《数字显示与键盘输入设计_课程设计-推荐.doc(19页珍藏版)》请在三一办公上搜索。
1、学 号: 0121010340704课 程 设 计题 目数字显示与键盘输入例程设计学 院计算机科学与技术学院专 业计算机科学与技术班 级姓 名指导教师2013年7月1日 目 录课程设计说明书 . 2数字显示与键盘输入设计. 31.系统描述:. 3 1.1实验目的 . 3 1.2实验设备:. 3 1.3设计要求:. 32.设计过程:. 3 2.1设计原理:. 3 2.2操作命令:. 5 2.3操作过程:. 8 2.3.1硬件连接:. 8 2.3.2软件设计:. 9 2.3.3设计成功标志:. 10 2.4程序设计:. 10 2.5程序代码 . 103.调试过程. 15 3.1程序编译调试 . 1
2、5 3.2在线编程写入程序 . 16 3.3实验结果显示 . 164.课程设计总结:. 17本科生课程设计成绩评定表. 18课程设计任务书学生姓名: 杨星 专业班级: 计算机1007班 指导教师: 唐祖锴 工作单位:计算机科学与技术学院题 目: 数字显示与键盘输入设计初始条件:1. 课程设计使用ZG211硬件综合实验平台(8051单片机),配有课程设计接口芯片和辅助芯片以及器件;2. ZG211有程序设计集成开发环境,程序设计语言为C语言;3. ZG211硬件综合实验平台使用说明书;要求完成的主要任务: (包括课程设计工作量及其技术要求,撰写说明书具体要求)1. 学习使用ZG211硬件综合实验
3、平台,程序设计集成开发环境;2. 根据课程设计题目,进行需求分析,搞清楚课程设计需要设计需求和需要解决的设计内容。3. 查阅和学习课程设计题目需要的接口芯片资料,掌握接口芯片的使用方法和编程要领。查阅和学习课程设计题目需要的辅助芯片以及器件资料。4. 设计接口芯片和辅助芯片以及器件与8051单片机连接硬件电路原理图。5. 设计与硬件电路原理图对应的C语言程序(或8051汇编语言)。给出程序流程图。在集成开发环境中调试程序。给出程序的详细注释。能够解释使用程序模拟电路时序信号和数据。6. 撰写课程设计报告,1)详细陈述以上的设计过程;2)详细陈述电路的调试过程。时间安排:第17周:1. 熟悉ZG
4、211硬件综合实验平台,KEILC UVISION2 集成开发环境;查阅接口芯片资料,熟悉接口芯片和它的使用方法。2. 设计硬件电路原理图,。第18周:1. 使用C语言或汇编语言设计和调试接口程序。2. 撰写计算机硬件综合设计报告。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日数字显示与键盘输入设计1. 系统描述:1.1实验目的:1 掌握对单片机IO口的操作,及中断的应用2 掌握显示接口芯片CH451的运用1.2实验设备:1 PC 机一台2 ZG-211 单片机系统实验板一块3 实验连接线若干4 芯片:CH451,89S525 并口编程线一根6 配套电源1 个实验板实物图:1
5、.3设计要求:1 能正常操作LED数码显示2 能通过中断方式接收按键信息2. 设计过程:2.1设计原理:本实验的显示接口采用 CH451 芯片。该芯片整合了数码管显示驱动和键盘扫描控制可以动态驱动8 位数码管或者64 位LED,具有BCD 译码、闪烁、移位等功能;同时还可以进行64 键的键盘扫描;芯片内部有多个寄存器控制整个芯片的运行,其中有8 个寄存器存入所要显示的数字,每个寄存器有8 位,每一位控制一个数码管其中的一段(1 为点亮,0 为熄灭)。单片机通过4 根信号线(串行数据输入线DIN、串行数据时钟线DCLK、串行数据加载线LOAD、串行数据输出线DOUT)控制CH451,显示数据,同
6、时通过CH451 对键盘的扫描,达到人机交换信息的目的。该芯片与实验板相关器件连接原理图如下:CH451原理图CH451引脚图 2.2操作命令:CH451操作命令表1 空操作:0000XXXXXXXXB空操作命令不对CH451 产生任何影响。为了在不影响CH451 的前提下变化DCLK 以清除看门狗计时,也可以发送空操作命令。空操作命令可以只发送有效数据B8B11,简化描述是0000。2 芯片内部复位:001000000001B内部复位命令将CH451 的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH451总是被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。3 字数据左移:0
7、01100000000B字数据左移命令将CH451 的字数据左移一次,即从DIG0 向DIG7 移动一位,然后最右边的DIG0 补进数据00H。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据左移命令,显示变为“7654321 ”(不译码方式)或者“76543210”(BCD 译码方式)。4 字数据右移:001100000010B字数据右移命令将CH451 的字数据右移一次,即从DIG7 向DIG0 移动一位,然后最左边的DIG7 补进数据00H。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据右移命令,显示变为“ 8765432”(不译码方式)或者
8、“08765432”(BCD 译码方式)。5 字数据左循环:001100000001B字数据左循环命令将CH451 的字数据左循环一次,即从DIG0 向DIG7 移动一位,然后最右边的DIG0 补进原DIG7 的数据。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据左循环命令,显示变为“76543218”。6 字数据右循环:001100000011B字数据右循环命令将CH451 的字数据右循环一次,即从DIG7 向DIG0 移动一位,然后最左边的DIG7 补进原DIG0 的数据。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据右循环命令,显示变为“1
9、8765432”。7 设定系统参数:010000000WDOGKEYBDISPB设定系统参数命令用于设定CH451 的系统级参数:看门狗使能WDOG,键盘扫描使能KEYB,显示驱动使能DISP。各个参数均通过1 位数据控制,将相应的数据位置为1 则启用该功能,否则关闭该功能(默认值)。例如,命令数据010000000101B 表示启用看门狗的功能、关闭键盘扫描的功能、启用显示扫描驱动的功能。8 设定显示参数:0101MODELIMITINTENSITYB设定显示参数命令用于设定CH451 的显示参数:译码方式MODE,扫描极限LIMIT,显示亮度INTENSITY。译码方式MODE 通过1 位
10、数据控制,置1 时选择BCD 译码方式,置0 时选择不译码方式(默认值)。扫描极限LIMIT 通过3 位数据控制,数据001B111B 和000B 分别设定扫描极限为17 和8(默认值)。显示亮度INTENSITY 通过4 位数据控制,数据0001B1111B 和0000B 分别设定显示驱动占空比为1/1615/16 和16/16(默认值)。例如,命令数据010101110000B 表示选择不译码方式、扫描极限为7、显示驱动占空比为16/16;命令数据010110001010B 表示选择BCD 译码方式、扫描极限为8、显示驱动占空比为10/16。9 设定闪烁控制:0110D7SD6SD5SD4
11、SD3SD2SD1SD0SB设定闪烁控制命令用于设定CH451 的闪烁显示属性:D7SD0S 分别对应于8 个字驱动DIG7DIG0。闪烁属性D7SD0S 分别通过1 位数据控制,将相应的数据位置为1 则使能闪烁显示,否则为正常显示,不闪烁(默认值)。例如,命令数据011000100001B 表示设定数码管DIG5 和DIG0 闪烁显示,其余数码管正常显示,不闪烁。10 加载字数据:1DIG_ADDRDIG_DATAB加载字数据命令用于将字数据DIG_DATA 写入DIG_ADDR 指定地址的数据寄存器中。DIG_ADDR 通过3 位数据指定数据寄存器的地址,数据000B111B 分别指定地址
12、07,对应于DIG0DIG7 引脚驱动的8 个数码管。DIG_DATA 是8 位的字数据。例如,命令数据100001111001B 表示将字数据79H 写入第1 个数据寄存器,如果是不译码方式,则DIG0引脚驱动的数码管将显示E;命令数据110010001000B 表示将字数据88H 写入第5 个数据寄存器,如果是BCD 译码方式,则DIG4 引脚驱动的数码管将显示8.11 读取按键代码:0111XXXXXXXXB读取按键代码命令用于获得CH451 最近检测到的有效按键的按键代码。该命令是唯一的具有数据返回的命令,CH451 从DOUT 引脚输出按键代码,按键代码总是7 位数据,最高位是状态码
13、,位5位0 是扫描码。读取按键代码命令的位数据B0B7 可以是任意值,所以控制器可以将该操作命令缩短为4 位数据B8B11。例如,CH451 检测到有效按键并中断,按键代码是5EH,简化描述1110HLHHHHL表示先向CH451 发出读取按键代码命令0111XXXXXXXXB,然后从DOUT 获得按键代码5EH。CH451BCD码译码表2.3实验步骤: 2.3.1硬件连接:CH451CPU89S52J5_89S52P34P15P33P32J23_CH451LOADDCLKDINDOUT将并口线插在实验板与 PC 机的并口插座上;按上图 连接实验线路;仔细检查无误后,接通电源。(图中箭头表示需
14、要接线的地方)其器件内部结构为: 2.3.2软件设计:进入 KEILC 环境编写程序。89S52 首先向DIN 发送一个上升沿,通知CH451 数据线使能,然后89S52 发送010000000101,010110000000,通知CH451 打开键盘扫描功能,开启显示功能,选择BCD 译码方式,在就可以向每个显示寄存器送入要显示的数据。例如:八个数码管全显示“8”时送入的二进制数据为:100000001000;100100001000;101000001000;101100001000;110000001000;110100001000;111000001000;111100001000;打
15、开 89S52 的外部中断1,并设置为下降沿中断方式,当KEY1-KEY5 任一键按下时,CH451的DOUT 脚会产生一个下降沿,这时89S52 便会产生一个中断,并进入中断程序。中断程序中,应首先关闭中断,然后向CH451 发送读键值指令(0111),读取键值。KEY1-KEY5 的键值分别为:0X40,0X49,0X52,0X5B,0X64.程序编译成功后,打开联机下载软件,将HEX 文件下载到89S52 中,观看程序运行结果,如有问题则修改程序,再次下载。调试成功后,将送显程序,和读取键值程序,各写成一个函数,供后续实验模块调用。2.3.3设计成功标志:1 启动实验板,自动显示“-”2
16、 按下1 号按键,显示“001”3 按下2 号按键,显示“002”4 按下3 号按键,显示“003”5 按下4 号按键,显示“004”6 按下5 号按键,显示“005” 2.4程序设计: 程序原理图2.5 程序代码: /*|项目武汉理工大学教学实验板(ZG211 定制) |文件Display.c |功能LED显示演示程序 |编写中格电子 |创建时间2005/09/08 |版本1.0 |版本说明 |修改历史 |修改原因 |修改时间 |修改后特性 |*/#include reg52.h#include def.h#include display.h#include sub.h#include fu
17、nc.hextern unsigned char key_print;extern unsigned char key_data;/*|函数名send_disp_data|函数功能向CH451芯片发送命令|参数comm:命令体|_data:命令参数|返回值无|*/void send_disp_data(unsigned char comm, unsigned char _data)unsigned char i; /送8BIT数据for(i=0;ii)&0x01;DCLK = 1;DCLK = 0;DCLK = 1;/送4BIT命令for(i=0;ii)&0x01;DCLK = 1;DCLK
18、= 0;DCLK = 1;LOAD=1;LOAD=0;LOAD=1;/*|函数名send_comm|函数功能向CH451芯片发送命令|参数comm:命令体|返回值无|*/void send_comm(unsigned char comm)unsigned char i;/送4BIT命令for(i=0;ii)&0x01;DCLK = 1;DCLK = 0;DCLK = 1;LOAD=1;LOAD=0;LOAD=1;/*|函数名disp_initialize|函数功能向CH451芯片发送初始化命令|参数无|返回值无|*/void disp_initialize()chang_4052(1); DI
19、N=0;DIN=1;DCLK=1;LOAD=1;DOUT=1;send_disp_data( CH451_SETSYS, 0x03);/设定系统参数send_disp_data( CH451_SETDIS, 0x80);/设定显示参数/*|函数名key|函数功能中断函数,获取当前按键状态|参数无|返回值无|*/void key() interrupt 0 unsigned char i,temp;EX0 = 0;/关中断key_data = 0;temp = 0;send_comm(CH451_KEY);for(i=0; i7; i+) temp = DOUT;key_data = key_d
20、ata|(temp 启动实验板,自动显示“-”2 按下1 号按键,显示“001”3 按下2 号按键,显示“002”4 按下3 号按键,显示“003”5 按下4 号按键,显示“004”6 按下5 号按键,显示“005”4. 课程设计总结:本次课程设计是我们学习使用ZG211硬件综合实验平台,程序设计集成开发环境,并使用C语言利用该硬件平台进行“数字显示与键盘输入”的例程设计,通过此次设计,使我对ZG211硬件综合实验平台有了进一步的了解,受益匪浅。在实验的开始阶段,由于对电路板的结构等不熟悉,认为此次实验异常困难,而且同时因首次利用该电路板来编程实现功能,所以在设计初期遇到了许多困惑,后在通过对
21、ZG211单片机系统实验指导书和各芯片资料的仔细学习,才对实验的原理,流程有了进一步的了解,在明白在对“数字显示与键盘输入”的设计中,实现较为容易,连接的导线仅有4条,只是在对keilc51软件和在线编程软件的使用花费了一定时间,后将其代码导入单片机,能正确得到实验结果,设计成功!在此次实验中,虽然自己的题目较为简单,不过仍使我学到了较多东西,那就是对ZG211硬件综合实验平台有了进一步理解,并能集合keilc51和在线编程软件进行编程实践,是将我们的软件编程与硬件设计的一次有机地集合,使我不再孤立对待软件与硬件,相信对我以后的工作和学习有很大的帮助!本科生课程设计成绩评定表班级:计算机1007班姓名: 杨星学号:0121010340704序号评分项目满分实得分1学习态度认真、遵守纪律102设计分析合理性103设计方案正确性、可行性、创造性204设计结果正确性405设计报告的规范性106设计验收10总得分/等级评语:注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格指导教师签名:2013 年月日