arm(单片机)接口技术课程设计报告内容摘要:

define COL1 (117) // COL1 连接 define COL2 (118) // COL2 连接 define COL3 (119) // COL3 连接 define COL4 (120) // COL4 连接 define start (114) // 开始抢答按钮 define reset (115) // 复位按钮 define smgA1 (10) // 连接数码管的第一个位选端 define smgA3 (11) // 连接数码管的第三个位选端 define smgA4 (12) // 连接数码管的第四个位选端 define LED (13) //led 连接 extern uint8 key=0。 extern int clock=30。 厦门理工学院 — ARM 接口技术课程设计 乐奇数码科技 1007045153 谢锦坤 Created by Jekit Shieh 乐奇数码科技 11 uint8 const TAB[10]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}。 void HC595_Init(void) { //引脚初始化 PINSEL0 = (PINSEL0 amp。 0xffffddff) | 0x00005500。 // 设置 , 为 SPI0 引脚 PINSEL0 = PINSEL0 amp。 0xffff3fff。 //定义 为 GPIO 口引脚 IO0DIR = IO0DIR | HC595_RCK。 // //SPI 寄存器初始化 S0PCCR = 0x64。 // 设置 SPI 时钟分频值为 0x64,即 SPI 时钟 =Fpclk/100 S0PCR = 0x30。 // 设置 SPI 接口模式, MSTR=1,主模式, CPOL=1, CPHA=0 } /************************************************************************** *名称 : uint8 HC595_SendData(uint8 data) *功能 :向 74HC595 发送一字节数据。 *入口参数 : data 需发送的数据 *出口参数 : S0PDR 接收到的数据 **************************************************************************/ uint8 HC595_SendData(uint8 data) { IO0CLR = HC595_RCK。 //置低电平,输出锁存端,上升沿时移位寄存器的输出所锁存(关闭锁存) S0PDR = data。 //将数存入缓存中 while( 0==(S0PSRamp。 0x80) )。 // 等待 SPIF 置位,即等待数据发送完毕 IO0SET = HC595_RCK。 // 高电平,开锁存,将数据并行输出 return(S0PDR)。 } /******************************************************************** * 文件名: DelayMS() * 功能:延时 ********************************************************************/ void DelayMS(uint32 dly) { uint32 i。 for(。 dly0。 dly) for(i=0。 i10000。 i++)。 } /******************************************************************** * 文件名: __irq RTC_IRQ() 厦门理工学院 — ARM 接口技术课程设计 乐奇数码科技 1007045153 谢锦坤 Created by Jekit Shieh 乐奇数码科技 12 * 功能:中断服务程序,当秒值增加时蜂鸣器报警 ********************************************************************/ void __irq RTC_IRQ(void) { if((CIIR amp。 0x01) != 0) { //秒报警 clock=clock1。 } while((ILRamp。 0x01)!=0) //清除中断标志 ILR = 0x01。 VICVectAddr = 0。 //中断结束 } /******************************************************************** * 文件名: RTC_Init() * 功能: RTC 模块初始化函数 ********************************************************************/ void RTC_Init(void) { PREINT = Fpclk/12 / 32768 1。 //设置基准时钟分频器 PREFRAC = Fpclk/12 (Fpclk/12 / 32768) * 32768。 CIIR = 0x01。 //设置秒值的增量产生一次中断 ILR=0x01。 VICIntSelect = 0x00000000。 //设置所有的通道为 IRQ 中断 VICVectCntl5 =0x20 | 13。 //实时时钟中断分配到 IRQ5 VICVectAddr5 = (uint32)RTC_IRQ。 //设置按键中断服务程序的地址 VICIntEn。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。