分享
分销 收藏 举报 申诉 / 20
播放页_导航下方通栏广告

类型实验报告4--万年历综合实验.doc

  • 上传人:快乐****生活
  • 文档编号:2670367
  • 上传时间:2024-06-04
  • 格式:DOC
  • 页数:20
  • 大小:1.01MB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    实验 报告 万年历 综合
    资源描述:
    实验报告4--万年历综合实验 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 20 个人收集整理 勿做商业用途 实 验 报 告 班 级 学号 姓 名 同组人 实验日期 室温 大气压 成 绩 实验题目:万年历综合实验 一、 实验目的: 本实验主要目的是通过解决一些实际问题,巩固和加深“微机原理与接口技术”课程中所学的理论知识和实践能力,基本掌握计算机接口应用电路的一般设计方法,提高电子电路的设计和实践能力,加深对计算机软硬件知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础. 通过课本现有程序改写编程,实现时钟设有整点音乐报时,半点数码管显示,每隔30秒流水灯提醒,还可以随时手动按键使其响音乐来作为警报或人为约定的提示等功能。同时还可以用定时器来设定一次跳动的时间,为实际生活所服务。 二、 实验仪器: 微型电子计算机(含软件H-JTAG V0。3.1和ADSv1_2)、Easy ARM2131开发板。 三、硬件电路设计及其描述 3.1、复位电路 由于ARM芯片的高速、低功耗、低工作电压导致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源的稳定性、电源监控可靠性等诸多方面也提出了更高的要求。本开发板的复位电路使用了带I2C存储器的电源监控芯片CAT1025JI-30,提高系统的可靠性,电路原理 如图1.4所示.在图1.4中,信号nRST连接到LPC2131芯片的复位脚RESET,当复位按键RST按下时,CAT1025JI—30的RESET引脚立即输出复位信号,使LPC2131芯片复位。注意,使用CAT1025JI—30芯片时,其RESET引脚上的下拉电阻、RESET引脚上的上拉电阻都是不能省略的. 3.2、系统时钟电路 LPC2100系列ARM7微控制器可使用外部晶振或外部时钟源,内部PLL电路可调整系统时钟,使系统运行速度更快(CPU最大操作时钟为60MHz)。倘若不使用片内PLL功能及ISP下载功能,则外部晶振频率范围是1MHz~30MHz,外部时钟频率范围是1MHz~ 50MHz;若使用了片内PLL功能或ISP下载功能,则外部晶振频率范围是10MHz~25MHz,外部时钟频率范围是10MHz~25MHz。 EasyARM2131开发板使用了外部11。0592MHz晶振,电路如图1。5所示.用11。0592MHz晶振的原因是使串口波特率更精确,同时能够支持LPC2131微控制器芯片内部PLL功能及ISP功能。 3.3、键盘电路 EasyARM2131开发板具有6个独立按键,分别为KEY1~KEY6,如图1.8所示。由于P0口作为输入时,内部无上拉电阻,所以要使用R28~R33等6个上拉电阻,当没有按键时,口线值为1,当按键按下时为0;其中,KEY1、KEY5所连接的口线为P0.16、P0。20,这两个口分别与外部中断EINT0、EINT3复用,所以可用这两个按键进行外部中断的实验、唤醒掉电CPU的实验。KEY2、KEY3、KEY4和KEY6所连的口线为P0。17、P0。18、P0。19、P0.21,可用作定时器的捕获输入。 键盘电路通过JP8跳线器来选择连接。 3.4、LED显示电路 在显示方面,EasyARM2131开发板采用了一片74HC595驱动一位静态共阳LED数码管,如图1。9所示,其时钟(SCK)、数据(SI)分别接到LPC2131的SPI接口的SCLK0、MOSI0,这样就可以发送数据到74HC595;片选(RCK,即74HC595输出触发端)与P0。29口连接,由P0.29控制74HC595数据锁存输出;而最高位输出(SQH)连接到LPC2131的SPI接口的MISO0,可用来读回数据。这样连接就可以进行SPI接口控制实验,并能把74HC595的移位输出读回来(由MISO0读回)。这一部份电路通过JP10跳线器来选择连接。 在使用硬件SPI接口主方式时,要把SPI0/1的4个I/O口均设置为SPI功能,如P0。4、P0。5、P0。6、P0。7,而且SSEL0/1引脚不能为低电平,一般要接一个10KΩ的上拉电阻。 另外,EasyARM2131开发板还具有8个独立的发光二极LED1~LED9,由P1。18~P1.25输出控制,输出1时对应的LED熄灭,输出0时对应的LED点亮,电路如图1。10所示.这一部份电路通过JP12跳线器来选择连接。电路采用了I/O口灌电流的驱动方式来驱动LED,这样做主要是因为I/O口能提供的灌电流大于其拉电流,保证了LED的显示亮度. 3。5、蜂鸣器控制电路 如图1。11所示,蜂鸣器使用PNP三极管Q1进行驱动控制,当P0。7控制电平输出0时,Q1导通,蜂鸣器蜂鸣;当P0。7控制电平输出1时,Q1截止,蜂鸣器停止蜂鸣;若把JP6选择断开连接,Q1截止,蜂鸣器停止蜂鸣. Q1采用开关三极管8550,其主要特点是放大倍数高hFE = 300,最大集电极电流ICM =1500mA,特征频率fT = 100MHz。 由于P0.7口与SPI部件的SSEL0复用,所以此管脚上接一上拉电阻R22,防止在使用硬件SPI总线时由于SSEL0引脚悬空导致SPI操作出错. 3。6实时时钟 3。6。1概述 实时时钟(RTC,Real Time Clock)提供一套计数器在系统上电和关闭操作时对时间进行测量,RTC消耗的功率非常低。 LPC2131的RTC时钟可由独立的32.768KHz振荡器或基于VPB时钟的可编程预分频器来提供。 另外,RTC还具有专用的电源管脚Vbat,可连接到电池或其它器件使用的相同的3.3V电压上。要使RTC中断能够唤醒掉电的CPU,必须选择外部时钟源。 3.6。2 特性 1、测量保持日历或时钟的时间通路; 2、超低功耗设计,支持电池供电系统; 3、提供秒、分、小时、日、月、年和星期; 4、指定的32KHz振荡器或可编程VPB时钟预分频器; 5、专用电源管脚可与电池或3。3V的电压相连 3.6.3 结构 RTC功能结构如图 4.116所示。 3。6.4 寄存器描述 RTC包含了许多寄存器,按照功能分成混合寄存器、时间寄存器、时间计数器、报警寄存器和预分频器几组,见表4.76。 3.7、PWM脉宽调制器 3。7。1 概述 LPC2131的脉宽调制器(PWM,Pulse Width Modulator)建立在标准定时器0/1之上。应用可在PWM和匹配功能当中进行选择。 PWM基于标准的定时器模块并具有其所有特性。不过LPC2131只将其PWM功能输出到管脚。定时器对外设时钟(pclk)进行计数,可选择产生中断或基于7个匹配寄存器,在到达指定的定时值时执行其它动作(设置为高/低电平、翻转或者无动作).它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择在事件发生时产生中断.PWM功能是一个附加特性,建立在匹配寄存器事件基础之上. 可独立控制上升沿和下降沿的位置,这样使PWM可以应用于更多的领域.例如,多相位电机控制通常需要3个非重叠的PWM输出,而这3个输出的脉宽和位置需要独立进行控 制。 两个匹配寄存器可用控制单边沿PWM输出.PWMMR0控制PWM周期率,另一个匹配寄存器(PWMMR1~PWMMR6)控制PWM边沿的位置.每个额外的单边沿PWM输出只需要一个匹配寄存器,因为所有PWM输出的重复率速率是相同的.多个单边沿控制PWM输出在每个PWM周期的开始,当PWMMR0发生匹配时,都有一个上升沿. 3个匹配寄存器共同控制一个双边沿PWM输出。PWMMR0控制PWM周期速率,其它匹配寄存器控制(PWMMR1~PWMMR6)两个PWM边沿位置.每个额外的双边沿PWM输出只需要两个匹配寄存器,因为所有PWM输出的重复率速率是相同的。 使用双边沿控制PWM输出时,指定的匹配寄存器控制输出的上升和下降沿.这样就产生了正脉冲(当上升沿先于下降沿时)和负脉冲(当下降沿先于上升沿时). 3。7.2特性 1、7个匹配寄存器,可实现6个单边沿控制或3个双边沿控制PWM输出,或这两种类型的混合输出: -连续操作,可选择在匹配时产生中断; -匹配时停止定时器,可选择产生中断; -匹配时复位定时器,可选择产生中断。 2、每个匹配寄存器对应一个外部输出,具有下列特性: -匹配时设置为低电平; -匹配时设置为高电平; -匹配时翻转; -匹配时无动作. 3、支持单边沿控制和/或双边沿控制的PWM输出。单边沿控制PWM输出在每个周期开始时总是为高电平,除非输出保持恒定低电平.双边沿控制PWM输出可在一个周期内的任何位置产生边沿.这样可同时产生正和负脉冲。 4、脉冲周期和宽度可以是任何的定时器计数值。这样可实现灵活的分辨率和重复速率的设定。所有PWM输出都以相同的重复率发生。 5、双边沿控制的PWM输出可编程为正脉冲或负脉冲。 6、匹配寄存器更新与脉冲输出同步,防止产生错误的脉冲。软件必须在新的匹配值生效之前将它们释放. 7、如果不使能PWM模式,可作为一个标准定时器. 8、带可编程32位预分频器的32位定时器/计数器。 9、当输入信号跳变时4个捕获寄存器可取得定时器的瞬时值,也可选择使捕获事件产生中断。 3。7。3 PWM的方框图 图4.100所示为PWM的方框图。在标准定时器模块上增加的部分位于图的右边和顶端.图4.100的PWM输出逻辑允许通过PWMSELn(在PWM控制寄存器PWMPCR中)位选择单边沿或者双边沿控制的PWM输出。 3。8、SPI接口 3。8。1 概述 LPC2131具有一个硬件SPI(SPI,Serial Peripheral Interface)接口,它是一个同步、全双工串行接口,最大数据位速率为时钟速率的1/8,可以配置为主机或者从机。 在同一总线上可以有多个主机或者从机,但同一时刻只能有一个主机和一个从机能够进行通信,在一次数据传输过程中,主机向从机发送一字节数据,从机也向主机返回一字节数据. SPI可应用于: 串行存储器,如DataFlash、三线EEPROM等;串行外设,如ADC、DAC、LCD控制器、CAN控制器、传感器等;外部协处理器。 3。8.2 特性 1、两个完全独立的SPI控制器;遵循串行外设接口(SPI)规范; 2、同步、串行、全双工通信;组合的SPI主机和从机; 3、最大数据位速率为输入时钟速率的1/8。 3.8.3 结构 SPI0接口中的SPI方框图见图4。47. 3。9。1 概述 LPC2131具有2个32位可编程定时/计数器,均具有4路捕获、4比较路匹配并输出电 路。 定时器对外设时钟(pclk)周期进行计数,可选择产生中断或根据4个匹配寄存器的设 定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作).它还包括4 个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断. 可用于对内部事件进行计数的间隔定时器,或者通过捕获输入实现脉宽调制,亦可作为 自由运行的定时器。 定时器0和定时器1除了外设基地址以外,其它都相同. 3。9。2 特性 带可编程32位预分频器的32位定时器/计数器; 具有多达4路32位的捕获通道-当输入信号跳变时可取得定时器的瞬时值,也可 3.9.3 结构 定时器0和定时器1的方框图,见图4.85。 4.1 程序概述 此程序是多功能万年历,具有以下功能: 1、利用实时时钟显示时间,利用定时器的功能使其两秒钟跳动一次; 2、进行整点报时:到了整点时用PWM音乐输出来报点; 3、SPI设置:当到了半点时数码管显示LPC2131来提醒人们; 4、当时间到了30秒时流水灯闪烁; 5、按键设置:当按下按键1时PWM音乐输出响应. 4。2 程序流程图 五、程序清单 /**************************************************************** ** 功能 :运行RTC进行计时,将时间值通过串口向上位机发送。 ** 上位机使用EasyARM软件,在仿真的万年历显示器显示结果。 ** 说明 :通讯波特率115200,8位数据位,1位停止位,无校验。 ****************************************************************/ #include ”config。h” #include "music。h” /* 歌曲曲谱 - 虹彩妹妹*/ const uint32 HCMM[] = { _LA, _SO, _MI, _LA, _SO, _MI, _LA, _LA, _SO, _LA, _LA, _SO, _MI, _LA, _SO, _MI, _RE, _RE, _DO, _RE, _MI, _MI, _SO, _LA, _DO1, _LA, _SO, _MI, _MI, _SO, _DO, _MI, _MI, _MI, _MI, _MI, _1LA,_1LA,_1SO,_1LA, }; /* 歌曲节拍 */ const uint32 HCMM_L[] = { _4, _8, _8, _4, _8, _8, _8, _4, _8, _2, _4, _8, _8, _4, _8, _8, _8, _4, _8, _2, _4, _8, _8, _8, _8, _8, _8, _8, _4, _8, _2, _4, _4, _4, _8, _8, _8, _4, _8, _2, }; typedef struct UartMode { uint8 datab; // 字长度 5/6/7/8 uint8 stopb; // 停止位 1/2 uint8 parity; // 奇偶校验 0-无校验, 1-奇校验, 2-偶校验 }UARTMODE; #define BEEP 1 <〈 7 // P0。7控制蜂鸣器 #define HC595_CS (1 <〈 29) // P0。29口为74HC595的片选 const uint32 LEDS8 = (0xFF 〈< 18); // P1[25:18]控制LED8~LED1,低电平点亮 const uint32 KEY1 = 1 〈< 16; // P0。16连接KEY1 const uint32 KEY2 = 1 〈〈 17; const uint32 KEY4 = 1 〈< 19; /******************************************************************** 函数名称: Delay ** 功能描述: 软件延时函数 ****************************************************************/ void Delay(uint8 dly) { uint32 i; for(; dly > 0; dly—-) for(i = 0; i 〈 0x7FFFF; i++); } /* ******************************************************************* 函数名称 :UART0_Init() ** 函数功能 :初始化串口:设置工作模式和波特率。 ** 入口参数 : baud 波特率 ** set 模式设置(UARTMODE数据结构) ** 出口参数 :返回1表示成功,0表示参数出错。 ****************************************************************/ uint8 UART0_Init (uint32 baud, UARTMODE set) { uint32 bak; // 参数过滤 if ((0 == baud) || (baud 〉 115200)) return (0); if ((set。datab 〈 5) || (set。datab 〉 8)) return (0); if ((0 == set.stopb) || (set.stopb 〉 2)) return (0); if (set。parity 〉 4) return (0); // 设置串口波特率 U0LCR = 0x80; // DLAB=1 bak = (Fpclk 〉〉 4) / baud; U0DLM = bak 〉〉 8; U0DLL = bak & 0xff; // 设置串口模式 bak = set.datab — 5; if (2 == set。stopb) bak |= 0x04; if (0 != set.parity) { set。parity = set。parity - 1; bak |= 0x08; } bak |= set。parity 〈< 4; U0LCR = bak; return (0); } /* ******************************************************************* 函数名称 :SendByte() ** 函数功能 :向串口UART0发送字节数据,并等待发送完毕。 ** 入口参数 :data 要发送的数据 ** 出口参数 :无 ****************************************************************/ void SendByte (uint8 data) { U0THR = data; while ((U0LSR & 0X20) == 0); // 等待数据发送 } /* **************************************************************** 函数名称 :PC_DispChar() ** 函数功能 :向PC机发送显示字符. ** 入口参数 :no 显示位置 ** char 显示的字符,不能为ff ** 出口参数 :无 ****************************************************************/ void PC_DispChar (uint8 no, uint8 chr) { SendByte(0xff); SendByte(0x81); SendByte(no); SendByte(chr); SendByte(0x00); } uint8 const SHOWTABLE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /* ******************************************************************************************************* ** 函数名称 :SendTimeRtc() ** 函数功能 :读取RTC的时间值,并将读出的时分秒值通过串口送到上位机显示。 ** 入口参数 :无 ** 出口参数 :无 ****************************************************************/ void SendTimeRtc (void) { uint32 datas; uint32 times; uint32 bak; times = CTIME0; // 读取完整的时钟寄存器 datas = CTIME1; bak = (datas 〉> 16) & 0xfff; // 获取 年 PC_DispChar(0, SHOWTABLE[bak / 1000]); bak = bak % 1000; PC_DispChar(1, SHOWTABLE[bak / 100]); bak = bak % 100; PC_DispChar(2, SHOWTABLE[bak / 10]); PC_DispChar(3, SHOWTABLE[bak % 10]); bak = (datas 〉> 8) & 0x0f; // 获取 月 PC_DispChar(4, SHOWTABLE[bak / 10]); PC_DispChar(5, SHOWTABLE[bak % 10]); bak = datas & 0x1f; // 获取 日 PC_DispChar(6, SHOWTABLE[bak / 10]); PC_DispChar(7, SHOWTABLE[bak % 10]); bak = (times >〉 24) & 0x07; // 获取 星期 PC_DispChar(8, SHOWTABLE[bak]); bak = (times >> 16) & 0x1f; // 获取 小时 PC_DispChar(9, SHOWTABLE[bak / 10]); PC_DispChar(10, SHOWTABLE[bak % 10]); bak = (times 〉〉 8) & 0x3f; // 获取 分钟 PC_DispChar(11, SHOWTABLE[bak / 10]); PC_DispChar(12, SHOWTABLE[bak % 10]); bak = times & 0x3f; // 获取 秒钟 PC_DispChar(13, SHOWTABLE[bak / 10]); PC_DispChar(14, SHOWTABLE[bak % 10]); } /****************************************************************** 函数名称:MSPI_Init() ** 函数功能:初始化SPI接口,设置为主机。 ** 入口参数:无 ** 出口参数:无 ****************************************************************/ void MSPI_Init(void) { //PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500; // 设置管脚连接SPI PINSEL0 = (PINSEL0 & (~(0xFF <〈 8))) | (0x55 <〈 8) ; SPCCR = 0x52; // 设置SPI时钟分频 SPCR = (0 〈< 3) | // CPHA = 0, 数据在SCK 的第一个时钟沿采样 (1 << 4) | // CPOL = 1, SCK 为低有效 (1 〈〈 5) | // MSTR = 1, SPI 处于主模式 (0 〈< 6) | // LSBF = 0, SPI 数据传输MSB (位7)在先 (0 〈〈 7); // SPIE = 0, SPI 中断被禁止 } /****************************************************************** 函数名称:MSPI_SendData() ** 函数功能:向SPI总线发送数据。 ** 入口参数:data 待发送的数据 ** 出口参数:返回值为读取的数据 *************************/ uint8 MSPI_SendData(uint8 data) { IOCLR = HC595_CS; // 片选74HC595 SPI_SPDR = data; while( 0 == (SPI_SPSR & 0x80)); // 等待SPIF置位,即等待数据发送完毕 IOSET = HC595_CS; return(SPI_SPDR); } /* 此表为LPC2131字模 */ // L P C 2 1 3 1 uint8 const LPC2131[7] = { 0xC7, 0x8C, 0xC6, 0xA4, 0xF9, 0xB0, 0xF9}; /* ******************************************************************************************************* ** 函数名称 :RTCInit() ** 函数功能 :初始化实时时钟 ** 入口参数 :无 ** 出口参数 :无 ******************************************************************************************************* */ uint8 rcv_data; void RTCInit (void) { PREINT = Fpclk / 32768 - 1; // 设置基准时钟分频器 PREFRAC = Fpclk - (Fpclk / 32768) * 32768; CCR = 0x00; // 禁止时间计数器 YEAR = 2009; MONTH = 05; DOM = 8; DOW = 5; HOUR = 8; MIN = 59; SEC = 50; CIIR = 0x01; // 设置秒值的增量产生1次中断 CCR = 0x01; // 启动RTC } void PWM_music (uint8 n) { uint8 i; PINSEL0 = 0x02 <〈 14; // P0。7选择PWM2功能 /* PWM初始化 */ PWMPR = 0x00; // 不分频,计数频率为Fpclk PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC PWMPCR = 0x0400; // 允许PWM2输出,单边PWM PWMMR0 = Fpclk / 500; PWMMR2 = PWMMR0 / 2; // 50%占空比 PWMLER = 0x05; // PWM0和PWM2匹配锁存 PWMTCR = 0x02; // 复位PWMTC PWMTCR = 0x09; // 启动PWM输出 for(i = 0; i < 10; i++) { SendTimeRtc(); PWMMR0 = Fpclk / HCMM[i]; // 设置输出频率 PWMLER = 0x05; // 更新匹配值后,必须锁存 Delay(HCMM_L[i]); // 延时,控制播放速度 } PWMMCR = 0x04; PINSEL0 = 0x00000005|0x00000000; } void GPIO_BEEP (uint8 n) { PINSEL0 = 0x00000000; // 设置管脚连接GPIO IO0DIR = BEEP; // 设置BEEP控制口为输出 {IO0CLR = BEEP; // BEEP 蜂鸣 Delay(30);} IO0SET = BEEP; PINSEL0 = 0x00000000|0x00000005; } void SPI_7SegLed (uint8 n) { uint8 i; PINSEL0 = 0x00005500; // 设置SPI管脚连接 PINSEL1 = 0x00000000; IODIR = HC595_CS; MSPI_Init(); /* 显示LPC2131字样 */ for(i=0; i〈7; i++) { rcv_data = MSPI_SendData(LPC2131[i]); // 发送显示数据 Delay(10); // 延时 } PINSEL0 = 0x00000000|0x00000005; } void GPIO_LEDS( uint8 n ) { /* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */ const uint32 LED_TBL[] = { 0x00, 0xFF, // 全部熄灭后,再全部点亮 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, // 依次逐个点亮 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, // 依次逐个叠加 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, // 依次逐个递减 0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81, // 两个靠拢后分开 0xA0, 0x50, 0x7e, 0x28, 0x14, 0x0A, 0x05, 0x82, 0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81 // 从两边叠加后递减 }; uint8 i; PINSEL1 = 0x00000000; // 设置管脚连接GPIO //PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO IO1DIR = LEDS8; // 设置LED1控制口为输出 for(i=n;i〈n+20;i++) { SendTimeRtc(); /* 流水灯花样显示 */ IO1SET = ~((LED_TBL[i]) <〈 18); Delay(5); IO1CLR = ((LED_TBL[i]) 〈〈 18); Delay(2); } IO1SET =LEDS8; PINSEL0 = 0x00000005|0x00000000; } /************************************** ** 函数名称 :main() ** 函数功能 :读取实时时钟的值,通过串口发送出去。 ***************************************/ int main (void) { UARTMODE uart0_set; PINSEL1 = 0x00000000; // 设置管脚连接GPIO PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO PINSEL0 = 0x00000000|0x00000005; // 连接IO到UART0, IO0DIR=BEEP; IO0SET=BEEP; //PINSEL1 = 0x00000000; // 设置管脚连接GPIO PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO IO1SET =LEDS8; IO1DIR = LEDS8; // 设置LED1控制口为输出 PWMMCR = 0x04; /* 定时器0初始化 */ T0TC = 0; /* 定时器设置为0*/ T0PR = 0; /* 时钟不分频*/ T0MCR = 0x03; /* 设置T0MR0匹配后复位T0TC,并产生中断标志*/ T0MR0 = Fpclk*2; /* 2秒钟定时*/ T0TCR = 0x01; /* 启动定时器*/ uart0_set.datab = 8; uart0_set。stopb = 1; uart0_set.parity = 0; UART0_Init(115200, uart0_set); U0FCR = 0x01; // FIFO使能 RTCInit(); while (1) { while ((T0IR & 0x01) == 0); /* 等待定时时间到*/ T0IR = 0x01; while (0 == (ILR & 0x01)); // 等待RTC增量中断 ILR = 0x01; // 清除中断标志 if((0x00 == SEC )&(0x00 == MIN)) { MSPI_Init(); SPI_7SegLed (5); } else if(((IO0PIN & KEY1) == 0)|((0x00 == SEC )&(0x00
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:实验报告4--万年历综合实验.doc
    链接地址:https://www.zixin.com.cn/doc/2670367.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork