完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define uchar unsigned char #define uint unsigned int ***it dula=P2^6; //申明U1锁存器的锁存端 ***it wela=P2^7; //申明U2锁存器的锁存端 ***it dawr=P3^6; //定义DA的WR端口 ***it dacs=P3^2; //定义DA的CS端口 ***it beep=P2^3; //定义蜂鸣器端口 void delayms(uint xms) { uint i,j; for(i=xms;i>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; while(1) { if(flag==0) //此句怎么执行?前面可没有给flag赋值啊!? { val+=5; //此句怎么执行?前面可也没有给val赋初值啊!? P0=val; //通过P0口给DA数据口赋值 if(val==255) { flag=1; beep=0; delayms(100); beep=1; } delayms(50); } else { val-=5; P0=val; //通过P0口给DA数据口赋值 if(val==0) { flag=0; beep=0; delayms(100); beep=1; } delayms(50); } } } |
|
相关推荐
24个回答
|
|
你仔细看看程序,刚开始flag是为0,val加5加5的加,加到255时,那个if语句实在第一个if语句内部,所以进入第二个if语句,将flag置1了,再来判定flag,此时flag已为1,所以执行后面的else语句。 |
|
|
|
这么一解释通了,{:soso_e100:},还有一个程序第一次没看懂,看来我得仔细瞧瞧了、、Tks |
|
|
|
哥们你再好好看看
if(val==255) { flag=1;《《《《《这里flag》》》》 beep=0; delayms(100); beep=1; } delayms(50); } else { val-=5; P0=val; //通过P0口给DA数据口赋值 if(val==0) { flag=0;《《《《《这里flag》》》》 beep=0; delayms(100); beep=1; } delayms(50); } 这是将flag设置成一个标志:当flag==0时val递增(当val==255时,flag=1,执行递减else);当flag==1时候val递减。 |
|
|
|
|
|
|
|
val 和flag 为uchar 型 0-255 默认初始为0
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
418 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1083 浏览 0 评论
846 浏览 0 评论
886 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
882 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11832 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 20:29 , Processed in 0.745980 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号