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

標題: 5110顯示屏源程序分享 [打印本頁]

作者: yunkai123    時間: 2017-6-1 17:03
標題: 5110顯示屏源程序分享
#include "reg52.h"//51單片機頭文件
#include "Delay.h" //延時函數文件
#include "nokia_5110.h"//Nokia_5110函數文件
#include "STCEEPROM.h"
sbit KEY1 = P3^3;
sbit KEY2 = P3^4;
sbit KEY3 = P3^5;
sbit KEY4 = P3^6;
sbit KEY5 = P3^7;
/****************************************************************
* 名稱   : UART_Init()
* 功能   : 串口初始化,晶振11.0592,波特率9600
* 變量   : 無
* 返回值 :無
****************************************************************/
void UART_Init(void)
{
     TMOD = 0x20;   //定時器模式選擇
     PCON = 0x00;
     SCON = 0x50;               
     TH1 = 0xFd;    //設置波特率 9600
     TL1 = 0xFd;
     TR1 = 1;           //啟動定時器1
        ES = 1;              //開串口中斷
        EA = 1;             //開總中斷         
}
/****************************************************************
* 名稱   : PSend_Hex()
* 功能   : 發送字符串函數,可控制發送長度
* 變量   : 無
* 返回值 :無
****************************************************************/
void Send_Hex(unsigned char *p,unsigned char num)
{
    while(num--)   //剩余發送的字符數
       {
        SBUF = *p; //將要發送的數據賦給串口緩沖寄存器
              while(!TI);//等待發送結束
              TI = 0;    //軟件清零
              p++;       //指針加一
       }     
}
void Music_DOWN(void)
{
       unsigned char Table[10];
       Table[0]= 0x7E;
       Table[1]= 0xFF;
       Table[2]= 0x06;
       Table[3]= 0x01;
       Table[4]= 0x00;
       Table[5]= 0x00;
       Table[6]= 0x00;
       Table[7]= 0xFE;
       Table[8]= 0xFA;
       Table[9]= 0xEF;
       Send_Hex(Table,10);
}
void Music_UP(void)
{
       unsigned char Table[10];
       Table[0]= 0x7E;
       Table[1]= 0xFF;
       Table[2]= 0x06;
       Table[3]= 0x02;
       Table[4]= 0x00;
       Table[5]= 0x00;
       Table[6]= 0x00;
       Table[7]= 0xFE;
       Table[8]= 0xF9;
       Table[9]= 0xEF;
       Send_Hex(Table,10);
}
void DoSum(unsigned char *Str,unsigned char len)//校驗位計算
{
       unsigned int xorsum = 0;
       unsigned char i;
       for(i=1;i<len;i++)
       {
              xorsum = xorsum +Str;
       }
       xorsum = 0 - xorsum;
       *(Str+i)     = (unsigned char)(xorsum >> 8);
       *(Str+i+1)   = (unsigned char)(xorsum & 0x00ff);
}
void Music_Vol(unsigned char Vol)
{
       unsigned char Table[10];
       Table[0] = 0x7E;
       Table[1] = 0xFF;
       Table[2] = 0x06;
       Table[3] = 0x06; //指令
       Table[4] = 0x00;
       Table[5] = 0x00;
       Table[6] = Vol;//音量
       DoSum(Table,7);//計算校驗碼      
       Table[9] = 0xEF;//結束碼
      
       Send_Hex(Table,10);//發送指令數據
       Send_Hex(Table,10);
}
void Music_STOP(void)
{
       unsigned char Table[10];
       Table[0]= 0x7E;
       Table[1]= 0xFF;
       Table[2]= 0x06;
       Table[3]= 0x0E;
       Table[4]= 0x00;
       Table[5]= 0x00;
       Table[6]= 0x00;
       Table[7]= 0xFE;
       Table[8]= 0xED;
       Table[9]= 0xEF;
       Send_Hex(Table,10);
}
/****************************************************************
* 名稱   : main()
* 功能   : 主函數
* 變量   : 無
* 返回值 :無
****************************************************************/
void main(void)
{
       unsigned char M_VOL;
       unsigned char Table[2];
       Delay_ms(1000);
       LCD_init(); //初始化液晶   
       LCD_clear();
       LCD_write_chinese_string(10,0,12,5,0,0);//顯示“音樂播放器”
       LCD_write_chinese_string(0,2,12,2,5,0);//顯示“狀態”
       //LCD_write_chinese_string(40,2,12,2,9,0);//顯示“播放”
       LCD_write_chinese_string(40,2,12,2,11,0);//顯示“停止”
       LCD_write_chinese_string(0,4,12,2,7,0);//顯示“音量”
       UART_Init();
       Delay_ms(100);
       M_VOL = 25;
       Music_Vol(M_VOL);
       Table[0] = M_VOL/10+0x30;
       Table[1] = M_VOL%10+0x30;
       LCD_write_english_string(40,4,Table);
       while(1)
       {
              if(!KEY2)//上一首
              {
                     Delay_ms(20);
                     Music_UP();
                     LCD_write_chinese_string(40,2,12,2,9,0);//顯示“播放”
                     while(!KEY2);
                     Delay_ms(500);   
              }
              if(!KEY3)//下一首
              {
                     Delay_ms(20);            
                     Music_DOWN();
                     LCD_write_chinese_string(40,2,12,2,9,0);//顯示“播放”
                     while(!KEY3);
                     Delay_ms(500);   
              }
              if(!KEY4)//音量加
              {
                     Delay_ms(20);
                     M_VOL++;
                     if(M_VOL>30)M_VOL= 30;
                     Music_Vol(M_VOL);
                     Table[0] =M_VOL/10+0x30;
                     Table[1] =M_VOL%10+0x30;
                     LCD_write_english_string(40,4,Table);
                     Delay_ms(500);   
              }
              if(!KEY5)//音量減
              {
                     Delay_ms(20);
                     if(M_VOL<1)M_VOL= 1;
                     M_VOL--;
                     Music_Vol(M_VOL);
                     Table[0] =M_VOL/10+0x30;
                     Table[1] =M_VOL%10+0x30;
                     LCD_write_english_string(40,4,Table);
                     Delay_ms(500);   
              }
              if(!KEY1)//停止
              {
                     Delay_ms(20);
                     Music_STOP();//停止
                     LCD_write_chinese_string(40,2,12,2,11,0);//顯示“停止”
                     while(!KEY5);
                     Delay_ms(500);   
              }
       }
}






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品一二三四区 | 成人免费网站 | 91一区二区三区 | 久久国产精| 亚洲国产一区在线 | 国产成人三级 | 天天爽天天干 | 四虎永久在线 | 青青草久草 | 激情小说在线视频 | 91亚洲国产 | 日韩不卡在线观看 | 久久一区| 中文在线字幕观看 | 一区二区免费 | 日韩精品视频一区二区三区 | 免费看黄色aaaaaa 片 | 欧美精品99久久久 | 亚洲一区二区在线播放 | 精品少妇一区二区三区免费观 | 放几个免费的毛片出来看 | 欧美精品二区 | 欧美黄色一级大片 | 96视频在线| 免费视频久久久 | 国产成人免费 | 午夜激情福利 | 800av在线播放 | 日日爽天天 | 福利视频在线 | 日韩av手机在线 | 午夜激情福利 | 成人免费黄色大片 | 一区二区三区四区在线播放 | 人人草人人爽 | 国产三级午夜理伦三级 | 老女人毛片| 久草免费在线视频 | 国产一区精品在线 | 3d动漫精品h区xxxxx区 | 精品在线看 |