基于aduc7026嵌入式系统的数字时钟设计学习笔记手册内容摘要:
如果有外设产生一个中断请求信号, IRQ 中断相应的位会被置位,否则会被清 0。 IRQEN 中断使能寄存器 当某一位置 1 时,相应的中断源可以请求中断,相反,相应的中断源没有被使能。 IRQCLR 中断屏蔽寄存器 可以用来清空在 IRQEN 寄存器中相应的位,当某一位置 1 有效。 要想取消一个已经使能的中断源,用户必须通过 IRQCLR 对应的位置 1 来实现。 单独清空 IRQEN 中相应的位不会取消这歌中断。 与 FIQ 相关的寄存器也是 4 个分别是 FIQSAT FIQSIG FIQEN FIQCLR 各控制位的定义与 IRQ 相同。 非常重要的一点, ARM7 外部中断引脚的有效信号为高电平。 首先从第五的步的程序开始,以下是程序中我自己感觉与外部中断有关的语句我摘录下来,并且逐个按自己的理解解释相关的寄 存器功能及编程使用方法。 GP0CON = 0x00。 // 配置 外部中断 IRQ1 IRQEN = XIRQ1_BIT。 // 使能外部中断 IRQ1 void IRQ_Handler(void) __irq {。 中断服务子程序 return。 } 为单片机第 41 引脚,根据引脚上名称提示,复合功能有 IRQ1。 所以使用中断需要设置 GPIO 的功能。 根据第一步的学习 ARM7 单片机引脚功能选择寄存器为 GPxCON GPxCON 为 32 位寄存器两位控制一个引脚的状态, 比如要控制 为功能 2 SOUT 也就是数据 10 GP2CON= 的 1: 0 位 为 10 其他位 为 00 GP2CON=0x00000002 根据 P120 表 提示 的第一个功能为 GPIO/IRQ1 如果设置了中断寄存器则当中断外部信号输入引脚使用,如果没有设置则作为 GPIO 引脚使用。 根据表格 P122 表 可知, 21: 20 位对应的两位为 引脚的功能选择,所以 21: 10 位 为 00. GP0CON = 0x00。 // 配置 外部中断 IRQ1 IRQEN = XIRQ1_BIT。 // 使能外部中断 IRQ1 在上面介绍 IRQEN 是中断使能,但是书本上没有讲仔细写对应的表,查资料研究 IRQ1 对应的使能位。 那XIRQ1_BIT 是什么呢。 通过 KEIL3 软件程序语句定位功能,找到了 的文件, 是 KEIL3 提供的 ARM\INC\。 而且默认包含进来的,所以 IRQ1 的对应的设置在程序函数中已经包含。 不过这句话也可以单独来写,那样的话就不自动包含 ,比如写成 IRQEN= 0x00040000。 ARM7 有 24 个中断源,对应 IRQ1 位第 18 位。 define XIRQ1_BIT 0x00040000。 其他的中断请求在函数里有我将其复制下来: define FIQ_SOURCE_BIT 0x00000001 define SWI_BIT 0x00000002 define RTOS_TIMER_BIT 0x00000004 define GP_TIMER_BIT 0x00000008 define WAKEUP_TIMER_BIT 0x00000010 define WATCHDOG_TIMER_BIT 0x00000020 define FLASHCON_BIT 0x00000040 define ADC_BIT 0x00000080 define PLL_LOCK_BIT 0x00000100 define SM_SLAVE_BIT 0x00000200 define SM_MASTER0_BIT 0x00000400 define SM_MASTER1_BIT 0x00000800 define SPI_SLAVE_BIT 0x00001000 define SPI_MASTER_BIT 0x00002020 define UART_BIT 0x00004000 define XIRQ0_BIT 0x00008000 define MONITOR_BIT 0x00010000 define PSM_BIT 0x00020200 define XIRQ1_BIT 0x00040000 define PLA_IRQ0_BIT 0x00080000 define PLA_IRQ1_BIT 0x00100000 define SPM4_IO_BIT 0x00202000 define SPM5_IO_BIT 0x00400000 define PWM_BIT 0x00800000 还有一点非常重要的是 void IRQ_Handler(void) __irq {。 中断服务子程序 return。 } 跟 51 单片机一样它的中断服务子程序被包含在这里。 注意函数后面的 _irq 以及函数里面的 return,到这里 ARM7内核的外部中断告一段落。 附件五:第五步程序源代码 —— 三维论坛下载( ) 基于 ADuC7026 嵌入式系统的数字时钟设计学习笔记 六 又是一个硬战,需要学习 ARM7 的内部定时器的使用,还是一样从提供的参考程序中找到与内部定时器相关的程序“红绿灯”。 下载程序可以看到数码管低两位显示数据 30 并 1S 的延时倒计时,同时相应的指示灯亮。 开始研究,需要去掉数码管和 LED 控制部分采用 1S 内部定时控制蜂鸣器报警。 因为这个程序的 LED 控制是 SPI ,用了一个 74HC595 芯片控制的 8 个 LED 采用 74HC 系列引脚 8 个 LED 对应只需要四个引脚可以控制 ,而且 还以级联 , SPI 通信的 SCLK CS MOSI MISO 分别与 ADuC7026 的 58 51 52 57 引脚链接ARM7 内部的 SPI 通信。 这部分不需要使用,所以暂时去掉。 但是这个功能非常强大以后会用到。 在 51 单片机控制多字点阵的项目中,就用到了 74HC595 串转并级联芯片,但是 51 单片机内部没有 SPI 通讯这个功能所以用的程序模拟的。 但是在这个单片机上是直接使用的,下次用的时候可以学习这部分程序。 现在开始裁剪,将与 LED 点亮的程序及数码管显示的程序去掉。 程序经过简化,蜂鸣器间断报警延时时间 1S,并且延 时时间采用内部定时器查询方式的程序如下,下面进行分析: include void SysClkInit(void) { PLLKEY1=0xAA。 PLLCON=0x01。 // PLL 配置 PLLKEY2=0x55。 POWKEY1=0x01。 POWCON=0x02。 // CPU 时钟配置为 POWKEY2=0xF4。 } void main() { SysClkInit()。 while(1) { GP2DAT = 0x08080000。 // 配置 为输出引脚同时输出高电平 T1LD = 0xA0000。 // 配置计数器的值,大约为 1 秒 T1CON = 0xC4。 // 使能 Timer1,周期模式,二进制数据格式, CLK/16 while (T1VAL!=0){} // 判断是否计数为零 T1CON = 0x00。 // 不使能 Timer1 GP2CLR = 0x00080000。 // 输出低电平 T1LD = 0xA0000。 // 配置计数器 的值,大约为 1 秒 T1CON = 0xC4。 // 使能 Timer1,周期模式,二进制数据格式, CLK/16 while (T1VAL!=0){} // 判断是否计数为零 T1CON = 0x00。 // 不使能 Timer1 } } 知识点来源课本第 14 章 定时器 ADuC7206 定时器有 4 个,可以工作在自由模式和周期模式,工作在自由模式,计数器将从最大值递减计数一直到最小值,并且在达到最小值后重新递增计数一直到最大值。 也可以反过来。基于aduc7026嵌入式系统的数字时钟设计学习笔记手册
相关推荐
功能 闹铃文件 维护闹铃 闹铃接收 闹铃 基本日历 基本日历界面 日历界面适配器 桌面闹钟主要界面 维护数字时钟 布局按钮 HandleSetAlarm,java 设置 alarm 到 activity 数字帮组 重复 设置闹铃 设置闹铃页面 功能设置 Android的资源文件保存在 /res的子目录中。 其中 /res/drawable目录中保存的事图像文件,/res/layout
一转变过程中的主力军。 随时随地可用,传感器丰富等相对传统桌面计算机的突出优点,为智能手机改变人们的工作与生活提供了各种可能。 智能手机将逐步发展成人们眼、耳、脑以及不存在感官的延伸,帮助人们获取、处理、存储与呈现信息,帮助人们作出决定,展现给人们美好的事物,引领人们更加智慧与舒适地生活。 移动平台是目前和将来相当一段时间应用部署的重要平台。 2020 年年初,苹果应用商店已经拥有了超过 53
tomcat2 实例配置 =localhost =9009 =ajp13 6) 最后来更新一下 tomcat 网站目录 : 打开 tomcat 目录中的 conf\ 文件,找到 host name 一段,在后面添加: Context path= docBase=d:\web debug=0 reloadable=true crossContext=true/ 注:
表 单片机 管脚含义 ALE/PROG 地址锁存控制信号: 在访问片外程序存储器的时候,每机器周期这个信号出现两次,它的下降沿用来控制锁存 P0口输出的低 8位地址。 就算不在访问片外程序存储器的时候,这个信号也以振荡频率的 1/6 出现,因此可以用来作为对外输出的时钟脉冲。 但是在访问片外数据存储器的时候, ALE 脉冲会跳空一个,那此时作为时钟输出就不合适了。 /PSEN
宁科技大学本科生毕业设计 第 14 页 第四章 系统软件设计 软件分 为两部分,主程序和中断服务程序,如图 41 所示。 主程序完成初始化工作、超声波发射和接收, 距离计算、结果的输出。 外部中断服务子程序主要完成时间值的读取。 NO YES 图 41 主程序流 程图 外部中断子程序 计算距离 结果输出 定时器及中断初始化 发射超声波 开外部中断 指示灯闪烁 单片机初始化 DS18B20 初始化
dd=num/100%10。 ee=num/10%10。 ff=num%10。 display(aa,bb,cc,dd,ee,ff)。 } if(mode==3) { num=500000/num1。 aa=num/100000。 bb=num/10000%10。 cc=num/1000%10。 dd=num/100%10。 ee=num/10%10。 ff=num%10。 display(aa