3.定时器中断延时.rar


-
利用定时器中断实现LED闪烁
223KB
实验18:定时器0中断.rar
2019-05-23实现现象:下载程序后,按照人图片内操作接线,LED小灯循环点亮1秒,熄灭1秒。使用单片机内部定时器可以实现准确延时。
9.18MB
单片机开发用到的46个工具包.zip
2020-07-2116.16LED点阵字库软件.rar 51波特率初值计算.rar 51波特率初值设定.rar 51波特率计算.rar 51串口通信计算器.rar 51单片机串行口初值计算器.rar 51单片机定时器初值计算器.rar 51单片机定时器计算工具.exe 51单片机反反汇编器.rar 750定时器计算器.rar 875电流源在线计算器离线网页.rar 890LC谐振回路计算.rar ascii7.0.rar AvrCalc eehome.rar Bin Hex.rar comdebug.rar commix.rar LCD图形生成.rar LC谐振频率计算器.rar LC谐振频率计算器V1.20.rar LED代码提取.rar LED段码提取.rar LED数码管字形码发生器.rar LM317计算.rar p_.hcs301enc.rar PCB特性阻抗计算工具软件TXLine.rar 变压器设计软件.rar 超级单片机工具.rar 串口助手.rar 单片机小精灵.zip 单片机延时计算小程序.rar 电感量计算.rar 电阻并联计数器.rar 画流程图.rar 进制转换.rar 熔丝位软件.rar 色码电阻计算程序.rar 衰减器计算器.rar 网络调试助手.rar 炜煌串口调试软件.rar 晓刚电阻值计算.rar 虚拟示波器.rar 音乐代码转换.rar 正弦波数据生成器(正弦波表).rar 中断延迟时间.rar 专业工具.rar
3.15MB
编程作业及示例.rar
2020-07-31STM32编程类作业。 这些作业只需根据示例略作修改就能完成。主要参考资料是PPT课件。 1.实现8个LED的流水灯,3个连续亮灯接2个连续灭灯循环移动。 2.上题的延时用定时器定时中断实现。 3.用定时器1的通道2产生PWM波,周期40μS,占空比20%、50%、80%三挡可调。 4.用定时器2的通道3的捕获功能测一个信号的周期,进而算出频率。
276KB
实验19:定时器1中断.rar
2019-05-23实现现象:下载程序后,按照视频操作正确接线,静态数码管间隔一秒循环显示0-F。使用单片机内部定时器可以实现准确延时
68KB
8位LED循环闪烁+ 外部中断控制LED闪烁.rar
2020-04-12中断嵌套 8位LED循环闪烁(定时器中断延时)+ 外部中断控制LED闪烁 包含代码和原理图 有助于理解定时器工作原理
1.90MB
复旦nois教材01.rar
2009-08-051 第一章 绪论....................................................................................................................................1 1.1 概述...................................................................................................................................1 1.2 本书内容安排....................................................................................................................3 1.3 设计步骤............................................................................................................................4 1.4 支持Nios CPU的FPGA型号.............................................................................................5 第二章 SOPC Builder开发环境......................................................................................................8 2.1 创建Quartus II工程...........................................................................................................8 2.2 创建 Nios 系统模块......................................................................................................10 2.2.1 创建新的 .bdf ......................................................................................................10 2.2.2 开始使用SOPC Builder........................................................................................11 2.2.3 系统主频...............................................................................................................12 2.2.4 加入CPU和IP模块...............................................................................................12 2.2.5 指定基地址...........................................................................................................21 2.2.6 配置Nios系统.......................................................................................................22 2.2.7 生成Nios32 并把它加入到设计中......................................................................23 2.2.8 把符号(symbol)加入到BDF文件中...............................................................24 2.2.9 加入引脚和基本单元...........................................................................................25 2.2.10 命名引脚.............................................................................................................26 2.2.11 进行最后连接.....................................................................................................27 2.3 编译(Compilation)......................................................................................................28 2.3.1 创建编译器设置...................................................................................................28 2.3.2 指定器件系列(Device Family)与型号...........................................................28 2.3.3 为器件引脚分配信号...........................................................................................29 2.3.4 确认引脚分配.......................................................................................................30 2.3.5 指定设备与编程设置...........................................................................................30 2.3.6 指定配置文件类型...............................................................................................31 2.3.7 编译用户设计.......................................................................................................31 2.4 编程(Programming)....................................................................................................32 2.4.1 配置FPGA ............................................................................................................32 2.4.2 在Nios系统上运行软件.......................................................................................34 第三章 Nios CPU结构..................................................................................................................36 3.1 NIOS处理器概述.............................................................................................................36 3.1.1 指令总线主端口...................................................................................................37 3.1.2 数据总线主端口...................................................................................................37 3.1.3 缓冲存储器...........................................................................................................38 3.1.4 移位单元...............................................................................................................38 3.1.5 乘法支持...............................................................................................................38 3.1.6 中断支持...............................................................................................................39 3.1.7 Nios片上调试模块................................................................................................39 3.1.8 开发环境...............................................................................................................39 3.2 内部寄存器......................................................................................................................39 3.2.1 通用寄存器文件...................................................................................................39 3.2.2 K寄存器.................................................................................................................41 2 3.2.3 %r0(%g0)寄存器..............................................................................................41 3.2.4 程序计数器...........................................................................................................41 3.2.5 控制寄存器...........................................................................................................41 3.3 流水线..............................................................................................................................44 3.4 存储器组织......................................................................................................................46 3.5 寻址方式..........................................................................................................................50 3.6 程序流程控制..................................................................................................................52 第四章 Avalon总线规范...............................................................................................................54 4.1 概述.................................................................................................................................54 4.2 术语和概念......................................................................................................................55 4.3 Avalon总线传输...............................................................................................................58 4.3.1 主端口接口与从端口接口...................................................................................58 4.3.2 Avalon总线时序....................................................................................................58 4.3.3 Avalon总线信号....................................................................................................59 4.3.4 并发多主端口的Avalon总线需考虑的事项.......................................................60 4.4 Avalon从端口传输...........................................................................................................60 4.4.1 从传输的Avalon总线信号...................................................................................60 4.4.2 Avalon总线上的从端口读传输.............................................................................62 4.4.3 在Avalon总线上的从端口写传输.......................................................................66 4.5 Avalon主端口传输...........................................................................................................70 4.5.1 主传输的Avalon信号...........................................................................................71 4.5.2 Avalon总线上的基本主端口读传输.....................................................................72 4.5.3 Avalon总线上的基本主端口写传输.....................................................................73 4.6 高级Avalon总线传输......................................................................................................75 4.6.1 带延迟的Avalon读传输.......................................................................................75 4.6.2 流传输模式...........................................................................................................81 4.6.3 Avalon总线控制信号.............................................................................................87 4.7 片外设备与Avalon总线的接口......................................................................................88 4.7.1 从传输的Avalon三态信号...................................................................................88 4.7.2 无延迟的Avalon三态从端口读传输...................................................................89 4.7.3 带固定延迟的Avalon三态从端口读传输...........................................................91 4.7.4 Avalon三态从端口写传输.....................................................................................92 4.8 Avalon总线地址对齐方式...............................................................................................94 4.8.1 地址对齐概述.......................................................................................................94 4.8.2 为Avalon外设选择地址对齐参数.......................................................................94 4.8.3 静态地址对齐.......................................................................................................95 4.8.4 动态地址对齐.......................................................................................................98 4.9 连接到外部设备..............................................................................................................99 第五章 软件设计流程和方法.....................................................................................................101 5.1 软件开发包....................................................................................................................101 5.1.1 软件开发流程.....................................................................................................101 5.1.2 SDK树目录简介..................................................................................................102 5.1.3 编译后代码结构.................................................................................................106 5.1.4 Nios库函数..........................................................................................................106 3 5.1.5 高级C语言支持..................................................................................................109 5.2 软件开发常用命令........................................................................................................110 5.2.1 hexout2flash .........................................................................................................110 5.2.2 nios_build............................................................................................................. 111 5.2.3 nios-console .........................................................................................................112 5.2.4 nios-convert..........................................................................................................112 5.2.5 nios-debug............................................................................................................113 5.2.6 nios-run ................................................................................................................114 5.2.7 srec2flash .............................................................................................................114 第六章 外设的组织与使用.........................................................................................................116 6.1 SOPC Builder与PTF文件...............................................................................................116 6.1.1 SOPC Builder组成...............................................................................................116 6.1.2 PTF文件的两种类型...........................................................................................117 6.1.3 SOPC Builder设计流程.......................................................................................121 6.2 SOPC Builder的外设......................................................................................................128 6.2.1 定时器.................................................................................................................128 6.2.2 并行输入输出模块.............................................................................................132 6.2.3 异步收发器(UART) ......................................................................................134 6.2.4 DMA控制器........................................................................................................142 第七章 中断处理.........................................................................................................................147 7.1 中断处理过程................................................................................................................147 7.1.1 异常处理的基础知识.........................................................................................147 7.1.2 Nios中断处理基础..............................................................................................148 7.1.3 Nios异常处理步骤..............................................................................................151 7.2 中断处理的例子:UART收发程序.............................................................................152 7.2.1 在Nios系统中实现ISR.......................................................................................152 7.2.2 串口通信基础.....................................................................................................153 7.2.3 实现Nios UART ISR ..........................................................................................154 7.2.4 代码示例.............................................................................................................155 第八章 调试手段.........................................................................................................................164 8.1 GERMS监控程序...........................................................................................................164 8.1.1 监控程序命令.....................................................................................................164 8.1.2 GERMS引导过程................................................................................................165 8.1.3 采用GERMS从闪存中引导系统.......................................................................165 8.2 FS2 公司的System Analyzer..........................................................................................169 8.2.1 简介.....................................................................................................................169 8.2.2 设置调试器.........................................................................................................170 8.2.3 使用调试器.........................................................................................................172 8.2.4 调试命令列表.....................................................................................................178 8.2.5 OCI调试模块相关软件子程序...........................................................................184 第九章 高级特性.........................................................................................................................186 9.1 用户自定义指令............................................................................................................186 9.1.1 用户自定义指令的概念.....................................................................................186 9.1.2 硬件接口.............................................................................................................187 4 9.1.3 软件接口.............................................................................................................190 9.1.4 加速效果.............................................................................................................192 9.1.5 用户自定义指令实例.........................................................................................192 9.2 并发多主设备总线结构................................................................................................197 9.2.1 传统总线结构.....................................................................................................197 9.2.2 并发多主设备总线结构.....................................................................................198 9.3 Nios嵌入式处理器设计的模拟.....................................................................................203 9.3.1 软件配置.............................................................................................................203 9.3.2 模拟设置.............................................................................................................203 9.3.3 使用ModelSim进行模拟....................................................................................208 9.3.4 分析模拟结果.....................................................................................................211 9.3.5 增加或删除波形图信号.....................................................................................218 9.3.6 片外存储器模拟.................................................................................................218 第十章 新版Nios II的特点.........................................................................................................221 10.1 简介..............................................................................................................................221 10.2 处理器的实现..............................................................................................................222 10.3 寄存器文件..................................................................................................................222 10.4 算术逻辑单元..............................................................................................................222 10.4.1 未实现的指令...................................................................................................223 10.4.2 用户自定义指令...............................................................................................223 10.5 异常和中断的控制......................................................................................................223 10.5.1 异常控制器.......................................................................................................223 10.5.2 集成的中断控制器...........................................................................................223 10.6 存储器与I/O组织........................................................................................................223 10.6.1 指令和数据总线...............................................................................................224 10.6.2 缓存...................................................................................................................225 10.6.3 地址映射...........................................................................................................226 10.7 硬件辅助调试模块......................................................................................................226 附录一 汇编指令及伪指令参考.................................................................................................227 符号说明...............................................................................................................................227 32 位指令集..........................................................................................................................227 IFS和SKPS指令的条件代码...............................................................................................230 汇编语言伪指令与宏...........................................................................................................231 附录二 Altera 2003 年Nios 嵌入式软核心处理器设计大赛获奖项目集................................232 参考文献......................................................................................................................................284 1 第一章 绪论 1.1 概述 微电子技术和计算机技术的发展历史是一个不断创新的过程。这种创新包括原始创新、 技术创新和应用创新等等。每一创新都能开拓出一个新的领域,带来新的巨大市场,对我们 的生产、生活方式产生重大的影响。 自集成电路发明以后,集成电路芯片的发展基本上遵循了Intel 公司创始人之一的 Gordon EMoore 1965 年预言的摩尔定律,即每隔3 年集成度增加4 倍,特征尺寸缩小1.4 倍。 在集成电路(IC)发展初期,电路设计都是从器件的物理版图设计入手。后来出现了集成电路 单元库(Cell-Lib),使得集成电路设计从器件级进入逻辑级,极大地推动了IC 产业的发展。 不过,集成电路只有安装在整机系统中才能发挥它的作用。IC 芯片是通过印刷电路板(PCB) 等技术实现整机系统的。尽管IC 的速度可以很高,功耗可以很小,但由于PCB 板中IC 芯 片之间的连线延时、PCB 板可靠性,以及重量等因素的限制,整机系统的性能受到了很大 的限制。随着系统向高速度、低功耗、低电压和多媒体、网络化、移动化的发展,系统对电 路的要求越来越高。传统集成电路设计技术已无法满足性能日益提高的整机系统的要求。同 时,由于IC 设计与工艺技术水平提高,集成电路规模越来越大,复杂程度越来越高,整个 系统已可以集成在一个芯片上。目前已经可以在一个芯片上集成108—109 个晶体管。 SOC(System On Chip:片上系统)就是在这种条件下应运而生的。 SOC 从整个系统的角度出发,把处理机制、模型算法、芯片结构、各层次电路、直至 器件的设计紧密结合起来,在单个(或少数几个)芯片上完成整个系统的功能。SOC 的设计以 IP 核为基础,以分层次的硬件描述语言为系统功能和结构的主要描述手段,借助于以计算 机为平台的EDA 工具进行。研究表明,与IC 组成的系统相比,由于SOC 设计能够综合并 全盘考虑整个系统的各种情况,因而可以在同样的工艺技术条件下,实现更高性能的系统指 标。SOC 技术,也大大促进了软硬件协同设计,以及计算机系统设计自动化的发展。 SOPC (System on a programmable chip:可编程芯片系统)是Altera 公司提出来的一种灵 活、高效的SOC 解决方案。它将处理器、存储器、I/O 口、LVDS、CDR 等系统设计需要的 部件,集成到一个PLD 器件上,构建成一个可编程的片上系统。它是可编程系统,具有灵 活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。可编程器件 内,还具有小容量高速RAM 资源。由于市场上有丰富的IP Core 资源可供灵活选择,用户 可以构成各种不同的系统,如单处理器,多处理器系统。有些可编程器件内还可以包含部分 可编程模拟电路。除了系统使用的资源外,可编程器件内还具有足够的可编程逻辑资源,用 于实现其它的附加逻辑。 SOPC 是PLD 和ASIC 技术融合的结果,目前0.13 微米的ASIC 产品制造价格仍然相当 昂贵,相反,集成了硬核或软核CPU、DSP、存储器、外围I/O 及可编程逻辑的SOPC 芯片 在应用的灵活性和价格上有极大的优势。所以,有人认为SOPC 代表了半导体产业未来发展 的方向。 在很多对速度的要求不是很高的低端应用,Altera 将一个软核放入PLD,这个软核就是 Nios,它只占芯片内部很少的一部分逻辑单元,成本很低。同ASIC 相比较,如果将处理器 放到ASIC 中,生产的每片芯片都要付给处理器厂商专利费。况且ASIC 的NRE(一次性投 资)大,风险也大。Nios 则没有这个问题。Nios 的开发工具包价格很低,在速度要求高的 2 高端应用,如通信领域,软核的处理速度不够,Altera 就将硬核(ARM9)集成到APEX 器 件中,还集成入RAM 和RAM 控制器。同时Altera 本身在PLD 的结构方面也不断发展和创 新,近期推出的HardCopy Stratix 器件系列,是一个针对大容量设计的,从原型设计到批量 生产的完整解决方案,试图成为ASIC 的全面替代方案。 Altera 的SOPC 开发工具,将软硬件的设计结合起来,提供给客户一个很好的开发环境。 Altera 的Max+Plus II 曾是应用广泛、非常受欢迎的PLD(可编程逻辑器件)设计软件,它 对于FPGA 和CPLD 这些PLD 器件的应用推广、电路部件和嵌入式系统的设计,以及高校 有关专业的教学实习,做出了非常重要的贡献。近年来,为适应微电子技术及其应用的飞速 发展,尤其是SOC(片上系统)技术发展的需要,Altera 推出了新版本的PLD 设计软件Quartus II。它继承了Max+Plus II 的所有优点,是更加完善的PLD 设计工具。它包括:不同的设计 输入手段(包括原理图,VHDL 或Verilog-HDL)、综合仿真工具、时限分析工具、功率评估 工具、PLD 布局布线工具和产品验证工具。其中的设计工具SOPC Builder 更是开创了嵌入 式系统设计的新理念。 SOPC Builder 是一个软件工具,它属于一种基于IP,或者平台的设计方法。本书介绍 的平台包括:Altera 的Nios 处理器、Avalon 总线,以及片内外存储器。利用SOPC Builder, 用户可以很方便地将处理器、存储器和其他外设模块连接起来,形成一个完整的系统。SOPC Builder 中已包含了Nios 处理器,以及其他一些常用的外设IP 模块。用户也可以设计自己的 外设IP。 从用户的角度来看,SOPC Builder 是一个能够生成复杂硬件系统的工具。但从内部来看, SOPC Builder 包含两个主要部分:一个图形用户界面(GUI),以及一个系统生成程序。SOPC Builder 图形用户界面提供管理IP 模块、配置系统和报告错误等功能。用户通过图形用户界 面设计系统。完成设计之后,点击Generate,则启动系统生成程序。系统生成程序通常从图 形用户界面中启动。系统生成程序执行大量的功能,创建几乎所有的SOPC Builder 输出文 件(HDL 逻辑文件,C 程序的头文件和库文件,模拟文件,等等)。所以,SOPC Builder 可 看作是一个以IP 模块为输入,集成的系统为输出的工具。 SOPC Builder 会提示用户设置参数,并提示使用哪些可选的端口和外设。一旦向导生成 了Nios 系统模块,则可以在设计文件中生成实例。一些常规硬软件接口、中断子程序等, 都可被SOPC Builder 包办,节约用户很多时间,而且更可靠。 Nios CPU 是一种采用流水线技术、单指令流的RISC 处理器,其大部分指令可以在一 个时钟周期内完成。Nios 处理器又是一种软核CPU,专门针对Altera 的可编程逻辑器件, 以及片上可编程系统的设计思想,做了相应优化。作为一种可配置的通用RISC 处理器,它 可以与用户自定义逻辑(user logic)结合构成SOC 系统,并下载到Altera 的可编程器件中 去。32 位Nios 软核,结合外部闪存,以及大容量存储器,可构成一个功能强大的32 位嵌 入式处理器系统。Nios 软核处理器分为32 位和16 位两种版本,本书主要介绍32 位版本的 Nios 3.0 嵌入式处理器。 在Altera 的Nios 嵌入式处理器中,用户可以在Nios 指令系统中增加用户自定义指令, 以增强起对强实时软件算法的处理能力。用户自定义指令可以通过单周期,或多周期操作来 完成复杂的处理任务。另外,增加的用户自定义指令同样可以访问存储器,或Nios 系统外 的逻辑。采用用户自定义指令,用户可以把一个复杂的标准指令序列,简化为一条用硬件实 现的单个指令。这一特性可以用于多种情况,例如对数字信号处理(DSP)、数据包处理, 以及计算密集型软件进行优化。 Avalon 总线是一种相对简单的总线结构,主要用于连接片内处理器与外设,以构成片 上可编程系统(SOPC)。它描述了主从构件间的端口连接关系,以及构件间通讯的时序关系。 Avalon 总线规范提供了各种选项,来剪裁总线信号和时序,以满足不同类型外设的需要。 3 SOPC Builder 自动产生Avalon 总线,Avalon 总线也包括许多特性和约定,用以支持SOPC Builder 软件自动生成系统、总线和外设。 片上可编程系统(SOPC)的设计人员在嵌入式系统开发和调试时,还有其它辅助工具, 诸如:ModelSim 模拟器,以及其它监控、调试工具等。 1.2 本书内容安排 本书共分为十章,以下是其他各章介绍,了解这些可以帮助读者取舍内容。 第二章以Altera 公司的Nios 开发板为基础,介绍了一个典型Nios 系统的设计过程,由 于其中绝大部分工作是在PC 机上完成,更多情况下类似于一份软件操作说明,所以读者即 使在没有Altera 公司的开发板的情况下,仍然可以通过本章了解完整的开发过程。通过本章, 初学者可以对SOPC Builder 开发环境有一定的感性认识,并可在后面的学习中比照本章学 习。而对于已经具有相当设计经验的读者,可以略过本章。 第三章介绍3.0 版本的32 位Nios CPU 内部结构。包括寄存器组织、流水线结构和汇编 指令等。 第四章介绍Avalon 总线规范。Avalon 总线是一种相对简单的片上总线结构,主要用于 连接CPU 和片内外设。但它仍然包含了相当多的高级特性,包括支持延迟读操作,流模式 传输以及并发多主设备访问等。这些特性极大的扩展了Avalon 总线的适应能力并能够有效 提升系统性能。 第五章介绍Nios 处理器的软件设计流程与方法,包括Nios SDK Shell 环境以及软件开 发包(SDK)的结构。 第六章介绍SOPC Builder 中的IP 组织方法,并细致说明了四个常用的外设。其他外设 的使用基本类似,用户可以参考Altera 公司的相关文档。 第七章讲述Nios 处理器的中断处理机制以及如何在软件中书写中断服务程序。特别是 以UART 为例,详细地介绍了中断向量的安装与中断的不同处理方法。 第八章介绍Nios 处理器的调试手段。Altera 公司并不提供All in one 的编译和调试工具, 只提供基本的监控程序或者对调试硬件支持。因此用户如果需要更优秀的调试工具,可以从 第三方那里得到,如Mentor 公司的Codelab 就是一款比较优秀的调试软件。 第九章介绍Nios 处理器的高级特性,这些特点有效地提升了系统性能,并反映了片上 总线地特点。 第十章介绍即将发布的Nios II CPU,用户可以通过介绍了解Nios 处理器的发展方向以 及一些最新的特点。 由于本书不仅作为Nios 处理器的入门教程,同时也作为Nios 处理器的参考手册。所以 在章节顺序上是按照通常的处理器介绍模式安排的。但是由于Nios 软核处理器与通常的固 核处理器之间存在较大区别,特别是Altera 提供了大量与硬件相关的底层函数,隐藏了硬件 细节,使得用户在不了解外设寄存器设置或CPU 汇编指令的情况下,仍然可以进行系统设 计工作。所以,读者在阅读本书时,特别是第一次接触Nios 处理器的读者,没有必要按照 章节顺序来阅读,而是可以根据需要进行取舍。读者应重点掌握SOPC 的设计概念、流程、 方法和相关工具。 4 1.3 设计步骤 在采用Nios 处理器设计嵌入式系统时,通常会按照以下步骤: 1. 分析系统需求说明,包括功能需求和性能约束等等。 2. 根据分析结果,选择片外外设或片内IP(知识产权核)。除此以外,还要对选择的IP 和外设进行初步性能评估,以保证能够满足系统需求。 3. 设定IP 和系统参数。 4. 确定系统互联逻辑,分配FPGA 的引脚等。 5. 结合Nios 提供的软件开发包进行软件开发。 以下是典型Nios 系统的框图: 图 1.1 采用Nios CPU 的系统框图 上图的结构可以划分为: 片外设备 采用Nios 的系统 系统模块(System Module) 片内逻辑 用户逻辑区域(User logic area) 片内逻辑是指实现在FPGA 内部的电路设计,系统模块指的是由SOPC Builder 自动生 成的设计。SOPC Builder 会根据用户选择的IP 生成相应的HDL 描述文件(系统模块文件), 这些文件与用户逻辑区域内的设计描述文件一起由Quartus 软件综合,然后下载到FPGA 内, 这样就构成了系统的硬件基础。 系统模块包含至少一个Avalon 主外设和整个Avalon 总线模块。系统模块通常还包含一 些Avalon 从外设,例如UART、PIO 和定时器等。SOPC Builder 可以帮助设计者从IP 库寻 找合适的IP 并很快地集成一个系统,它采用图形用户界面(GUI)显示和组织IP 模块,能 够自动生成IP 模块互连逻辑以及生成用于综合和模拟的文件,使得设计者可以轻松完成系 统设计。 当用户使用SOPC Builder 创建一个新的系统时,SOPC Builder 会为该系统自动生成一 个PTF 文件,所有的设计信息都存储在该PTF 文件里。当使用SOPC Builder 重新打开一个 已有的系统时,SOPC Builder 会从并且只从PTF 文件中读取系统具体设计信息。 用户逻辑区内可以包含用户自定义的Avalon 外设,以及同系统模块无关的其他的用户 自定义逻辑。 硬件系统建立起来以后,用户可以利用Altera 公司提供的Nios SDK Shell 工具,结合 5 SOPC Builder 生成的与硬件系统对应的软件开发包来开发用户软件。 1.4 支持Nios CPU 的FPGA 型号 并不是所有Altera 公司的FPGA 都支持Nios 软核处理器,目前只有APEX、Stratix、 StratixII 和CYCLONE 四个系列支持。SOPC 软件会针对相应的器件进行优化。以CYCLONE 系列为例,一个典型的32 位Nios 系统大约只占用3000 个LE(详细资源占用情况见表1.1)。 如果用户不再添加其他逻辑,恰好容纳在CYCLONE 系列中的最小容量的型号――EP1C3 中。当然,如果用户采用16 位的Nios CPU,占用的LE 数量会更小。表1.2 至表1.6 是不 同系列的FPGA 片内资源列表,用户可以参考以便选择相应器件。 表 1.1 典型Nios 系统资源占用情况 表 1.2 CYCLONE 系列片内资源 表 1.3 Stratix 系列片内资源 6 表1.4 StratixII 系列片内资源 7 表 1.5 APEX20K 系列片内资源 表 1.6 APEX20KC 系列片内资源 8 第二章 SOPC Builder 开发环境 由于Altera 的Nios 处理器区别于传统意义上的CPU,在设计方法和步骤上也有一定的 区别,因此对于第一次接触SOPC 的用户,先有一些感性认识能帮助其理解得更深入。为此, 本章通过一个Nios 处理器的设计实例让用户尽快熟悉SOPC Builder 的开发环境。 用户需要满足以下硬件和软件需求,才能顺利地完成本章的所有步骤。
1.51MB
7.SysTick系统时钟.rar
2019-08-03SysTick定时器也叫SysTick滴答定时器,它是Cortex-M3内核的一个 外设,被嵌入在 NVIC 中。它是一个24 位向下递减的定时器,每计数一 次所需时间为1/SYSTICK,SYSTICK是系统定时器时钟,它可以直接取自 系统时钟,还可以通过系统时钟8分频后获取。当定时器计数到0时,将 从LOAD 寄存器中自动重装定时器初值,重新向下递减计数,如此循环往 复。如果开启SysTick中断的话,当定时器计数到0,将产生一个中断信 号。因此只要知道计数的次数就可以准确得到它的延时时间。
2.39MB
MSP430F149K开发板资源例程
2013-08-16328254178Msp430F149.rar AD_DA.rar e96e317f-d9ab-41e5-b87f-ebc3f6131c4b.zip MSP430-149单片机应用实例(USB实例).rar MSP430-F149对应的液晶程序(描述详细,易于调用).rar MSP430F149 AD转换C程序.rar MSP430F149 C语言驱动DS18B20.zip MSP430F149 GSM基本控制,初始化接收短息,解读短信.rar MSP430F149+1602数码显示和实时时钟.rar MSP430F149+DS1302+UART程序可以用.rar MSP430F149,IAR,ADC采样之后对太阳点光源进行跟踪.rar MSP430F149--485串行通信.rar MSP430F149-SHT15传感器例程(,随时调用,含注释) (1).rar MSP430F149-SHT15传感器例程(,随时调用,含注释).rar MSP430F149下的s级别,us级别,ms级别延时.rar MSP430F149单片机与RF2401硬件SPI无线通信 (1).zip MSP430F149单片机与RF2401硬件SPI无线通信.zip MSP430F149单片机定时器A的PWM输出程序.rar MSP430F149单片机对1602液晶进行的简单测试.rar MSP430F149单片机对1604液晶进行的简单操作.rar MSP430F149单片机对PS2键盘的控制程序和源码.rar MSP430F149单片机对继电器的控制程序和源码.rar MSP430F149单片机控制LED全彩显示屏的某一行列数据传输控制显示程序.rar MSP430F149单片机模拟IIC和DS18B20通信进行测试温度代码.rar MSP430F149单片机的Flash程序.rar MSP430F149可以通过串口显示温度传感器的数值.rar MSP430F149开发板例程(控制8个LED闪烁).rar MSP430f149控制LCD12864显示汉字、字母.zip MSP430F149温度测量.zip MSP430F149的无线模块24L01程序.rar MSP430F149跑ADC和USB好用的代码.rar MSP430F149通过SPI接口控制ADS1216.zip MSP430x14x控制SED1335驱动320×240屏.rar MSP430x14x系列单片机实现了对EEPROM的读写测试.rar MSP430内置温度传感器的C语言程序.zip MSP430单片机 串口像PC发送数据.rar MSP43F149的USB测试程序.rar mulu.txt RF24L01-AD.rar RF24L01-MCU-PC通信例程.rar RF24L01-PC-MCU通信例程.rar RF24L01无线温度例程.rar RF24L01遥控例程.rar 基于MSP430F149为主芯片下的红外线解码资料源程序.zip 基于MSP430F149单片机中看门狗电路的中断实验.zip 基于MSP430F149单片机的1602程序代码.zip 基于MSP430F149单片机的nRF24L01无线通信程序.rar 基于MSP430F149单片机的串口0驱动程序.rar 基于MSP430F149单片机的温湿度传感器SHT1X驱动程序.rar 基于MSP430F149的12864的显示图片.rar 基于MSP430F149的数字钟源代码(以1602LCD液晶显示).rar 基于MSP430F149的触摸手写程序.zip 展示了MSP430F14x单片机的AD操作.rar 德州仪器MSP430F1449-F169的LCD12864测试程序 (1).rar 德州仪器MSP430F1449-F169的LCD12864测试程序.rar 德州仪器MSP430F149-F169初学者常用代码.rar 演示了如何操作MSP430F149单片机的DMA操作.rar 演示了如何操作MSP430F149的I2C功能.rar
383KB
《手把手教你学MCS51单片机》.rar 源程序 383.31 KB
2009-08-11《手把手教你学MCS51单片机》源码 的配套书的目录 第1章 实验设备及器材使用介绍 1.1 单片机的发展史及特点1 1.2 单片机入门的有效途径2 1.3 实验工具及器材3 1.3.1 Keil C51 Windows集成开发环境3 1.3.2 TOP851多功能编程器4 1.3.3 LED输出试验板5 1.3.4 LED数码管输出试验板6 1.3.5 5V高稳定专用稳压电源8 1.3.6 16×2字符型液晶显示模组8 第2章 Keil C51集成开发环境及TOP851多功能编程器 2.1 Keil C51集成开发环境软件安装10 2.2 TOP851烧录软件安装11 2.3 TOP851烧录软件操作12 2.3.1 文件操作和编辑12 2.3.2 选择型号16 2.3.3 读/写单片机17 第3章 初步接触KeilC51及TOP851软件并感受第一个演示程序效果 3.1 建立一个工程项目,选择芯片并确定选项19 3.2 建立源程序文件21 3.3 添加文件到当前项目组中22 3.4 编译(汇编)文件23 3,5 检查并修改源程序文件中的错误24 3.6 软件模拟仿真调试24 3.7 烧录程序(编程操作)25 3.8 观察程序运行的结果27 第4章 单片机的基本知识 4.1 MCS51单片机的基本结构28 4.2 80C51基本特性及引脚定义29 4.2.1 80C51的基本特征29 4.2.2 80C51的引脚定义及功能30 4.3 80C51的内部结构31 4.4 80C51的存储器配置和寄存器33 第5章 汇编语言程序指令的学习 5.1 MCS51单片机的指令系统37 5.2 汇编语言的特点38 5.3 汇编语言的语句格式38 第6章 数据传送指令的学习及实验 6.1 按寻址方式分类的数据传送指令40 6.1.1 立即数寻址40 6.1.2 直接寻址40 6.1.3 寄存器寻址40 6.1.4 寄存器间接寻址40 6.1.5 位寻址41 6.1.6 变址寻址41 6.1.7 相对寻址41 6.2 点亮/熄灭一个发光二极管的实验,自动循环工作41 6.2.1 实现方法41 6.2.2 源程序文件41 6.2.3 程序分析解释43 6.2.4 小结43 6.3 点亮/熄灭一个发光二极管的实验,点亮/熄灭时间自动发生变化(分3段),自动循环工作43 6.3.1 实现方法43 6.3.2 源程序文件44 6.3.3 程序分析解释45 6.3.4 小结45 6.4 P1口的8个发光二极管每隔2个右循环点亮实验46 6.4.1 实现方法46 6.4.2 源程序文件46 6.4.3 程序分析解释46 6.4.4 小结47 6.5 MCS51内部的RAM和特殊功能寄存器SFR的数据传送指令47 6.5.1 以累加器为目的操作数47 6.5.2 以寄存器为目的操作数47 6.5.3 以直接地址为目的操作数47 6.5.4 以寄存器间接地址为目的操作数48 6.5.5 16位数据传送48 6.6 “跑马灯”实验 48 6.6.1 实现方法48 6.6.2 源程序文件49 6.6.3 程序分析解释51 6.6.4 小结53 6.7 单片机的受控输出显示实验53 6.7.1 实现方法53 6.7.2 源程序文件53 6.7.3 程序分析解释54 6.8 小结55 第7章 算术运算指令的学习及实验 7.1 算术运算指令56 7.1.1 加法指令56 7.1.2 带进位加法指令56 7.1.3 带借位减法指令56 7.1.4 乘法指令57 7.1.5 除法指令57 7.1.6 加1指令57 7.1.7 减1指令57 7.1.8 二十进制调整指令58 7.2 52H、FCH两数相加实验,结果从P1口输出58 7.2.1 实现方法58 7.2.2 源程序文件58 7.2.3 程序分析解释59 7.3 FFH、03H两数相乘实验,结果从P0、P1口输出60 7.3.1 实现方法60 7.3.2 源程序文件60 7.3.3 程序分析解释61 7.4 加1指令实验,让P1口的8个发光二极管模拟二进制的加法运算61 7.4.1 实现方法61 7.4.2 源程序文件61 7.4.3 程序分析解释62 7.5 加1指令实验(不进行二十进制调整)62 7.5.1 实现方法62 7.5.2 源程序文件63 7.5.3 程序分析解释64 7.6 加1指令实验(进行二十进制调整)64 7.6.1 实现方法64 7.6.2 源程序文件64 7.6.3 程序分析解释65 7.7 小结66 第8章 逻辑运算指令的学习及实验 8.1 逻辑运算指令67 8.1.1 累加器A取反指令67 8.1.2 累加器A清0指令67 8.1.3 逻辑“与”指令67 8.1.4 逻辑“或”指令
5KB
DS18B20数字温度传感器驱动程序.rar
2019-09-03软件介绍: DS18B20数字温度传感器驱动使用STM32F103为主控制芯片,与DS18B20进行单总线通信,检测温度传感器的存在、读取温度传感器的温度值。V1.2修改说明修正了中断中调用出现死循环的错误防止延时不准确,采用do while结构!V1.3修改说明增加了对UCOSII延时的支持.如果使用ucosII,delay_init会自动设置SYSTICK的值,使之与ucos的TICKS_PER_SEC对应.delay_ms和delay_us也进行了针对ucos的改造.delay_us可以在ucos下使用,而且准确度很高,更重要的是没有占用额外的定时器.delay_ms在ucos下,可以当成OSTimeDly来用,在未启动ucos时,它采用delay_us实现,从而准确延时可以用来初始化外设,在启动了ucos之后delay_ms根据延时的长短,选择OSTimeDly实现或者delay_us实现.V1.4修改说明 20110929修改了使用ucos,但是ucos未启动的时候,delay_ms中中断无法响应的bug.V1.5修改说明 20120902在delay_us加入ucos上锁,防止由于ucos打断delay_us的执行,可能导致的延时不准。
997KB
51单片机小精灵.rar
2020-05-14基于51单片机,用于延时计算,定时器/计数器的TMOD计算,串口波特率计算,中断控制,编程指令速查。
9KB
海思按键驱动
2017-09-18自己最近用海思的板子练习,在中断中加了内核定时器延时,本人也是初学者,希望大家一起交流学习,资源包带.ko文件,加了led指示灯可在test,read中修改
32KB
智能防火防盗设计程序.rar
2020-06-01#include<reg52.h> #include <intrins.h> #include <absacc.h> //头文件 #define uint unsigned int #define uchar unsigned char //宏定义 //按键 sbit key1=P3^2; //布防 sbit key2=P3^3; //撤防 sbit key3=P3^4; //紧急报警 sbit BUZZ=P0^4; //蜂鸣器 sbit rsd=P2^4; //热释电输入 sbit yanwu=P2^5; sbit LED_B=P2^3; //布防指示灯 sbit LED_S=P2^0; //发送消息指示灯 uchar code PhoneNO[] ="15046397767"; //接受号码 uchar code somebody[] ="67094EBA8FDB5165FF0C8BF76CE8610F3002"; //有人进入,请注意。 uchar code somebody1[] ="70DF96FE6D535EA68FC79AD8FF0C8BF76CE8610F3002"; //烟雾浓度过高,请注意。 uchar code somebody2[] ="67094EBA8FDB5165FF0C70DF96FE6D535EA68FC79AD8FF0C8BF76CE8610F3002"; //有人进入,烟雾浓度过高,请注意。 uint TIME_50ms=0; //计时的最小分辨率50ms uint time_continue; uchar TIME_ALAM=0; bit flag=0,flag_BF=0; bit flag_time_start=0; bit again=0; bit flag_alam; bit SOS; bit flag_continue; bit into_BF=0; void delay(uint z)//延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void Uart_init() { TMOD= 0X20; //T1 方式2 ,8位 自动重装 TH1=0Xfd; TL1=0Xfd; //9600 TR1=1; // 定时器1启动 SM0=0; // 设置串口的工作模式 SM1=1; //方式1 REN=0; // 不允许串口接收数据 ES=0; // 串口中断不允许 EA=1; // 开启中断总开关 } void SendASC(uchar d) { SBUF=d; while(!TI); TI=0; }
38KB
C51操作系统代码.rar
2019-09-27本例程使用的定时器0,采用中断的方式定时。可以引申为系统的时钟。运行2个任务,而且2个任务不允许有干扰。任务1:LED1 每隔2秒闪烁一次;任务2:LED2 5秒闪烁一次任务1和任务2延时互不干扰。
11KB
51单片机模拟电子琴发音源代码.rar
2019-07-09使用C语言对51单片机进行控制,模拟电子琴发音源代码,通过本程序你可以学习一下如何定义键消抖延时函数、键扫描函数、定时器0中断服务子程序等,还可了解一下 调用键盘扫描函数、产生输出脉冲、设置计数初值等相关知识。
46KB
单片机8路抢答器
2013-04-05单片机8路抢答器 代码仿真/*八路抢答器-----能够显示抢答、回答时间倒计时,能够调节抢答、回答时间,能够报警犯规抢答,可以计分,可以实现软复位*/ /*桂林电子科技大学*信息与通信学院*电子科学与技术*/ /*此程序仅供参考!!恳请自重*/ /*本人博客:http://blog.sina.com.cn/13302xiaoqiao */ /*欢迎交流*/ #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit fmq=P3^6; sbit Key_Start=P3^4;//开始键,时间设置时+ sbit Key_Stop=P3^5;//停止键,时间设置时- sbit Key_Restart=P3^0;//复位键 sbit Key_set_Q=P3^2;//抢答时间设置键 sbit Key_set_H=P3^3;//回答时间设置键 sbit led=P3^7;//抢答LED提示 uchar code table[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xc6,0xf0,0xb6};//段码表 uchar code table_char[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc7,0xc0,0x92,0x86,0xbf,0xb7,0xff,0xb9,0x8f};//0-9 L O S E - uchar table_score[9]={0,50,50,50,50,50,50,50,50};//记分数组,初设值50分 void delay(uint z);//延时函数声明 void init();//初始化函数声明 void display(uchar XuanShou,uchar time);//显示数字函数声明 void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 );//显示字符函数声明 void display_set(uchar char_1,uchar time,uchar char_2);//时间设置闪动显示函数声明 void display_score(uchar xs_num);//分数查询显示函数 void beep();//蜂鸣器函数 void beep_last();//蜂鸣器特殊报警 void LED();//提示灯函数 uchar QiangDa_time,HuiDa_time,QiangDa_time_temp=20,HuiDa_time_temp=30;//抢答时间、回答时间变量 uchar count_0,count_1;//定时中计数用的 uint shan_count=0;//闪动显示计数用 void beep_x() { uint x=0; uchar d1,d2; for(x=0;x<300;x++) { fmq=~fmq; for(d1=0;d1<10;d1++) for(d2=0;d2<5;d2++); } } void main() { uchar AnJian,ShuJu,XuanShou_num; Top:init();//初始化 XuanShou_num=1;//为分数查询做好准备 beep(); while(1) { display(10,0);//显示一杠 ShuJu=P1; if(ShuJu!=0xff)//犯规抢答!! { // delay(10); // if(ShuJu!=0xff) // { AnJian=ShuJu; switch(AnJian)//取出选手编号 { case 0xfe : XuanShou_num=1;break;//1111 1110 case 0xfd : XuanShou_num=2;break;//1111 1101 case 0xfb : XuanShou_num=3;break;//1111 1011 case 0xf7 : XuanShou_num=4;break;//1111 0111 case 0xef : XuanShou_num=5;break;//1110 1111 case 0xdf : XuanShou_num=6;break;//1101 1111 case 0xbf : XuanShou_num=7;break;//1011 1111 case 0x7f : XuanShou_num=8;break;//0111 1111 default : goto LOSE;//无法显示了,有两个以上的键同时按下了!!不过这种概率相当小 } while(1) { display_char(13,14,14,XuanShou_num);//闪动显示犯规选手并且报警 if(shan_count==50) { beep(); } if(Key_Stop==0) { delay(10); if(Key_Stop==0) { beep(); table_score[XuanShou_num]--;//扣分 } } while(!Key_Stop) { display_char(14,14,1,16);//按键不放开的情况下显示-1 shan_count=1;//调用的是闪动显示函数,但是不让其闪动 } if(Key_Restart==0) { delay(10); if(Key_Restart==0) { beep(); goto Top;//热复位 } } } // } } if(Key_Start==0) { delay(10); if(Key_Start==0)//主持人按下抢答键,抢答正式开始! { QiangDa_time=QiangDa_time_temp; HuiDa_time=HuiDa_time_temp; beep(); TR1=1;//抢答时间开始倒计时 break;//跳出犯规抢答查询循环 } } //一下为查分程序测试 if(Key_Stop==0) { delay(10); if(Key_Stop==0)//进入分数查询显示 { beep(); while(!Key_Stop); while(1) { display_score(XuanShou_num); if(Key_Start==0) { delay(10); if(Key_Start==0) { XuanShou_num++; if(XuanShou_num==9) XuanShou_num=1; } } while(!Key_Start);//等待按键释放 if(Key_Stop==0) { delay(10); if(Key_Stop==0) { XuanShou_num--; if(XuanShou_num==0) XuanShou_num=8; } } while(!Key_Stop);//等待按键释放 if(Key_Restart==0) { delay(10); if(Key_Restart==0) { beep(); goto Top;//热复位 } } } } } } while(1) //查询是否有按键按下,进入抢答循环 { display(10,QiangDa_time);//显示抢答倒计时 if(QiangDa_time==0) { // beep(); TR1=0;//关闭定时器1 LOSE: while(1) { display_char(10,11,12,13); //显示lose 字符 if(Key_Restart==0) { delay(10); if(Key_Restart==0)//热复位键,从头开始下一轮 { beep(); goto Top; } } } } ShuJu=P1;//把P1口的数据送给变量 if(ShuJu!=0xff)//有按键按下 { // delay(10); // if(ShuJu!=0xff)//确定有按键按下 // { AnJian=ShuJu;//传递数据扫描值 // TR0=1;//启动定时器0 TR1=0;//关闭定时器1 break;//不再进行查询是否有按键按下了 // } } } switch(AnJian)//取出选手编号 { case 0xfe : XuanShou_num=1;beep();LED();break;//1111 1110 case 0xfd : XuanShou_num=2;beep();LED();break;//1111 1101 case 0xfb : XuanShou_num=3;beep();LED();break;//1111 1011 case 0xf7 : XuanShou_num=4;beep();LED();break;//1111 0111 case 0xef : XuanShou_num=5;beep();LED();break;//1110 1111 case 0xdf : XuanShou_num=6;beep();LED();break;//1101 1111 case 0xbf : XuanShou_num=7;beep();LED();break;//1011 1111 case 0x7f : XuanShou_num=8;beep();LED();break;//0111 1111 default : goto LOSE;//无法显示了,有两个以上的键同时按下了!!不过这种概率相当小 } TR0=1;//启动定时器0(在这里启动比在前面好) while(1) { display(XuanShou_num,HuiDa_time);//显示选手编号和回答倒计时 if(HuiDa_time==0) { TR0=0;//关闭定时器0 goto LOSE;//跳到显示lose字符那里 } if(Key_Stop==0) { delay(30); if(Key_Stop==0)//停止键按下 { beep(); TR0=0;//关闭定时器0,选手开始回答 while(!Key_Stop); while(1) //在显示选手回答倒计时时只有在stop按键按下时,才可按复位键 { display(XuanShou_num,HuiDa_time);//显示选手编号和回答倒计时 if(Key_Start==0) { delay(10); if(Key_Start==0) { beep(); table_score[XuanShou_num]++;//加分 } } while(!Key_Start) { display_char(17,18,1,16);//按键不放开的情况下显示+1 shan_count=1;//调用的是闪动显示函数,但是不让其闪动 } if(Key_Stop==0) { delay(10); if(Key_Stop==0) { beep(); table_score[XuanShou_num]--;//扣分 } } while(!Key_Stop) { display_char(14,14,1,16);//按键不放开的情况下显示-1 shan_count=1;//调用的是闪动显示函数,但是不让其闪动 } if(Key_Restart==0) { delay(10); if(Key_Restart==0)//热复位键,从头开始下一轮 { beep(); goto Top; } } } } } // else /* if(Key_Restart==0) { delay(10); if(Key_Restart==0)//热复位键,从头开始下一轮 { beep(); goto Top; } } */ } } void delay(uint z)//1ms基准延时 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void init()//初始化函数 { // P1=0xff EA=1;//开总中断; TMOD=0x11;//定时器工作方式1,16位定时计数器 TH0=(65536-50000)/256;//50us TL0=(65536-50000)%256; ET0=1;//开定时器0中断(暂时不启动定时器) // TMOD=0x01;//定时器工作方式1,16位定时计数器 TH1=(65536-50000)/256;//50us TL1=(65536-50000)%256; ET1=1;//开定时器0中断(暂时不启动定时器) EX0=1;//启动外中断0 EX1=1;//启动外中断1 P1=0xff;//读P1口的数据要先置1准备 count_0=0;//定时器中的计数清零 count_1=0; shan_count=0; } void display(uchar XuanShou,uchar time)//显示数字的函数 { P2=0x7f;//0111 1111最后一位数码管亮 P0=table[XuanShou];//选手编号 delay(1); P2=0x7f;//0111 1111 P0=0xff;//消余辉 delay(1); P2=0xdf;//1101 1111 P0=table[time];//时间的个位 delay(1); P2=0xdf;//0111 1111 P0=0xff;//消余辉 delay(1); P2=0xef;// 1110 1111 P0=table[time/10];//时间的十位 delay(1); P2=0xef;//0111 1111 P0=0xff;//消余辉 delay(1); } void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 )//闪动!显示字符的函数 { shan_count++; if(shan_count==150) shan_count=0; if(shan_count>0&&shan_count<50) { P2=0x7f;//0111 1111 P0=table_char[char_4]; delay(1); P2=0x7f;//0111 1111 P0=0xff; delay(1); P2=0xbf;//1011 1111 P0=table_char[char_3]; delay(1); P2=0xbf;//1011 1111 P0=0xff; delay(1); P2=0xdf;//1101 1111 P0=table_char[char_2]; delay(1); P2=0xdf;//1101 1111 P0=0xff; delay(1); P2=0xef;//1110 1111 P0=table_char[char_1]; delay(1); P2=0xef;//1110 1111 P0=0xff; delay(1); } else { P2=0x7f;//0111 1111 P0=0xff; delay(1); P2=0xbf;// P0=0xff; delay(1); P2=0xdf;// P0=0xff; delay(1); P2=0xef;// P0=0xff; delay(1); } } void display_set(uchar char_1,uchar time,uchar char_2)//时间设置的闪动显示 { shan_count++; if(shan_count==120) shan_count=0; if(shan_count>0&&shan_count<40) { P2=0x7f;//0111 1111最后一位数码管亮 P0=table[char_2];//显示一个符号 delay(1); P2=0x7f;//0111 1111 P0=0xff;//消余辉 delay(1); P2=0xbf;//1011 1111 P0=table[time];//时间的个位 delay(1); P2=0xbf;//1011 1111 P0=0xff;//消余辉 delay(1); P2=0xdf;//1101 1111 P0=table[time/10];//时间的十位 delay(1); P2=0xdf;//1101 1111 P0=0xff;//消余辉 delay(1); P2=0xef;// 1110 1111 P0=table[char_1];//显示一个符号 delay(1); P2=0xef;//1110 1111 P0=0xff;//消余辉 delay(1); } else { P2=0x7f;//0111 1111 P0=table[char_2]; delay(1); P2=0xbf;// P0=0xff; delay(1); P2=0xdf;// P0=0xff; delay(1); P2=0xef;// P0=table[char_1]; delay(1); } } void display_score(uchar xs_num)//分数查询显示函数 { P2=0x7f;//0111 1111最后一位数码管亮 P0=table[(table_score[xs_num])];//分数的个位 delay(1); P2=0x7f;//0111 1111 P0=0xff;//消余辉 delay(1); P2=0xbf;//1011 1111 P0=table[(table_score[xs_num]/10)];//分数的十位 delay(1); P2=0xbf;//1011 1111 P0=0xff;//消余辉 delay(1); P2=0xdf;//1101 1111 P0=table_char[15];//间隔符号 delay(1); P2=0xdf;//1101 1111 P0=0xff;//消余辉 delay(1); P2=0xef;// 1110 1111 P0=table[xs_num];//选手编号 delay(1); P2=0xef;//1110 1111 P0=0xff;//消余辉 delay(1); } void beep() //有源蜂鸣器函数 { // fmq=0; beep_x(); // delay(80); //fmq=1; } void beep_last()//最后一声特殊声调 { fmq=0; delay(300); fmq=1; } void LED() { led=0; delay(150); led=1; } void T0_time() interrupt 1//定时器0中断函数_回答时间 { TH0=(65536-50000)/256;//50ms TL0=(65536-50000)%256;//马上重装初值,以免有误差 if(count_0==20) { count_0=0; HuiDa_time--; if(HuiDa_time<=5) { if(HuiDa_time==0) { beep_last();//最后一声特殊警告 } beep(); } } count_0++; } void T1_time() interrupt 3//定时器1中断函数_抢答时间 { TH1=(65536-50000)/256;//50us TL1=(65536-50000)%256;//马上重装初值,这样在后面调用beep()函数时就不会影响定时器的准确计时了 if(count_1==20) { count_1=0; QiangDa_time--; if(QiangDa_time<=5) { if(QiangDa_time==0) { beep_last();//最后一声警告 } else beep(); } } count_1++; } void EX0_set_QiangDa_time() interrupt 0 //外中断0,设置抢答时间 { delay(10);//消抖一下 if(Key_set_Q==0) { beep(); while(1) { // display(11,QiangDa_time_temp); // delay(100);//闪动效果 display_set(12,QiangDa_time_temp,13);//调用时间设置闪动显示函数,效果为 [时间] if(Key_Start==0)//时间+1键 { delay(10); if(Key_Start==0) { QiangDa_time_temp++; if(QiangDa_time_temp==100) { QiangDa_time_temp=1; } } } while(!Key_Start);//等待按键释放 // else if(Key_Stop==0)//时间-1键 { delay(10); if(Key_Stop==0) { QiangDa_time_temp--; if(QiangDa_time_temp==0) { QiangDa_time_temp=99; } } } while(!Key_Stop);//等待按键释放 // else if(Key_Restart==0) { if(Key_Restart==0) { beep(); break; } } } } } void EX1_set_HuiDa_time() interrupt 2 //外中断1,设置回答时间 { delay(10);//消抖一下 if(Key_set_H==0) { beep(); while(1) { display_set(12,HuiDa_time_temp,13);//调用时间设置闪动显示函数,效果为 [时间] if(Key_Start==0)//时间+1键 { delay(10); if(Key_Start==0) { HuiDa_time_temp++; if(HuiDa_time_temp==100) { HuiDa_time_temp=1; } } } while(!Key_Start);//等待按键释放 // else if(Key_Stop==0)//时间-1键 { delay(10); if(Key_Stop==0) { HuiDa_time_temp--; if(HuiDa_time_temp==0) { HuiDa_time_temp=99; } } } while(!Key_Stop);//等待按键释放 // else if(Key_Restart==0) { if(Key_Restart==0) { beep(); break; } } } } }
-
下载
VC修改EXE图标的代码
VC修改EXE图标的代码
-
下载
基于红外热成像的消防灭火机器人自动控制系统的研究_张航.caj
基于红外热成像的消防灭火机器人自动控制系统的研究_张航.caj
-
下载
水泥厂职业健康管理制度.doc
水泥厂职业健康管理制度.doc
-
下载
2021年中国政法大学437社会工作实务考研真题
2021年中国政法大学437社会工作实务考研真题
-
下载
树立正确人生观(课件).ppt
树立正确人生观(课件).ppt
-
下载
2014、2016-2018年南昌大学353卫生综合考研真题
2014、2016-2018年南昌大学353卫生综合考研真题
-
下载
wxSearchView.zip
wxSearchView.zip
-
下载
车辆传感器网络车载节点设计.doc
车辆传感器网络车载节点设计.doc
-
下载
LEI指数ArcGIS.zip
LEI指数ArcGIS.zip
-
下载
知网学术不端论文检测查重助手1.5.exe
知网学术不端论文检测查重助手1.5.exe
