c/c++ 单片机 驱动 嵌入式
用单片机控制DAC0832芯片输出电流,让发光二极管D12由灭均匀变到最亮,再由最亮均匀熄灭。在最亮和嘴暗时使用蜂鸣器分别警报一声,完成整个周期时间控制在5秒左右。,循环...
用单片机控制DAC0832芯片输出电流,让发光二极管D12由灭均匀变到最亮,再由最亮均匀熄灭。在最亮和嘴暗时使用蜂鸣器分别警报一声,完成整个周期时间控制在5秒左右。,循环变化。 程序代码如下:
#include<reg52.h>
#define uchar unsiged int
#define uint unsigned int
sbit dula =P2^6; //申明U1锁存器的锁存端
sbit wela=P2^7; //申明U2锁存器的锁存端
sbit dawr =P3^6; //定义DA的wr端口
sbit dacs =P3^2; //定义DA的cs端口
sbit beep =P2^3; //定义蜂鸣器端口
void delayms(uint xms)
{
uint i,j;
for(i=xms;j>0;i--) //i=xms 即延时约xms毫秒
for(j=110;j>0;j--)
}
void main()
{
uchar val,flag;
dula=0;
wela=0;
dacs=0;
dawr=0;
p0=0;
whie(1)
{
if(flag==0)
{
val+=5;
p0=val; //通过p0口给DA数据口赋值
if(val==255)
{
flag=1;
beep=0;
delayms(100);
beep=1;
}
delayms(50);
}
else
{
val-=5;
po=val; //通过p0口给DA数据口赋值
if(val==0)
{
flag =0;
beep=0;
delayms(100);
beep=1;
}
delayms(50);
}
}
}
查看一下上面的程序有什么问题?变量val在没有赋初值和初始化的情况下就直接 val+=5;这样有问题吧? 谢谢! 展开
#include<reg52.h>
#define uchar unsiged int
#define uint unsigned int
sbit dula =P2^6; //申明U1锁存器的锁存端
sbit wela=P2^7; //申明U2锁存器的锁存端
sbit dawr =P3^6; //定义DA的wr端口
sbit dacs =P3^2; //定义DA的cs端口
sbit beep =P2^3; //定义蜂鸣器端口
void delayms(uint xms)
{
uint i,j;
for(i=xms;j>0;i--) //i=xms 即延时约xms毫秒
for(j=110;j>0;j--)
}
void main()
{
uchar val,flag;
dula=0;
wela=0;
dacs=0;
dawr=0;
p0=0;
whie(1)
{
if(flag==0)
{
val+=5;
p0=val; //通过p0口给DA数据口赋值
if(val==255)
{
flag=1;
beep=0;
delayms(100);
beep=1;
}
delayms(50);
}
else
{
val-=5;
po=val; //通过p0口给DA数据口赋值
if(val==0)
{
flag =0;
beep=0;
delayms(100);
beep=1;
}
delayms(50);
}
}
}
查看一下上面的程序有什么问题?变量val在没有赋初值和初始化的情况下就直接 val+=5;这样有问题吧? 谢谢! 展开
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询