标题:
实现这个单片机LED闪烁代码应该怎么写?求指导如何学习单片机
[打印本页]
作者:
曾某人。
时间:
2021-6-4 21:23
标题:
实现这个单片机LED闪烁代码应该怎么写?求指导如何学习单片机
共有8个LED灯,要求LED1每100ms闪烁,LED2每200ms闪烁,LED3每400ms闪烁,LED4每800ms闪烁,LED5每1600ms闪烁,LED6每3200ms闪烁,LED7每6400ms闪烁,LED8每12800ms闪烁.
作者:
munuc_w
时间:
2021-6-5 08:31
用一个定时器定时10ms,在定时中断中计数,判断计数值即可。
作者:
hhdsdy
时间:
2021-6-5 09:27
我发觉论坛很多都是求程序来的,而且还是布置的作业,这样应付学习真的好吗?如果是写出的程序有问题,大家是很乐意帮助的,像这类明显是作业题却完全不懂脑筋不想去打好基础,只想甩锅给论坛,让坛友们代为完成,也没多少人有时间和精力去帮助你完成的。
作者:
压着我头发啦
时间:
2021-6-5 09:54
程序涉及到LED灯闪烁,定时器。这分别是单片的2节课,led闪烁是很简单的,不管是作业还是啥,看几眼就明白了了,如果是本专业,或者本行业,第二节课一定要花时间经历去学,毕竟是单片机的核心功能。如果为了应付差事,实在没人给你写,你就有*偿*索*要吧。入行1年以上的估计不屑于花时间写这个,来证明自己顺便帮助你了
作者:
xuyaqi
时间:
2021-6-5 10:25
给个参考程序:
#include <reg51.h>
int count = 0;
sbit output = P3^0;
sbit led0 = P1^0;
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
sbit led4 = P1^4;
sbit led5 = P1^5;
sbit led6 = P1^6;
sbit led7 = P1^7;
void initialize()
{
/*TMOD|=0X02;
TH0=0x10;//1us-0x9c;20us-0x3c;
TL0=0x10;
TR0=1;//也可以到用时才启动
ET0=1;
EA = 1;*/
ET0 = 1;//定时器中断打开
TMOD = 0x01;//定时器工作方式 01-16位
TR0 = 1;//启动定时器0
TH0 = 0x38;//0x3800-50ms;//
TL0 = 0x00;//
EA = 1;
}
int main (void)
{
initialize();
while(1)
{
char e0,e1,e2,e3,e4,e5,e6,e7;
if(count == 2){led0=!led0;e0=e0+1;count=0;}
if(e0 == 2) {led1=!led1;e1=e1+1;e0=0;}
if(e1 == 2) {led2=!led2;e2=e2+1;e1=0;}
if(e2 == 2) {led3=!led3;e3=e3+1;e2=0;}
if(e3 == 2) {led4=!led4;e4=e4+1;e3=0;}
if(e4 == 2) {led5=!led5;e5=e5+1;e4=0;}
if(e5 == 2) {led6=!led6;e6=e6+1;e5=0;}
if(e6 == 2) {led7=!led7;e7=e7+1;e6=0;}
}
}
void timer0() interrupt 1
{
TH0 = 0x38;//0xFF;//
TL0 = 0x00;//
count++;//计数
output=!output;
}
作者:
qq603599910
时间:
2021-6-5 13:40
这个确实太简单,只要有单片机底子,动一下脑筋做定时器加递增计数就可以.百度一下单片机教程慢慢学习多动脑去理解.
做电子行业带人我怕的就是不动脑只生搬硬套的,布置一个电路就会做一个电路,第二个相近的电路就不会了,这样会抓狂的,搞设计还是要有发散思维,有了1就想着0+1或者1+1,这样才能进步能成才.
作者:
你的个人电脑的
时间:
2021-6-6 08:30
用滴答定时器 看参考手册看demo
作者:
yubnm123
时间:
2021-6-6 10:21
可以看一下单片机的使用手册,然后网上下载一些案例学习
作者:
chenzou
时间:
2021-6-6 11:22
这个根据手册,配置寄存器控制引脚,配置定时器寄存器定时即可,如何学习,认真看手册,配置寄存器,做过一遍,所有单片机都是这样的
作者:
Wongrui
时间:
2021-6-7 11:52
会用定时器就用定时器;不会用定时器,就用延时+数组。
作者:
cn_zhx
时间:
2021-6-7 15:20
用定时器设定一个基准定时,如10ms,再对定时器中断进行中断次数计数,计数10次,让第一个灯闪,计数20次,第二个,。。。如此类推,就可以了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1