当前位置:首页 > 技术学院 > 热搜器件
[导读]/******************************************功能:数控功率放大器(按相应的按键,数码管显示功率增益)单片机:AT89S52数模转换:DAC0832******************************************/#include typedef unsigned in

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

功能:数控功率放大器

(按相应的按键,数码管显示功率增益)

单片机:AT89S52

数模转换:DAC0832

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

#include

typedef unsigned int uint ;

typedef unsigned char uchar ;

uchar temp,a,GAIN;

sbit P7=P0^7; // 数码管的接口

sbit P6=P0^6;

sbit P5=P0^5;

sbit P4=P0^4;

sbit DAT=P0^3; //数码管的驱动

sbit CLK=P0^2;

void delay(uint); // 延迟程序

void sendbyte(uchar); // 数码管显示

void display(uint); // 增益显示

uchar keyscan();

uchar code tab[]={

0xed,0x09,0xbc,0x9d,0x59,0xd5,

0xf5,0x0d,0xfd,0xdd,0x7d,0xf1,

0xe4,0xb9,0xf4,0x74,0x00} ; //0-F, 全灭

void main (void)

{

sendbyte(0); //初始时数码管无显示

P1=0x01;

while(1)

{

GAIN = keyscan(); //按键扫描

display(GAIN);

if(GAIN == 0)

{

P1=0x01;

}

if(GAIN == 1)

{

P1=0x01; // 10db

}

if(GAIN == 2)

{

P1=0x02; // 20db

}

if(GAIN == 3)

{

P1=0x07; // 30db

}

if(GAIN == 4)

{

P1=0x15; // 40db

}

if(GAIN == 5)

{

P1=0x43; // 50db

}

if(GAIN == 6)

{

P1=0xd5; // 60db

}

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=100;y>0;y--);

}

void sendbyte(uchar byte)

{

uchar num,c;

num=tab[byte];

for(c=0;c<8;c++)

{

CLK=0;

DAT=num&0x01;

CLK=1;

num>>=1; //右移位赋值

}

}

void display(uint Gain) //数码管的动态显示子函数

{

P5=0;

P6=0;

P7=0;

sendbyte(Gain);

P4=1;

delay(1);

P4=0;

P6=0;

P7=0;

sendbyte(0); // "0"

P5=1;

delay(1);

P4=0;

P5=0;

P7=0;

sendbyte(13); // "d"

P6=1;

delay(1);

P4=0;

P5=0;

P6=0;

sendbyte(11); // "b"

P7=1;

delay(1);

}

uchar keyscan()

{

/*第一行按键的扫描*/

P2=0xfe; //确定第一行的按键有效

temp=P2; //将其赋给一个变量(处理I/O口时,一般先赋值给一个变量,然后通过处理变量来处理I/O口)

temp=temp&0xf0; //用于检测第一行的哪个按键按下

while(temp!=0xf0) /*这个部分只要是用来消除按下抖动的*/

{

delay(5);

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0) //这个地方,已经消除了按下抖动,P2口的值已经确定

{

temp=P2; //将P2口得值赋给变量

switch(temp) //这个switch语句,用来确定哪一个按键按下时,数码管的显示值

{

case 0x7e:a=1;

break; //这个break很重要,表示如果有匹配的值,就跳出switch语句,防止程序跳不出来。

case 0xbe:a=2;

break;

case 0xde:a=3;

break;

case 0xee:a=4;

break;

default : a=0;

break;

}

while(temp!=0xf0) /*这个部分只要是用来消除释放抖动的*/

{

temp=P2;

temp=temp&0xf0;

}

}

}

/*第二行按键的扫描*/

P2=0xfd;

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P2;

switch(temp)

{

case 0x7d:a=5;

break;

case 0xbd:a=6;

break;

case 0xdd:a=0;

break;

case 0xed:a=0;

break;

default : a=0;

break;

}

while(temp!=0xf0)

{

temp=P2;

temp=temp&0xf0;

}

}

}

return a;

}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在一个典型的单片开关电源中,整个系统一般由直流输入端、PWM调制器、功率放大器、输出滤波电感和输出稳压器等部分组成。

关键字: 单机电源 PWM调制器 功率放大器

德国斯图加特和加利福尼亚州普莱森顿2024年4月16日 /美通社/ -- 全球高科技设施设计、工程和交付的领先企业Exyte宣布,计划收购全球领先的安装服务、设备和技术设施管理提供商—Kinetics集团(简称"Kine...

关键字: NET TI TE IC

功放,全称功率放大器,简称“功放”,又称“扩音机”,是指音响系统中最基本的设备,它的任务是把来自信号源的微弱电信号进行放大以驱动扬声器发出声音。功率放大器简称功放,俗称“扩音机”,是音响系统中最基本的设备,它的任务是把来...

关键字: 功放 功率放大器 扩音机

假晶高电子迁移率晶体管(pHEMT)是耗尽型器件,其漏源通道的电阻接近0 Ω。此特性使得这些器件可以在高开关频率下以高增益运行。然而,如果栅极和漏极偏置时序不正确,漏极沟道的高电导率可能会导致器件烧毁。本文探讨耗尽型pH...

关键字: 功率放大器 有源偏置 RF性能

上海2023年9月25日 /美通社/ -- 在9月20日举行的2023华为全联接大会(Huawei Connect 2023) TECH4ALL峰会,邀请全球TECH4ALL合作伙伴,针对科技与伙伴关系在支持创造更平等、...

关键字: 华为 TE AI SI

深圳2023年9月22日 /美通社/ -- 9月20 - 9月22日,全球物联网行业的重要盛会"IOTE 2023国际物联网展"在深圳国际会展中心 (宝安) 盛大启幕。全球领先的移动通信物联网平台 —...

关键字: 智能制造 物联网 TE IoT

科威特科威特城2023年9月21日 /美通社/ -- 秉承去年突破性科技、金融和数字银行创新峰会的势头,/MoneyTech将于11月12日重返科威特。  请在 aljaridasummits.com ...

关键字: MONEY TE BSP MIT

苏州太仓2023年9月21日 /美通社/ -- 2023年9月21日,施迈茨公司庆祝了以"施迈茨(中国)有限公司开业典礼暨施迈茨深耕中国20年"为主题的活动。 施迈茨集团成立于1910年,总部位于德...

关键字: 自动化 BSP 元器件 TE

- 经过升级后,MediaGo的IVT过滤器可以识别40多种无效流量 旧金山2023年9月21日 /美通社/ -- 百度国际事业部旗下基于深度学习的智能广告平台MediaGo今天宣布与世界领先的全渠道广告欺诈...

关键字: MEDIA TE PI GO

赋能员工职涯 开创智慧未来 上海2023年9月18日 /美通社/ -- 长期致力于人才培育并重视员工职涯发展的台达,9月8日于知名人力资源服务平台HRtech在深圳举办的“数字化与全面体验时代——2023人力资源科技年...

关键字: CHINA TE 数字化 AI
关闭
关闭