东南大学MCU课程设计报告
东南大学微机实验综合课程设计

东南大学自动化学院微机实验及课程设计报告《参数可调波形发生器》姓名:学号:专业:实验室:组别:同组人员:设计时间:评定成绩:审阅教师:目录一.设计目的和要求--------------------------------------3 二.原理设计--------------------------------------------4 三.方案论证与实现--------------------------------------6 四.设计思路及流程图--------------------------------------------------------7 五.编程实现--------------------------------------------------------------------10六.方案测试与结果分析----------------------------------18 六.改进与提高------------------------------------------19 七.分析与总结------------------------------------------19一、设计要求1)基本要求编制1 个参数在线可调的波形发生程序,由D/A 输出,构成参数在线可调的波形发生器,并用示波器观察波形。
函数波形可选f(t)=asin(bt),其中a、b参数在线可调(也可自己选择,但要求至少2 个参数可调且调节很明显)。
参数调节采用如下两种方式之一:(1)两个可调电位器输出通过A/D 转换后作为可调参数;(2)参数通过实验装置上的键盘实时修改(调整);(3)精确时间,开关选择标准信号输出(例如a=2V, b=100πRAD/s,即50Hz 正弦波)。
2)设计提示(1)当用电位器调节参数时,输出零不能对应相应的参数值就为零;(2)当通过键盘修改参数时,先键入参数名如“a”,显示当前参数值,修改后再键入参数名,则修改参数完成,随后输出波形发生变化。
东南大学微机实验报告(二)

东南大学《微机实验及课程设计》实验报告实验二、汇编语言程序设计姓名:学号:专业:实验室评定成绩:审阅教师:实验目的:进一步熟悉汇编语言的编辑、宏汇编、链接和运行的基本概念熟练掌握动态调试程序TD/DEBUG的常用指令和窗口功能,学会用TD/DEBUG调试程序,修改数据和寄存器环境熟悉掌握汇编语言程序的典型数据结构设计、典型程序控制方法,了解DOS/BIOS功能调用的基本方法实验内容:基本操作内容:(1)、掌握进入全屏命令行方式、修改环境的方法启动开始菜单里的运行选项,键入cmd,即可启动命令行方式,在其属性栏中选择全屏即可进入全屏命令行方式。
(2)、确定源程序的存放目录,构建个人实验环境。
(3)、建立、编辑汇编源程序选择程序样本,构建典型的汇编程序框架,包括基本的数据段、堆栈段和代码段,编写程序实现如下功能:必做:2-1.从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其它字符不变),并按原顺序将这些字符在屏幕上显示出来(参考程序P36),并显示字符串“The total number is XXXXX”。
2-2.从键盘输入一个0~255之间的十进制数,将其转换为16进制数,并在屏幕上显示变换前后的数据(参考程序P38)。
选作:2-3、从键盘输入5个十六进制带符号数(范围为-128~+127),请将它们按从大到小排序,并将排序前后的数据显示在屏幕上。
(4)、用汇编工具(MASM/TASM.EXE)汇编源程序产生OBJ目标文件,将所要变异的源程序文件(文件名.asm)放到带汇编工具的文件夹中,在全屏命令行模式下,进入该文件夹,输入tasm 文件名.asm,回车后即可编译产生OBJ目标文件。
(5)、用链接程序(LINK/TLINK.EXE)产生EXE可执行文件,产生OBJ目标文件后,继续输入:tlink 文件名.obj,回车后即可产生EXE可执行文件。
(6)、用调试工具软件(TD.EXE/)调试执行程序○1在Windows中启动TDa、仅启动TD而不载入要调试的程序双击TD.EXE文件名,Windows就会打开一个DOS窗口并启动TD。
东南大学计算机硬件课程设计报告

计算机硬件课程设计设计报告学号:09008112 姓名:马京亚成绩:学号:09008123 姓名:郭晨成绩:东南大学计算机科学与工程学院二〇一〇年十一月目录一、设计名称: (3)二、实验目的: (3)三、实验任务: (3)四、设计方案: (4)1.数据格式和指令系统 (4)2.硬件结构设计 (5)3.数据通路设计 (6)4.控制器设计 (7)5.指令的微程序表 (10)6.总电路图及Rom (11)五、设计优化 (12)1.更改时序 (12)2.增加指令 (13)3.减少ROM空间 (17)4.总电路图 (19)六、测试结果与性能分析 (20)1.测试程序 (20)2.时序图 (21)3.编译报告中资源使用情况 (22)七、课程设计总结 (23)微程序控制的模型计算机的设计与调试二、实验目的:1.综合运用“计算机组成原理”和“数字电路”等课程的知识,通过对模型机的设计和调试,加深对计算机各部件工作原理的认识。
2.进一步掌握运用EDA 技术进行设计和调试的工作方法。
3.掌握计算机硬件设计的思想,方法及工作过程,进一步培养工程设计的能力。
三、实验任务:1.自行规定数据格式和指令格式,在所提供的条件范围内设计一台由微程序控制的模型计算机。
2.根据设计方案,将模型机调试成功,对设计进行优化。
3.整理出相关文件。
(1)数据格式和指令系统。
(2)总框图。
(3)详细电路图。
(4)微指令格式和微程序。
(5)调试过程和测试结果(包括测试程序)。
1.数据格式和指令系统采用8 位数据通路,数据采用8 位二进制定点表示。
7 6 5 4 3 2 1 0.设置7 条机器指令和2条面板操作指令(1)面板操作指令a.输入地址为PC 置初始值,即输入程序的起始地址,当K1 开关置“1”,K2 开关置“0”时执行此操作;b.输入程序将程序输入到内存的指定区域,当K1,K2 开关均置“1”时,由面板输入开关输入程序;c.本模型机设置K3 开关,K3 置1 表示执行单步操作;d. START 表示启动开关。
东南大学 单片机 实验报告

测控系统设计技术实验指导书东南大学仪器科学与工程学院2011年9月前言本教程适用于测控类及弱电类专业大学本科生以下课程的实验和实践教学:《智能仪器原理与设计技术》、《测控技术及系统设计》等;也适用于测控类及弱电类专业硕士研究生以下课程的实验和实践教学:《智能仪器设计》、《智能测控系统设计》等。
实验装置采用模块化设计,将有相互联系的各专业课程的实验组合起来,包含这些专业课程需要的若干单个实验,最后形成“从传感器→前置调理、接口电路→A/D转换电路→计算机(单片机)→后置接口、驱动电路→测控对象”接近实际应用系统的综合实验。
训练和提高学生在软、硬件设计调试方面的能力。
同时,帮助学生将各专业课程内容综合起来,融会贯通,形成系统的概念,迅速迈过从理论到实际的门槛。
本实验装置的操作过程在设置上尽量接近实际应用系统的设计调试过程。
学生做完实验后,就能够独立进行实际应用系统的软、硬件设计调试。
大多数实验的内容都设置了基本要求和高级要求,能够满足不同层次学生的需要。
实验装置“XYZ22型综合实验仪”获江苏省教育厅2000年自制实验仪器设备评比三等奖。
东南大学仪器科学与工程学院祝学云2011年9月目录第一章实验设备介绍 (1)一.实验设备的联接 (1)二.伟福(WAVE)G6W型单片机仿真开发器使用简介 (1)三.综合实验仪介绍 (2)第二章基本程序设计实验 (11)实验一数据传送实验 (11)实验二多字节十进制加法实验 (13)第三章 I/O口(8255)扩展及外部中断实验 (15)实验三8255输入输出实验 (15)实验四外部中断实验 (18)第四章显示器、键盘及BCD拨码盘扩展实验 (21)实验五动态LED显示实验 (21)实验六BCD拨码盘扩展实验 (25)实验七键盘显示器扩展实验 (28)第五章计数器定时器实验 (32)实验八计数器实验 (32)实验九定时器(时钟)实验 (35)第六章串行通信实验 (39)实验十串行口实验 (39)实验十一键盘键值远距离传输实验 (44)第七章 D/A实验 (49)实验十二D/A转换实验(DAC0832) (49)实验十三程控放大器实验 (51)实验十四程控信号发生器实验 (54)第八章 A/D转换实验 (49)实验十五A/D转换实验(ADC0809) (59)实验十六A/D转换实验(ICL7135) (62)第九章数据处理程序设计实验 (66)实验十七数字滤波程序设计实验 (66)实验十八非线性校正及标度变换程序设计实验 (72)第十章测量与控制实验 (81)实验十九频率测量实验 (81)实验二十温度测量实验 (86)实验二十一温度测量控制实验 (99)第十一章自主设计型实验 (125)实验二十二简易数字电压表设计 (125)实验二十三简易温度测量系统设计 (127)实验二十四简易温度测量控制系统设计 (130)附录实验仪面板示意图 (133)第一章实验设备介绍一、实验设备的联接图1-1 设备联接1、单片机仿真开发器通信电缆接PC机串行口1或2;2、单片机仿真开发器仿真头接实验仪;3、根据实验需要,实验仪接或不接测量控制对象;4、先接通仿真器电源,再接通实验仪电源;5、实验过程中,需要连接硬件模块的,先关闭电源再接线,检查正确后打开电源。
MCU及接口技术实验教程课程设计

MCU及接口技术实验教程课程设计1. 简介本篇文档是关于MCU及接口技术实验教程课程设计的详细内容阐述。
该课程设计旨在帮助学生通过实践学习MCU的基本原理和应用,包括常见单片机架构、编程原理和MCU与外界接口的应用等方面。
2. 实验内容本课程设计共分为三个实验,分别是:•实验一:LED闪烁控制•实验二:按键中断控制LED亮灭•实验三:外部中断应用2.1 实验一:LED闪烁控制2.1.1 实验目的本实验旨在帮助学生熟悉MCU的基本编程方法,并掌握LED闪烁的控制方法。
2.1.2 实验原理LED是一种电子元件,主要用于信号指示、显示灯等。
为了控制LED的亮灭,需要连上MCU的GPIO口,并按照高、低电平控制LED的亮灭。
2.1.3 实验步骤1.确定MCU的GPIO口,将LED连接到GPIO口2.编写程序,配置GPIO口初值3.在主程序中设置循环控制,控制LED的亮灭4.下载程序,观察LED的闪烁状态2.1.4 实验结果经过实验,LED应该能够按照编写的程序进行闪烁,证明程序编写及控制方法正确。
2.2 实验二:按键中断控制LED亮灭2.2.1 实验目的本实验旨在帮助学生进一步掌握中断编程方法,了解按钮中断的使用方法。
2.2.2 实验原理按键中断控制LED亮灭是一种基础应用,可用于实现按钮控制开关灯等功能。
当MCU检测到按键按下时,会产生中断请求,MCU会在中断服务函数里面处理相关操作。
通过中断服务函数可以实现按钮控制LED 开关等功能。
2.2.3 实验步骤1.将按键与MCU的GPIO口相连2.配置按键对应GPIO口的中断方式3.编写程序,实现中断服务函数和控制LED亮灭的主函数4.下载程序,观察LED的亮灭状态2.2.4 实验结果经过实验,当按键按下时,LED灯能够根据设置的程序进行亮灭,证明按键中断控制LED亮灭方法正确。
2.3 实验三:外部中断应用2.3.1 实验目的本实验主要是让学生进一步了解外部中断的使用方法,并掌握外部中断的应用方法。
东大单片机实验报告三

东南大学生物科学与医学工程学院单片机系统设计与应用实验报告第三次实验实验名称:数据传送实验专业:生物医学工程姓名:学号:同组人员:学号:实验室: 医用电子技术实验中心(综合楼716)实验时间:评定成绩:审阅教师:目录一、实验题目 (3)二、实验目的 (3)三、实验器材 (3)四、实验内容 (3)1.实验方案 (3)1.1方案流程图 (3)1.2源程序 (5)2.实验结果及分析 (12)2.1方案一结果 (12)2.2方案二结果 (12)2.3课上更改程序结果 (13)3. 程序调试 (14)五、心得体会 (14)六、参考文献 (14)一、实验题目1.将指定内存中的数按正负数分别存放于内存和外部RAM中,并对负数进行求补后再放入内存指定单元。
二、实验目的1.进一步掌握程序的编辑、汇编及调试方法;2.掌握单片机内部RAM和外部RAM的数据操作;3.了解单片机系统地址分配概念。
三、实验器材1、G6W仿真器一台2、MCS—51实验板一台3、PC机一台4、电源一台四、实验内容1.以数据表格形式在ROM中建立一个含有正数和负数的表格,数据长度为16个字节,要求放置八个正数、八个负数,正、负数应离散随机放置,不允许三个以上同类型数据连续放置,数据的具体内容自行确定;2.编制程序,将数据表格中的数据读出并按正、负数归类,正数送入首地址为40H的内部RAM中;负数送入首地址为0B000H的外部RAM中;3.将首地址为0B000H的外部RAM中的数据取出并求其绝对值,然后送入内部RAM 的48H~4FH单元。
1.实验方案1.1方案流程图1.2源程序本次试验,我先后写了两个程序,基本原理相似。
⑴先初始化,将各地址存入寄存器中,便于操作。
⑵查表取数,判断数的正负,将正负数分别存放在指定地址。
注意地址指针的入栈保护。
⑶判断数是否取完,取完后对存放在外RAM中的负数取出求补放入指定内存。
方案一ORG 0000HAJMP MAINORG 0030HMAIN:MOV SP,#70H ;设置堆栈指针MOV A,#10H ;保存个数MOV DPTR,#0E00H ;表地址MOV R0,#0B0H ;负数存放地址MOV 12H,#00HMOV R1,#40H ;正数存放地址START:PUSH A ;入栈保护PUSH DPHPUSH DPLMOV A,#00H ;寄存器A初始化MOVC A,@A+DPTR ;取表中数至寄存器A判断正负MOV 11H,A ;11H暂存数RLC A ;取标志位JC FUZHENG:MOV A,11HMOV @R1,A ;送至正数地址单元INC R1 ;正数地址加1POP DPLPOP DPHPOP AINC DPL ;指向表中下一个数DEC A ;个数减一JNZ START ;不为0继续操作JMP DO1 ;否则到DO1FU:MOV A,11HMOV DPH,R0 ;DPTR改为指向负数地址MOV DPL,12HMOVX @DPTR,A ;负数送外RAM中的负数地址中INC 12H ;指向下一个地址POP DPLPOP DPHPOP AINC DPL ;指向下一个地址DEC A ;个数减一JNZ STARTDO1:MOV A,#08H ;负数个数MOV DPTR,#0B000H ;指向负数所在首地址DO:PUSH AMOVX A,@DPTR ;取负数CPL A ;取反加1INC AMOV @R1,A ;送入48H地址INC R1INC DPTRPOP ADEC A ;个数减一JNZ DO ;没做完则重复SJMP $ORG 0E00H ;表TABLE:DB 17H,10H,81H,25HDB 0B2H,0A4H,30H,08HDB 0D6H,54H,01H,8FHDB 0C0H,27H,0CDH,0B1H方案二ORG 0000HAJMP MAINORG 0030HMAIN:MOV R0,#0F0H ;R0存放表的高位地址MOV R2,#00H ; R2存放表的低位地址MOV R1,#40H ; R1存放正数地址MOV R3,#10H ;R3存放数的个数MOV DPTR,#0B000H;外部RAM地址PUSH DPHPUSH DPLSTART:MOV DPH,R0 ;取表地址MOV DPL,R2CLR AMOVC A,@A+DPTR ;取数MOV R4,A ;数暂存于R4RLC A ;循环左移得标志位JC FU ;判断正负,若为负数则到FU ZHENG:MOV A,R4MOV @R1,A ;正数放入正数地址单元INC R1 ;地址加一INC R2DJNZ R3,START ;数没有取完则转STARTJMP END1 ;否则转END1FU:MOV A,R4POP DPLPOP DPHMOVX @DPTR,A ;取数INC DPTR ;地址加一PUSH DPHPUSH DPLINC R2DJNZ R3,START ;判断是否取完END1:MOV DPTR,#0B000H ;指向外部RAMMOV R5,#08H ;负数个数DO:MOVX A,@DPTR ;取数CPL A ;求补INC AMOV @R1,AINC R1INC DPTRDJNZ R5,DOORG 0F000H ;表DB 18H, 30H, 0A0H, 50HDB 87H, 0B2H, 1CH, 0D6HDB 28H, 8FH, 0C3H, 10HDB 1CH, 0CDH, 68H, 0D6H课上根据老师的要求,改变了外RAM地址,正数地址以及负数地址,程序如下。
东南大学MCU第一二次实验

东南大学自动化学院课程名称:M C U技术及课程设计第一次实验实验一:I O实验—L E D流水灯实验二:I O实验—按键输入中断与查询院(系):自动化专业:自动化姓名:学号:实验室:实验组别:同组人员:实验时间:2015年4月30日评定成绩:审阅教师:实验一:I O实验—L E D流水灯一、实验目的与要求1.实验目的(1)了解M S P430F6638I O口的基本功能。
(2)熟悉I O口的基本操作。
2.实验要求编写程序,调用头文件m s p430f6638.h,使开发板上3个L E D依次点亮,采用软件延时方式(约0.5~1s左右,人眼能够分辨即可)使得每个灯轮流点亮一段时间,实现流水灯的效果。
二、实验原理(1)开发板上的3个L E D灯和I O口对应关系如图1-1所示。
图1-1实验箱L E D引脚连接图其中L E D_Y E L L O W---P4.6、L E D_G R E E N---P4.5、L E D_R E D---P4.4,具体见图1-2。
图1-2开发板上L E D的电路和实物图完成本实验需要用到两个寄存器:P x D I R、P x O U T,P4端口相关寄存器信息如表1-1所示。
表1-1P4端口相关寄存器地址信息(1)方向寄存器(P x D I R)该寄存器是一个8位寄存器,寄存器的每一位对应一个I O口引脚。
对相应位置0,表示该I O口用作输入。
对相应位置1,表示该I O口用作输出。
(2)输出数据寄存器(P x O U T)该寄存器是一个8位寄存器,寄存器的每一位对应一个I O口引脚。
对相应位置0,对应I O口输出低电平。
对相应位置1,对应I O口输出高电平。
位基本操作见表1-2所示。
表1-2位基本操作三、实验步骤1.将P C与开发板相连;2.建立C C S工程;3.选择对该工程进行编译链接,生成.o u t文件。
然后选择,将程序下载到实验板中。
程序下载完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择F3查看具体函数。
东南大学MCU课程设计报告

东南大学MCU课程设计报告东南大学自动化学院《MCU技术及课程设计》课程设计报告姓名:学号:专业:自动化实验室:金智楼组别:同组人员:设计时间:2017年08月28日——2017年09月06日评定成绩:审阅教师:目录一. 课程设计的目的与要 (3)二. 原理设计 (3)三. 方案论证 (8)四.方案实现与测试 (8)五.分析与总结 (9)一.课程设计的目的与要求本次设计使用MSP430F6638实现一基于单片机的电子密码锁的设计,其主要具有如下功能:1.密码通过键盘输入,若密码正确,则绿灯亮,表示密码锁打开,若密码错误,红灯亮,表示密码锁关闭。
2.按AC键可以清除已输入的密码,重新输入。
二. 原理设计1.数码管显示(1) TM1638 控制芯片TM1638 是带键盘扫描接口的 LED驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。
主要应用于冰箱、空调、家庭影院等产品的高段位显示屏驱动。
TM1638 原理图如5-1所示,其中SEG_DIO,SEG_CLK,SEG_STB 与 MSP430芯片中 P3.5, P3.4, P3.2 三个 IO 口相连,仅占用 3 个端口即可完成数据的输入输出,大大节约单片机的 IO 口和开发板的空间,降低了布线的难度。
TM1638 与 MSP 430 实验箱连接示意图如图 4-1 所示,实验开发板 LED 数码管对应关系见图 5-2。
(2) TM1638 接收数据串行数据传输格式:读取和接收 1 个 BIT 都在时钟的上升沿操作。
数据接收(写数据)时序如图 5-4 所示。
以下写数据代码仅作为参考。
(更多关于TM1638 的程序请参考给出的TM1638.h 和 TM1638.c 两个文件以及芯片说明书)void TM1638_Write(unsigned char DATA) //写数据函数{ unsigned char i; DIO_OUT; //将DIO 配置为输出状态for(i=0;i<8;i++) { CLK_low; if(DATA & 0x01){ DIO_high; } else {DIO_low;} CLK_high; DATA>>=1; //数据左移一位 } }(3) LED 数码管显示图 5-5 共阴极数码管连接图图5-5 给出一个共阴数码管的连接示意图,如果让该数码管显示“0”,那你需要在 GRID1 为低电平的时候让 SEG1, SEG2, SEG3, SEG4,SEG5, SEG6为高电平, SEG7 为低电平,即在 00H 地址单元里面写数据 3FH 就可以让数码管显示“0”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学自动化学院
《MCU技术及课程设计》
课程设计报告
姓名:学号:
专业:自动化实验室:金智楼组别:同组人员:
设计时间:2017年 08月28日—— 2017年09月06日评定成绩:审阅教师:
目录
一. 课程设计的目的与要 (3)
二. 原理设计 (3)
三. 方案论证 (8)
四.方案实现与测试 (8)
五.分析与总结 (9)
一.课程设计的目的与要求
本次设计使用MSP430F6638实现一基于单片机的电子密码锁的设计,其主要具有如下功能:
1.密码通过键盘输入,若密码正确,则绿灯亮,表示密码锁打开,若密码错误,红灯亮,表示密码锁关闭。
2.按AC键可以清除已输入的密码,重新输入。
二. 原理设计
1.数码管显示
(1) TM1638 控制芯片
TM1638 是带键盘扫描接口的 LED驱动控制专用电路,内部集成有 MCU 数
字接口、数据锁存器、 LED 高压驱动、键盘扫描等电路。
主要应用于冰箱、空
调、家庭影院等产品的高段位显示屏驱动。
TM1638 原理图如5-1所示,其中 SEG_DIO, SEG_CLK, SEG_STB 与 MSP430
芯片中 P3.5, P3.4, P3.2 三个 IO 口相连,仅占用 3 个端口即可完成数据的
输入输出,大大节约单片机的 IO 口和开发板的空间,降低了布线的难度。
TM1638 与 MSP 430 实验箱连接示意图如图 4-1 所示,实验开发板 LED 数码管对
应关系见图 5-2。
(2) TM1638 接收数据
串行数据传输格式:读取和接收 1 个 BIT 都在时钟的上升沿操作。
数据接收(写数据)时序如图 5-4 所示。
以下写数据代码仅作为参考。
(更多关于 TM1638 的程序请参考给出的
TM1638.h 和 TM1638.c 两个文件以及芯片说明书)
void TM1638_Write(unsigned char DATA) //写数据函数 { unsigned char i; DIO_OUT; //将 DIO 配置为输出状态 for(i=0;i<8;i++) { CLK_low; if(DATA & 0x01)
{ DIO_high; } else {
DIO_low;
} CLK_high; DATA>>=1; //数据左移一位 } }
(3) LED 数码管显示
图 5-5 共阴极数码管连接图
图 5-5 给出一个共阴数码管的连接示意图,如果让该数码管显示“0”,那你
需要在 GRID1 为低电平的时候让 SEG1, SEG2, SEG3, SEG4, SEG5, SEG6
为高电平, SEG7 为低电平,即在 00H 地址单元里面写数据 3FH 就可以让数码
管显示“0”。
共阴极 LED 数码管编码如表 5-1 所示。
(4) 开发板上 LED 地址
开发板共有 8 个 LED 数码管, 从左至右其地址分别为:08h,
0ah,0ch,0eh,00h,02h,04h,06h。
2.键盘读取
(1) 矩阵键盘的读取如图 5-6 所示,该键盘为 8*3bit。
一旦有按键按下,TM1638 中相关的寄存器的值就会改变(按键按下时相应
字节由 0 变 1),具体对应关系如图 5-7 所示。
(键盘不全,没有加、减、等于、
AC 等几个键)
注意: 1) 键盘用坐标形式表示,空白位表示本开发板暂未用到; 2) TM1638 最多可以读4 个字节,不允许多读。
读数据字节只能按顺序从BYTE1-BYTE4 读取,不可跨字节读。
例如:硬件上的 K2 与 KS8 对应按键按下时,此时想要读到此按键数据,必须需要读到第 4 个字节的第 5BIT 位,才可读出数据; 3) 当 K1 与 KS8,K2 与 KS8,K3 与 KS8 三个按键同时按下时,此时 BYTE4所读数据的 B4,B5,B6 位均为 1; 4) 组合键只能是同一个 KS,不同的 K 引脚才能做组合键;同一个 K 与不同的 KS 引脚不可以做成组合键使用; 5) 例
如:如果 Keyboard 的按键’1’按下,根据图 5-8,我们可以从<BYTE1,B2>读取按键值,
程序实现参考:(注意本例对键值的定义只是一个示例,按键1 的键值保存为 BIT1,按键 2
的键值保存为 BIT2,按键 3 的键值保存为 BIT3,
以此类推。
当然也可以保存为任意自己定义的值,比如说 1 保存为 0x01,2
保存为 0x02,按键 3 键值保存为 0x03,等等。
对于加、减、乘、除和 AC
等几个特殊的键,可以单独定义不重复的键值)
unsigned char c[4]; //对应BYTE1-BYTE4 unsigned int key_value=0x00;
//暂存TM1638读取的按键值 unsigned int i; STB_high; STB_low; TM1638_Write(0x42); //写地址 _delay_us(1); for(i=0;i<4;i++) c[i]=TM1638_Read();
//读取按键值 STB_high; if(c[0]&BIT2) //根据图5-8判断读取的按键
{ key_value |= BIT1; //如果是<BYTE1,B2>,则判断为按键’1’按下 }
下面给出 TM1638.c 中 read_key 主体函数,编写自己的 main 函数调用
read_key 来实现所需功能。
实际应用中可能需要根据要求将对键盘的处理程
序 read_key 进行自定义修改,比如本次实验中可以直接根据键值进行显示。
unsigned char Read_key(void) { unsigned char c[4]; unsigned int key_value=0x00; unsigned int i; STB_high; STB_low; TM1638_Write(0x42); _delay_us(1);
for(i=0;i<4;i++) c[i]=TM1638_Read(); STB_high; if(c[0]&BIT2) { key_value |= BIT1; }
else if(c[0]&BIT6) { key_value |= BIT4; } else if…… //此处编写对应
按键关系判断,key_value可任意定义的! for(i=0;i<16;i++) if((0x01<<i)==key_value)
break; return i; //注意返回值,是数字1-15,分别对应1-F按键。
返回值小于16有意
义,大于等于16则无意义。
如果需要定义其它按键(如+、-、*、/、AC等),则需要修改
返回值定义。
当然,更简单的可直接返回key_value,比返回i更好! }
三.方案论证
方案:
1.输入密码用矩形键盘,包括数字键和功能键。
2.LED数码管显示输入密码。
3.用发光二极管代替开锁的电路,绿灯表示开锁,红灯表示关锁。
4.按AC键清空数码管显示,并清除输入记录。
5.设置初始密码为“76543210”。
四. 方案实现与测试
1.将PC与开发板相连;
2.建立CCS工程;
3.选择对该工程进行编译链接,生成.out 文件。
然后选择,
将程序下载到实验板中。
程序下载完毕之后,可以选择全速运行程序,也可以选择
单步调试程序,选择 F3 查看具体函数。
也可以程序下载之后,按下
,软件界面恢复到原编辑程序的画面。
再按下实验板的复位键,运行程序。
测试:
输入正确密码:
输入错误密码:
五.分析与总结
在本次实验中,我们只实现了密码锁的最简单功能,由于时间原因,并未将原本计划的更改密码、错误报警等功能加入。
通过本次实验,我对于MSP430单片机有了一定的了解,基本能够熟练掌握应用。
本次实验为团队实验,考验的不光是我们对于单片机的理解与应用,更是对我们团队合作
能力的考察与锻炼,也是因为团队的合作,我们才能完成这次课程设计。