ARM程序.doc_第1页
ARM程序.doc_第2页
ARM程序.doc_第3页
ARM程序.doc_第4页
ARM程序.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一:#include config.h/ 定义LED控制口 (输出高电平时点亮LED)#define LED1_CON (111) /* GPE11口 */#define LED2_CON (112) /* GPE12口 */#define LED3_CON (14) /* GPH4口 */#define LED4_CON (16) /* GPH6口 */ 定义蜂鸣器控制口#define BEEP (10; dly-) for(i=0; i50000; i+);/* Function name: RunBeep* Descriptions: 控制蜂鸣器Be一声音。 * Input: 无* Output: 无*/void RunBeep(void) rGPHDAT = rGPHDAT & BEEP_MASK; / BEEP = 0 DelayNS(5); rGPHDAT = rGPHDAT | BEEP; / BEEP = 1 DelayNS(5);/* Function name: LED_DispAllOn* Descriptions: 控制LED1LED4全部点亮。 * Input: 无* Output: 无* Created by: 黄绍斌*/void LED_DispAllOn(void) rGPEDAT = rGPEDAT | (0x0311); rGPHDAT = rGPHDAT | (0x054); /* Function name: LED_DispAllOff* Descriptions: 控制LED1LED4全部熄灭。 * Input: 无* Output: 无*/void LED_DispAllOff(void) rGPEDAT = rGPEDAT & (0x0311); rGPHDAT = rGPHDAT & (0x054); /* Function name: LED_DispNum* Descriptions: 控制LED1LED4显示指定16进制数值。LED4为最高位,LED1为最低为,点亮表示该位为1。 * Input: dat 显示数值(低4位有效)* Output: 无* Created by: 黄绍斌*/void LED_DispNum(uint32 dat) dat = dat & 0x0000000F; / 参数过滤 / 控制LED4、LED3显示(d3、d2位) if(dat & 0x08) rGPHDAT = rGPHDAT | (0x016); else rGPHDAT = rGPHDAT & (0x016); if(dat & 0x04) rGPHDAT = rGPHDAT | (0x014); else rGPHDAT = rGPHDAT & (0x014); / 控制LED2、LED1显示(d1、d0位) rGPEDAT = (rGPEDAT & (0x0311) | (dat&0x03) 11); /* Function name: main* Descriptions: 初始化I/O,然后控制LED显示。 * Input: 无* Output: 系统返回值0*/int main(void) int i; / 初始化I/O rGPECON = (rGPECON & (0x0F22) | (0x0522); / rGPECON25:22 = 0101b,设置GPE11、GPE12为GPIO输出模式 rGPHCON = (rGPHCON & (0x338) | (0x118); / rGPHCON13:8 = 01xx01b,设置GPH4、GPH6为GPIO输出模式 rGPHCON = (rGPHCON & (0x0320) | (0x0120); / rGPHCON21:20 = 01b,设置GPH10为GPIO输出模式 / LED显示控制(编写程序) for(i=0;i4;i+) LED_DispAllOff(); DelayNS(5); LED_DispAllOn(); DelayNS(5); LED_DispNum(1); DelayNS(5); LED_DispNum(2); DelayNS(5); LED_DispNum(4); DelayNS(5); LED_DispNum(8); DelayNS(5); for(i=0;i4;i+) LED_DispAllOff(); DelayNS(5); LED_DispAllOn(); DelayNS(5); /* End Of File*/实验二#include config.h/ 定义独立按键KEY1的输入口#define KEY_CON (14) /* GPF4口 */ 定义蜂鸣器控制口#define BEEP (10; dly-) for(i=0; i50000; i+);/* Function name: main* Descriptions: 不断地读取GPF4口的值,并输出控制蜂鸣器B1。 * Input: 无* Output: 系统返回值0*/int main(void) / 初始化I/O rGPFCON = (rGPFCON & (0x038); / rGPFCON9:8 = 00b,设置GPF4为GPIO输入模式 rGPHCON = (rGPHCON & (0x0320) | (0x010;dly-) for(i=0;i50000;i+);uint8 g_getch =0;int main(void) int i; UART_Select(0); UART_Init(); for(i=0;i0;dly-) for(i=0;i50000;i+);uint8 g_getch =0;int main(void) int i; UART_Select(0); UART_Init(); for(i=0;i0;dly-) for(i=0;i50000;i+);uint8 g_getch =0;int main(void) int i; UART_Select(0); UART_Init(); for(i=0;i1;i+) UART_SendStr(1 编辑 2 格式n); while(1) g_getch=UART_GetKey(); UART_SendByte(g_getch); switch(g_getch) case 1: UART_SendStr(剪贴 复制 粘贴 删除n); break; case 2: UART_SendStr(字体n); break; 实验五#include config.h#define BEEP (10; dly-) for(i=0; i50000; i+);void IRQ_Time0(void) if(rGPHDAT&BEEP) rGPHDAT=rGPHDAT&BEEP_MASK; else rGPHDAT=rGPHDAT|BEEP; rSRCPND=110; rINTPND=rINTPND;int main(void)rGPHCON=(rGPHCON&(0x0320)|(0x0120);rGPHDAT=rGPHDAT|BEEP;VICVectAddr10=(uint32)IRQ_Time0;rPRIORITY=0x00000000;rINTMOD=0x00000000;rINTMSK=(110);rTCFG0=250;rTCFG1=1;rTCMPB0=0x0000;rTCNTB0=25*10000;rTCON=(11);rTCON=(10)|(13);IRQEnable();while(1);return(0);实验六#include config.h#include#include #define BEEP (10; dly-) for(i=0; i50000; i+);void IRQ_Timer0()if(rGPHDAT&BEEP)rGPHDAT=rGPHDAT&BEEP_MASK;elserGPHDAT=rGPHDAT|BEEP;/buf0+;/*if(buf0=60)buf0=0;buf1+;if(buf1=60)buf1=0;buf2+;if(buf2=24)buf2=0;*/UART_SendByte(0x0c);s+;buf0=s%60;buf1=s/60%60;buf2=s/3600%24;sprintf(buffer,%02d:%02d:%02d,buf2,buf1,buf0);UART_SendStr(buffer);UART_SendStr(n);rSRCPND=110;rINTPND=rINTPND;int main(void)UART_Select(0);UART_Init();rGPHCON=(rGPHCON&(0x0320)|(0x0120);rGPHDAT=rGPHDAT|BEEP;VICVectAddr10=(uint32)IRQ_Timer0;rPRIORITY=0x00000000;rINTMOD=0x00000000;rINTMSK=(110);rTCFG0=250;rTCFG1=1;rTCMPB0=0x0000;rTCNTB0=25*1000;rTCON=(11);rTCON=(10)|(13);IRQEnable();while(1); return(0);实验七#include config.h#include#include #define BEEP (10; dly-) for(i=0; i50000; i+);void IRQ_Timer0()if(rGPHDAT&BEEP)rGPHDAT=rGPHDAT&BEEP_MASK;elserGPHDAT=rGPHDAT|BEEP;UART_SendStr(S3c2410);UART_SendStr(n);rSRCPND=110;rINTPND=rINTPND;int main(void)UART_Select(0);UART_Init();rGPHCON=(rGPHCON&(0x0320)|(0x0120);rGPHDAT=rGPHDAT|BEEP;VICVectAddr10=(uint32)IRQ_Timer0;rPRIORITY=0x00000000;rINTMOD=0x00000000;rINTMSK=(110);rTCFG0=250;rTCFG1=1;rTCMPB0=0x0000;rTCNTB0=25*1000;rTCON=(11);rTCON=(10)|(13);IRQEnable();while(1); return(0);实验八#include config.h#define MOTOA (15)#define MOTOB (16)#define MOTOC (17)#define MOTOD (10;dly-) for(i=0;i0;dly-) for(i=0;i5000;i+);void MOTO_Mode2(uint8 dly) uint32 i; for(i=0;i20;i+) GPIOSET(MOTOA); GPIOSET(MOTOB); DelayNS(dly); GPIOCLR(MOTOA); GPIOCLR(MOTOB); GPIOSET(MOTOB); GPIOSET(MOTOC); DelayNS(dly); GPIOCLR(MOTOB); GPIOCLR(MOTOC); GPIOSET(MOTOC); GPIOSET(MOTOD); DelayNS(dly); GPIOCLR(MOTOC); GPIOCLR(MOTOD); GPIOSET(MOTOD); GPIOSET(MOTOA); DelayNS(dly); GPIOCLR(MOTOD); GPIOCLR(MOTOA); void MOTO_Mode3(uint8 dly) uint32 i; for(i=0;i200;i+) GPIOSET(MOTOB); GPIOSET(MOTOA); DelayNS2(dly); GPIOCLR(MOTOB); GPIOCLR(MOTOA); GPIOSET(MOTOA); GPIOSET(MOTOD); DelayNS2(dly); GPIOCLR(MOTOA); GPIOCLR(MOTOD); GPIOSET(MOTOD); GPIOSET(MOTOC); DelayNS2(dly); GPIOCLR(MOTOD); GPIOCLR(MOTOC); GPIOSET(MOTOC); GPIOSET(MOTOB); DelayNS2(dly); GPIOCLR(MOTOC); GPIOCLR(MOTOB); int main(void) rGPCCON=(rGPCCON&(0x0000FC03)|(0x00005401); rGPCUP=rGPCUP|0x00E1; rGPCDAT=rGPCDAT&(0x00E1); while(1) MOTO_Mode2(1); DelayNS(20); MOTO_Mode3(1); DelayNS(20); return(0);实验九/*Copyright (c)* Guangzhou ZHIYUAN electronics Co.,LTD.* * *-File Info-* File Name: main.c* Last modified Date: * Last Version: * Description: *-* Created By: * Created date: * Version: * Descriptions:*-* Modified by:* Modified date:* Version:* Description:*/#include config.h#define KEY_CON (10; dly-) for(i=0; i50000; i+);/* Function name: main* Descriptions: 主函数,程序入口。 * Input: 无* Output: 系统返回值0* Created by: 黄绍斌* Created Date: 2005-12-31 *-* Modified by:* Modified Date: *-*/int WaitKey(void) uint32 i; while(1) while(rGPFDAT&KEY_CON)=KEY_CON); for(i=0;icycle)duty=cycle; rTCFG0=97; rTCFG1=0; rTCMPB0=duty; rTCNTB0=cycle; if(rTCON&0x04)rTCON=(11); else rTCON=(12)|(11); rTCON=(10)|(13); int main(void) rGPFCON=(rGPFCON&(0x038); while(1) WaitKey(); if(a=1) rGPBCON = rGPBCON&(0x00)|(0x010); / GPB0口 rGPBDAT = rGPBDAT &(0x00)|(00); / 输出0电平 rGPBUP = rGPBUP | (10); rGPHCON = (rGPHCON &(0x00)| (0x0118); / GPH9口 rGPHDAT = rGPHDAT &(0x00)| (19); / 输出1电平 rGPHUP = rGPHUP | (19); if(a=2) / TOUT0口设置 rGPBCON =(rGPBCON&(0x00)|(0x010); / GPB0口 rGPBDAT = rGPBDAT &(0x00) |(10); / 输出1电平 rGPBUP = rGPBUP | (10); / 设置GPH9为GPIO输出模式 rGPHCON = (rGPHCON &(0x00)| (0x0118); / GPH9口 rGPHDAT = rGPHDAT & (0x00)|(19); / 输出1电平 rGPHUP = rGPHUP | (19); if(a=3)a=0;rGPBCON = rGPBCON&(0x00)|(0x010); / GPB0口 rGPBDAT = rGPBDAT &(0x00)|(00); / 输出0电平 rGPBUP = rGPBUP | (10); rGPHCON = (rGPHCON &(0x00)| (0x0118); / GPH9口 rGPHDAT = rGPHDAT &(0x00)| (09); / 输出0电平 rGPHUP = rGPHUP | (19); return(0); 实验十#include config.h#defineTask0StkLengh64 / Define the Task0 stack length 定义用户任务0的堆栈长度#defineTask1StkLengh64 / Define the Task1 stack length 定义用户任务1的堆栈长度OS_STKTask0Stk Task0StkLengh; / Define the Task0 stack 定义用户任务0的堆栈OS_STKTask1Stk Task1StkLengh; / Define the Task1 stack 定义用户任务1的堆栈/ 定义独立按键KEY1的输入口#define KEY_CON (14) /* GPF4口 */ 定义蜂鸣器控制口#define BEEP (110) /* GPH10口 */#define BEEP_MASK (BEEP)/ 按键状态uint8 KeyState = FALSE;void Task0(void *pdata); / Task0 任务0void Task1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论