《数字显示与键盘输入设计武汉理工.doc》由会员分享,可在线阅读,更多相关《数字显示与键盘输入设计武汉理工.doc(20页珍藏版)》请在三一办公上搜索。
1、学 号: 012111034课 程 设 计题 目数字显示与键盘输入设计学 院计算机科学与技术学院专 业计算机科学与技术班 级姓 名指导教师袁小玲 2013年7月4日目录课程设计任务书2数字显示与键盘输入设计31.系统描述:31.1实验目的:31.2实验设备:31.3实验要求:32.实验过程:32.1实验原理:32.2实验步骤:82.2.2软件设计:92.2.3设计成功标志:102.3程序设计:102.4 程序代码:113.调试过程:153.1 程序编译调试154.课程设计总结17本科生课程设计成绩评定表18课程设计任务书学生姓名: 专业班级: 计算机zy1101班 指导教师: 袁小玲 工作单位
2、:计算机科学与技术学院题 目: 数字显示与键盘输入例程设计初始条件:1. 课程设计使用ZG211硬件综合实验平台(8051单片机),配有课程设计接口芯片和辅助芯片以及器件;2. ZG211有程序设计集成开发环境,程序设计语言为C语言;3. ZG211硬件综合实验平台使用说明书;要求完成的主要任务: (包括课程设计工作量及其技术要求,撰写说明书具体要求)1. 学习使用ZG211硬件综合实验平台,程序设计集成开发环境;2. 根据课程设计题目,进行需求分析,搞清楚课程设计需要设计需求和需要解决的设计内容。3. 查阅和学习课程设计题目需要的接口芯片资料,掌握接口芯片的使用方法和编程要领。查阅和学习课程
3、设计题目需要的辅助芯片以及器件资料。4. 设计接口芯片和辅助芯片以及器件与8051单片机连接硬件电路原理图。5. 设计与硬件电路原理图对应的C语言程序(或8051汇编语言)。给出程序流程图。在集成开发环境中调试程序。给出程序的详细注释。能够解释使用程序模拟电路时序信号和数据。6. 撰写课程设计报告,1)详细陈述以上的设计过程;2)详细陈述电路的调试过程。时间安排:第187周:1. 熟悉ZG211硬件综合实验平台,KEILC UVISION2 集成开发环境;查阅接口芯片资料,熟悉接口芯片和它的使用方法。2. 设计硬件电路原理图,。第19周:1. 使用C语言或汇编语言设计和调试接口程序。2. 撰写
4、计算机硬件综合设计报告。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日数字显示与键盘输入设计1.系统描述:1.1实验目的:1 掌握对单片机IO口的操作,及中断的应用2 掌握显示接口芯片CH451的运用1.2实验设备:1 PC 机一台2 ZG-211 单片机系统实验板一块3 实验连接线若干4 芯片:CH451,89S525 并口编程线一根6 配套电源1 个1.3实验要求:1 能正常操作LED数码显示2 能通过中断方式接收按键信息2.实验过程:2.1实验原理:本实验的显示接口采用 CH451 芯片。该芯片整合了数码管显示驱动和键盘扫描控制可以动态驱动8 位数码管或者64 位LED
5、,具有BCD 译码、闪烁、移位等功能;同时还可以进行64 键的键盘扫描;芯片内部有多个寄存器控制整个芯片的运行,其中有8 个寄存器存入所要显示的数字,每个寄存器有8 位,每一位控制一个数码管其中的一段(1 为点亮,0 为熄灭)。单片机通过4 根信号线(串行数据输入线DIN、串行数据时钟线DCLK、串行数据加载线LOAD、串行数据输出线DOUT)控制CH451,显示数据,同时通过CH451 对键盘的扫描,达到人机交换信息的目的。该芯片与实验板相关器件连接原理图如下:CH451原理图CH451引脚图 CH451操作命令表1 空操作:0000XXXXXXXXB空操作命令不对CH451 产生任何影响。
6、为了在不影响CH451 的前提下变化DCLK 以清除看门狗计时,也可以发送空操作命令。空操作命令可以只发送有效数据B8B11,简化描述是0000。2 芯片内部复位:001000000001B内部复位命令将CH451 的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH451总是被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。3 字数据左移:001100000000B字数据左移命令将CH451 的字数据左移一次,即从DIG0 向DIG7 移动一位,然后最右边的DIG0 补进数据00H。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据左移命令,显示变为“7654
7、321 ”(不译码方式)或者“76543210”(BCD 译码方式)。4 字数据右移:001100000010B字数据右移命令将CH451 的字数据右移一次,即从DIG7 向DIG0 移动一位,然后最左边的DIG7 补进数据00H。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据右移命令,显示变为“ 8765432”(不译码方式)或者“08765432”(BCD 译码方式)。5 字数据左循环:001100000001B字数据左循环命令将CH451 的字数据左循环一次,即从DIG0 向DIG7 移动一位,然后最右边的DIG0 补进原DIG7 的数据。例如,在数码管DIG7D
8、IG0 显示“87654321”时,执行字数据左循环命令,显示变为“76543218”。6 字数据右循环:001100000011B字数据右循环命令将CH451 的字数据右循环一次,即从DIG7 向DIG0 移动一位,然后最左边的DIG7 补进原DIG0 的数据。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据右循环命令,显示变为“18765432”。7 设定系统参数:010000000WDOGKEYBDISPB设定系统参数命令用于设定CH451 的系统级参数:看门狗使能WDOG,键盘扫描使能KEYB,显示驱动使能DISP。各个参数均通过1 位数据控制,将相应的数据位置为
9、1 则启用该功能,否则关闭该功能(默认值)。例如,命令数据010000000101B 表示启用看门狗的功能、关闭键盘扫描的功能、启用显示扫描驱动的功能。8 设定显示参数:0101MODELIMITINTENSITYB设定显示参数命令用于设定CH451 的显示参数:译码方式MODE,扫描极限LIMIT,显示亮度INTENSITY。译码方式MODE 通过1 位数据控制,置1 时选择BCD 译码方式,置0 时选择不译码方式(默认值)。扫描极限LIMIT 通过3 位数据控制,数据001B111B 和000B 分别设定扫描极限为17 和8(默认值)。显示亮度INTENSITY 通过4 位数据控制,数据0
10、001B1111B 和0000B 分别设定显示驱动占空比为1/1615/16 和16/16(默认值)。例如,命令数据010101110000B 表示选择不译码方式、扫描极限为7、显示驱动占空比为16/16;命令数据010110001010B 表示选择BCD 译码方式、扫描极限为8、显示驱动占空比为10/16。9 设定闪烁控制:0110D7SD6SD5SD4SD3SD2SD1SD0SB设定闪烁控制命令用于设定CH451 的闪烁显示属性:D7SD0S 分别对应于8 个字驱动DIG7DIG0。闪烁属性D7SD0S 分别通过1 位数据控制,将相应的数据位置为1 则使能闪烁显示,否则为正常显示,不闪烁(
11、默认值)。例如,命令数据011000100001B 表示设定数码管DIG5 和DIG0 闪烁显示,其余数码管正常显示,不闪烁。10 加载字数据:1DIG_ADDRDIG_DATAB加载字数据命令用于将字数据DIG_DATA 写入DIG_ADDR 指定地址的数据寄存器中。DIG_ADDR 通过3 位数据指定数据寄存器的地址,数据000B111B 分别指定地址07,对应于DIG0DIG7 引脚驱动的8 个数码管。DIG_DATA 是8 位的字数据。例如,命令数据100001111001B 表示将字数据79H 写入第1 个数据寄存器,如果是不译码方式,则DIG0引脚驱动的数码管将显示E;命令数据11
12、0010001000B 表示将字数据88H 写入第5 个数据寄存器,如果是BCD 译码方式,则DIG4 引脚驱动的数码管将显示8.11 读取按键代码:0111XXXXXXXXB读取按键代码命令用于获得CH451 最近检测到的有效按键的按键代码。该命令是唯一的具有数据返回的命令,CH451 从DOUT 引脚输出按键代码,按键代码总是7 位数据,最高位是状态码,位5位0 是扫描码。读取按键代码命令的位数据B0B7 可以是任意值,所以控制器可以将该操作命令缩短为4 位数据B8B11。例如,CH451 检测到有效按键并中断,按键代码是5EH,简化描述1110HLHHHHL表示先向CH451 发出读取按
13、键代码命令0111XXXXXXXXB,然后从DOUT 获得按键代码5EH。CH451BCD码译码表 2.2实验步骤: 2.2.1硬件连接:CH451CPU89S52J5_89S52P34P15P33P32J23_CH451LOADDCLKDINDOUT将并口线插在实验板与 PC 机的并口插座上;按上图 连接实验线路;仔细检查无误后,接通电源。(图中箭头表示需要接线的地方)(上图为连线图,也是接线成功后的图)2.2.2软件设计:进入 KEILC 环境编写程序。89S52 首先向DIN 发送一个上升沿,通知CH451 数据线使能,然后89S52 发送010000000101,01011000000
14、0,通知CH451 打开键盘扫描功能,开启显示功能,选择BCD 译码方式,在就可以向每个显示寄存器送入要显示的数据。例如:八个数码管全显示“8”时送入的二进制数据为:100000001000;100100001000;101000001000;101100001000;110000001000;110100001000;111000001000;111100001000;打开 89S52 的外部中断1,并设置为下降沿中断方式,当KEY1-KEY5 任一键按下时,CH451的DOUT 脚会产生一个下降沿,这时89S52 便会产生一个中断,并进入中断程序。中断程序中,应首先关闭中断,然后向CH45
15、1 发送读键值指令(0111),读取键值。KEY1-KEY5 的键值分别为:0X40,0X49,0X52,0X5B,0X64. 在89S52在向CH451发送数据时,先发送低位数据。如二进制数据:100000000101,先送1,再送0,再送1,依次类推;而接收时则相反,先接收高位。程序编译成功后,打开联机下载软件,将HEX 文件下载到89S52 中,观看程序运行结果,如有问题则修改程序,再次下载。调试成功后,将送显程序,和读取键值程序,各写成一个函数,供后续实验模块调用。2.2.3设计成功标志:1 启动实验板,自动显示“-”2 按下1 号按键,显示“001”3 按下2 号按键,显示“002”
16、4 按下3 号按键,显示“003”5 按下4 号按键,显示“004”6 按下5 号按键,显示“005”2.3程序设计: 程序原理图2.4 程序代码: /*|项目武汉理工大学教学实验板(ZG211 定制) |文件Display.c |功能LED显示演示程序 |编写中格电子 |创建时间2005/09/08 |版本1.0 |版本说明 |修改历史 |修改原因 |修改时间 |修改后特性 |*/#include reg52.h#include def.h#include display.h#include sub.h#include func.hextern unsigned char key_print
17、;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 = 0;DCLK = 1;LOAD=1;LOAD=0;LOAD=1;
18、/*|函数名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); DIN=0;DIN=1;DCLK=1;LOAD=1;DOUT=1;sen
19、d_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_data|(temp 启动实验板,自动显示“-”2 按下1 号按键,显
20、示“001”3 按下2 号按键,显示“002”4 按下3 号按键,显示“003”5 按下4 号按键,显示“004”6 按下5 号按键,显示“005”4.课程设计总结此次硬件课程设计是我们第一次接触单片机,还是感觉到相当陌生的,对于CH451芯片,我们以前都是没有接触过的,但是实验本身并不是很难,主要原因在于接线方面还是很轻松的,还有关于单片机的代码也可以直接得到,只需要我们在电脑上编译调试通过然后下载到单片机的芯片上就可以。而这次实验还是给了我很大的收获:首先,让我对编程有了更加深刻的认识,编程不仅仅是在电脑上写程序并且运行,然后封装成为一个软件,更能够借组与单片机实现更多的功能,能够在物联网的道路上发挥更大的作用;其次了解了CH154芯片的结构和功能,对于以后再学习单片机的相关知识打下了一个很好的基础;最后则是对并行接口和接口编程有了更加深刻的认识。本科生课程设计成绩评定表班级:计算机ZY1101班姓名: 张瑞 学号:0121110340117序号评分项目满分实得分1学习态度认真、遵守纪律102设计分析合理性103设计方案正确性、可行性、创造性204设计结果正确性405设计报告的规范性106设计验收10总得分/等级评语:注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格指导教师签名:201 年月日