原创 单片机学习日记3 PWM波练习

2010-12-30 09:24 2691 7 12 分类: 消费电子

今天在图书馆借了几本关于单片机和Protel等专业方面的书,又在图书馆埋头苦读了一天,现在虽然有点累,不过还是很有收获的,很多东西突然又记起来了,呵呵,原来俺这宝刀还未老呀!

虽然学习得一步一步的来,但是更要讲技巧,不然只能是事倍功半,呵呵,今天先复习一下理论知识,每天进步一点点,俺相信俺能行……

今天看了看定时器,好的就练习一下定时器,顺便再把独立键盘也写上了,主要设计的思路是用定时器2定时设置频率在P2.0口输出PWM波调节占空比就可以控制LED有亮度,可是由于proteus仿真不出亮度,结果我把LED的正负极反过来接,就只能在仿真界面上看在闪烁了,呵呵……不过这也不错,毕竟能看到结果了……

tu.jpg



这次用的是AT89S52单片机,下面是俺的小程序:

#include

#define uchar unsigned char

#define uint unsigned int

sbit LED10 = P2^0; //要控制的LED 灯

sbit K1= P3^2; //按键K1

uchar scale; //用于保存占空比的输出0 的时间份额,总共10 份

void initial();

/*************************************************/

/* 主程序              */

/*************************************************/

void main(void)

{

uint n;

initial();

while(1)

{ ;//主程序在这里就不断自循环,实际应用中,这里是做主要工作

if(!K1) //如果读到K1 为0

{

for(n=0;n<1000;n++); //等待按键稳定

while(!K1); //等待按键松开

for(n=0;n<1000;n++); //等待按键稳定松开

//for(n=0;n<50000;n++); //每过一会儿就自动加一个档次的亮度

scale++;

if(scale==10)scale=0;

}

}

}

/***********************************************/

/* 初始化子程序               */

/***********************************************/

void initial()

{

RCAP2H =0xF3; //赋T2 的预置值,溢出1 次是1/1200 秒钟

RCAP2L =0x98;

TR2=1; //启动定时器

ET2=1; //打开定时器2 中断

EA="1";

}

/*************************************************/

/* 1/1200 秒定时器2 中断         */

/*************************************************/

timer2() interrupt 5

{

static uchar tt; //tt 用来保存当前时间在一秒中的比例位置

TF2=0;

tt++;

if(tt==10) //每1/120 秒整开始输出低电平

{

tt="0";

if(scale!=0) //这里加这一句是为了消除灭灯状态产生的鬼影

LED10=0;

}

if(scale==tt) //按照当前占空比切换输出高电平

LED10=1;

}

K1键用来控制亮度,每按一次增加一个亮度级别。

单片机其实挺好玩的,虽然俺写的都是些小程序,不过慢慢来,俺会玩出新花样的……好了,明天再接着练习了,今天还得把实习报告写一写呢。

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

用户1588836 2011-3-11 21:25

用户1582936 2011-1-10 09:03

HAO

用户1149120 2011-1-9 10:20

好的文章也鼓励我自身的进步~谢谢写这篇文章的人~~~~~~·

用户1517716 2011-1-5 09:05

写得好!

用户1513395 2011-1-3 19:41

en

john_xjm_149062208 2010-12-1 13:22

个人认为物联网就是所谓专家的一个大忽悠

wen715591069_844196294 2010-11-27 20:38

看不惯繁体字的飘过

用户3809340 2010-11-27 09:01

工控机-》物联网?不是很顺的发展。 它确实不是新技术。要做的话,目前看来主要是两块:传感器,和底层网络连接性(也都是现有标准)。而真正做到有特点,需要的是上层的网络架构和应用。

用户1196911 2010-11-26 08:19

看不惯繁体字的飘过

用户1555366 2010-11-25 16:29

本公司有4.3 3.5的寸高清屏。联系电话 13713944483彭生
相关推荐阅读
xucun915_925777961 2013-04-28 11:31
毕业后的五年拉开大家差距的原因在哪里?【转】
  有人工作,有人继续上学,大家千万不要错过这篇文章,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很大启迪,这篇文章将会改变我的一生,真的太好了,希望与有缘人分享,也希望对有缘人有所帮助!...
xucun915_925777961 2013-03-31 20:28
职场大牛精彩总结:职场上,如何做人做事做管理【转】(文/张子阳)
      大道至简,越是根源和基本的问题,道理实际上越简单。关于如何做人、做事、做管理的书很多,我看得不多,但是我觉得这些书更多是侧重技术和实现细节上的,而很少从人的思想和观念去讲。实际...
xucun915_925777961 2013-03-28 14:03
介绍几种优秀的UML工具
统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言...
xucun915_925777961 2013-03-27 18:05
IAR EW FOR 8051 修改工程名称的方法
        近段时间一直在搞蓝牙4.0的开发任务,所以用到了IAR编译器,话说IAR编译器用途蛮广,可以编译MSP430,ARM,还有TI的51核芯片,当然,这要不同的版本,我现在用的是for...
xucun915_925777961 2013-03-26 16:40
Cortex-M3学习日志(八)-- TFT实验Part(a)
    自己用的LPC1768的开板带有一块2.4寸的TFT彩色液晶屏,虽然自己工作中还用不过显示屏,但是晚上闲着也是闲着,于是继续玩咱的LPC1768吧。 我的开发板上的液晶屏的用的是SPI接口,当...
xucun915_925777961 2013-03-25 20:48
说说那几款查看源代码的工具
说说那几款查看代码的工具 今天给大家介绍几款单片机工程师所喜欢的几款查看源代码的工具,这几款工具在懒猫的日常工作中可是帮了不少忙。 一、 Source Insight     Source Insig...
EE直播间
更多
我要评论
5
7
关闭 站长推荐上一条 /1 下一条