硬件就是PC,你的电路板,还有程序下载线或烧写器之类
软件,就是各种编程软件了,比如IAR,Keil等
在PC上编程,然后编译成诸如HEX之类的文件,再通过程序下载线下载到芯片上。有的芯片不支持ISP之类的下载方式,那就要专门的烧写器了。
可以用C编程,甚至有的软件支持类BASIC的语言,看你用什么编程软件。
B. 求52单片机程序代码
程序代码如下:
#include<reg51.h>
sbitK1=P1^0;
sbitK2=P1^1;
voiddelay(inta)
{
inti;
while(a--)for(i=0;i<120;i++);
}
main()
{
unsignedcharkeyval=0,led=0xfe;
while(1)
{
if(K1==0)
{
delay(10);
if(K1==0)
{
keyval==1;
while(K1==0);
}
}
if(K2==0)
{
delay(10);
if(K2==0)
{
keyval==2;
while(K2==0);
}
}
if(keyval==1)P0=0xfe;
if(keyval==2)
{
P0=led;
led=_crol_(led,1);
delay(200);
}
}
}
C. 单片机怎么烧程序
问题一:51单片机芯片烧入程序 买一个烧录器就好了,杜邦线直接插到DIP脚上
问题二:单片机如何烧录程序 STC系列单片机为例:
首先,需要安装keil软件和STC_ISP程序下载软件。
先对你想要实现对单片机的功能用keil编程,然后用STC_ISP下载软件下载到单片机上,最后打开给单片机提供电源就可以观察单片机开发板或是自己搭建的板子上的现象了...通过不断修改程序,下载程序,最终获得自己在实验板上想要的结果。这样就可以了...
实验板与PC机的连接:一般对现成购买的开发板来说,会有一个USB接口提供5v电源、提供通信或另一个USB用桥答野来下载接口驱动程序,同时有RS232串口,实现MAX232电平与单片机TTL电平之间转换,用来进行通信下载程序和数据;;对自己搭建的电路板来说,仍会有MAX232芯片和RS232串口用来实现程序的烧写,实现对单片机写入数据和程序的下载。用的是RS232串口实现的程序烧写!
若要用USB来烧写,需要一个相应的ISP下载软件和硬件烧写器,一般这种烧写器价格不菲。用的是USB口实现烧写程序!
一般的,烧写程序还是选用可以用ISP下载的,自己搭建个RS232串口的电路,简单实用,对单片机烧写程序就够用了。
问题三:单片机中烧程序是什么意思 看处你刚刚入门。单片机是个有意思的东西,好好学。keil是电脑上的编程软件,烧程序你就理解为往单片机中下载程序。
问题四:单片机开始可以烧程序用了几次就烧不进去 怎么回事? 有可能已经烧坏敏喊了,特别是89c52系列 更特别是STC品牌的89C52的。很容易坏,
你要注意了,你电压可能有问题。
还有就是烧程序的时候需要复亥,如果以前你能烧现在不能烧,说明你复位电路没有问题,经常复位电路影响烧程序。
问题五:第一次给单片机烧程序要注意什么? use转232应该没有问题,我用现代的芯片试过已经通过。首先我们要分析你有没有进入ISP模式,用示波器观察一下串口的波形是否正常,再就是芯片各个管脚的电压是否正常。排除硬件原因后仍不能解决,建议换一下你的USB转232线,这方面的牌子实在太多了,虽然原理都一样,但作为一个故障点来分析也是应该考虑的。
问题六:为什么单片机程序烧不进去? 用的是什么型号的单片机?会不会是烧写前没有先擦除?单片机保存程序是使用EEPROM或者flash的,都需要先擦除,才能写入的。第一次能烧进去,是因为单片机出场时本来就是已擦除过的,可以写入。但之后的写入之前,都需要先擦除。
问题七:单片机程序烧入rom之后怎样执行 1,HEX文件包含了代码数据。是由链接器统一分配ROM地址。
2. 程序中的变量,也是在编译连接时,分配了RAM地址。不存在载入的问题,程序指令对变量的操作,就是对RAM地址的操作,地址值存在在指令中。
3. 堆栈在程序初始化时设置堆栈指针。Keil C 会自动设置好。
4. 一般的51单片机代码是从 0000开始执行,这是它的复位地址。也有别的型号的单片机并不一定从0开始执行。程序从0开始执行,但它执行的第一句往往是一个跳转指令(这个Keil C也是自动写好的),跳到另一块地址去执行,而不会顺序执行到 中断的地址的。
你如果是用汇编写程序,这些都是要你自己去分配的,用C写程序,由编译器来完成这些底层操作。
问题八:怎么程序突然烧不进单片机了??? 这种情况会有很多种可能性:
1、单片机已经损坏,楼主换个单片罚试试。
2、单片机开发板损坏,这个情况基本上不可能发生,但楼主需做好准备。
3、USBISP损坏,概率不大,换一个试试。
4、下载软件出问题了,楼主看看自己的程序下载软件的型号是否为“AT89S52”。
5、单片机在插座上插反了。
6、某条连接线不牢固。
7、开发板的晶振松了,或数值举派不对。
问题九:8051单片机通过什么口烧程序? at89c**系列是用并口下载。at89系列可以用isp方式下载。 stc系列可以通过串口下载。51有专门的仿真芯片。。
isp可以用串口或者并口,或者串口转u *** (这种方式最方便,笔记本上也可以下载)。isp就用到单片机的io口(P1.5,P1.6,P1.7),还有RST引脚+74h373+并口,就可以下载了。。
D. 单片机应用程序的开发步骤
具体步骤如下:
1、首先,开启我们的keil软件,具体的安装步骤就不做太多的介绍了;
开启后,点击菜单栏上的Project选项,创建我们的工程,如图所示;
编译完成后,在我们的文件夹下找到.hex的文件,将其烧写到我们的芯片中即可。
E. AT89C51单片机8路抢答器的代码怎么写,急用,求解答
#include<reg51.h>
#defineucharunsignedchar
uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbitrstkey=P2^2;
sbitspeaker=P2^0;
voiddelay(uchara)
{
uchari,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
uchari,key;
P2=0xff;
while(1)
{
i=0;
P1=table[i];
while(1)
{
key=P3;
if(key!=0)break;
}
switch(key)
{
case0x01:i=1;break;
case0x02:i=2;break;
case0x04:i=3;break;
case0x08:i=4;break;
case0x10:i=5;break;
case0x20:i=6;break;
case0x40:i=7;break;
case0x80:i=8;break;
default:break;
}
P1=table[i];//显示按下抢答器的号
P0=key;//显示按下键号的LED
while(1)
{
if(rstkey==0)break;//主持人按下复位键则重新开始
speaker=~speaker;//否则蜂鸣器报警
delay(250);
}
}
}
F. 单片机编程步骤
一、什么是 nec 单片机
随着大范畴集成电路的显现和发展,将计算机的cpu、ram、rom、定时/数器和多种i/o接口集成在一片芯片上,组成芯片级的计较机,因此单片机早期的含义称为单片微型计较机,直译为单片机。单片机是一种集成在电路芯片,是采用超大范畴集成电路技能把具有数据处理本事的中心处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和间断系统、 定时器 / 计时器 等成果(大要还包括表现驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完竣的计算机系
二、nec单片机的操纵教程详解
1、在智能仪器仪表中的操纵:在各类仪器仪表中引入单片机,使仪器仪表智能化,进步测试的自动化程度和精度,简化仪器仪表的硬件结构,进步其性能价格比。
2、在机电一体化中的操纵:机电一体化产品是指集呆板、微电子技能、计较机技能于一本,具有智能化特征的电子产品。
3、在实时过程控制中的操纵:用单片机实时进行数据处理和控制,使系统保持最佳事变状态,进步系统的事变从命和产品的品格。
4、在人类生活中的操纵:目前国外各种家用电器已普通采用单片机代替传统的控制电路。
5、在此外方面的操纵:单片机除以上各方面的操纵,它还遍布操纵于办公自动化范围、商业营销范围、汽车及通信、计较机外部装备、暗昧控制等各范围中。
以上就是为大家整理的关于单片机含义及其具体操纵教程的全部内容了。此外小编还额外为大家整理了单片机的优点:低电压、低功耗、集成度高、可靠性高、体积小、控制成果强等。希望通过这篇文章能够给想要了解单片机相关知识的朋友带来一些帮助。另外大家如果想了解更多单片机的知识可以通过图书查阅、网络查阅等方式。
G. 51单片机的八个LED循环点亮,如何写代码
// 51单片机控制八个发光二极管 左右循环。
#include<reg52.h>改源
#define uchar unsigned char
#define uint unsigned int
unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; // 改变这里 LED 各种花样
uchar t,i;
void main()
{
TMOD=0x10;
TH1=(65535-50000)/256; // 50ms一次
TL1=(65535-50000)%256;
EA=1;
ET1=1;//开定时器袭辩1中核禅态断
TR1=1;//启动定时器1
t=0;
i=0;
while(1)
{
}
}
void timer1() interrupt 3
{
TH1=(65535-50000)/256; // 50ms一次
TL1=(65535-50000)%256;
t++;
if(t==20)
{
t=0;
P2=TAB[i];
i++;
if(i==18) { i=0;}
}
}