国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

單片機(jī)喇叭音量調(diào)節(jié)

2019-11-08 02:17:31
字體:
供稿:網(wǎng)友
 #include<reg52.h>    //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義 #include <intrins.h> //包含NOP空指令函數(shù)_nop_(); #define AddWr 0x90   //寫數(shù)據(jù)地址  #define AddRd 0x91   //讀數(shù)據(jù)地址  sbit Sda=P2^1;       //定義總線連接端口 根據(jù)此定義連接杜邦線 sbit Scl=P2^0; sbit spk=P1^2;       //喇叭端口/*------------------------------------------------                    延時(shí)程序------------------------------------------------*/ void mDelay(unsigned char j) {  unsigned int i;  for(;j>0;j--)     { for(i=0;i<125;i++)    {;} }  }/*------------------------------------------------                    初始化定時(shí)器1------------------------------------------------*/void Init_Timer1(void){ TMOD |= 0x10;      TH1=(65536-500)/256;       //初始化值 TL1=(65536-500)%256; //PT1=1;                   //優(yōu)先級 EA=1;                      //中斷使能 ET1=1;                     //定時(shí)器中斷使能 TR1=1;                     //打開定時(shí)器} /*------------------------------------------------                    啟動IIC總線------------------------------------------------*/  void Start(void)  {   Sda=1;   _nop_();   Scl=1;   _nop_();   Sda=0;   _nop_();   Scl=0; }/*------------------------------------------------                    停止IIC總線------------------------------------------------*/  void Stop(void)  {   Sda=0;   _nop_();   Scl=1;   _nop_();   Sda=1;   _nop_();   Scl=0;   }/*------------------------------------------------                   應(yīng)答IIC總線------------------------------------------------*/   void Ack(void)   {    Sda=0;_nop_();Scl=1;_nop_();Scl=0;_nop_();}/*------------------------------------------------              發(fā)送一個(gè)字節(jié)------------------------------------------------*/void Send(unsigned char Data){  unsigned char BitCounter=8; unsigned char temp; do   {temp=Data;Scl=0;_nop_();if((temp&0x80)==0x80)   Sda=1;else   Sda=0;Scl=1;temp=Data<<1;Data=temp;BitCounter--; } while(BitCounter);     Scl=0; }/*------------------------------------------------                    寫入DA數(shù)模轉(zhuǎn)換值------------------------------------------------*/ void DAC(unsigned char Data) {  Start();  Send(AddWr); //寫入芯片地址  Ack();  Send(0x40);  //寫入控制位,使能DAC輸出  Ack();  Send(Data);  //寫數(shù)據(jù)  Ack();  Stop();   }/*------------------------------------------------                   主程序------------------------------------------------*/void main(){unsigned char num;   //DA數(shù)模輸出變量        Init_Timer1();while(1)     {            DAC(num);       //DA輸出,可以用LED模擬電壓變化  num++;          //累加,到256后溢出變?yōu)?,往復(fù)循環(huán)。顯示在LED上亮度逐漸變化  mDelay(20);     //延時(shí)用于清晰看出變化   }}/*------------------------------------------------                   定時(shí)器中斷程序------------------------------------------------*/void Timer1_isr(void) interrupt 3 using 1//定時(shí)器1{ TH1=(65536-500)/256;//重裝初始化值 TL1=(65536-500)%256; spk=!spk;           //取反喇叭,產(chǎn)生固定頻率方波,驅(qū)動喇叭發(fā)聲 }
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 定日县| 海阳市| 焦作市| 峨边| 云南省| 湖北省| 重庆市| 东丽区| 承德县| 蒙城县| 永顺县| 屏山县| 罗山县| 青州市| 巴林右旗| 武穴市| 茶陵县| 准格尔旗| 济南市| 郯城县| 建昌县| 南靖县| 苍山县| 类乌齐县| 广东省| 那坡县| 咸阳市| 德阳市| 澎湖县| 蚌埠市| 阿尔山市| 浮山县| 姜堰市| 囊谦县| 喜德县| 临安市| 普兰县| 家居| 莲花县| 克拉玛依市| 栾川县|