求助,求一个51单片机程序100例

为了解决用户可能碰到关于"求一个C语言编写的程序,在51单片机上实现一个按键操作LED的亮灭,就是按一下亮起来再按一下就灭掉,如果可以的话注释一下,最近在自学单片机,之前C的东西有点丢掉"相关的问题,志乐园经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"求一个C语言编写的程序,在51单片机上实现一个按键操作LED的亮灭,就是按一下亮起来再按一下就灭掉,如果可以的话注释一下,最近在自学单片机,之前C的东西有点丢掉"相关的详细问题如下:
哦,可以啊,QQJohn
||||点击排行查看: 5120|回复: 13
51单片机烧不进去程序,我肯定不是硬件问题,求解答啊
我做了一个AT89S52 和16*16点阵滚动显示电路,可以正常下载到单片机,
但是我后来加了一个中断用LED点阵显示温度。。。程序在PROTEUS仿真没问题,一切正常,但是无论怎么样就是下载不到单片机里面,其他的程序都可以。。到底怎么回事
附上源程序
#include &reg51.h&
sbit DQ=P0^0;
unsigned char const tab[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
unsigned char code digittab[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x40,0x00,0x40,0x00,0x47,0xFF,0x44,0x12,0x44,0x22,0x7F,0xC2,0x44,0x02,0x44,0x02,
0x44,0x02,0x7F,0xC2,0x44,0x22,0x44,0x22,0x47,0xFF,0x40,0x00,0x40,0x00,0x00,0x00,
0x00,0x04,0x04,0x06,0x04,0x04,0x04,0x08,0x04,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFC,0x02,0x02,0x04,0x02,0x08,0x02,0x10,0x02,0x00,0x1E,0x00,0x00,
0x00,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x3F,0xFC,
0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x00,0x04,0x00,0x00,
0x00,0x02,0x08,0x02,0x06,0x02,0x01,0xC2,0x00,0x02,0xFF,0xFE,0x00,0x02,0x00,0x02,
0x00,0x02,0xFF,0xFE,0x00,0x42,0x00,0x82,0x03,0x02,0x0C,0x02,0x00,0x02,0x00,0x00,
0x04,0x01,0x04,0x01,0x04,0x02,0x04,0x04,0x04,0x08,0x04,0x30,0x04,0xC0,0xFF,0x00,
0x04,0xC0,0x04,0x30,0x04,0x08,0x04,0x04,0x04,0x02,0x04,0x01,0x04,0x01,0x00,0x00,
0x02,0x20,0x0C,0x20,0x88,0x20,0x69,0x20,0x09,0x20,0x09,0x22,0x89,0x21,0x69,0x7E,
0x09,0x60,0x09,0xA0,0x19,0x20,0x28,0x20,0xC8,0x20,0x0A,0x20,0x0C,0x20,0x00,0x00,
0x00,0x00,0x3F,0xF0,0x22,0x20,0x22,0x20,0x22,0x20,0x3F,0xF1,0x00,0x02,0x00,0x0C,
0x7F,0xF0,0x44,0x40,0x44,0x40,0x44,0x42,0x44,0x41,0x7F,0xFE,0x00,0x00,0x00,0x00,
0x08,0x80,0x11,0x00,0x23,0xFF,0xCC,0x00,0x20,0x42,0x2F,0x4C,0x29,0x40,0x29,0x4E,
0x2F,0x41,0xF9,0x61,0x2F,0x59,0x29,0x41,0x29,0x47,0x2F,0x50,0x20,0x4C,0x00,0x00,
0x02,0x20,0x0C,0x20,0x88,0x20,0x69,0x20,0x09,0x20,0x09,0x22,0x89,0x21,0x69,0x7E,
0x09,0x60,0x09,0xA0,0x19,0x20,0x28,0x20,0xC8,0x20,0x0A,0x20,0x0C,0x20,0x00,0x00,
0x00,0x00,0x7F,0xFF,0x44,0x20,0x5A,0x10,0x61,0xE0,0x08,0x01,0x30,0x82,0x24,0x8C,
0x24,0xF0,0xA4,0x80,0x64,0x80,0x24,0xFC,0x24,0x82,0x28,0x82,0x30,0x8E,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0xF8,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0xFF,0xFE,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F,0xF9,0x00,0x01,0x00,0x0F,0x00,0x00,
0x01,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x02,0x41,0x01,0x47,0xFE,
0x45,0x00,0x49,0x00,0x51,0x00,0x61,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x00,0x00,
0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x00,0x00,0x00,0x20,0x00,0x24,0x9F,
0x24,0x92,0xA4,0x92,0x64,0x92,0x24,0x92,0x24,0x92,0x24,0x9F,0x20,0x00,0x00,0x00,
0x00,0x02,0x00,0x0C,0x00,0x00,0x3F,0xC0,0x2A,0x9C,0x2A,0x82,0x6A,0x82,0xAA,0xA2,
0x2A,0x9A,0x2A,0x82,0x2A,0x82,0x3F,0xCE,0x00,0x00,0x00,0x10,0x00,0x0C,0x00,0x00,
0x00,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x3F,0xFC,
0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x00,0x04,0x00,0x00,
0x24,0x10,0x24,0x60,0x25,0x80,0x7F,0xFF,0xC4,0x80,0x44,0x60,0x00,0x02,0x7C,0x92,
0x44,0x92,0x44,0x92,0x44,0xFE,0x44,0x92,0x44,0x92,0x7C,0x92,0x00,0x82,0x00,0x00,
0x00,0x00,0x00,0x42,0x44,0x44,0x4C,0xC8,0x54,0xD0,0x65,0x42,0x45,0x41,0x46,0x7E,
0x84,0x40,0x88,0x40,0x90,0x50,0x81,0x48,0x80,0xC4,0x00,0x62,0x00,0x00,0x00,0x00,
0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00,
0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00,
0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00,
0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00,
0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00,
0x21,0x08,0x21,0x0C,0x3F,0xF8,0x21,0x10,0x21,0x11,0x00,0x42,0x1F,0x84,0x00,0x18,
0xFF,0xE0,0x00,0x00,0x21,0x04,0x21,0x04,0x3F,0xFC,0x21,0x04,0x21,0x04,0x00,0x00,
0x00,0x80,0x08,0x80,0x11,0x00,0x21,0x7F,0xC2,0x42,0x04,0x42,0x08,0x42,0x30,0x42,
0x08,0x42,0x04,0x42,0x82,0x42,0x41,0x7F,0x21,0x00,0x10,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x11,0x9F,0xD1,0x95,0x12,0x95,0x14,0xD5,0x18,0xD5,0x70,0xBF,0x90,
0xB5,0x10,0xD5,0x12,0xD5,0x11,0x95,0x12,0x1F,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,
0x40,0x08,0x7F,0xF8,0x49,0x10,0x49,0x10,0x7F,0xFF,0x40,0x20,0x00,0x81,0x08,0x82,
0x88,0x8C,0x68,0xB0,0x0F,0xC0,0x28,0xB0,0xC8,0x8C,0x08,0x82,0x00,0x81,0x00,0x00,
0x00,0x00,0x00,0x42,0x44,0x44,0x4C,0xC8,0x54,0xD0,0x65,0x42,0x45,0x41,0x46,0x7E,
0x84,0x40,0x88,0x40,0x90,0x50,0x81,0x48,0x80,0xC4,0x00,0x62,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0xF8,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0xFF,0xFE,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F,0xF9,0x00,0x01,0x00,0x0F,0x00,0x00,
0x02,0x00,0x02,0x00,0x42,0x00,0x33,0xFE,0x00,0x04,0x00,0x08,0x04,0x00,0x24,0x7F,
0x24,0x42,0x24,0x42,0x7F,0xC2,0x44,0x42,0xC4,0x42,0x44,0x7F,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00,
0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00,
0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00,
0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00,
0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00,
0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00,
0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00,
0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00,
0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00,
0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char code dd[]={
0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00,
0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00,
0x00,0x00,0x0C,0x18,0x10,0x04,0x11,0x04,0x11,0x04,0x12,0x88,0x0C,0x70,0x00,0x00,
0x00,0x00,0x00,0xE0,0x03,0x20,0x04,0x24,0x08,0x24,0x1F,0xFC,0x00,0x24,0x00,0x00,
0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00,
0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x18,0x88,0x00,0x70,0x00,0x00,
0x00,0x00,0x1C,0x00,0x10,0x00,0x10,0xFC,0x13,0x00,0x1C,0x00,0x10,0x00,0x00,0x00,
0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00,
0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00,
unsigned char code fuhao[]={
0x60,0x00,0x90,0x00,0x90,0x00,0x67,0xE0,0x1F,0xF8,0x30,0x0C,0x20,0x04,0x40,0x02,
0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x20,0x04,0x78,0x08,0x00,0x00,0x00,0x00,/*&℃&,0*/};
unsigned char dis[64];
void delay(unsigned int i)
for(j=0;j&i;j++);& & & & & & & &&&
void delay1(unsigned int i)
while(i--);
bit int_DS18B20(void)
unsigned char x=0;
delay1(8);
delay1(80);
delay1(14);
delay1(20);
Read(void)
unsigned char i=0;
unsigned char dat=0;
for(i=8;i&0;i--)
&&dat&&=1;
& &dat|=0x80;
& &delay1(4);
return(dat);
Write(unsigned char dat)
unsigned char i=0;
for(i=8;i&0;i--)
&&DQ=dat&0x01;
&&delay(5);
&&dat&&=1;
delay1(4);
void int_(void)/*启动转换*/
while(int_DS18B20());
Write(0xcc);
Write(0x44);
void load_wendu(void)
{& & & & & & & &
& & unsigned char a,b,j,t=0,bai,shi,
& & while(int_DS18B20());
& & & & Write(0xcc);
& & & & Write(0xbe);
& & & & a=Read();
& & & & b=Read();
& & & && &
& & & && & a=a&&4;
& & & & & & & & t=b&&4;
& & & & & & & & t=t|a;
& & & & & & & & bai=t/100;
& & & & & & & & shi=(t-bai*100)/10;
& & & & & & & & ge=t-(bai*100+shi*10);
& & & & & & & & delay1(100);
& & & & & & & & for(j=0;j&16;j++)
& & & & & & & &&&dis[j]=dd[shi*16+j];
& & & & & & & & for(j=16;j&32;j++)
& & & & & & & && &dis[j]=dd[ge*16+j-16];
& & & & & & & & for(j=32;j&64;j++)
& & & & & & & && & dis[j]=fuhao[j-32];
void main(void)
&&unsigned int j=0;
&&unsigned int q=0;
&&unsigned char t=0;
&&TMOD=0x01;
&&TH0=0x06;
&&TL0=0x06;
&&while(int_DS18B20());
& & & & Write(0xcc);
&&delay1(200);
&&P1=0x00;
&&P3=0x00;
&&while(1)
&&{int_();
&&while(int_DS18B20());
& & & & Write(0xcc);
&&delay1(200);
& &for(r=0;r&3;r++)
& & for(j=q;j&32+q;j++)
& & & & P2=tab[t];
& & & & P3=digittab[j];
& & & & j++;
& & & & P1=digittab[j];
& & & & delay(80);
& & & & t++;
& & & & if(t==16)t=0;
& &if(q==1026)q=0;
void timer0(void) interrupt 1
&&static unsigned int u=0;
&&unsigned int q=0,k=0,r;
&&unsigned char a,b,j,t=0;
&&TH0=0x06;
&&TL0=0x06;
&&if(u==200)
& && & & & u=0;
& & & && & & & & &
& & & && &&&load_wendu();
& && & & &&&
& &for(j=0;j&48;j++)
& &{for(r=0;r&10;r++)
& & for(k=q;k&32+q;k++)
& & & & P2=tab[t];
& & & & P3=dis[k];
& & & & k++;
& & & & P1=dis[k];
& & & & delay(60);
& & & & t++;
& & & & if(t==16)t=0;
& &if(q==32)q=0;&&
& && & & & }& &
& & & & }&&
& &int_();
回复【楼主位】guyong2012
-----------------------------------------------------------------------
烧不进去从有提示吧?
超出容量了吧?
容量没超,楼主程序第117行定义的数组没有用};结束。
不知道,看看学习,有什么提示?
用示波器量量RX有没有接收到信号,看看晶振有没有跑起来,握手成功吗,握手没成功 就可能还是硬件的问题了
熔丝设置对吗?
回复【3楼】Edward3121
-----------------------------------------------------------------------
这个是我在上传的时候忘打了。。在KEIL中编译通过了,显示data=107 xdata=0&&.HEX文件也生成了,但是就是烧不进去单片机。。其他的程序一切正常,唯独这个不行……
回复【6楼】supermice 耗子
-----------------------------------------------------------------------
这个没有问题的,因为其他程序都可以正常烧进去
回复【5楼】sheng1255
-----------------------------------------------------------------------
我可以肯定USBASP下载没问题,因为其他程序可以写进去。。。唯独这个不行……我想应该是软件的问题,是不是中断出问题了,可就是找不到原因
回复【2楼】huayuliang 花生
-----------------------------------------------------------------------
没什么反应。。点烧录,然后软件界面显示烧录成功,硬件没反应。。。其他的程序正常
是下载程序的软件没设置好吧,你关闭重新找开试试。我以前也下不进去,但关了就好了,下着着又会下不进去,擦除一下芯片也有时会好。
阿莫电子论坛, 原"中国电子开发网"
, 原www.ourdev.cn, 原www.ouravr.com后使用快捷导航没有帐号?
来自ValentinRuhry的创意,这哥们用整整500
求大神帮助 写一个51单片机控制两个舵机转动的程序
pwm信号输出,舵机型号TR205,一个舵机是控制前后摆动&&一个舵机控制机械抓手。新手想学习所以希望可以带点注释
本帖最后由 闲云惊浪 于
23:51 编辑
这个应该和你要求的相关。可以参考下
(110.8 KB, 下载次数: 9)
23:51 上传
点击文件名下载附件
下载积分: 下载币 -5
Copyright &
Powered by查看: 1513|回复: 3
求:单片机用按键控制一个闪烁灯开和关的C语言程序
求:单片机用按键控制一个闪烁灯开和关的C语言程序
比如在以下的程序里加一个开关按键,按下按键灯闪烁,松开按键按灯灭(以下是的程序)
#include &reg52.h&
sbit LED=P2^0;
//延时函数,含有输入参数unsigned int x,无返回值unsigned int是宏定义无符号整型变量,其值的范围是0~65535
void delay(unsigned int x)
& &&&while(x--);
void main(void)
& & while(1)//无限循环
& && && &&&LED=0;//P2.0输出低电平,点亮LED灯
& && && &&&delay(2000);//调用延时函数,更改X值,相当于更改LED灯闪烁的频率
& && && &&&LED=1;//P2.0输出高电平,熄灭LED灯
& && && &&&delay(2000);//调用延时函数,更改X值,相当于更改LED灯闪烁的频率
给你个程序,相互学习下
给个程序,相互学习。
#include &reg52.H&
#define uchar unsigned char
#define uint unsigned int
sbit led=P2^0;
sbit key=P1^0;
void delay(uint x)
& & & & uint i,j;
& & & & for(i=x;i&0;i--)
& & & & & & & & for(j=110;j&0;j--);
void keys()
& & & & if(key==0){led=~delay(500);}
& & & & else{led=1;}
void main()
& & & & while(1)
& & & & & & & & keys();
void keys()
if(key==0){led=~delay(500);}
else{led=1;}
写的很好! 给我感触
Powered by一个简单程序~求助求助!!!!!!【51单片机吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:54,231贴子:
一个简单程序~求助求助!!!!!!收藏
求这个题目程序~
2017超火的三国策略游《极速体验入口》
求大神帮忙啊
有没有人呐
登录百度帐号推荐应用

我要回帖

更多关于 单片机串口通信程序 的文章

 

随机推荐