综合实验完成

添加系统状态显示LED

将pwm控制放到了定时器中断里

改变开关为控制系统开关

在按键中断里加入了整个系统的开关控制

修改并优化了电路图
This commit is contained in:
ecol 2020-05-26 09:29:43 +08:00
parent e6af1a769a
commit 1da6dcb89c
9 changed files with 47 additions and 2195 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,389 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<WORKSPACE>
<FRAME activewindow="0">
<PLACEMENT>2c00000002000000030000000083ffff0083ffffffffffffffffffff440000000d00000060060000ff030000</PLACEMENT>
<WINDOW type="default" module="ISIS"/>
</FRAME>
<MODULE name="VSMDEBUG">
<PWI>
<POPUP w="800" x="165" flags="00000002" y="219" h="200" pid="0" iid="-1">
<PROPERTIES>
<ITEM name="Message Column Width">540</ITEM>
<ITEM name="ShowGrid">No</ITEM>
<ITEM name="Source Column Width">100</ITEM>
<ITEM name="Time Column Width">120</ITEM>
<ITEM name="Version">100</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="350" x="185" flags="00000032" y="239" h="200" pid="1" iid="-1">
<PROPERTIES>
<ITEM name="Address Column Width">82</ITEM>
<ITEM name="AutoResize">No</ITEM>
<ITEM name="Gridlines">Yes</ITEM>
<ITEM name="Name Column Width">82</ITEM>
<ITEM name="ShowAddresses">Yes</ITEM>
<ITEM name="ShowPreviousValues">No</ITEM>
<ITEM name="ShowTypes">No</ITEM>
<ITEM name="ShowWatchPoint">Yes</ITEM>
<ITEM name="TriggerMode">0</ITEM>
<ITEM name="Value Column Width">82</ITEM>
<ITEM name="Version">100</ITEM>
<ITEM name="Watch Expression Column Width">82</ITEM>
<ITEM name="nItems">0</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="610" x="205" flags="00000000" y="259" h="472" pid="0" iid="15">
<PROPERTIES/>
</POPUP>
<POPUP w="695" x="405" flags="00000000" y="266" h="459" pid="0" iid="14">
<PROPERTIES/>
</POPUP>
<POPUP w="450" x="245" flags="00000022" y="299" h="250" pid="0" iid="16">
<PROPERTIES>
<ITEM name="AutoEcho">0</ITEM>
<ITEM name="HexMode">0</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="265" flags="0000000a" y="319" h="32" pid="200" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">08000000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="285" flags="0000000a" y="339" h="32" pid="210" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">20000000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="305" flags="0000000a" y="359" h="32" pid="220" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40012400</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="325" flags="0000000a" y="379" h="32" pid="230" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40012800</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="345" flags="0000000a" y="399" h="32" pid="240" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40012C00</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="365" flags="0000000a" y="419" h="32" pid="250" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40021000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="385" flags="0000000a" y="439" h="32" pid="260" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40010400</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="405" flags="0000000a" y="459" h="32" pid="270" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40007000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="425" flags="0000000a" y="479" h="32" pid="280" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40010800</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="445" flags="0000000a" y="499" h="32" pid="290" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40010C00</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="465" flags="0000000a" y="519" h="32" pid="300" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40011000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="485" flags="0000000a" y="539" h="32" pid="310" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40011400</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="505" flags="0000000a" y="559" h="32" pid="320" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40013800</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="525" flags="0000000a" y="579" h="32" pid="330" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40004400</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="545" flags="0000000a" y="599" h="32" pid="340" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40013000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="565" flags="0000000a" y="619" h="32" pid="190" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40005400</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="585" flags="0000000a" y="639" h="32" pid="360" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40000000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="605" flags="0000000a" y="659" h="32" pid="370" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40000400</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="625" flags="0000000a" y="679" h="32" pid="380" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40005C00</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="645" flags="0000000a" y="699" h="32" pid="410" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">E000E000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="665" flags="0000000a" y="719" h="32" pid="420" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40022000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="685" flags="0000000a" y="739" h="32" pid="430" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40020000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="705" flags="0000000a" y="759" h="32" pid="440" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40010000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="725" flags="0000000a" y="779" h="32" pid="450" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40002800</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="745" flags="0000000a" y="799" h="32" pid="460" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40006000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="765" flags="0000000a" y="819" h="32" pid="470" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40003000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="785" flags="0000000a" y="839" h="32" pid="480" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40002C00</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="805" flags="0000000a" y="859" h="32" pid="490" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40023000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="825" flags="0000000a" y="879" h="32" pid="500" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">40006C00</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="16" x="845" flags="0000000a" y="899" h="32" pid="510" iid="1">
<PROPERTIES>
<ITEM name="DataType">2</ITEM>
<ITEM name="DispChars">Yes</ITEM>
<ITEM name="DispFormat">2</ITEM>
<ITEM name="ShowChanges">Yes</ITEM>
<ITEM name="ShowToolTips">Yes</ITEM>
<ITEM name="TopLineAddress">E000E000</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="600" x="922" flags="0000002a" y="189" h="400" pid="100" iid="1">
<PROPERTIES>
<ITEM name="CaseSensitive">No</ITEM>
<ITEM name="DISPADDRS">Yes</ITEM>
<ITEM name="DISPLNUMS">No</ITEM>
<ITEM name="DISPOPCODES">No</ITEM>
<ITEM name="FIXUPBPTS">Yes</ITEM>
<ITEM name="WordsOnly">No</ITEM>
<ITEM name="nBreakpoints">0</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="300" x="885" flags="0000000a" y="730" h="300" pid="101" iid="1">
<PROPERTIES>
<ITEM name="Address Column Width">93</ITEM>
<ITEM name="AutoResize">No</ITEM>
<ITEM name="Gridlines">Yes</ITEM>
<ITEM name="Name Column Width">93</ITEM>
<ITEM name="ShowAddresses">Yes</ITEM>
<ITEM name="ShowGlobals">Yes</ITEM>
<ITEM name="ShowPreviousValues">No</ITEM>
<ITEM name="ShowTypes">No</ITEM>
<ITEM name="ShowWatchPoint">No</ITEM>
<ITEM name="TriggerMode">0</ITEM>
<ITEM name="Value Column Width">93</ITEM>
<ITEM name="Version">100</ITEM>
<ITEM name="nItems">0</ITEM>
</PROPERTIES>
</POPUP>
<POPUP w="258" x="905" flags="00000008" y="959" h="216" pid="102" iid="1">
<PROPERTIES/>
</POPUP>
<POPUP w="194" x="925" flags="00000008" y="979" h="281" pid="191" iid="1">
<PROPERTIES/>
</POPUP>
<POPUP w="450" x="298" flags="00008023" y="465" h="250" pid="0" iid="22">
<PROPERTIES>
<ITEM name="AutoEcho">0</ITEM>
<ITEM name="HexMode">0</ITEM>
</PROPERTIES>
</POPUP>
</PWI>
</MODULE>
</WORKSPACE>

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,9 @@
#include "Key.h"
#include "Delay.h"
#include "Tim.h"
#include "Led.h"
#include "bsp_adc.h"
#include "bsp_usart.h"
u8 flag = 0;
@ -82,9 +85,23 @@ void KEY_NVIC_Handler(void) /* Key 1 */
delay(150);
if(KEY == 0)
{
/* クトア葷クハセオニラエフャ */
/*改变系统工作标志*/
flag = !flag;
printf("\r\n开关状态改变为:%d\r\n",!flag);
/* 改变指示灯状态 */
if(!flag){
LED_SYS_ON();
ADC_Cmd(ADC_x, ENABLE);
TIM_Cmd(TIM2, ENABLE); //使能TIM2
TIM_Cmd(TIM3, ENABLE); //使能TIM3
}else {
LED_SYS_OFF();
ADC_Cmd(ADC_x, DISABLE);
TIM_Cmd(TIM2, DISABLE); //使能TIM2
TIM_Cmd(TIM3, DISABLE); //使能TIM3
}
}
/* 等待按键释放 */
while(KEY == 0);

View File

@ -12,16 +12,19 @@ void LED_GPIO_INIT(void){
RCC_APB2PeriphClockCmd(LED_CLOCK, ENABLE); //使能对应端口时钟
/* 初始化LED的GPIO管脚,配置为推挽输出 */ //设置端口
GPIO_InitStructure.GPIO_Pin = LED_Pin_ALL; //LED所有引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为推挽(Push-Pull)输出
GPIO_InitStructure.GPIO_Pin = LED_Pin_ALL; //LED所有引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为推挽(Push-Pull)输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //最大输出速度为50MHz
GPIO_Init(LED_PORT, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(LED_PORT,LED_Pin_ALL); //led全灭
/* 初始化LED的GPIO管脚,配置为推挽输出 */ //设置端口
GPIO_InitStructure.GPIO_Pin = LED_SYS_Pin; //LED所有引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为推挽(Push-Pull)输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //最大输出速度为50MHz
GPIO_Init(LED_SYS_PORT, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_ResetBits(LED_SYS_PORT,LED_SYS_Pin); //点亮系统指示灯
}

View File

@ -12,7 +12,14 @@
#define LED_PORT GPIOA
#define LED_CLOCK RCC_APB2Periph_GPIOA
//系统状态指示灯
#define LED_SYS_Pin GPIO_Pin_11
#define LED_SYS_PORT GPIOA
#define LED_CLOCK RCC_APB2Periph_GPIOA
//函数声明
#define LED_SYS_ON() GPIO_ResetBits(LED_SYS_PORT,LED_SYS_Pin)
#define LED_SYS_OFF() GPIO_SetBits(LED_SYS_PORT,LED_SYS_Pin)
void LED_GPIO_INIT(void);//LED GPIO初始化
void LED_ON(u8 n);//点亮指定LED LED0,1,2,3
void LED_OFF(void);//关闭所有LED

View File

@ -1,7 +1,8 @@
#include "Tim.h"
#include "Led.h"
#include "Key.h"
#include "bsp_usart.h"
#include "bsp_adc.h"
u8 leddat = 3;
@ -60,6 +61,15 @@ void TIM2_IRQHandler(void) //TIM2中断
LED_ON(leddat>0?--leddat:(leddat=3));
}
if(!flag){
int ADC_Value = ADC_ConvertedValue;
int Voltage = ADC_Value*3.3/0x0fff*100;
int Pos = Voltage/3.3;
TIM_SetCompare2(TIM3,ADC_Value);
printf("\r\n ADC_Value: %d",ADC_Value);
printf("\r\n Voltage: %d.%d%dV",Voltage/100,(Voltage%100)/10,Voltage%10);
printf("\r\n POS: %d%d%c",(Pos%100)/10,Pos%10,'%');
}
}
}

View File

@ -34,7 +34,7 @@ int main(void)
TIM2_INIT(499,4999);
TIM3_PWM_INIT(4096,2);
USART_Config(9600);
USART_Config(115200);
ADCx_Init();
printf("\r\n说明:\r\n");
printf("0--关闭流水灯\r\n");
@ -44,14 +44,7 @@ int main(void)
printf("?--查看说明\r\n");
while (1)
{
int ADC_Value = ADC_ConvertedValue;
int Voltage = ADC_Value*3.3/0x0fff*100;
int Pos = Voltage/3.3;
delay(100000);
TIM_SetCompare2(TIM3,ADC_Value);
printf("\r\n ADC_Value: %d",ADC_Value);
printf("\r\n Voltage: %d.%d%dV",Voltage/100,(Voltage%100)/10,Voltage%10);
printf("\r\n POS: %d%d%c",(Pos%100)/10,Pos%10,'%');
}
}