一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 20089|回复: 97

[其他综合] 重学单片机了,★有些初级问题请教,高手莫笑,哈哈

 火... [复制链接]
发表于 2012-7-1 10:16 | 显示全部楼层 |阅读模式
本帖最后由 社建电子 于 2012-7-1 10:39 编辑

源自这里

这个数码管怎么驱动 要他显示固定数字 并且可按键调节

非常感谢sdf15937老师的耐心、不厌其烦、有问必答的指点!
我的英文水平比较菜,只知道一些简单的符号,比如:
POWER是电源
VOL音量
CH频道
SIZE场幅
多年前学习单片机很热情,最后都是因为软件安装不成功问题搁置了,在这里我要批评一下单片机开发实验板卖家,也就是本坛的快活丞老师,我跟他反应安装软件失败,当时记得也发帖子了,他的回答就是别人都成功了,咋就你的失败呢,他又重发了一次软件给我,说白了就是:你咋恁笨呢!呵呵。
他那光盘中有教程,但是都是软件安装成功后的,教你怎么建立工程什么的,就是没有教你怎么安装软件的,是忽视了吗?还是觉得不重要?
以为玩单片机都是电脑高手吗?
……——……——……——……——……
现在软件终于安装成功了,原来只会往单片机中烧写固件(hex)其他啥都不会弄,现在试着改别人的程序,慢慢的摸索学习吧,走着总比坐着好吧?
现在想仿一个现成的呼吸灯程序,有些问题请教,我知道//(双斜杠下同)后面是注释,可以不输入,但是双斜杠要不要输入?
我电脑是使用虚拟键盘输入的,有些英文句子啥的都是一个一个字母的输入,感觉挺慢的,有没有好办法快一点?
看看下面这些哪些必须输入?哪些可以不要了?
我先试试!
……——……——……——……

一个呼吸灯程序(利用PWM技术)一起学习(转)|我爱单片机 - 数码之家
http://bbs.mydigit.cn/read.php?tid=376449
……——…………————……

#include<reg52.h> // 包含头文件,一般情况不需要改动,
// 头文件包含特殊功能寄存器的定义
/*-------------------------IO 口定义 ----------------------------*/
sbit LED0=P1^0;// 用 sbit 关键字 定义 LED 到 P1.0 端口, LED 是自己任意定义且容易记忆的符号
void Delay(unsigned int t);// 函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
unsigned int CYCLE=600,PWM_LOW=0;// 定义周期并赋值
while (1) // 主循环
{
LED0=1;
Delay(60000); // 特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW  ){//PWM_LOW 表示低
// 电平时间,这个循环中低电平时长从 1 累加到 CYCLE (周期)的值,即 600 次
  LED0=0; // 点亮 LED
   Delay(PWM_LOW);// 延时长度, 600 次循环中从 1 加至 599
  LED0=1; // 熄灭 LED
   Delay(CYCLE-PWM_LOW);// 延时长度, 600 次循环中从 599 减至 1
}
LED0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){// 与逐渐变亮相反的过程
  LED0=0;
  Delay(PWM_LOW);
  LED0=1;
   Delay(CYCLE-PWM_LOW);
}
// 主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数 unsigned int t ,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
 楼主| 发表于 2012-7-1 10:24 | 显示全部楼层
写了一点点了
1111.JPG
回复

使用道具 举报

发表于 2012-7-1 10:30 | 显示全部楼层
好大的字体
回复

使用道具 举报

 楼主| 发表于 2012-7-1 10:40 | 显示全部楼层
好大的字体
jigsaw 发表于 2012-7-1 10:30 https://www.yleee.com.cn/images/common/back.gif



    我手机看不出字体大小,现在改成7号字了,不知道可不可以?
回复

使用道具 举报

发表于 2012-7-1 10:40 | 显示全部楼层
// 双斜杠后面的这一行注释 可以不要 双斜杠也可以去掉
/*这两个符号中间的全都是注释 包括前后的斜杠型号也都可以全去掉*/

想要快点的方法当然就是买个键盘插上。。。
回复

使用道具 举报

发表于 2012-7-1 10:42 | 显示全部楼层
两种注释方法就是双斜杠只能注释一行
而后面那个可以注释多行
回复

使用道具 举报

发表于 2012-7-1 10:52 | 显示全部楼层
简单说,双斜杠是一个“注释标志”,作用是告诉编译软件(keil C)这一行中双杠后的部分不用编译。因此,如果不输入注释内容的话,那么双斜杠也没有必要了--因为后面没有需要让编译软件忽略的内容。
回复

使用道具 举报

发表于 2012-7-1 11:08 | 显示全部楼层
回复 4# 社建电子

没变,不过没关系的
回复

使用道具 举报

发表于 2012-7-1 11:15 | 显示全部楼层
本帖最后由 sdf15937 于 2012-7-1 11:22 编辑

托您的福,咱也当了回老师


“我知道//(双斜杠下同)后面是注释,可以不输入,但是双斜杠要不要输入?”双斜杠就是为注释服务的(这个只注释一行),如果没有注释,可以不输入,另外还有另外一种注释方法“/*注释内容*/”这个方法适合注释大段的文字。注释一直从“/*”开始,到“*/”结束(不管有几行)

“有没有好办法快一点?”这个没办法,只能一个一个敲……我觉得最快的方法就是买个键盘……

“看看下面这些哪些必须输入?哪些可以不要了?”

如果你在
#include<reg52.h>
sbit LED0=P1^0;
之间加上
“#define uint unsigned int”//定义uint为无符号整型(无符号整型就是unsigned int,另外还有把unsigned char 定义成uchar),就能把“unsigned int t” 缩减成“uint”(这个比较实用)

另外还能缩减的可能就是定义了
比如“sbit LED0=P1^0;”改成“sbit L=P1^0;”
那么下面的“LED0”就可以用“L”代替(这方法咱不建议,可能你这次记者L是代表LED0,或许下次就不记得了,程序短一点还好,要是长一点,自己都理不顺了……)
还有“void Delay(unsigned int t)”缩减成“void D(unsigned int t)”那么程序里面所有“Delay”都可以用“D”代替(…同上…)
同理,“unsigned int CYCLE=600,PWM_LOW=0;//定义周期并赋值”中的“CYCLE”和"PWM_LOW"




注释咱就不用说了吧~?

另外还有很重要的一点,“LED0”和“led0”是两个不同的概念,定义了“LED0”就要用“LED0”,不能用“led0”代替,这点比较容易搞混。



******啊~我是分割线******
看到这帖子的时候只有一条回复,等编辑完了,就有好多条回复了……
这就是我最喜欢这个坛子的原因……大家都很热心~
回复

使用道具 举报

发表于 2012-7-1 11:29 | 显示全部楼层
// 双斜杠后面的这一行注释 可以不要 双斜杠也可以去掉
/*这两个符号中间的全都是注释 包括前后的斜杠型号 ...
dzkenan 发表于 2012-7-1 10:40 https://www.yleee.com.cn/images/common/back.gif



    可以复制粘贴的吧
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-4 02:31 , Processed in 0.032454 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表