欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于STC15W單片機測速源程序,使用光電碼盤,5110液晶屏顯示
[打印本頁]
作者:
zcmthr
時間:
2018-1-24 14:41
標題:
基于STC15W單片機測速源程序,使用光電碼盤,5110液晶屏顯示
基于STC15W4K32S4的智能小車測速程序,測速使用光電碼盤,顯示采用諾基亞5110液晶屏
單片機源程序如下:
#include "nokia_5110.h"
#include "timer.h"
#include "Exti.h"
#include "delay.h"
#include "motor.h"
#include "PWM.h"
#include "GPIO.h"
extern u8 speed1,speed2;
extern u16 rev1,rev2;
/************* 功能說明 **************
電機驅動測試例程
******************************************/
//========================================================================
// 函數: void PWM_config(void)
// 描述: PWM配置函數。
// 參數: none.
// 返回: none.
// 版本: VER1.0
// 日期: 2014-8-15
// 備注:
//========================================================================
void PWM_config(void)
{
PWMx_InitDefine PWMx_InitStructure; //結構定義
PWMx_InitStructure.PWMx_IO_Select = PWM4_P22; //PWM輸出IO選擇. PWM2_P37,PWM2_P27,PWM3_P21,PWM3_P45,PWM4_P22,PWM4_P44,PWM5_P23,PWM5_P42,PWM6_P16,PWM6_P07,PWM7_P17,PWM7_P06
PWMx_InitStructure.Start_IO_Level = 0; //設置PWM輸出端口的初始電平, 0或1
PWMx_InitStructure.PWMx_Interrupt = DISABLE; //中斷允許, ENABLE或DISABLE
PWMx_InitStructure.FirstEdge_Interrupt = DISABLE; //第一個翻轉中斷允許, ENABLE或DISABLE
PWMx_InitStructure.SecondEdge_Interrupt = DISABLE; //第二個翻轉中斷允許, ENABLE或DISABLE
PWMx_InitStructure.FirstEdge = 64; //第一個翻轉計數, 1~32767
PWMx_InitStructure.SecondEdge = 192; //第二個翻轉計數, 1~32767
PWMx_Configuration(PWM4_ID, &PWMx_InitStructure); //初始化PWM, PWM2_ID,PWM3_ID,PWM4_ID,PWM5_ID,PWM6_ID,PWM7_ID
P2n_standard(1<<2); //IO初始化, 上電時為高阻
PWMx_InitStructure.PWMx_IO_Select = PWM5_P23; //PWM輸出IO選擇. PWM2_P37,PWM2_P27,PWM3_P21,PWM3_P45,PWM4_P22,PWM4_P44,PWM5_P23,PWM5_P42,PWM6_P16,PWM6_P07,PWM7_P17,PWM7_P06
PWMx_InitStructure.Start_IO_Level = 0; //設置PWM輸出端口的初始電平, 0或1
PWMx_InitStructure.PWMx_Interrupt = DISABLE; //中斷允許, ENABLE或DISABLE
PWMx_InitStructure.FirstEdge_Interrupt = DISABLE; //第一個翻轉中斷允許, ENABLE或DISABLE
PWMx_InitStructure.SecondEdge_Interrupt = DISABLE; //第二個翻轉中斷允許, ENABLE或DISABLE
PWMx_InitStructure.FirstEdge = 64; //第一個翻轉計數, 1~32767
PWMx_InitStructure.SecondEdge = 192; //第二個翻轉計數, 1~32767
PWMx_Configuration(PWM5_ID, &PWMx_InitStructure); //初始化PWM, PWM2_ID,PWM3_ID,PWM4_ID,PWM5_ID,PWM6_ID,PWM7_ID
P2n_standard(1<<3); //IO初始化, 上電時為高阻
TH2 = (u8)((65536UL - MAIN_Fosc / 500000UL) / 256); //波特率使用Timer2
TL2 = (u8)((65536UL - MAIN_Fosc / 500000UL) % 256);
AUXR = 0x14; //Timer2 set As Timer, Timer2 set as 1T mode;
PWM_SourceClk_Duty(PwmClk_T2, 256); //時鐘源: PwmClk_1T,PwmClk_2T, ... PwmClk_16T, PwmClk_T2, PWM周期: 1~32767
PWMCR |= ENPWM; // 使能PWM波形發生器,PWM計數器開始計數
PWMCR &= ~ECBI; //禁止PWM計數器歸零中斷
// PWMCR |= ECBI; //允許PWM計數器歸零中斷
// PWMFDCR = ENFD | FLTFLIO | FDIO; //PWM失效中斷控制, ENFD | FLTFLIO | EFDI | FDCMP | FDIO
}
void EXTI_config(void)
{
EXTI_InitTypeDef EXTI_InitStructure; //結構定義
EXTI_InitStructure.EXTI_Mode = EXT_MODE_Fall; //中斷模式, EXT_MODE_RiseFall, EXT_MODE_Fall
EXTI_InitStructure.EXTI_Polity = PolityLow; //中斷優先級, PolityLow,PolityHigh
EXTI_InitStructure.EXTI_Interrupt = ENABLE; //中斷允許, ENABLE或DISABLE
Ext_Inilize(EXT_INT0,&EXTI_InitStructure); //初始化INT0 EXT_INT0,EXT_INT1,EXT_INT2,EXT_INT3,EXT_INT4
EXTI_InitStructure.EXTI_Mode = EXT_MODE_Fall; //中斷模式, EXT_MODE_RiseFall, EXT_MODE_Fall
EXTI_InitStructure.EXTI_Polity = PolityLow; //中斷優先級, PolityLow,PolityHigh
EXTI_InitStructure.EXTI_Interrupt = ENABLE; //中斷允許, ENABLE或DISABLE
Ext_Inilize(EXT_INT1,&EXTI_InitStructure); //初始化INT1 EXT_INT0,EXT_INT1,EXT_INT2,EXT_INT3,EXT_INT4
}
void Timer_config(void)
{
TIM_InitTypeDef TIM_InitStructure; //結構定義
TIM_InitStructure.TIM_Mode = TIM_16BitAutoReload; //指定工作模式, TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
TIM_InitStructure.TIM_Polity = PolityHigh; //指定中斷優先級, PolityHigh,PolityLow
TIM_InitStructure.TIM_Interrupt = ENABLE; //中斷是否允許, ENABLE或DISABLE
TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_12T; //指定時鐘源, TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
TIM_InitStructure.TIM_ClkOut = ENABLE; //是否輸出高速脈沖, ENABLE或DISABLE
TIM_InitStructure.TIM_Value = 0x4cd0; //初值,
TIM_InitStructure.TIM_Run = ENABLE; //是否初始化后啟動定時器, ENABLE或DISABLE
Timer_Inilize(Timer0,&TIM_InitStructure); //初始化Timer0 Timer0,Timer1,Timer2
}
void main(void)
{
u8 v1[3],v2[3];
P4n_standard(0x1e);
LCD_init(); //初始化液晶
LCD_clear();
LCD_write_english_string(6,2," Welcome To");
delay(1);
LCD_clear();
LCD_write_chinese_string(0,2,12,6,0,2);
delay(2);
LCD_clear();
LCD_write_chinese_string(12,2,12,3,8,2);
LCD_write_english_string(54,3,". ");
delay_ms(250);delay_ms(250);
LCD_write_english_string(54,3,".. ");
delay_ms(250);delay_ms(250);
LCD_write_english_string(54,3,"...");
delay_ms(250);delay_ms(250);
LCD_clear();
EXTI_config();
Timer_config();
EA=1;
PWM_config(); //PWM初始化
GPIO_config();
LCD_write_chinese_string(15,0,12,4,14,2);
LCD_write_chinese_string(2,2,12,2,11,1);
LCD_write_english_string(27,3,"1: cm/s");
LCD_write_chinese_string(2,4,12,2,11,1);
LCD_write_english_string(27,5,"2: cm/s");
while(1)
{
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
基于STC15W4K32S4的智能小車測速程序,測速使用光電碼盤,顯示采用諾基亞5110液晶屏.rar
(162.99 KB, 下載次數: 48)
2018-1-24 14:40 上傳
點擊文件名下載附件
基于STC15W4K32S4的智能小車測速程序,測速使用光電碼盤,顯示采用諾基亞5110液晶屏
下載積分: 黑幣 -5
作者:
songxia8013
時間:
2018-1-25 07:54
要是有電路圖,還有實物照片,那就好了,單純的程序,有點單調!
作者:
906267461
時間:
2018-4-28 09:48
謝謝分享
作者:
ealoo
時間:
2019-5-4 18:34
有原理圖就好了
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1