国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 增城市| 桓台县| 德保县| 临泽县| 赣州市| 临西县| 钟山县| 东安县| 巩留县| 雷山县| 彭山县| 柯坪县| 陕西省| 渭南市| 和平县| 明溪县| 威远县| 侯马市| 甘洛县| 龙川县| 师宗县| 惠州市| 民勤县| 罗城| 呈贡县| 仁化县| 高平市| 加查县| 大冶市| 吐鲁番市| 琼结县| 依兰县| 梁平县| 吴桥县| 仁化县| 华安县| 清水河县| 京山县| 襄汾县| 张家界市| 济阳县|