完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
今年寒假可以说是最无聊的一次了,呆在家里出不去,也没事干,整天就是玩手机,但是,我们不能这样了,我们得学习,所以就打算从最基础的开始,来写几篇和51单片机有关的东西。主要就是51单片机的一些应用。
今天第一篇就是点亮led灯,最开始的时候,老师叫我们点亮led是用的延时函数,但由于延时函数并不是十分准确,所以我们直接就用定时器来控制他。 我们要达到的目的就是通过定时器来控制led每隔一秒闪烁一次。同时我们使用的是通过proteus仿真来达到目的。 注:这篇文章中的单片机使用的是AT89C51、定时器T0、工作方式1 具体代码如下: `#include “reg51.h” #define u8 unsigned char; u8 i; ***it led =P2^0; void init() //定时器初始化 { TMOD=0x01; //T0 工作方式1 TH0=(65536-50000)/256; //设置定时器初值 TL0=(65536-50000)%256; EA=1; //开总中断 ET0=1; //打开定时器T0的中断 TR0=1; //运行定时器T0 } void timeinit() interrupt 1 //中断函数配置 { i++; if(i==20) //1s时间 { led=~led; i=0; } TH0=(65536-50000)/256; //重装初值 TL0=(65536-50000)%256; } void main() { init(); while(1); }` proteus图片如下图所示: 这个实验虽然仅仅是点亮一个led灯,但是我们只需修改一部分代码就可达到控制多个led灯的闪烁。 以上就是我这次的实验,希望大佬们看见了点个赞。 |
|
|
|
只有小组成员才能发言,加入小组>>
2557 浏览 0 评论
1156浏览 2评论
759浏览 1评论
512浏览 0评论
271浏览 0评论
447浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 01:11 , Processed in 1.326440 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号