模块训练题目:
一、蜂鸣器电路图
1.电路图
2.电路分析
138译码器控制Y5,Y5控制Y5C,Y5C低电平控制芯片开启P0口控制ULN2003继而控制蜂鸣器端口和继电器端口
二、程序代码
1.138译码器控制端口函数
建立初始化函数选择锁存器
2.实现题目功能
在LED代码的基础上写整个代码
void InitHC138(unsigned char n)
{switch(n){case 4:HC138_C=1;HC138_A=0;HC138_B=0; //Y4输出低电平break;case 5:HC138_C=1;HC138_A=0;HC138_B=1;break;case 6:HC138_C=1;HC138_A=1;HC138_B=0;break;case 7:HC138_C=1;HC138_A=1;HC138_B=1;break;}
}void Delay(unsigned int t)
{while(t--);while(t--);
}void LEDRunning()
{unsigned char i;InitHC138(4);for(i=0;i<3;i++){P0=0x00;Delay(60000);Delay(60000);P0=0XFF;Delay(60000);Delay(60000);}for(i=0;i<=7;i++){P0=0xFE<<i;Delay(60000);Delay(60000);}InitHC138(5);P0=0x10;Delay(60000);Delay(60000);P0=0x00;InitHC138(4);for(i=0;i<=8;i++){P0=~(0xFF<<i);Delay(60000);Delay(60000);}InitHC138(5);P0=0X40;Delay(60000);Delay(60000);P0=0x00;
}void main()
{while(1){LEDRunning();}
}
3.优化代码
初始化138译码器函数的优化