AT89C52单片机BH1415F调频台的控制设计

发布时间:2023-05-05  

BH1415F调频台控制C程序 使用keilC51 通过调试

//使用AT89C52单片机,12MHz晶振,用共阳四位LED数码管


//P0口输出段码,P2口扫描

//#pragmaSRC(d:aa.asm)

#include“reg52.h”

#include“intrins.h”//_nop_();延时函数用

#defineDisdataP0//段码输出口

#definedisCANP2//扫描口

#definekeyioP1//键盘接口

#defineucharunsignedchar

#defineuintunsignedint

sbitDA=P3^0;//数据输出

sbitCK=P3^1;//时钟

sbitCE=P3^2;//片选

sbitDIN=P0^7;//LED小数点控制

sbitmonolamp=P3^3;//立体声指示灯

uinth;//延时参量

AT89C52单片机BH1415F调频台的控制设计

//

//扫描段码表

ucharcodedis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};

/*共阳LED段码表“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“不亮”“-”*/

ucharcodescan_con[4]={0xfe,0xfd,0xfb,0xf7};//列扫描控制字

uintdataf_data={0x00},f_data1;//频率数据,数据运算时暂存用

uchardatadisplay[4]={0x00,0x00,0x00,0x00};//显示单元数据,共4个数据

ucharbdatacondata=0x08;//1415控制字高5位,开机为立体声状态

sbitmono=condata^3;//单声道/立体声控制位

uchardataconcommand[2],keytemp;//合成后的2个控制字,键值存放

//

/**********************************************************************/

//

//

/***********11微秒延时函数**********/

//

voiddelay(uintt)

{

for(;t》0;t--);

}

//

/***********LED显示动态扫描函数**********/

scan()

{

chark;

for(k=0;k《4;k++)//四位LED扫描控制

{

Disdata=dis_7[display[k]];

if(k==1){DIN=0;}

discan=scan_con[k];delay(90);discan=0xff;

}

}

//

//

/***********频率数据转换为显示用BCD码函数**********/

turn_bcd()

{

display[3]=f_data/1000;if(display[3]==0){display[3]=10;}//最高位为0时不显示

f_data1=f_data%1000;

display[2]=f_data1/100;//求显示十位数

f_data1=f_data1%100;

display[1]=f_data1/10;//求显示个位数

display[0]=f_data1%10;//求显示小数位

}

/***********控制字合成函数**********/

command()

{

concommand[1]=f_data/256;

concommand[0]=f_data%256;

concommand[1]=concommand[1]+condata;

}

/***********写入1个字节函数**********/

write(ucharval)

{

uchari;

CE=1;

for(i=8;i》0;i--)

{

DA=val&0x01;//

_nop_();_nop_();_nop_();_nop_();

CK=1;

_nop_();_nop_();_nop_();_nop_();

CK=0;

val=val/2;

}

CE=0;

}

/***********控制字写入1415函数**********/

w_1415()

{

write(concommand[0]);

write(concommand[1]);

}

//

//*************频率涮新*****************//

fup()

{

turn_bcd();//显示BCD码转换

command();//合成控制字

w_1415();//写入1415

}

//

/***********查键函数**********/

read_key()

{

keyio=0xf0;

keytemp=(~keyio)&0xf0;

if(keytemp!=0)

{

keytemp=keyio;

keyio=0x0f;

keytemp=keytemp|keyio;

while(((~keyio)&0x0f)!=0);//

switch(keytemp)

{

case238:{f_data++;if(f_data》1099){f_data=1099;}fup();break;}//加0.1MHZ

case222:{f_data--;if(f_data《800){f_data=800;}fup();break;}//减0.1MHZ

case190:{mono=~mono;if(mono){monolamp=0;}elsemonolamp=1;fup();break;}//立体声/单声道转换

case126:{f_data=1090;fup();break;}//预置109.0MHZ

case237:{f_data=1070;fup();break;}//预置107.0MHZ

case221:{f_data=1050;fup();break;}//预置105.0MHZ

case189:{f_data=1030;fup();break;}//预置103.0MHZ

case125:{f_data=1000;fup();break;}//预置100.0MHZ

case235:{f_data=970;fup();break;}//预置97.0MHZ

case219:{f_data=950;fup();break;}//预置95.0MHZ

case187:{f_data=930;fup();break;}//预置93.0MHZ

case123:{f_data=900;fup();break;}//预置90.0MHZ

case231:{f_data=870;fup();break;}//预置87.0MHZ

case215:{f_data=850;fup();break;}//预置85.0MHZ

case183:{f_data=830;fup();break;}//预置83.0MHZ

case119:{f_data=800;fup();break;}//预置80.0MHZ

default:{break;}//

}

}

keyio=0xff;

}

//

//

//

/**************主函数****************/

main()

{

Disdata=0xff;//初始化端口

discan=0xff;

keyio=0xff;

DA=0;//bh1415禁止

CK=0;//

CE=0;//

for(h=0;h《4;h++){display[h]=8;}//开机显示“8888”

for(h=0;h《500;h++)

{scan();}//开机显示“8888”2秒

f_data=1000;//预置1000MHZ

monolamp=0;//开机立体声灯点亮

fup();//频率送入BH1415

while(1)

{

read_key();//查键按纽

scan();//显示4ms

}

}

//

//*********************结束**************************//


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>