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