您好,欢迎访问三七文档
2017春季《微处理器原理与设计》大作业班级:分数姓名:学号:一、ARMCortex-M3微处理器编程实现使端口PA的低4位产生如下图所示的信号(各个信号的节拍不必严格相等),初始状态为0。PA0PA1PA2PA3要求:1、画出程序设计流程图。YNSTARTSetPA0-3asoutputsR0=0PA0-3outputvalueofR0R0=R0+1PA0-3outputvalueofR0R08?R0=02、写出完整的源代码并给出必要的注释。1.CLanguage(Notall)#includestm32f10x.huint32_tmain(){uint32_tn=1;RCC-APB2ENR=12;//EnabletheGPIOAGPIOA-CRL=0x4444333;//PA0~PA3areaconfiguredforoutputGPIOA-ODR=0;while(1){GPIOA-ODR=n++;if(n8)n=1;}return0;}2.AssemblyLanguage;////////////////////////////////////////////////////////////////;Date:2017/6/23;Description:Counter;Author:JF_LIU;//////////////////////////////////////////////////////////////////PRESERVE8THUMBStack_SizeEQU0x00000100Heap_SizeEQU0x00000100;///////////////////////////////////////////////////////////////////RCC_BASEEQU0x40021000;ResetandclockcontrolRCC_CREQU0x00;ClockcontrolregisterRCC_CFGREQU0x04;ClockconfigurationregisterRCC_CIREQU0x08;ClockinterruptregisterRCC_APB2RSTREQU0x0CRCC_APB1RSTREQU0x10RCC_AHBENREQU0x14RCC_APB2ENREQU0x18;APB2peripheralclockenableregisterRCC_APB1ENREQU0x1CRCC_BDCREQU0x20RCC_CSREQU0x24RCC_PIOA_ENEQU0x12;EnableGPIOAGPIOA_BASEEQU0x40010800;GeneralpurposeI/OportAcontrolGPIOx_CRLEQU0x00;PortconfigurationregisterlowGPIOx_CRHEQU0x04;PortconfigurationregisterhighGPIOx_IDREQU0x08;PortinputdataregisterGPIOx_ODREQU0x0C;PortoutputdataregisterGPIOx_BSRREQU0x10GPIOx_BRREQU0x14GPIOx_LCKREQU0x18;//////////////////////////////////////////////////////////////////////////////AREASTACK,NOINIT,READWRITEEXPORT__initial_spStack_MemSPACEStack_Size__initial_spALIGN;/////////////////////////////////////////////////////////////////////////////AREAHEAP,NOINIT,READWRITEEXPORT__heap_baseEXPORT__heap_limit__heap_baseHeap_MemSPACEHeap_Size__heap_limitALIGN;////////////////////////////////////////////////////////////////////////////////;VectorTableMappedtoAddress0atResetAREARESET,CODE,READONLYEXPORT__Vectors__VectorsDCD__initial_sp;TopofStackDCDReset_Handler;ResetHandlerALIGN;///////////////////////////////////////////////////////////////////////////////EXPORTReset_HandlerENTRY;///////////////////////////////////////////////////////////////////////////////Reset_HandlerMYMAINPROCLDRR0,=RCC_BASELDRR1,=RCC_PIOA_ENSTRR1,[R0,#RCC_APB2ENR];EnableGPIOALDRR1,=GPIOA_BASELDRR0,=0x44443333;PA0~PA3areaconfiguredforoutputSTRR0,[R1,#GPIOx_CRL]MOVR0,#0x0STRR0,[R1,#GPIOx_ODR];outputloopADDR0,#0x1;CounterSTRR0,[R1,#GPIOx_ODR];outputCMPR0,#0x8BLOloopMOVR0,#0x0BloopENDPEND二、ARMCortex-M3微处理器使用端口PA控制一片七段数码管(共阳极),按键K连接如图所示。实现下述功能:从考生学号的第1位数字开始,每按一次键就触发中断,数码管显示变化一次,显示后续数字,最后一位数字的后续是第1位数字。开始状态号为考生学号的第一位数。编写完成上述处理程序。处理程序中采用子程序进行数码显示,中断方式实现按键处理,中断服务程序包括显示子程序。(EXTI硬件中断已配置)aabcdefggedfcb(EXTI)+5V+5VIRQ6PA8PA9PA10PA11PA12PA13PA14K1、请描述程序设计思路。配置中断向量表,使能RQ6。根据数码管的共阳特性写出学号的对应输入值,高位以1补齐。主程序中配置端口属性,设置PA8-14为输出,调用显示程序显示学号的第一位,同时指向“数组”的偏移地址自增。自此,程序进入“死循环”状态,等待外部中断。当发生中断时,判断偏移地址是否到达10,如果是,偏移地址重新置为0,然后显示学号第一位;否则直接显示该位数字。2、画出程序设计流程图。ISRNYSTARTSetPA8-14asoutputsEnableIRQ6Setnumberoffsetaddress(R3=0)DisplaythefirstnumberWaitforinterruptionEND(dormancy)R310?R3=R3+1Saveinterruptreturnaddress(RL)CalldisplayprogramRestoreinterruptreturnaddress(RL)RestoreinterruptreturnaddressISRreturnR3=0Displaysubroutine3、写出完整的程序源代码并给出必要的注释。;///////////////////////////////////////////////////////;Date:2017/6/24;Description:sevensegmentsLEDdisplay;Author:JF_LIU;//////////////////////////////////////////////////////////PRESERVE8THUMBStack_SizeEQU0x00000100;//////////////////////////////////////////////RCC_BASEEQU0x40021000;ResetandclockcontrolRCC_APB2ENREQU0x18;APB2peripheralclockenableregisterRCC_PIOA_ENEQU0x12;EnabletheGPIOAGPIOA_BASEEQU0x40010800;GeneralpurposeI/OportAcontrolGPIOx_CRLEQU0x00;PortconfigurationregisterlowGPIOx_CRHEQU0x04;PortconfigurationregisterhighGPIOx_IDREQU0x08;PortinputdataregisterGPIOx_ODREQU0x0C;Portoutputdataregister;////////////////////////////////////////////////////////////////////////////AREASTACK,NOINIT,READWRITELoadthenumber(R4)R4=R48PA8-14outputthenumberInitializeR5CalldelayprogramSubroutinereturnRestorethevalueofR4,R5SaveR4,R5tostackEXPORT__initial_spStack_MemSPACEStack_Size__initial_spALIGN;//////////////////////////////////////////////////////////////////////////////AREAMY_DATA,READONLY;Font0:0xc01:0xf92:0xa43:0xb04:0x995:0x926:0x827:0xf88:0x809:0x90NUMBERDCB0xF9,0x92,0xC0,0xF9,0xC0,0xF9,0x99,0xC0,0xC0,0xF8,0x90;15010140079ALIGN;/////////////////////////////////////////////////////////////////////////;VectorTableMappedtoAddress0atResetAREARESET,DATA,READONLYEXPORT__Vectors__VectorsDCD__initial_sp;TopofStackDCDReset_Handler;ResetHandlerSPACE20*4DCDIRQ6_HandlerALIGN;////////////////////////////////////////////////////////////////////////AREA|.text|,CODE,READONLYEXPORTReset_HandlerENTRY;/////////////////////////////////////////////////////////////////////////Reset_HandlerMY_MAINPROCLDRR0,=RCC_BASELDRR1,=RCC_PIOA_ENSTRR1,[R0,#RCC_APB2ENR]LDRR2,=NUMBERMOVR3,#0x00;DisplayTheOffsetOfCurrentStudent'snumberLDRR0,=GPIOA_BASELDRR1,=0x44444444;SetPA8-15AsOutputsSTRR1,[R0,#GPIOx_CRH]LDRR0,=0XE000E100M
本文标题:大作业
链接地址:https://www.777doc.com/doc-5574745 .html