//#include <reg51.h> sbit WR=P3^6 ; // 定义P3.6为dac0832中文资料的输入寄存器的写信号WR1, sbit CS =P3^0 ;

怎么用单片机输出两路可调频率占空比方波_百度知道
怎么用单片机输出两路可调频率占空比方波
我有更好的答案
sbit key=P3^7;
HZ;reg51;/ }
void main() {/
&#47.h&P3;P3; &#47.6输出脉冲
void delay(unsigned char w) {
while(w--),低电瓶有效 sbit HZ =P3^6;&#47.7接按键!=HZ;
if(key==0) c--; /按键调节频率
w=c,c=120;输出频率
delay(w)#include&/&#47
其他类似问题
为您推荐:
占空比的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁REG51.H各寄存器含义_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
REG51.H各寄存器含义
上传于||文档简介
&&R​E​G1​.​H​各​寄​存​器​含​义
大小:3.10KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢新人单片机不懂,求大神指点迷津。_百度知道
新人单片机不懂,求大神指点迷津。
LSC=0,0x79:
LSA=0;发送段码,0x7c; &#47,0x5b#include&#define GPIO_DIG P0&#47:
for(i=0?不懂
j=10;void DigDisplay();LSB=1;reg51;位选;消隐是什么意思; }
}void DigDisplay(){ 8,0x5e;i&LSB=0; 这样也行,0x4f,0x66; for(i=0?;
case(4)?,0x6d;LSC=1:
LSA=0,0x39;
case(5);&#47,0x06,选择点亮的数码管;LSC=1;
case(0);LSB=0;i++) {
&#47?sbit LSA=P2^2,0x71};sbit LSB=P2^3;//LSB=0;8;LSC=1;LSC=0;
GPIO_DIG=0x00;/这个想表达什么;
while(j--):
LSA=1;LSB=1;LSC=0,0x77;sbit LSC=P2^4;LSB=1:
LSA=0;i++) {
DisplayData[i]=DIG_CODE[i];/LSC=1,0x6f? } while(1) {
DigDisplay();unsigned char code DIG_CODE[17]={0x3f!{ &#47.h&/LSC=0,0x7d;/&#47,0x7f;unsigned char DisplayData[8];
GPIO_DIG=DisplayData[i];
case(1);也不懂void main(void)&#47:
LSA=1;&#47:
LSA=1;i&/
case(7);LSB=1,0x07;
LSA=1;LSB=0;这个什么意思
提问者采纳
LSA=0;&#47,0x39; &#47,0x4f#include&#define GPIO_DIG P0/
case(4); unsigned int j。{ unsigned char i,1~9 码制不一样
j=10;void DigDisplay():
LSA=1;reg51;位选;消隐的意思是当显示完一个数字后要对段码清零不然你肉眼会看到数码管拖着个影子一样有点模糊; }
}void DigDisplay(){ i&lt,0x79; for(i=0:
LSA=0; 必须这样,0x66,0x6d; for(i=0,后面只要出现了GPIO_DIG就是指P0
sbit LSA=P2^2;段码就是让数码管显示阿拉伯数字的一个码制,0x7d;LSB=1;
case(2),0x5e;/&#47,0x5b,选择点亮的数码管;LSB=0; break,
LSA=1;i++) {
/sbit LSB=P2^3,0x71};LSC=1;sbit LSC=P2^4;/ break:
LSA=1;8;LSB=0;LSB=1;LSC=0;
GPIO_DIG=0x00;LSC=1;/LSC=0;/LSC=0;
while(j--);
LSA=0;LSB=0,0x7c;unsigned char code DIG_CODE[17]={0x3f:
case(6);8;/LSB=1,0x77;i可以去任意值 比如DisplayData[1]=DIG_CODE[1] } while(1) {
DigDisplay(),0x06,man函数是非常必要无可替代的;
GPIO_DIG=DisplayData[i].h&i++) {
DisplayData[i]=DIG_CODE[i];LSC=1;LSB=1,0x07;/&#47,0x6f;unsigned char DisplayData[8];这里是一个子函数的名字告诉单片机你的代码里有个叫DigDisplay的子函数
void main(void)/
case(7);LSC=1;/
case(1);i&&#47,0x7f;
case(5);这个意思是用GPIO_DIG来代替P0;LSB=0;LSC=0:
提问者评价
其他类似问题
baidu?#define GPIO_DIG P0//这个什么意思。那么上面这句的含义就是从段码表中取出相应数字的段码GPIO_DIG=DisplayData[i];//发送段码://a.//这个想表达什么.com/zhidao/wh%3D450%2C600/sign=4e72e63dbb014ac77f3eaadcd00054e0.jpg" esrc="http,这样学起来会容易很多://a。比如楼主的贴这个共阳极数码管(1表示亮;//消隐是什么意思,通过控制这8个led的亮灭来显示数字?把GPIO_DIG 定义成P0.baidu。也就是说程序里GPIO_DIG这个词代替P0void DigDisplay(),那么下图中只要让b段和c段亮起?不懂把段码发送到p0口显示GPIO_DIG=0x00?灭掉全部led*************************************************************************************************建议楼主先学一下c语言
为您推荐:
其他4条回答
#include &reg51.h&
#define GPIO_DIG P0//就是P0口起个易懂的名字GPIO_DIG,用于显示数码管的控制脚
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char DisplayData[8];
void DigDisplay(); //显示一个数字的函数,先声明一下。
void main(void)// 这样也行!标准用法
for(i=0;i&8;i++)
DisplayData[i]=DIG_CODE[i];//从数组里分别取1-8的段代号,送显示
DigDisplay();
void DigDisplay()
for(i=0;i&8;i++)
switch(i) //位选,选择点亮的数码管,
case(0):
...
这是个单片机开发板的配送的程序,可是运行后一直亮。。。我把J=10我换成J=50000;结果是第1,3,5,7数码管显示!这是什么情况??还有我的开发板我按原理图点亮一个数码管怎么都点亮不了。我用配送的程序运行数码管也没反映,这是开发板出问题?
#include&reg51.h&
#define GPIO_DIG P0//这个什么意思??宏定义 P0= GPIO_DIG; GPIO_DIG就代表P0口
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char DisplayData[8];
void DigDisplay(); //也不懂,因为void DigDisplay()在void main(void)后面,所以要定义一下
void main(void)// 这样也行!
for(i=0;i&8;i++)
DisplayData[i]=DIG_CODE[i];//这个想表达什么?
DigDisplay();
void DigDisplay()
for(i=0;i&8;i++)
#define GPIO_DIG P0//这个什么意思??:宏定义,意思是用GPIO_DIG就相当于P0口;void DigDisplay(); //也不懂:函数声明,下面有定义;void main(void)// 这样也行!:主函数,没啥说的;DisplayData[i]=DIG_CODE[i];//这个想表达什么?:就是赋值语句,将17位的数组取前8位,段选;GPIO_DIG=DisplayData[i];//发送段码??不懂:就是之前位选了,现在是让那几个位选选通的数码管显示什么数字;GPIO_DIG=0x00;//消隐是什么意思?:你可以注释了试试,注释的话从一个数字显示另一个数字会有余晖。看你问的这些问题,建议还是先看c吧。
le我直接接高电平。没有锁存功能。
我有秘籍,楼主要找一本有用的教程,从头学,不信我就算了
什么教程?
郭天祥十天学会单片机和金沙滩工作室的视瓶和教材
指点迷津的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求51单片机C语言程序编程思路_百度知道
求51单片机C语言程序编程思路
输出继电器吸合三秒后释放,此时如果不按按钮2,继电器一直吸合,继电器释放,按按钮2继电器不吸合有两个按钮和一个输出继电器,按下的间隔不超过1秒。按一下按钮1,在没达到三秒前连续按按钮2。当按一下按钮1,当一秒钟内没有按按钮2。(在没按按钮1时
提问者采纳
//定时中断服务程序;定时功能;&&&&&void&&&--relay_&&&//全局中断打开&&&&&sbit&&TR0&256-250;relay=0;data& relay_timer=0;&&&&& if(relay_timer==0)&&&=&&&&while(1);EA&&&0X02;&1;&&=&{&{relay_timer=3000;&nbsp,方式2;&&&&&nbsp.5;if&}&&&|=&&&data&&&&int&&interrupt&&&=&TH0&&relay=P3^5;&&AT89X51,则设定继电器延时3000ET0&nbsp.7;&nbsp,并打开继电器 if&&&relay_sw2=P3^7;&&&//如继电器延时为0;Timer0_ISR()&&&&relay_timer=1000;&&nbsp,则关继电器&&=&&char& relay=0;relay=1,为按键消抖服务{ //如果一个动作过程刚刚开始;&&nbsp.25ms中断一次&& us250=0;&&&&&nbsp:&&(++us250&&&=4)&&0==sw2)&&nbsp,&&&&&1;&//否则继电器延时递减& else&nbsp.H&(relay_timer&=&&//开启定时器&void&
//如果当前正处于一个动作过程且有sw2按下;TMOD&&us250;&SetupTimer0();&//假定继电器是安装在P3,则修改继电器延时为1000ms if&&&&&&&&}&//定时每0;&void&nbsp,每四次得到1ms&nbsp,按键分别安装在P3;1;&//定时器0中断打开}&&&&&&&sbit&&&&&0==sw1)&nbsp.6#include&&&TMOD&P3;(0==relay_timer&&=&&&}&sw1=P3^6;&&main(){ us250=0;&&&TL0&unsigned&&&nbsp,时钟频率12MHzsbit&//设置T0;0XF0;1&&&&//仅保留T1信息&&unsigned&&nbsp,自动重载8位定时器/计数器&256-250;SetupTimer0(){&&&//250us中断一次
提问者评价
来自团队:
为您推荐:
其他1条回答
需要给你完成一份吗
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁简单的c语言求编程_百度知道
简单的c语言求编程
0引脚sbit LED3=P3^6;120;*************************************************函数功能;将LED0位定义为P3.4引脚sbit S3=P2^2.h&reg51;/&#47!LED2;// DelayMS(250);/延时一段时间再次检测
P3 &= ~(0x79).0引脚取反
/flag = 0;flag = 1;
//将S1位定义为P1;/void DelayMS(uint x){//
&#47.4引脚sbit S4=P2^3.4引脚输出低电平;将S1位定义为P1;/P3;
LED0=0;&#47.0引脚输出低电平while(1)
/ while(x--) for(i=0;void main(void)
//P1;// /i++).0引脚取反
/// 按键S1的确被按下
LED1=; 按键S1的确被按下
LED0=;延时一段时间再次检测
&#47.4引脚输出低电平,按键S1被按下
DelayMS(150);/&#47.4引脚sbit S2=P2^1;P3=m;/i&P3;&#47.0引脚输出低电平
LED1=0;P1,按键S1被按下
DelayMS(150);
&#47,按键S1被按下
DelayMS(150); //
//
DelayMS(300);
/将S1位定义为P1;/P3;
包含51单片机寄存器定义的头文件#define uchar unsigned char#define uint unsigned intsbit S1=P2^0;/P3.0引脚sbit LED1=P3^4.0引脚输出低电平
/ 按键S3的确被按下
LED2=;/}
/主函数{
&#47!LED1;/
/延时一段时间再次检测
}else if(flag){P3 =P1;/
/P3.0脚/
P3 |= 0x79.4引脚sbit LED0=P3^3;/
&#47.4引脚sbit S5=P2^4;
//&#47:延时**************************************************//
/P3;&#47.4引脚输出低电平;将LED0位定义为P3;将S1位定义为P1;P3,按键S1被按下
if(flag == 0)
m=P3;&#47.4引脚输出低电平;将LED0位定义为P3:主函数**************************************************&#47,按键S1被按下
DelayMS(150);将LED0位定义为P3; /延时一段时间再次检测
/将S1位定义为P1.0引脚取反
&#47!LED0;延时一段时间再次检测
P3 &= ~(0x79); /;/&#47.0引脚sbit LED2=P3^5!LED0;
/*************************************************函数功能;
/P3.0引脚输出低电平
LED2=0;P1.6引脚取反
/ 按键S1的确被按下
LED0=.4引脚输出低电平;
/延时一段时间再次检测
&#47按下松开第一个按键第一个灯亮(灯亮的频率10k)再次按下松开第一个按键第二个和第一个灯亮(灯亮的频率10k)按下松开第二个按键第三个灯亮(灯亮的频率10k)按下第四个按键4个灯全部闪烁 松开第四个时候回到没按第四个按键的状态给你参考的程序#include&
char flag = 0
提问者采纳
请问楼主具体是要编写什么程序?
按下松开第一个按键第一个灯亮(灯亮的频率10k)再次按下松开第一个按键第二个和第一个灯亮(灯亮的频率10k)按下松开第二个按键第三个灯亮(灯亮的频率10k)按下第四个按键4个灯全部闪烁 松开第四个时候回到没按第四个按键的状态
提问者评价
其他类似问题
为您推荐:
c语言的相关知识
其他2条回答
这问题?没重点呢
单片机吗??????????
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 dac0832与单片机连接 的文章

 

随机推荐