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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3614|回復: 0
收起左側

5110顯示屏源程序分享

[復制鏈接]
ID:206787 發表于 2017-6-1 17:03 | 顯示全部樓層 |閱讀模式
#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);   
              }
       }
}

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕亚洲在线 | 国产中文字幕亚洲 | 最新一级毛片 | 成人在线h| 国产精品欧美一区二区 | 亚洲精品9999 | av一二三区 | 久久精品亚洲欧美日韩精品中文字幕 | 一区二区三区欧美在线观看 | 欧美激情 一区 | 一区二区日韩 | 成人在线精品 | 热re99久久精品国99热观看 | 成人免费视频 | 欧美成人h版在线观看 | 狼人伊人影院 | 国产精品久久久亚洲 | 亚洲欧美日韩中文字幕一区二区三区 | 国产精品国产a级 | 久久草在线视频 | 中文在线播放 | 波多野结衣一区二区三区在线观看 | 盗摄精品av一区二区三区 | www.青青草 | 中文字幕高清av | 亚洲精品日韩精品 | 国产精品99久久久久久www | 四虎永久在线精品免费一区二 | 成人午夜激情 | 日韩一区二区在线视频 | 日本天堂一区二区 | 国产一区二区精品自拍 | av看片网| 日韩免费视频一区二区 | 拍戏被cao翻了h承欢 | 欧美一级全黄 | 中文字幕在线电影观看 | 国产精品欧美精品 | 91精品久久久久久久久久 | 欧美综合久久 | aa级毛片毛片免费观看久 |