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;这样有问题吧? 谢谢!
展开
 我来答
百度网友0ccd6a6
2012-11-08
知道答主
回答量:12
采纳率:0%
帮助的人:9.2万
展开全部
有问题,如果没有赋值,该变量本身就是一个不确定的数。直接加肯定不对~~~~~~~
迪凯特科技(北京)有限公司
2023-07-28 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
reino07
2012-11-08 · 超过20用户采纳过TA的回答
知道答主
回答量:169
采纳率:100%
帮助的人:48.3万
展开全部
这一点对这个程序没有什么实际影响,无论他是多少知识进程开始的位置不同。不过在定义局部变量的时候还是建议在定义的赋初值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式