西电32位嵌入式实验报告
更新时间:2024-06-21 19:27:01 阅读量: 综合文库 文档下载
- 西电嵌入式研究所推荐度:
- 相关推荐
32位嵌入式综合性实验报告
学院:研究生院 姓名:范峻豪 学号:1500030088
(一) 实验目的
1. 了解STR75xF微处理器芯片的体系结构; 2. 了解32位嵌入式系统程序设计基本技巧; 3. 掌握开发工具软件IAR的使用。
(二) 实验内容
设计程序下载到开发板中并用串口线将开发板与电脑相连,通过串口调试助手来控制开发板实现不同的功能。串口调试助手通过发送不同的控制字节来控制开发板,要求实现如下几项功能:
1.串口回显功能,串口调试助手向开发板发送一个字节,开发板接收到该字节后再将该字节传回到串口调试助手;
2.AD采集传送功能,利用控制器自带的AD,采集变阻器上的
电压值,将采集到的数据经过简单的平滑滤波后显示到数码管上,并通过串口传回到串口调试助手;
3.0.5S延时计数,并将计数值通过串口传回到串口调试助手; 4.200MS通用定时器计数,并将计数值通过串口传回到串口调
试助手;
5.100MS流水灯闪烁,开发板上的四个LED灯都要工作; 6.KEY2,KEY3触发两个外部中断,一个中断用来强制关闭其
他正在运行的程序并开启功能2程序,另外一个中断则用来关闭功能2程序。
(三)实验步骤
3.1 实验环境搭建
3.1.1 生成新的工作区
(1) 双击桌面IAR的快捷方式打开工作区,生成一个空白的工作区。 (2) 选择主菜单“Project->Create New Project”,弹出“生成新项目”窗口。如图3-1所示
(3) 在“Tool chain”栏中选择“ARM”,然后单击“OK”按钮,弹出“另存为”窗口。
图3-1 生成新项目窗口 图3-2 生成新项目
(5) 在“另存为”窗口中找到D:\\新建一个文件夹,命名为YXY,打开YXY文件夹,将新项目的名称命名为“EXTIT”然后保存。如图1-2所示。 在图1-2中项目“EXTIT”名后面的“Debug”表示本项目输出含调试信息的代码文件。EWARM能输出两种代码模式:Debug和Release。Debug模式生成包含
调试信息的程序代码,我们可以利用它在EWARM环境下调试应用程序;而Release模式生成不含调试信息的发行版本的程序代码,其代码比较紧凑,两者的代码量比可以达几倍。“Workspace”窗口顶部的下拉菜单显示当前项目的配置。EWARM为Debug提供两种运行模式,即在片内Flash中运行模式或在片内Flash中运行模式。两种运行模式需要提供不同的连接命令文件(.XCL),此实验选择在ARM中运行模式。项目保存以后,在“EXTIT”目录下生成一个空目录“setting”。
注意:EIC-Debug后的*号表示当前的工作区还没有保存。
(4)保存工作区。新生成的工作区需保存才有,选择主菜单“File->Save Workspace”,浏览并选择“D:\\ EXTIT”目录,然后输入工作区名“EXTIT”,单击“SAVE”按钮退出。这时在“EXTIT”目录下将生成工作区文件“EXTIT.eww”和项目参数设置文件EXTIT.dep、EXTIT.ewd和EXTIT.ewp等。窗口和断点放置,以及与当前操作有关的其他信息则存储在“setting”目录下的文件中。
注意:保存工作区操作完成后项目名后的*号已经消失。
3.1.2 给项目添加文件
(1) 选择在工作区窗口中的“EXTIT”项目名,使其高亮。单击鼠标右键 在弹出的菜单中选择“Add Group?”或选择主菜单“Project->Add Group?”执行添加文件组命令。在弹出菜单中将文件组起名为“startup” 。
(2)在工作区窗口中选择刚建立的文件目录“startup”,使其高亮。单击鼠标右键在弹出菜单中选择“Add Files...”执行添加文件命令。在弹出的添加文件窗口中浏览“D:\\Program Files\\NE-STR750开发学习板软件包\\NESTR75xF\\STDLIB\\LIBRARY\\STARTUP”目录,从中选择文件75x_init.s和75x_vect.s(对话菜单中的“文件类型”注意选择为All Files(*.*))。这两个文件将添加到工作区窗口的“startup”目录下。
(3)重新选择工作区窗口中的“EXTIT”项目名,使其高亮。单击鼠标右键在弹出的菜单中选择“Add Files...”执行添加文件命令。在弹出的添加文件窗口中浏览“D:\\Program Files\\NE-STR750文件。
另外,在这个路径下有一个Readme.txt文件,它是对EXTIT实验的说明,可以看到需要添加的函数文件,这些可以从“Source”库中复制,选择工作区窗口中的EXTIT项目名,单击鼠标右键在弹出菜单中选择“Add Files...”执行添加文件命令。在弹出的添加文件窗口中浏览“D:\\Program Files\\NE-STR750开发学习板软件包\\ NESTR75xF\\STDLIB\\LIBRARY\\SRC”目录,从中选择EXTIT实验需要添加的文件75x_lib.c、 75x_gpio.c、75x_eic.c、75x_extit.c和
开发学习板软件包
\\NESTR75xF\\EXAMPLES\\EXTIT”目录,从中选择75x_conf.h、75x_it.c、main.c
75x_mrcc.c。
注意:在项目中添加文件时只需要添加汇编语言和C语言的源程序,不需要添加头文件。
但是必须在设置项目的编译器(Compiler)选件时指明包含C语言用的头文件的路径和目录;而汇编程序的头文件路径则由EWARM自动指向,因此不必关心。
添加文件后的工作区窗口如图3-3所示。源文件后面的红色星号表示还没有经过编译处理,至此,EXTIT外部中断控制器的工程已经创建完成。
图3-3 添加文件后的工作区窗口
3.3 设置项目选件
生成新项目和添加文件后的下一步是为项目设置选件。设置项目选件是非常重要的一步,如果设置不当,编译、连接就会出错,无法生成正确的代码文件。在创建新项目是选择了“Empty project”模板,表示采用默认的项目选件设置。但是这些默认的设置还要根据具体项目进行修改。
IAR EWARM提供的项目选件内容繁多,实际上最关键的选件并不多,只要设置正确了,其他的采用默认设置就不会出错。
首先选中工作区中的项目名“EXTIT”,单击鼠标右键在弹出的菜单中选择“Options...”或选择主菜单“Project-> Options...”。在弹出的“Options”窗口左边的目录“Category”中选择要修改的选件。
(1)通用选件“General Option”设置。在弹出的“Options”窗口左边的目录“Category”中选择第一项“General Options”,然后分别在:
①“Target”页面中,“Processor Variant”框中选择“Device”,并单击
u8 TxBuffer[] = \Interrupt\\n\\r\
u8 RxBuffer[RxBufferSize]; u8 TxCounter = 0;
u8 NbrOfDataToTransfer = TxBufferSize; u8 NbrOfDataToRead = RxBufferSize; ErrorStatus OSC4MStartUpStatus;
void MRCC_Configuration(void); void GPIO_Configuration(void); void EIC_Configuration(void); int main() {
#ifdef DEBUG debug(); #endif
MRCC_Configuration(); GPIO_Configuration();
UART_InitStructure.UART_WordLength = UART_WordLength_8D; UART_InitStructure.UART_StopBits = UART_StopBits_1; UART_InitStructure.UART_Parity = UART_Parity_No ; UART_InitStructure.UART_BaudRate = 115200; UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;
UART_InitStructure.UART_Mode = UART_Mode_Tx_Rx; UART_InitStructure.UART_FIFO = UART_FIFO_Enable;
UART_InitStructure.UART_TxFIFOLevel = UART_FIFOLevel_1_4; UART_InitStructure.UART_RxFIFOLevel = UART_FIFOLevel_1_8;
UART_Init(UART0, &UART_InitStructure);
while(TxCounter < 0x05) {
UART_SendData(UART0, TxBuffer[TxCounter++]); }
UART_ITConfig(UART0, UART_IT_Receive, ENABLE); UART_ITConfig(UART0, UART_IT_Transmit, ENABLE); EIC_Configuration();
UART_Cmd(UART0, ENABLE); while (1); }
void MRCC_Configuration(void) {
MRCC_DeInit();
OSC4MStartUpStatus = MRCC_WaitForOSC4MStartUp(); if(OSC4MStartUpStatus == SUCCESS) {
MRCC_HCLKConfig(MRCC_CKSYS_Div2); MRCC_CKTIMConfig(MRCC_HCLK_Div1); MRCC_PCLKConfig(MRCC_CKTIM_Div1);
MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15); }
MRCC_IOVoltageRangeConfig(MRCC_IOVoltageRange_3V3); MRCC_PeripheralClockConfig(MRCC_Peripheral_UART0 | MRCC_Peripheral_GPIO, ENABLE); }
void GPIO_Configuration(void) {
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_Init(GPIO0, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIO0, &GPIO_InitStructure); }
void EIC_Configuration(void) {
EIC_IRQInitTypeDef EIC_IRQInitStructure;
EIC_IRQInitStructure.EIC_IRQChannel = UART0_IRQChannel; EIC_IRQInitStructure.EIC_IRQChannelPriority = 1;
EIC_IRQInitStructure.EIC_IRQChannelCmd = ENABLE; EIC_IRQInit(&EIC_IRQInitStructure); EIC_IRQCmd(ENABLE); }
2. AD采集传送功能子程序:
#include %u8 ADC10,ADC1; u16 adc_filter_cnt; u16 adcdata,adc_result; #define SA 0x0400 #define SB 0x0080 #define SC 0x0040 #define SD 0x0010 #define SE 0x0020 #define SF 0x0008 #define SG 0x0100
#define SH 0x0200
#define Digit_0 SA | SB | SC | SD | SE | SF #define Digit_1 SB | SC
#define Digit_2 SA | SB | SD | SE | SG #define Digit_3 SA | SB | SC | SD | SG #define Digit_4 SB | SC | SF | SG #define Digit_5 SA | SC | SD | SF | SG #define Digit_6 SA | SC | SD | SE | SF | SG #define Digit_7 SA | SB | SC
#define Digit_8 SA | SB | SC | SD | SE | SF | SG #define Digit_9 SA | SB | SC | SD | SF | SG #define Digit_A SA | SB | SC | SE | SF | SG #define Digit_B SC | SD | SE | SF | SG #define Digit_C SA | SD | SE | SF
#define Digit_D SB | SC | SD | SE | SG #define Digit_E SA | SD | SE | SF | SG #define Digit_F SA | SE | SF | SG #define Digit_SP 0
const u16 DigitTab[] = {Digit_0,Digit_1,Digit_2,Digit_3, Digit_4,Digit_5,Digit_6,Digit_7, Digit_8,Digit_9,Digit_A,Digit_B, Digit_C,Digit_D,Digit_E,Digit_F, Digit_SP};
GPIO_InitTypeDef GPIO_InitStructure ; EXTIT_InitTypeDef EXTIT_InitStructure; UART_InitTypeDef UART_InitStructure; ADC_InitTypeDef ADC_InitStructure;
void EIC_Configuration(void); void MRCC_Configuration(void); void GPIO_Configuration(void); void Display(u8 Digit,u8 position); ErrorStatus OSC4MStartUpStatus01; void main(void) {
#ifdef DEBUG debug(); #endif
EIC_Configuration(); MRCC_Configuration(); GPIO_Configuration();
TIM_SetPrescaler(TIM0, 0X3E7); TIM_SetPeriod(TIM0, 0xEA5F);
TIM_ITConfig(TIM0, TIM_IT_Update, ENABLE); TIM_Cmd(TIM0, ENABLE);
ADC_InitStructure.ADC_ConversionMode=ADC_ConversionMode_Scan; ADC_InitStructure.ADC_ExtTrigger = ADC_ExtTrigger_Disable; ADC_InitStructure.ADC_AutoClockOff = ADC_AutoClockOff_Disable; ADC_InitStructure.ADC_SamplingPrescaler = 7; ADC_InitStructure.ADC_ConversionPrescaler = 7;
ADC_InitStructure.ADC_FirstChannel = ADC_CHANNEL14; ADC_InitStructure.ADC_ChannelNumber = 1; ADC_Init(&ADC_InitStructure);
ADC_ITConfig(ADC_IT_EOC, ENABLE); ADC_Cmd(ENABLE);
ADC_ConversionCmd(ADC_Conversion_Start);
UART_InitStructure.UART_WordLength = UART_WordLength_8D; UART_InitStructure.UART_StopBits = UART_StopBits_1; UART_InitStructure.UART_Parity = UART_Parity_Odd ; UART_InitStructure.UART_BaudRate = 115200; UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;
UART_InitStructure.UART_Mode = UART_Mode_Tx; UART_InitStructure.UART_FIFO = UART_FIFO_Enable; UART_Init(UART0, &UART_InitStructure); UART_Cmd(UART0, ENABLE); Display(14,1); while(1) {
Display(ADC10,0); Display(ADC1,1); } }
void MRCC_Configuration(void) {
MRCC_DeInit();
OSC4MStartUpStatus01 = MRCC_WaitForOSC4MStartUp(); if(OSC4MStartUpStatus01 == SUCCESS) {
MRCC_HCLKConfig(MRCC_CKSYS_Div1); MRCC_CKTIMConfig(MRCC_HCLK_Div1); MRCC_PCLKConfig(MRCC_CKTIM_Div2);
CFG_FLASHBurstConfig(CFG_FLASHBurst_Enable);
MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15); }
MRCC_IOVoltageRangeConfig(MRCC_IOVoltageRange_3V3);
MRCC_PeripheralClockConfig(MRCC_Peripheral_GPIO, ENABLE); MRCC_PeripheralClockConfig(MRCC_Peripheral_ADC, ENABLE); MRCC_PeripheralClockConfig(MRCC_Peripheral_TIM0, ENABLE); MRCC_PeripheralClockConfig(MRCC_Peripheral_UART0, ENABLE); }
void GPIO_Configuration(void) {
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_1; GPIO_Init(GPIO0,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_9 | GPIO_Pin_8 | GPIO_Pin_7 | GPIO_Pin_6 | GPIO_Pin_5 | GPIO_Pin_4 | GPIO_Pin_3; GPIO_Init(GPIO1, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_Init(GPIO0,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_Init(GPIO1,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_Init(GPIO0, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIO0, &GPIO_InitStructure); }
void Display(u8 Digit,u8 position) {
u16 i;
GPIO0->PD &= 0xFFF0; Digit &= 0x0F;
GPIO_Write(GPIO1, DigitTab[Digit]);
if (position == 0)
GPIO0->PD |= 0x0004; // P02= COMM of digit 10 else
GPIO0->PD |= 0x0002; // P01= COMM of digit 1 for(i=0; i<0x100; i++); }
void EIC_Configuration(void) {
EIC_IRQInitTypeDef EIC_IRQInitStructure;
EIC_IRQInitStructure.EIC_IRQChannel = TIM0_UP_IRQChannel;
EIC_IRQInitStructure.EIC_IRQChannelPriority = 3;
EIC_IRQInitStructure.EIC_IRQChannelCmd = ENABLE; EIC_IRQInit(&EIC_IRQInitStructure);
EIC_IRQInitStructure.EIC_IRQChannel = ADC_IRQChannel; EIC_IRQInitStructure.EIC_IRQChannelPriority = 10; EIC_IRQInit(&EIC_IRQInitStructure); EIC_IRQCmd(ENABLE); }
3.通用定时器计数子程序:
#include \
TB_InitTypeDef TB_InitStructure; ErrorStatus OSC4MStartUpStatus; void MRCC_Configuration(void); void EIC_Configuration(void); void main() {
#ifdef DEBUG debug(); #endif
MRCC_Configuration(); GPIO_Configuration(); EIC_Configuration();
TB_InitStructure.TB_Mode = TB_Mode_Timing;
TB_InitStructure.TB_ClockSource = TB_ClockSource_CKTIM;
TB_InitStructure.TB_Prescaler = 239; TB_InitStructure.TB_CounterMode = TB_CounterMode_Up;
TB_InitStructure.TB_AutoReload = 999; TB_Init(&TB_InitStructure);
TB_ITConfig(TB_IT_Update, ENABLE); TB_Cmd(ENABLE); while(1); }
void MRCC_Configuration(void) {
MRCC_DeInit();
OSC4MStartUpStatus = MRCC_WaitForOSC4MStartUp(); if(OSC4MStartUpStatus == SUCCESS) {
MRCC_HCLKConfig(MRCC_CKSYS_Div1); MRCC_CKTIMConfig(MRCC_HCLK_Div1); MRCC_PCLKConfig(MRCC_CKTIM_Div2);
CFG_FLASHBurstConfig(CFG_FLASHBurst_Enable);
MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15);
}
MRCC_IOVoltageRangeConfig(MRCC_IOVoltageRange_3V3);
MRCC_PeripheralClockConfig(MRCC_Peripheral_TB | MRCC_Peripheral_GPIO, ENABLE); }
void EIC_Configuration(void) {
EIC_IRQInitTypeDef EIC_IRQInitStructure;
EIC_IRQInitStructure.EIC_IRQChannel = TB_IRQChannel; EIC_IRQInitStructure.EIC_IRQChannelPriority = 1;
EIC_IRQInitStructure.EIC_IRQChannelCmd = ENABLE; EIC_IRQInit(&EIC_IRQInitStructure); EIC_IRQCmd(ENABLE); }
4.流水灯子程序:
#include \
GPIO_InitTypeDef GPIO_InitStructure; ErrorStatus OSC4MStartUpStatus; void MRCC_Configuration(void); static void Delay(u32 nCount); u32 a=0; int main() {
#ifdef DEBUG debug(); #endif
MRCC_Configuration();
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 |GPIO_Pin_12 | GPIO_Pin_13 ;
GPIO_Init(GPIO0, &GPIO_InitStructure);
GPIO_PinMaskConfig(GPIO0, ~(GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_12| GPIO_Pin_13), ENABLE);
GPIO_Write(GPIO0, 0x00); while(1) {
GPIO_WriteBit(GPIO0, GPIO_Pin_8, Bit_SET); GPIO_WriteBit(GPIO0, GPIO_Pin_9, Bit_RESET); GPIO_WriteBit(GPIO0, GPIO_Pin_12, Bit_RESET); Delay(0xffFFF);
GPIO_WriteBit(GPIO0, GPIO_Pin_8, Bit_RESET); GPIO_WriteBit(GPIO0, GPIO_Pin_9, Bit_SET); GPIO_WriteBit(GPIO0, GPIO_Pin_12, Bit_RESET); Delay(0xfFFFF);
GPIO_WriteBit(GPIO0, GPIO_Pin_8, Bit_RESET); GPIO_WriteBit(GPIO0, GPIO_Pin_9, Bit_RESET); GPIO_WriteBit(GPIO0, GPIO_Pin_12, Bit_SET); Delay(0xfFFFF);
GPIO_WriteBit(GPIO0, GPIO_Pin_8, Bit_RESET); GPIO_WriteBit(GPIO0, GPIO_Pin_9, Bit_RESET); GPIO_WriteBit(GPIO0, GPIO_Pin_12, Bit_RESET); GPIO_WriteBit(GPIO0, GPIO_Pin_13, Bit_SET); Delay(0xfFFFF); } }
void MRCC_Configuration(void) {
MRCC_DeInit();
OSC4MStartUpStatus = MRCC_WaitForOSC4MStartUp();
if(OSC4MStartUpStatus == SUCCESS) {
MRCC_HCLKConfig(MRCC_CKSYS_Div2); MRCC_CKTIMConfig(MRCC_HCLK_Div2); MRCC_PCLKConfig(MRCC_CKTIM_Div1);
MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15); }
MRCC_IOVoltageRangeConfig(MRCC_IOVoltageRange_3V3);
MRCC_PeripheralClockConfig(MRCC_Peripheral_GPIO, ENABLE); }
static void Delay(u32 nCount) {
u32 j = 0;
for(j = nCount; j != 0; j--); }
4. 中断服务子程序:
#include \
u8 pit=0,con=0,biao=0;
void USART1_IRQHandler(void) {
char che;
DisableInterrupts; / che = uart_getchar (UART1);
printf(\你发送的字符为: %c\\n\\n\
con=che;
EnableInterrupts; } #if 1
void PIT0_IRQHandler(void) {
LED_turn(LED1); PIT_Flag_Clear(PIT0); pit=1; } #else
extern u32 test_time;
void PIT0_IRQHandler(void) {
test_time++;
PIT_Flag_Clear(PIT0); }
#endif
void PORTA_IRQHandler() {
u8 n=0; n = 19;
if(PORTA_ISFR & (1 << n)) {
PORTA_ISFR |= (1 << n); con='0';
if (biao) printf(\关闭功能2\\n\ } n = 26;
if(PORTA_ISFR & (1 << n)) {
PORTA_ISFR |= (1 << n); con='2';printf(\开启功能2\\n\ biao=1;
//LED_turn(LED1); } }
5. 主程序:
/
#include \ void display( u16 result ); extern u8 con,pit,biao;
u8 dis_code[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
0x7D,0x07,0x7F,0x6F,0x80,0xFF }; void main() {
char ch;
u8 ADresult,conn,i,j; u16 count; DisableInterrupts; LED_INIT();
pit_init_ms(PIT0,200); uart_init (UART1, 115200); adc_init (ADC0, SE17); gpio_init (PORTB,20,GPO,1); gpio_init (PORTB,21,GPO,1); gpio_init (PORTB,22,GPO,1); gpio_init (PORTB,23,GPO,1); exti_init(PORTA,26,rising_down); exti_init(PORTA,19,rising_down); for(i = 0;i< 8;i++) {
gpio_init (PORTD,i,GPO,1); }
EnableInterrupts ; disable_irq(68);
uart_irq_EN (UART1);
printf(\请输入控制字节: \\n\
while(1) {
if(conn!=con) {count=0;disable_irq(68);} conn=con; switch(conn)
{ case '1':printf(\串口回显功能\\n\ ch=uart_getchar(UART1);
printf(\你发送的字符为: %c\\n\\n\ break;
case '2':if(j==1) printf(\采样传送功能\\n\
ADresult=ad_ave(ADC0 ,SE17, ADC_8bit , 3);j++; if(con=='2'&&j>100)
{j=0; printf(\结果为 :%d\\n\\n\ display(ADresult); break;
case '3':printf(\延时计数\\n\
delayms(400);count++;LED_turn(LED1);display(count); printf(\延时计数结果为 :%d\\n\\n\ break;
case '4':enable_irq(68);
if(pit) {printf(\定时器计数\\n\
printf(\定时计数结果为 :%d\\n\\n\ break;
case '5': printf(\流水灯功能\\n\ water_lights();break;
case '6': printf(\中断功能\\n\ delayms(500);break; } } }
void display( u16 result ) {
u8 qian=0,shi=0,ge=0,bai=0; qian=result/1000;
bai=(result-qian*1000)/100;
shi=(result-qian*1000-bai*100)/10; ge=result-qian*1000-bai*100-shi*10;
GPIO_SET_8bit(PORTD,0,1);
GPIO_SET_8bit(PORTD,0,dis_code[qian]); gpio_set(PORTB,20,0); delayms(1);
gpio_set(PORTB,20,1);
GPIO_SET_8bit(PORTD,0,1);
GPIO_SET_8bit(PORTD,0,dis_code[bai]); gpio_set(PORTB,21,0); delayms(1);
gpio_set(PORTB,21,1);
GPIO_SET_8bit(PORTD,0,1);
GPIO_SET_8bit(PORTD,0,dis_code[shi]); gpio_set(PORTB,22,0); delayms(1);
gpio_set(PORTB,22,1);
GPIO_SET_8bit(PORTD,0,1);
GPIO_SET_8bit(PORTD,0,dis_code[ge]); gpio_set(PORTB,23,0); delayms(1);
gpio_set(PORTB,23,1); }
正在阅读:
西电32位嵌入式实验报告06-21
瓦西干渠施工组织设计 - 图文05-20
偏执狂批判法10-17
台南御宿Motel-文信馆(Royal Group Motel Wen Shin Branch)04-30
中国隐框玻璃幕墙行业发展现状调研与市场前景预测报告08-25
2014年初级审计师考试《审计专业相关知识》真题及答案12-07
2013年室内设计师必备的条件考试题库07-24
亲属关系证明样本02-14
人教新目标九年级英语Unit10测试题05-10
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 西电
- 嵌入式
- 实验
- 报告
- 尔雅_中国哲学概论_2018
- CFA每日一练 level I 定量6
- 淮安市金属表面处理及热处理加工企业分析报告2018版
- 全国汽车维修工中级(汇总题库)
- 结核病知识试题及答案综合版
- 专业技术人员继续教育《专业技术人员继续教育科研方法与论文写作
- 共小2012社团工作总结
- 酒文化选修课论文
- 地下管线探测及信息管理系统建设工程招标文件
- 苏教版小学语文三年级上册全册教案(个性修改)
- 网络使人更亲近正方一辩陈辞
- 院自律部工作计划(共10篇)
- 保险资金运用管理暂行办法-中国保险监督管理委员会令2010年第9号
- WINCE BIB文件相关资料
- 技术标 - 图文
- 2018-2024年中国饭店市场深度调查研究报告(目录) - 图文
- 2013山东三支一扶资料1.1.4【行测讲义】资料分析
- 2010年平遥中国年“编”灯谜佳谜奖得奖谜作
- 关于进一步规范杭州市建筑市场秩序强化建设工程质量安全管理的实
- 15秋西南交大《画法几何及工程制图A》在线作业二答案