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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

pwm(15單片機)+1602液晶顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:583118 發表于 2019-7-24 15:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
pwm(15單片機)+液晶顯示  驅動程序 加注釋

單片機源程序如下:
  1. #include <STC15F2K60S2.h>

  2. #define u8 unsigned char
  3. #define u16 unsigned int
  4. sbit PWM = P1^0;

  5. extern void InitLcd1602();
  6. extern void LcdShowStr(unsigned char x, unsigned char y,unsigned char *str, unsigned char len);




  7. u8 Trg,Cont;                   //獨立按鍵
  8. #define KEYPROUT P3
  9. void key_read(void)
  10. {
  11.         u8 ReadData = KEYPROUT^0xff;
  12.         Trg = ReadData&(ReadData^Cont);
  13.         Cont = ReadData;
  14. }
  15. void Timer0_Init(void) //1ms   定時器0初始化
  16. {
  17.                 AUXR |= 0x80;        //1T timer       
  18.                 TMOD &= 0xF0;        // 16bit
  19.                 TL0 = 0xCD;               
  20.                 TH0 = 0xD4;               
  21.                 TF0 = 0;               
  22.                 TR0 = 1;               
  23.                 ET0 = 1;
  24.                 EA=1;
  25. }

  26. void Timer1Init(void)                //100微秒@11.0592MHz
  27. {
  28.         AUXR |= 0x40;                //定時器時鐘1T模式
  29.         TMOD &= 0x0F;                //設置定時器模式
  30.         TL1 = 0xAE;                //設置定時初值
  31.         TH1 = 0xFB;                //設置定時初值
  32.         TF1 = 0;                //清除TF1標志
  33.         TR1 = 1;                //定時器1開始計時
  34.         ET1 = 1;
  35. }

  36. bit key_flag,timer_500ms_flag;
  37. u8 pwm_set=5;
  38. u8 str[15];
  39. void main(void)
  40. {
  41.                 P2=0xa0;P0=0x00;P2=0x00;    // 關閉蜂鳴器
  42.                 Timer0_Init();              //1ms   定時器0初始化
  43.                 Timer1Init();
  44.                 InitLcd1602();
  45.         while(1)
  46.         {
  47.                 if(timer_500ms_flag)
  48.                 {
  49.                         timer_500ms_flag=0;
  50.                         LcdShowStr(0,0,str,1);
  51.                 }
  52.                
  53.                 str[0] = pwm_set + '0';
  54.                
  55.                 if(key_flag)     // 按鍵掃描
  56.                         {
  57.                                 key_flag=0;
  58.                                 key_read();
  59.                                 if(Trg&0x08)//s4
  60.                                 {
  61.                                                 pwm_set++;
  62.                                 }
  63.                                 if(Trg&0x04)//s5
  64.                                 {
  65.                                         pwm_set--;
  66.                                 }
  67.                                 if(Trg&0x02)//s6
  68.                                 {
  69.                                        
  70.                                 }
  71.                                 if(Trg&0x01)//s7
  72.                                 {
  73.                                        
  74.                                 }
  75.                                 if(Cont)     //按鍵按下
  76.                                 {
  77.                                        
  78.                                 }
  79.                                 if(Trg==0&Cont==0) //按鍵放開
  80.                                 {
  81.                                
  82.                                 }       
  83.                         }
  84.         }
  85. }

  86. void timer0() interrupt 1  using 1                  
  87. {
  88.         static int key_count=0,timer_500ms=0;
  89.         key_count++;timer_500ms++;
  90.         if(key_count==10)                        //10ms 按鍵掃描
  91.         {
  92.          key_count=0;
  93.          key_flag=1;
  94.         }
  95.         if(timer_500ms==500)
  96.         {
  97.                 timer_500ms=0;
  98.                 timer_500ms_flag=1;
  99.         }

  100. }

  101. void timer1() interrupt 3
  102. {
  103.         static u8 pwm_count=0;
  104.         pwm_count++;
  105.         if(pwm_count==pwm_set)
  106.         {
  107.                 PWM=0;
  108.         }
  109.         if(pwm_count==10)
  110.         {
  111.                 pwm_count=0;
  112.                 PWM=1;
  113.         }
  114.        
  115. }
復制代碼

所有資料51hei提供下載:
PWM(15).zip (32.09 KB, 下載次數: 13)



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

使用道具 舉報

沙發
ID:1 發表于 2019-7-24 16:49 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲美女 | 国产一区不卡 | 艹逼网| 涩涩视频网站在线观看 | 久久一 | 永久免费av | 国产精品国产成人国产三级 | 欧美一区二区三区在线看 | 欧美一级黄视频 | 国产一区二区三区精品久久久 | 亚洲第1页| 亚洲精品字幕 | 成人免费一级 | 日韩电影在线一区 | av手机免费在线观看 | 亚洲伊人久久综合 | 成人免费一区二区三区视频网站 | 正在播放一区二区 | 成人av网站在线观看 | 精品少妇一区二区三区在线播放 | aa级毛片毛片免费观看久 | 欧美一区二区在线观看视频 | 久久久日韩精品一区二区三区 | 欧美a区 | 成人av高清在线观看 | 日本三级黄视频 | 国产99视频精品免费视频7 | 中文字幕一区二区三区乱码在线 | 日本精品视频一区二区 | 日韩精品一区二区在线 | 鸳鸯谱在线观看高清 | h视频免费在线观看 | 久久久久1 | 亚洲福利一区二区 | 亚洲欧美日韩精品久久亚洲区 | 日韩成人在线网址 | 日韩欧美综合在线视频 | 亚洲天堂一区 | 精品麻豆剧传媒av国产九九九 | 亚洲综合色视频在线观看 | 视频一区二区三区四区五区 |