单片机实验程序(全)
0x75,0x7d,0x23,0x7f,0x77,};//5,6,7,8,9
ucharidatadis_buff_1[4];//第一行LED显示缓冲
ucharidatadis_buff_2[4];//第二行LED显示缓冲
ucharcounter;
sbitU4_HC574_CP=P1^0;//S3显示锁存74HC574脉冲
if(Keydec==0)
voice=2;
if(Keycom==0)
voice=3;
if(voice==1)
{buzzer=~buzzer;
Delay(1);
}
else if(voice==2)
{buzzer=~buzzer;
Delay(20);
}
else
buzzer=1;
}
}
3定时器中断实验
/*******************************************************
功能:产生10ms定时中断
**********************************************************/
void Timer0_Int(void) interrupt1
{if(voice==1)
{TH0=T0ReLoadH1;//重装载计数器初值
TL0=T0ReLoadL1;
/*********************************************************
名称:主程序
说明:
**********************************************************/
void main(void)
{
//-----------------------------初始化TIMER0
buzzer=~buzzer;
}
if(voice==2)
{TH0=T0ReLoadH2;
TL0=T0ReLoadL2;
buzzer=~buzzer;
}
if(voice==3)
{
}
}
4 LED数码管动态扫描显示实验
#include<STC12c5A32s2.h>
#defineuint unsignedint
//----------------计算计数器初值-----------------//
#define T0_TIME21400//定时时间us为单位
#define T0ReLoadL2((65536-(uint)(T0_TIME2*11.0592/12)) % 256)
#define T0ReLoadH2((65536-(uint)(T0_TIME2 *11.0592/12)) / 256)
TMOD|=0x01;//定时器T0方式1
TH0 =T0ReLoadH1;//装载计数器初值
TL0 =T0ReLoadL1;
TR0 =1;//启动Timer0
ET0 =1;//Timer0中断使能
EA =1;//总开关使能
//-----------------------------大循环
counter=0;
名称:实验三作业
说明:
********************************************************/
#include<STC12c5A32s2.h>//包含头文件
#define uint unsigned int//宏定义
#define uchar unsigned char
#define T0_TIME1254//定时时间us为单位
#define T0ReLoadL1((65536-(uint)(T0_TIME1*11.0592/12)) % 256)
#define T0ReLoadH1((65536-(uint)(T0_TIME1*11.0592/12)) / 256)
#include<STC12c5A32s2.h>//包含头文件
#define uint unsigned int//宏定义
#define uchar unsigned char
sbit buzzer=P3^5;
sbit Keyadd=P2^0;
sbit Keydec=P2^1;
sbit Keycom=P2^2;
uchar counter;
uchar voice;
sbit buzzer=P3^5;
sbit Keyadd=P2^0;
sbit Keydec=P2^1;
sbit Keycom=P2^2;
sbit Keycan=P2^3;
//----------------计算计数器初值-----------------//
2基本输入输出实验(蜂鸣器控制程序)
/*******************************************************
名称:基本输入输出(I/O)程序
说明:
********************************************************/
void Delay(uint z)
{uint x;
uchar y;
for(x=z;x>0;x--)//延时
{
for(y=250;y>0;y--);
}
}
void main(void)
{uchar voice;
voice=3;
while(1)
{
if(Keyadd==0)//按键被按下时为0
voice=1;
sbitU5_HC574_CP=P1^1;//S4显示锁存74HC574脉冲
while(1)
{
if(Keyadd==0)//按键被按下时为0
voice=1;
if(Keydec==0)
voice=2;
if(Keycom==0)
vo****************************************************
名称:Timer0中断服务子程序
#defineuchar unsignedchar
//------------LED显示代码-----------//
// bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
// dp G C D E F B A
uchar code seg[10]={0x3f,0x22,0x5b,0x73,0x66,//0,1,2,3,4