⑴ 单片机程序设计流程图
你好楼下一位回答的比较全面了另外我补充哈,图中左侧四个部件,相当于单片机内部CPU中的控制器,(CPU由运算单元和控制器单元组成)其实控制器就是在内部时序脉冲的节拍控制下,取指令,分析指令,然后执行指令。嵌入式单片机技术社区:/proct/embed.htm
⑵ 单片机程序设计
51单片机?自学已经足够了、用心点、别一开始就想着要依赖别人、你要想着靠自己也可以学好——而且单片机挺好玩的、学起来很有乐趣的、会越来越想学的——建议你买个实验板——
⑶ 单片机编程和"一般编程"区别
如果你是想学计算机软件开发的话,就不要去理会什么单片机编程了。
但如果你是想学电子产品开发(嵌入式系统开发),那么单片机编程就是基础了。
电脑和单片机的区别是:电脑属于通用计算机,而单片机是嵌入式微机。
通用计算机上的C语言和汇编编写出来的程序是在本台计算机上运行的,当然你也可以让它在其他电脑上运行。而单片机编程就不同了,单片机编程有专门的编译器,不同的单片机编程软件是不同的,而不像电脑上的c++6.0、TC或其他什么编程软件写出来的程序就在本台电脑上运行,单片机的编程是在电脑上编写程序并生成可执行文件。让后把可执行文件下载到单片机里面,也就是说单片机编程是面向单片机的,而通用计算机编程时面向通用计算机的。这就说明了为什么不同的单片机需要不同的编程软件,因为编程生成的可执行代码都需要硬件的支持,通用机的硬件是“通用的”“兼容的”,而单片机型号不同硬件就会有差别
,所以需要不同的编译器来支持了。
你会发现单片机编程的C语言和标准C会有差别,很多单片机C语言在标准C里是不被承认的,这个也能说明单片机和电脑的区别吧。
⑷ 89c51单片机程序设计!!!
办法比较多,89c51自己是不带ad的,那么外接ad程序比较麻烦,你这对电压也不测量精确值,所以用不着ad,只要能区分电压值不同就行了。考虑到程序的简单,就用比较器,比如说接五个比较器,阈值分别为1v、2v、3v、4v、5v,把他们的输入端接在一起,输出端接在单片机的五个io口上,再接五个发光二极管在另外五个io口上,发光二极管的另一端分别串个限流电阻接在电源上,硬件完成了。程序就好写多了,只要判断五个比较器输出端电平,然后控制相应的灯亮灭就行了。比较器也不一定五个,三个两个也一样,这样精度就不太高而已。不过程序就几行代码。简单。
⑸ 51单片机程序设计
P1=0xff,关闭所有LED(低电平才能点亮LED);
10000mS=10S;
右移1位;P1.7 先=0,即LED点亮
⑹ 单片机程序设计 很简单的 高分悬赏
每个灯亮1秒,每个灯闪亮频率为5次/秒。
下列程序,在PROTEUS中仿真通过.
;-------------------------------------
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0030H
MAIN:
MOV SP, #7FH
MOV TMOD,#01H
MOV TL0, #LOW(65536-50000)
MOV TH0, #HIGH(65536-50000)
SETB TR0
MOV IE, #82H
MOV R2, #2
MOV R3, #10
MOV R4, #0
M_LOOP:
LJMP M_LOOP ;等待中断,一切闪动、移位,都在中断里面解决
;----------------------------------------------------------------
T0_INT:
MOV TL0, #LOW(65536-50000)
MOV TH0, #HIGH(65536-50000)
DJNZ R2, T0_END
MOV R2, #2 ;加大此数字,如改为8,可降低速度,便于观察.
INC R4
DJNZ R3, FLASH ;100ms减一次一.
MOV R3, #10
INC R6 ;1s加一次一
FLASH:
MOV A, R6
ANL A, #7
MOV R5, A ;0~7, 1s换一次位.
INC R5
MOV A, R4
MOV C, ACC.0
MOV A, #255
MOV P1, A ;关显示
T0_LOOP:
RLC A
DJNZ R5, T0_LOOP
MOV P1, A
T0_END:
RETI
;------------------------------------------------------------
END
⑺ 单片机C语言和程序设计的C语言最大的差别在什么地方,单片机的C语言可以做程序设计嘛
最大区别就是程序设计的c几乎不会用来做程序设计(c++)
单片机C经常用来做设计(虽然效率不如汇编)
⑻ 一个单片机C语言程序设计
1)把这10个数放在数组中(你没说数据宽度,就设定为字节)
unsigned char shu[10]={};
2)定义变量
unsignedchar max=0;
unsignedchar min=255;
unsignedchar avg=0;
unsigned int tmp=0;
3)采用循环
main()
{ char i;
for(i=0,i<10;i++)
{
if(shu[i]>max)max=shu[i];
if(shu[i]<min)max=shu[i];
tmp+=shu[i];
}
tmp-=max;
tmp-=min;
avg=tmp/8;
while(1){}
}
⑼ 51单片机源程序设计
先实现一个功能吧,按K1数码管显示加1,LED灯左移一位。
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳级数码管码表0-9
ucharkey;
voidext0()interrupt0
{
key++;
P1=_crol_(0xfe,key);
P0=table[key];
}
main()
{
EX0=1;
IT0=1;
EA=1;
while(1);
}
⑽ 51单片机程序设计
按键按下去不是K2等于0么?
else if(K2==1 && dly==0)
{
dly=DLY1;
if(mode==2 && hour<23)hour++;
if(mode==3 && minute<59) minute++;
if(mode==4 && minute<59) second++;