微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机求教

51单片机求教

时间:10-02 整理:3721RD 点击:
你们好各位高手, 我是单片机初学者, 我做了以下实验,但不知道什么原因,实验不成果,我做的是《定时器控制4 个LED 滚动闪烁》实验。这是我做的实验,实验结果:我用的四个灯都亮,没有任何效果。



这是我用的编码

/* 名称:定时器控制4 个LED 滚动闪烁

说明:4 只LED 在定时器控制下滚动闪烁。

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit B1=P0^0;

sbit G1=P0^1;

sbit R1=P0^2;

sbit Y1=P0^3;

uint i,j,k;

//主程序

void main()

{

i=j=k=0;

P0=0xff;

《单片机C语言程序设计实训100例---基于8051和 PROTEUS仿真》案例

30

上海师范大学信息与机电工程学院—倪继锋

TMOD=0x02; //定时器0 工作方式2

TH0=256-200; //200us 定时

TL0=256-200;

IE=0x82;

TR0=1; //启动定时器

while(1);

}

//T0 中断函数

void LED_Flash_and_Scroll() interrupt 1

{

if(++k<35) return; //定时中断若干次后执行闪烁

k=0;

switch(i)

{

case 0: B1=~B1;break;

case 1: G1=~G1;break;

case 2: R1=~R1;break;

case 3: Y1=~Y1;break;

default:i=0;

}

if(++j<300) return; //每次闪烁持续一段时间

j=0;

P0=0xff; //关闭显示

i++; //切换到下一个LED


求各位指导,谢谢。


粗看了一下,有几个疑问
1.从正面看除了单片机,晶振和LED,没看到其他元件,是放在背面了吗?要单片机运行至少确保最小系统
2.定时器方式2很短,虽然后面用2个函数延长了,但感觉还是直接用方式1或者软件延时简洁点。
  如果是普通的51估计时间长短上不会有什么问题(初看闪烁间隔在0.4秒左右),但STC的机器周期好像是普通51的1/8,人眼可能没留意到闪烁现象。(人眼具体要多少帧视觉残留我忘了)
3.执行定时器中断要重装初值
欢迎楼下补充或指出错误

1.led高电平亮还是低电平亮
2.i 满4后没有置0,因此要加满到255才变为零
3.楼上所说的,没有重装
4.可能闪烁时间太短看不出来

对, 你看的没有错, 我只用那些元件别的不用, 说准确的,我不会用, 我看有人那样用就模仿,结合还是那样。 我不知道从哪儿开始学单片机, 我曾经在学校学过C语言编程序, 我的专业也是物理学(教育类),但我非常非常好奇这个单片机。所以希望各位多多指导指导。

我暂时不太懂这些专业名称, 希望多多指导。谢谢。

再说, 这些编码不是我做的, 我也没有仔细的看过,网上下载就用上。

如果有可能的话帮我指导一下,用那些方法可以学这个, 用啥软件什么的?  谢谢!

如果只有那些元件单片机自然不工作,LED没限流电阻都没烧掉我倒是有点好奇为啥了。
另一方面软件还是要学学自己写,不懂软件就谈不上了解单片机。
LZ如果对单片机有兴趣建议上网看 郭天祥老师的十天学会单片机视频教程,看完后相信LZ对单片机就有初步认识了。

原来限流电阻还是有的,没看清楚

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top