微处理器原理与系统设计实验
微机原理与接口课程设计基于8086微处理器和8255A芯片的汽车信号灯微机控制系统的设计与实现

课程设计题目汽车信号灯目录一、设计目的 (2)二、系统硬件设计 (3)三、系统软件设计 (9)四、系统调试及结果 (15)五、总结和体会 (16)六、参考文献 (16)一、设计目的通过所学知识和现代计算机技术来模拟模拟汽车信号灯控制系统,把所学的理论的知识用到现实实践中去,加强了对理论知识的理解和记忆。
展示了计算机技术在汽车行业的应用。
设计出汽车信号灯微机控制系统。
汽车信号灯的作用是大家所熟知的,汽车通过显示不同的信号灯来告诉前后左右的行车者本汽车正在进行的操作,本控制系统采用8086微处理器作为处理器和可编程的8255A芯片来模拟汽车信号灯控制系统。
通过在实验箱上分别按K1,K2,K3和K4键来显示汽车左转、右转,前进和后退等状态。
左/右转弯开关K1,K2闭合时,对应的仪表板左/右转弯指示灯、左/右转弯头灯和左/右转弯尾灯闪烁;紧急开关闭合时,所有仪表板左右转弯灯、左右转弯头灯和左右转弯尾灯闪烁;当用户按K3时,也即踩刹车时,刹车开关闭合,刹车灯(左右红色尾灯)亮;停靠时(合上停靠开关),即按K4键时,所有的灯闪烁。
所需执行的操作由相应的开关状态反映,所需控制的信号灯有仪表板左/右转弯灯、暂停灯、照明远灯和照明近灯共五类类灯.二、系统硬件设计1.硬件连接图:利用8088驱动8255 8253来连接外部电路。
2.器件选择:CPU(8088) 1个发光二极管 5个74ALS373 2个电阻 5个74ALS245 1个 74LS00 5个8255 1个控制开关 5个8253 1个3、8088,8255,8253功能及说明8088的引脚包括20根地址线,16根数据线及控制线,状态线,时钟,电源和地线等,大致可分五大类.第一类只传送一种信息,第二类每个引脚电平的高低代表不同信息,第三类代表不同的工作方式,第四类每个引脚可以传送两种信息,第五类引脚在输入和输出时分别传送不同的信息.同时还要地址锁存器及数据总线收发器来构成最小系统.因本电路用到各种比较重要的芯片,因此有必要对芯片进行简要介绍。
微处理器系统结构及嵌入式系统设计(第二版)答案全

一1.2 以集成电路级别而言,计算机系统的三个主要组成部分是什么?中央处理器、存储器芯片、总线接口芯片1.3 阐述摩尔定律。
每18个月,芯片的晶体管密度提高一倍,运算性能提高一倍,而价格下降一半。
1.5 什么是SoC?什么是IP核,它有哪几种实现形式?SoC:系统级芯片、片上系统、系统芯片、系统集成芯片或系统芯片集等,从应用开发角度出发,其主要含义是指单芯片上集成微电子应用产品所需的所有功能系统。
IP核:满足特定的规范和要求,并且能够在设计中反复进行复用的功能模块。
它有软核、硬核和固核三种实现形式。
1.8 什么是嵌入式系统?嵌入式系统的主要特点有哪些?概念:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统,即“嵌入到应用对象体系中的专用计算机系统”。
特点:1、嵌入式系统通常是面向特定应用的。
2、嵌入式系统式将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。
3、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。
4、嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器系统软件和应用软件的要求也和通用计算机有以下不同点。
①软件要求固体化,大多数嵌入式系统的软件固化在只读存储器中;②要求高质量、高可靠性的软件代码;③许多应用中要求系统软件具有实时处理能力。
5、嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品一旦进入市场,就具有较长的生命周期。
6、嵌入式系统本身不具备自开发能力,设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
二2.2 完成下列逻辑运算(1)101+1.01 = 110.01(2)1010.001-10.1 = 111.101(3)-1011.0110 1-1.1001 = -1100.1111 1(4)10.1101-1.1001 = 1.01(5)110011/11 = 10001(6)(-101.01)/(-0.1) = 1010.12.3 完成下列逻辑运算(1)1011 0101∨1111 0000 = 1111 0101(2)1101 0001∧1010 1011 = 1000 0001(3)1010 1011⊕0001 1100 = 1011 01112.4 选择题(1)下列无符号数中最小的数是( A )。
微机课程设计心得体会

微机课程设计心得体会微机原理与系统设计作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。
这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。
但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。
因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。
其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和某某某思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在赵老师的辛勤指导下,终于游逆而解。
同时,在赵老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。
《微处理器系统结构与嵌入式系统设计》课程教案

《微处理器系统结构与嵌入式系统设计》课程教案第一章:微处理器概述1.1 微处理器的定义与发展历程1.2 微处理器的组成与工作原理1.3 微处理器的性能指标1.4 嵌入式系统与微处理器的关系第二章:微处理器指令系统2.1 指令系统的基本概念2.2 常见的指令类型及其功能2.3 指令的寻址方式2.4 指令执行过程第三章:微处理器存储系统3.1 存储器的分类与特点3.2 内存管理单元(MMU)3.3 存储器层次结构与缓存技术3.4 存储系统的性能优化第四章:微处理器输入/输出系统4.1 I/O 接口的基本概念与分类4.2 常见的I/O 接口技术4.3 直接内存访问(DMA)4.4 interrupt 与事件处理第五章:嵌入式系统设计概述5.1 嵌入式系统的设计流程5.2 嵌入式处理器选型与评估5.3 嵌入式系统硬件设计5.4 嵌入式系统软件设计第六章:嵌入式处理器架构与特性6.1 嵌入式处理器的基本架构6.2 嵌入式处理器的分类与特性6.3 嵌入式处理器的发展趋势6.4 嵌入式处理器选型considerations 第七章:数字逻辑设计基础7.1 数字逻辑电路的基本概念7.2 逻辑门与逻辑函数7.3 组合逻辑电路与触发器7.4 微处理器内部的数字逻辑设计第八章:微处理器系统设计与验证8.1 微处理器系统设计流程8.2 硬件描述语言(HDL)与数字逻辑设计8.3 微处理器系统仿真与验证8.4 设计实例与分析第九章:嵌入式系统软件开发9.1 嵌入式软件的基本概念9.2 嵌入式操作系统与中间件9.3 嵌入式软件开发工具与环境9.4 嵌入式软件编程实践第十章:嵌入式系统应用案例分析10.1 嵌入式系统在工业控制中的应用10.2 嵌入式系统在消费电子中的应用10.3 嵌入式系统在医疗设备中的应用10.4 嵌入式系统在其他领域的应用案例分析第十一章:嵌入式系统与物联网11.1 物联网基本概念与架构11.2 嵌入式系统在物联网中的应用11.3 物联网设备的硬件与软件设计11.4 物联网安全与隐私保护第十二章:实时操作系统(RTOS)12.1 实时操作系统的基本概念12.2 RTOS的核心组件与特性12.3 常见的实时操作系统及其比较12.4 实时操作系统在嵌入式系统中的应用第十三章:嵌入式系统功耗管理13.1 嵌入式系统功耗概述13.2 低功耗设计技术13.3 动态电压与频率调整(DVFS)13.4 嵌入式系统的电源管理方案第十四章:嵌入式系统可靠性设计14.1 嵌入式系统可靠性概述14.2 故障模型与故障分析14.3 冗余设计技术与容错策略14.4 嵌入式系统可靠性评估与测试第十五章:现代嵌入式系统设计实践15.1 现代嵌入式系统设计挑战15.2 多核处理器与并行处理15.3 系统级芯片(SoC)设计与集成15.4 嵌入式系统设计的未来趋势重点和难点解析第一章:微处理器概述重点:微处理器的定义、发展历程、组成、工作原理、性能指标。
微处理器系统结构与嵌入式系统设计教案(mod)

微处理器系统结构与嵌入式系统设计教案(mod)一、课程简介1.1 课程背景随着信息技术的飞速发展,微处理器和嵌入式系统在各个领域得到了广泛应用。
本课程旨在帮助学生了解微处理器系统的基本结构,掌握嵌入式系统设计的方法和技巧,培养学生进行嵌入式系统设计和应用的能力。
1.2 课程目标通过本课程的学习,学生将能够:(1)理解微处理器系统的基本结构及其工作原理;(2)掌握嵌入式系统设计的基本方法和步骤;(3)熟练使用嵌入式系统设计工具和开发环境;(4)具备嵌入式系统应用的能力,为实际工程项目奠定基础。
二、教学内容2.1 微处理器系统结构(1)微处理器的基本概念及其发展历程;(2)微处理器的组成和主要性能指标;(3)冯·诺依曼体系结构与哈佛体系结构的比较;(4)微处理器的内部结构和工作原理。
2.2 指令系统(1)指令的基本概念和分类;(2)指令的操作码和操作数;(3)指令的执行过程;(4)常见的指令系统架构。
2.3 存储系统(1)存储器的基本概念和分类;(2)随机存储器(RAM)和只读存储器(ROM);(3)存储器层次结构;(4)cache 存储器。
2.4 输入/输出系统(1)输入/输出接口的基本概念;(2)I/O 接口的编址方式和数据传输方式;(3)中断处理机制;(4)直接内存访问(DMA)。
2.5 嵌入式系统设计(1)嵌入式系统的概念及其与通用计算机系统的区别;(2)嵌入式系统的硬件和软件组成;(3)嵌入式系统设计的一般流程;(4)嵌入式系统开发工具和环境。
三、教学方法3.1 讲授通过讲解微处理器系统结构、指令系统、存储系统、输入/输出系统和嵌入式系统设计的相关知识,使学生掌握基本概念、原理和方法。
3.2 实验安排实验课程,让学生亲自动手进行嵌入式系统设计,巩固所学知识,提高实际操作能力。
3.3 讨论与交流组织课堂讨论,引导学生思考和分析实际问题,培养学生的创新能力和团队合作精神。
四、教学评价4.1 考核方式课程考核采用期末考试和平时成绩相结合的方式,其中期末考试占60%,平时成绩占40%。
《微处理器与嵌入式系统设计》实验报告

《微处理器与嵌入式系统设计》实验报告
微处理器与嵌入式系统设计实验报告
实验目的
本实验旨在通过使用微处理器和嵌入式系统设计,加深对相关
概念和原理的理解,并能够实际运用这些知识进行系统设计与开发。
实验步骤
1. 阅读相关理论材料,了解微处理器和嵌入式系统设计的基本
概念和原理。
2. 确定实验所需的硬件和软件资源,并进行准备工作。
3. 根据实验要求,进行系统设计与开发。
4. 实施系统测试与调试,确保系统正常运行。
5. 撰写实验报告,总结实验过程及结果。
实验结果
本实验按计划完成了实验步骤,并成功设计并开发了一个微处
理器和嵌入式系统。
实验分析
通过本实验,进一步加深了对微处理器和嵌入式系统设计的理解。
通过实践,我们能够更好地掌握其设计原理和应用技术,并能够运用这些知识解决实际问题。
总结
通过本次实验,我们深入研究了微处理器和嵌入式系统设计的基本概念和原理,并通过实践运用这些知识进行系统设计与开发。
通过实验的完成,我们对微处理器和嵌入式系统设计有了更深入的了解,对其应用领域和技术有了更清晰的认识。
参考文献
- [参考文献1]
- [参考文献2]。
计算机组成原理微程序系统实验总结

计算机组成原理微程序系统实验总结计算机组成原理是计算机科学与技术专业的基础课程之一,它主要研究计算机硬件系统的组成和工作原理。
在这门课程中,我们学习了计算机的基本组成部分,包括中央处理器(CPU)、存储器、输入输出设备等,并了解了它们之间的工作原理和相互关系。
在计算机组成原理课程的实验环节中,我们进行了微程序系统的实验。
微程序系统是一种将指令集的控制逻辑以微指令的形式存储在存储器中的控制方式。
通过实验,我们进一步加深了对计算机硬件组成和工作原理的理解,并掌握了微程序系统的设计和实现方法。
在实验过程中,我们首先需要了解微程序系统的基本原理和设计思想。
微程序系统通过将指令的控制逻辑以微指令的形式存储在存储器中,然后通过控制器按照微指令的顺序来执行指令。
这种方式可以使得计算机的指令集更加灵活,并且可以方便地进行指令的扩展和修改。
在实验中,我们使用了VHDL语言来描述微程序系统的控制逻辑。
VHDL是一种硬件描述语言,可以用于描述数字电路的结构和行为。
通过使用VHDL语言,我们可以将微程序系统的控制逻辑以硬件的形式描述出来,并通过仿真软件来验证其正确性。
在实验中,我们首先进行了微程序系统的设计。
我们根据指令集的要求,设计了适当的微指令,并将其存储在存储器中。
然后,我们设计了控制器的逻辑电路,用于按照微指令的顺序来执行指令。
最后,我们使用仿真软件对设计的微程序系统进行了验证,确保其能够正确地执行指令。
通过实验,我们不仅加深了对计算机组成原理的理解,还掌握了微程序系统的设计和实现方法。
我们学会了使用VHDL语言来描述微程序系统的控制逻辑,并通过仿真软件来验证其正确性。
通过这些实验,我们对计算机硬件的工作原理有了更加深入的了解,并且提高了我们的实践能力和问题解决能力。
计算机组成原理微程序系统实验是计算机科学与技术专业中重要的实践环节。
通过这个实验,我们加深了对计算机硬件组成和工作原理的理解,掌握了微程序系统的设计和实现方法,并提高了实践能力和问题解决能力。
电子科技大学微处理器系统结构与嵌入式系统设计实验一

电子科技大学实验报告课程名称微处理器系统结构与嵌入式系统设计实验名称ARM汇编基础实验任课教师 XXX 实验教师 XXX姓名黑XX学号2012XXXXXXXXX 实验地点 XXXXXXX 分组号 X组时间 XXXX年 X月X日XX:XX~XX:XX一、实验目的1.掌握ARM汇编指令。
2.学习掌握C与汇编混合编程基础。
3.熟练使用ARM调试工具RVDS进行调试操作。
二、实验内容1.熟悉ARM汇编。
2.用ARM汇编实现1+2+...+N。
3.C调用汇编实验(实现字符串拷贝功能)。
4.汇编调用C实验。
5.ARM汇编实现冒泡算法(选做)三、实验步骤1)用ARM汇编实现1+2+….n的运算。
在sum.s文件中,添加如下代码:SUN_L1ADD R0,R1BVS SUM_ENDCMP R1,R2BHS SUM_ENDADD R1,#1B SUN_L12)理解C和汇编,并用汇编程序实现字符串拷贝,并在C程序中调用该汇编程序。
在汇编文件testfile1. s中添加两行汇编代码,实现:拷贝源字符串的一个字节到R2中,将拷贝的字节复制到目标空间。
关键代码如下:strcopy;------------------------------------------;用汇编实现字符串拷贝LDRB R2,[R1],#1 ;R1对应源字符串首地址,利用寄存器间接寻址读取字符到R2STRB R2,[R0],#1 ;R0对应目的字符串首地址,利用寄存器间接寻址保存字符CMP R2,#0BNE strcopyMOV PC,LR;------------------------------------------END ;文件结束3)在汇编中调用C函数。
在汇编文件testfile2.s中相应位置添加汇编代码,通过调用c函数g()实现1+2+3+glovb1,结果存在R8中。
关键代码如下:STR LR,[SP,#-4]!MOVS R0,#1MOVS R1,#2MOVS R2,#3LDR R4,=glovb1LDR R3,[R4] ;传递参数BL gMOV R8,R0ADD sp,sp,#4LDR pc,[sp],#4中,通过伪指令EQU,定义N的值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微处理器原理与系统设计实验手册1 实验平台概述自从TI推出超低功耗MSP430单片机以来,MSP430凭借其优越的性能,丰富的外设,易于上手的特性备受业内工程师的欢迎。
单片机MSP430G2553集成的片内外设相当丰富,包括ADC、Timer、Comparator、Touch Key、SPI、I2C、UART等,MSP-EXP430G2 LaunchPad 是TI公司推出的1款MSP430开发板,它提供了具有集成仿真功能14/20引脚DIP插座目标板,可通过Spy Bi-Wire(2线JTAG)协议对系统内置的MSP430超值系列(G系列)进行快速编程和调试。
实验平台包含MSP-EXP430G2中配套的MSP430G2553单片机片内外设实验以及2个综合性实验。
2 实验平台硬件口袋实验平台硬件原理框图如图1所示,主要有以下部分:图1 口袋实验平台硬件原理框图(1)显示和输入单元:口袋实验平台利用I2C接口的TCA6416A扩展出16个低速双向IO(IO00~IO07,IO10~IO17)。
4个扩展IO用于控制LCD驱动器HT1621,4个用于机械按键输入,8个用于LED灯柱。
(2)触摸按键单元:两个触摸按键占用P2.0和P2.5两个GPIO,MSP430G2系列单片机的P1口和P2口全部具备振荡功能。
(3)模拟输出单元:外部扩展了12位串行数模转换器DAC7311,使用P1.0/P1.3/P2.2三个普通GPIO控制。
这三个IO同时被其他单元复用,但是由于DAC7311都是高阻输入口,所以无需跳线复用。
音频功放TPA301可以将DAC输出进行电流放大,以便驱动喇叭/蜂鸣器负载。
(4)扩展存储部分:由SPI协议控制TF卡,使用P1.1/SPI SOMI、P1.2/SPI SIMO、P1.4/SPI CLK三个USCI功能IO和1个普通P2.4控制。
(5)SLOPE ADC单元:使用拨盘电位器作为待测电阻。
P1.5/Comarator_A+、P1.3、P2.2三个IO进行控制。
P1.3、P2.2复用,但同样无需跳线。
(6)PWM单元:P2.1/TA1.1负责输出SPWM;轨至轨运放TLV2372负责将SPWM滤波为双极性模拟信号;TPS60400提供运放所需负电源;三电阻网络负责将双极性信号转变为单极性信号;P1.0/ADC10负责将单极性信号采样,P1.0功能复用,同样无需跳线。
表1 口袋实验平台硬件功能单元实验首次开设时间:2015年4月28日3 实验内容实验一系统时钟的使用实验目的:学会MSP430单片机时钟系统的使用。
掌握并熟练使用单片机时钟系统。
实验内容:设定DCO频率并观察DCO频率变化。
图2 观测DCO频率变化实验原理图实验仪器:计算机、信号源、示波器等。
实验原理:(1)MSP430G2553单片机的CPU时钟来源于数控振荡器DCO。
(2)CPU通过长延时控制P1.6的LED闪烁亮灭。
(3)单片机识别P1.3机械按键以后,改变DCO参数,一次设置为1M,8M,12M和16MHz,可观察到闪烁频率增加。
注意事项:不使用扩展板进行试验,图2所示跳线帽需插上实验。
工程名:4_KEY_LED_Change_DCO.本例程主要学习单片机时钟的配置方法和前后台的编程思想:1)主函数main()中,只调用初始化函数GPIO_Init()和执行后台程序,本例中后台程序就是长延时改变LED(P1.6)的亮灭。
2)前后台程序结构中,前台程序就是各种中断中执行的程序。
中断服务程序子函数PORT1_ISR()中不要去写“实质性”代码,只调用事件检测函数,这样能提高程序可读性。
3)事件检测函数P1_IODect(),在GPIO中断服务子函数中调用,检测按键是否“一定”被按下,然后调用事件处理函数。
4)事件处理函数P13_Onclick(),一旦被调用,就循环改写DCOCTL和BCSCTL1寄存器,从而改变DCO(也就是CPU)频率。
5)前后台程序中,前台程序的编写是难点。
但只要坚持用“事件检测”“事件处理”的方法处理,就能变得井井有条。
实验结果:对应的LED灯闪烁作业:ACLK,SMCLK通过设置输出到I/O口,编程实现不同频率(自选3个频率点)的输出,并且用示波器观测波形是否满足程序的要求。
实验二 MSP430单片机定时器的使用实验目的:学会MSP430单片机定时器的使用。
实验内容:基于PWM的LED调光控制,即通过按键控制LED亮度。
图3 LED调光控制实验原理图实验仪器:计算机、信号源、示波器等。
实验原理:1)TA(Timer_A定时器)可用于自动输出PWM而无需CPU干预。
2)编写PWM初始化、设定频率、改写占空比的库函数文件TA_PWM.c。
3)主函数调用库函数TA0_PWM_Init()完成TA_PWM初始化,然后休眠。
4)P1.3事件处理函数中,循环递增静态局部变量Bright的值,并调用库函数TA0_PWM_SetPeriod()改写占空比参数。
注意事项:不使用扩展板进行实验,图3所示跳线帽需插上实验。
工程名:6_PWM_LED.本实验主要学习TA自动生成PWM的原理,外部库函数文件的使用,静态局部变量的使用。
TA生成PWM波形的本质就是通过改写定时器的TACCR0寄存器改变PWM频率,改写TACCR1/2寄存器改变占空比。
编写库函数文件方便在各种程序中都能调用。
作业:1.在MSP430G2553单片机中,P1.0口和P1.6口通过晶体管控制两只灯泡的亮度。
要求从P1.0引脚输出占空比75%的PWM调制波形,从P1.6引脚输出占空比50%的PWM调制波形。
频率约为100Hz。
要求编写调试,并在LaunchPad实验板上调试通过。
2.用MSP430G2553单片机设计一个可编程的分频器,要求分频过程无需CPU干预,且可通过软件随时更改分频比。
从P1.0引脚(TACLK引脚)输入,从P2.0(TA1.0)输出。
要求在LaunchPad实验板上调试通过。
实验三定时扫描非阻塞按键实验目的:学会MSP430单片机定时器的使用,掌握消除阻塞的编程方法。
实验内容:通过WDT定时周期性读取IO状态,准确识别按键按下和弹起。
图4 定时扫描按键实验原理图实验仪器:计算机等。
实验原理:1)WDT定时器设置为16ms中断。
2)在WDT中断中,记录下最近两次的IO状态存在KEY_Now和KEY_Past中。
根据前高后低可判断按键按下,前低后高可判断按键松开。
3)事件处理函数P13_Onclick()根据按键状态切换LED亮灭。
注意事项:不使用扩展板进行实验,图4所示跳线帽需插上实验。
工程名:7_2_Timer_Key_LED本实验主要学习定时扫描在消除CPU阻塞中的作用,以及消抖的原理。
CPU“无遗漏”地查询时间发生是产生阻塞代码的重要原因。
定时扫描消抖原理如图5所示。
定时扫描的精髓在于扫描的间隔足够短,保证不会遗漏“事件”。
图5 定时扫描消抖原理图作业:编写一个按键检测函数,自行决定P1.3按键按下和按键松开手,两个LED做出何反应。
实验四长短键识别图6 长短按键实验原理图实验目的:掌握状态机建模的设计方法。
实验内容:通过WDT定时周期性读取IO状态,识别按键按下和弹起,以及按下的时间。
判断为短按键则切换LED1亮灭,判断为长按键则切换LED2亮灭。
实验仪器:计算机、示波器、万能板、按键3只、导线等。
实验原理:1)WDT定时器设置为16ms中断。
在WDT中断中,记录下最近两次的IO状态存在KEY_Now 和KEY_Past中。
根据前高后低可判断按键按下,前低后高可判断按键松开,存入标志位Key_Dect中。
2)Key_Dect作为输入量,利用状态机函数Key_SM(),判断出短按键事件。
分别调用各自事件处理函数进行处理。
注意事项:不使用扩展板进行实验,图6 所示跳线帽需插上实验。
工程名:7_3_Key_Long_Short_Mealy;7_4_Key_Long_Short_Moore本实验主要学习状态机建模的方法。
1)当事件检测函数不能仅根据当前发生的事就做出最终事件判断,就需要启用状态机建模的方法了。
图7 长短按键的状态机2)状态机的核心,状态转移图如图7所示。
只有当前“状态”加上当前“事件”(输入)才能决定下一步要干什么(下一状态和当前事件处理)。
3)任何状态机都有两种“公式化”无需动脑的代码描述方法。
米利状态机是先switch(状态),然后再看发生了什么事件。
摩尔状态机是先if(事件),然后switch(状态);两者没有本质区别。
本实验的两个工程分别用米利状态机和摩尔状态机编写,它们之间只有Key_SM()函数不一样。
图7 所示状态转换图适用于任何类型的长短键识别,只要“告诉”状态机按键按下和按键松开两个事件就可以。
作业:1.编写一个长短按键检测函数,自行决定长短按键后,两个LED做出何反应。
2.通过万能板扩展3个按键(S1、S2、S3),按下为低电平。
编写一个键盘程序。
要求能够识别长、短按键并返回不同键值,而且通过LED发光二极管以及蜂鸣器来反应出不同的按键。
当按键时间小于2s时,认为是一次短按键,按键时间大于2s时,认为是一次短按键,按键时间大于2s后返回一次长键(0Xc0+键值),之后每隔0.25s返回一次连续长按键(0x80+键值),发光二极管LED和蜂鸣器的动作自行决定。
且要求键盘程序不阻塞CPU运行。
3.某电子表具有两个按键A和B用于操作和设置,按键功能和操作方法如下。
为该电子表的按键操作程序画出状态转移图,并写出代码进行调试。
在显示时间时按A键,屏幕显示编程日期在显示日期时按A键,屏幕显示变成秒钟在显示秒钟时按A键,屏幕显示变成时间在显示秒钟时按B键,秒钟归0在时间或日期显示时按B键,屏幕“时”闪烁在“时”闪烁时按A键,屏幕“时”加1,超过23回0在“时”闪烁时按B键,屏幕“分”闪烁在“分”闪烁时按A键,屏幕“分”加1,超过59回0在“分”闪烁是按B键,屏幕“月”闪烁在“月”闪烁时按A键,屏幕“月”加1,超过12回0在“月”闪烁时按B键,屏幕“日”闪烁在“日”闪烁时按A键,屏幕“日”加1,超过31回0在“日”闪烁时按B键,屏幕回到时间显示实验五电容触摸按键图8 电容触摸按键实验原理图实验目的:掌握电容触摸按键的工作原理、设计方法和使用。
实验内容:振荡测频法识别触摸按键,根据键值改写P1.0口LED亮灭。
实验仪器:计算机、示波器等。
实验原理:1)初始化GPIO的振荡功能,并将振荡信号作为TA的时钟源。
2)设置WDT中断16ms,16ms中TA定时器的TAR计数值即是电容触摸振荡的“频率”,这就是测频原理。
频率高于门限,则判断手指接近,记为1;低于门限,手指离开,记为0。