久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4805|回復: 3
打印 上一主題 下一主題
收起左側

基于STC15W單片機測速源程序,使用光電碼盤,5110液晶屏顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:41770 發表于 2018-1-24 14:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于STC15W4K32S4的智能小車測速程序,測速使用光電碼盤,顯示采用諾基亞5110液晶屏

單片機源程序如下:
  1. #include "nokia_5110.h"
  2. #include "timer.h"
  3. #include "Exti.h"
  4. #include "delay.h"
  5. #include "motor.h"
  6. #include "PWM.h"
  7. #include "GPIO.h"

  8. extern u8 speed1,speed2;
  9. extern u16 rev1,rev2;

  10. /*************        功能說明        **************
  11.                         電機驅動測試例程
  12. ******************************************/

  13. //========================================================================
  14. // 函數: void        PWM_config(void)
  15. // 描述: PWM配置函數。
  16. // 參數: none.
  17. // 返回: none.
  18. // 版本: VER1.0
  19. // 日期: 2014-8-15
  20. // 備注:
  21. //========================================================================
  22. void        PWM_config(void)
  23. {
  24.         PWMx_InitDefine                PWMx_InitStructure;                                        //結構定義

  25.         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
  26.         PWMx_InitStructure.Start_IO_Level       = 0;                        //設置PWM輸出端口的初始電平, 0或1
  27.         PWMx_InitStructure.PWMx_Interrupt       = DISABLE;                //中斷允許,                           ENABLE或DISABLE
  28.         PWMx_InitStructure.FirstEdge_Interrupt  = DISABLE;                //第一個翻轉中斷允許,   ENABLE或DISABLE
  29.         PWMx_InitStructure.SecondEdge_Interrupt = DISABLE;                //第二個翻轉中斷允許,   ENABLE或DISABLE
  30.         PWMx_InitStructure.FirstEdge            = 64;                        //第一個翻轉計數, 1~32767
  31.         PWMx_InitStructure.SecondEdge           = 192;                        //第二個翻轉計數, 1~32767
  32.         PWMx_Configuration(PWM4_ID, &PWMx_InitStructure);                //初始化PWM,         PWM2_ID,PWM3_ID,PWM4_ID,PWM5_ID,PWM6_ID,PWM7_ID
  33.         P2n_standard(1<<2);                                                                                //IO初始化, 上電時為高阻

  34.         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
  35.         PWMx_InitStructure.Start_IO_Level       = 0;                        //設置PWM輸出端口的初始電平, 0或1
  36.         PWMx_InitStructure.PWMx_Interrupt       = DISABLE;                //中斷允許,                           ENABLE或DISABLE
  37.         PWMx_InitStructure.FirstEdge_Interrupt  = DISABLE;                //第一個翻轉中斷允許,   ENABLE或DISABLE
  38.         PWMx_InitStructure.SecondEdge_Interrupt = DISABLE;                //第二個翻轉中斷允許,   ENABLE或DISABLE
  39.         PWMx_InitStructure.FirstEdge            = 64;                        //第一個翻轉計數, 1~32767
  40.         PWMx_InitStructure.SecondEdge           = 192;                        //第二個翻轉計數, 1~32767
  41.         PWMx_Configuration(PWM5_ID, &PWMx_InitStructure);                //初始化PWM,         PWM2_ID,PWM3_ID,PWM4_ID,PWM5_ID,PWM6_ID,PWM7_ID
  42.         P2n_standard(1<<3);                                                                                //IO初始化, 上電時為高阻

  43.         TH2 = (u8)((65536UL - MAIN_Fosc / 500000UL) / 256);        //波特率使用Timer2
  44.         TL2 = (u8)((65536UL - MAIN_Fosc / 500000UL) % 256);
  45.         AUXR = 0x14;                //Timer2 set As Timer, Timer2 set as 1T mode;
  46.         PWM_SourceClk_Duty(PwmClk_T2, 256);        //時鐘源: PwmClk_1T,PwmClk_2T, ... PwmClk_16T, PwmClk_T2,   PWM周期: 1~32767
  47.        
  48.         PWMCR |= ENPWM;                // 使能PWM波形發生器,PWM計數器開始計數
  49.         PWMCR &= ~ECBI;                //禁止PWM計數器歸零中斷
  50. //        PWMCR |=  ECBI;                //允許PWM計數器歸零中斷

  51. //        PWMFDCR = ENFD | FLTFLIO | FDIO;        //PWM失效中斷控制,  ENFD | FLTFLIO | EFDI | FDCMP | FDIO
  52. }

  53. void        EXTI_config(void)
  54. {
  55.         EXTI_InitTypeDef        EXTI_InitStructure;                                        //結構定義

  56.         EXTI_InitStructure.EXTI_Mode      = EXT_MODE_Fall;                //中斷模式,          EXT_MODE_RiseFall, EXT_MODE_Fall
  57.         EXTI_InitStructure.EXTI_Polity    = PolityLow;                        //中斷優先級,   PolityLow,PolityHigh
  58.         EXTI_InitStructure.EXTI_Interrupt = ENABLE;                                //中斷允許,     ENABLE或DISABLE
  59.         Ext_Inilize(EXT_INT0,&EXTI_InitStructure);                                //初始化INT0        EXT_INT0,EXT_INT1,EXT_INT2,EXT_INT3,EXT_INT4

  60.         EXTI_InitStructure.EXTI_Mode      = EXT_MODE_Fall;                //中斷模式,          EXT_MODE_RiseFall, EXT_MODE_Fall
  61.         EXTI_InitStructure.EXTI_Polity    = PolityLow;                        //中斷優先級,   PolityLow,PolityHigh
  62.         EXTI_InitStructure.EXTI_Interrupt = ENABLE;                                //中斷允許,     ENABLE或DISABLE
  63.         Ext_Inilize(EXT_INT1,&EXTI_InitStructure);                                //初始化INT1        EXT_INT0,EXT_INT1,EXT_INT2,EXT_INT3,EXT_INT4

  64. }

  65. void        Timer_config(void)
  66. {
  67.         TIM_InitTypeDef                TIM_InitStructure;                                        //結構定義
  68.         TIM_InitStructure.TIM_Mode      = TIM_16BitAutoReload;        //指定工作模式,   TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
  69.         TIM_InitStructure.TIM_Polity    = PolityHigh;                        //指定中斷優先級, PolityHigh,PolityLow
  70.         TIM_InitStructure.TIM_Interrupt = ENABLE;                                //中斷是否允許,   ENABLE或DISABLE
  71.         TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_12T;                //指定時鐘源,     TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
  72.         TIM_InitStructure.TIM_ClkOut    = ENABLE;                                //是否輸出高速脈沖, ENABLE或DISABLE
  73.         TIM_InitStructure.TIM_Value     = 0x4cd0;                                        //初值,
  74.         TIM_InitStructure.TIM_Run       = ENABLE;                                //是否初始化后啟動定時器, ENABLE或DISABLE
  75.         Timer_Inilize(Timer0,&TIM_InitStructure);                                //初始化Timer0          Timer0,Timer1,Timer2

  76. }

  77. void main(void)
  78. {
  79.         u8 v1[3],v2[3];
  80.        
  81.         P4n_standard(0x1e);
  82.         LCD_init(); //初始化液晶   
  83.         LCD_clear();
  84.        
  85.         LCD_write_english_string(6,2," Welcome To");
  86.         delay(1);
  87.         LCD_clear();
  88.        
  89.         LCD_write_chinese_string(0,2,12,6,0,2);
  90.         delay(2);
  91.         LCD_clear();
  92.        
  93.         LCD_write_chinese_string(12,2,12,3,8,2);
  94.         LCD_write_english_string(54,3,".  ");
  95.         delay_ms(250);delay_ms(250);
  96.         LCD_write_english_string(54,3,".. ");
  97.         delay_ms(250);delay_ms(250);
  98.         LCD_write_english_string(54,3,"...");
  99.         delay_ms(250);delay_ms(250);
  100.         LCD_clear();
  101.        
  102.         EXTI_config();
  103.         Timer_config();
  104.         EA=1;
  105.        
  106.         PWM_config();                                                //PWM初始化
  107.         GPIO_config();       
  108.        
  109.         LCD_write_chinese_string(15,0,12,4,14,2);
  110.         LCD_write_chinese_string(2,2,12,2,11,1);
  111.         LCD_write_english_string(27,3,"1:   cm/s");
  112.         LCD_write_chinese_string(2,4,12,2,11,1);
  113.         LCD_write_english_string(27,5,"2:   cm/s");
  114.        
  115.         while(1)  
  116.         {
  117.                
  118. ……………………

  119. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
基于STC15W4K32S4的智能小車測速程序,測速使用光電碼盤,顯示采用諾基亞5110液晶屏.rar (162.99 KB, 下載次數: 48)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:102963 發表于 2018-1-25 07:54 | 只看該作者
要是有電路圖,還有實物照片,那就好了,單純的程序,有點單調!
回復

使用道具 舉報

板凳
ID:313702 發表于 2018-4-28 09:48 | 只看該作者
謝謝分享
回復

使用道具 舉報

地板
ID:517235 發表于 2019-5-4 18:34 | 只看該作者
有原理圖就好了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 作爱视频免费看 | 99视频在线免费观看 | avmans最新导航地址 | 国产精品美女久久久久久免费 | 伊人久久成人 | 国产日韩一区二区三区 | 在线中文字幕av | 亚洲国产视频一区二区 | 久久久久国产精品www | 999久久久| 色婷婷av一区二区三区软件 | 国产成人精品一区二区三区在线 | 久久久久久国产精品免费免费狐狸 | 亚洲精品黄色 | 在线观看视频福利 | 精品一区二区三区在线观看国产 | 久久久久网站 | 国产亚洲高清视频 | 可以看黄的视频 | 一区二区日韩 | 久久久久国产一区二区三区四区 | 天天综合日日夜夜 | 亚洲午夜小视频 | 久热精品在线播放 | 亚洲一区二区精品视频 | 国产精品视频久久久 | 欧美黑人一级爽快片淫片高清 | 日韩一区二区三区av | 亚洲成人av在线 | 九九久久精品视频 | 国产高清免费视频 | 在线亚洲免费视频 | 免费日韩av | 中文字幕视频在线看 | 午夜视频在线视频 | 日本不卡免费新一二三区 | 最新国产精品精品视频 | 国产yw851.c免费观看网站 | 国产精品一码二码三码在线 | 视频一区二区在线观看 | www.4虎影院|