|
這幾天比賽準(zhǔn)備的,結(jié)果沒用上,哎
所有資料51hei提供下載:
電機(jī)綜合.rar
(311.98 KB, 下載次數(shù): 172)
2017-8-10 18:39 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
單片機(jī)源程序如下:
- //////////////////////////////////////////////////////////////////////////////////
- //本程序只供學(xué)習(xí)使用,未經(jīng)作者許可,不得用于其它任何用途
- //中景園電子
- //
- // 文 件 名 : main.c
- // 版 本 號 : v2.0
- // 作 者 : HuangKai
- // 生成日期 : 0101
- // 最近修改 :
- // 功能描述 : OLED 4接口演示例程(51系列)
- // 說明:
- // ----------------------------------------------------------------
- // GND 電源地
- // VCC 接5V或3.3v電源
- // D0 接PD6(SCL)
- // D1 接PD7(SDA)
- // RES 接PD4
- // DC 接PD5
- // CS 接PD3
- // ----------------------------------------------------------------
- // 修改歷史 :
- // 日 期 :
- // 作 者 : HuangKai
- // 修改內(nèi)容 : 創(chuàng)建文件
- //版權(quán)所有,盜版必究。
- //Copyright(C) 中景園電子2014/3/16
- //All rights reserved
- //******************************************************************************/
- #include "delay.h"
- #include "sys.h"
- #include "oled.h"
- #include "bmp.h"
- #include "timer.h"
- #include "encoder.h"
- #include "PID.h"
- #include "usart.h"
- u16 speed;
- u16 pwm1=0,pwm2=4999,pwm3=4999,pwm4=0;
- int main(void)
- {
-
-
- u16 len,t;
-
- char shujv[]="page jisuanji";
-
- delay_init(); //延時(shí)函數(shù)初始化
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
-
-
- TIM4_PWM_Init(4999,719);
-
- // TIM3_Int_Init(4999,7199);
-
- uart2_init(9600); //串口初始化為115200
- uart1_init(9600); //串口初始化為115200
-
- Encoder_Init_TIM2();
-
- OLED_Init(); //初始化OLED
- OLED_Clear();
-
-
-
- // OLED_ShowCHinese(0,0,0);
- // OLED_ShowCHinese(18,0,1);
- // OLED_ShowCHinese(36,0,2);
- // OLED_ShowCHinese(54,0,3);
- // OLED_ShowCHinese(72,0,4);
- // OLED_ShowCHinese(90,0,5);
- // OLED_ShowCHinese(108,0,6);
-
- TIM3_Int_Init(99,7199);
-
- OLED_ShowString(0,2,"IN1:");
- OLED_ShowString(63,2,"IN2:");
- OLED_ShowString(0,4,"IN3:");
- OLED_ShowString(63,4,"IN4:");
-
- OLED_ShowCHinese(0,6,7);//轉(zhuǎn)
- OLED_ShowCHinese(18,6,8);//速
- OLED_ShowString(32,6,":");
- // while(1)
- {
- // printf("t0.txt=\"%d\"%c%c%c",99,0XFF,0XFF,0XFF); //發(fā)送數(shù)據(jù)
- //
- for(t=0;t<13;t++)
- {
- USART_SendData(USART2, shujv[t]);//向串口1發(fā)送數(shù)據(jù)
- while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束
- }
- for(t=0;t<2;t++)
- {
- USART_SendData(USART2, 0x0d);//向串口1發(fā)送數(shù)據(jù)
- while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束
- USART_SendData(USART2, 0x0a);//向串口1發(fā)送數(shù)據(jù)
- while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束
-
- }
- // printf("page main:\r\n\r\n");
- PWM1_OUT(pwm1);
- PWM2_OUT(pwm2);
- PWM3_OUT(pwm3);
- PWM4_OUT(pwm4);
-
- if(USART1_RX_STA&0x8000)
- {
- // OLED_ShowChar(120,0,'a');
- len=USART1_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長度
- // printf("\r\n您發(fā)送的消息為:\r\n\r\n");
- for(t=0;t<len;t++)
- {
- OLED_ShowChar(t*9,0,USART1_RX_BUF[t]);
- // USART_SendData(USART2, USART1_RX_BUF[t]);//向串口1發(fā)送數(shù)據(jù)
- // while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束
- }
- // printf("\r\n\r\n");//插入換行
- USART1_RX_STA=0;
- }
-
- //
-
- OLED_ShowNum(28,2,pwm1,4,16);
- OLED_ShowNum(90,2,pwm2,4,16);
- OLED_ShowNum(28,4,pwm3,4,16);
- OLED_ShowNum(90,4,pwm4,4,16);
- if(speed>32768)
- {
- OLED_ShowString(36,6,"-");
- OLED_ShowNum(45,6,(65535-speed)/3,4,16);
- }
- else
- {
- OLED_ShowString(36,6," ");
- OLED_ShowNum(45,6,speed/3,4,16);
- }
-
- }
- }
復(fù)制代碼
|
|