⑴ 求大神写一个51单片机程序实现以下功能 感谢
这个你得找专业人士给你下载一下它的功能吗?
⑵ 多个DS18B20怎么接与单片机怎么接请给个图,非常感谢!
DS18B20是一根总线的模式,所以可以在一条线上挂N多个DS18B20,程序区分的方法是靠每个18B20里的ROM激光码软件识别。
所以挂N多,就是并联。所有的18B20并联在一起,不过不能用寄生供电。
图我就不传了,比较慢,根你说一下:
即所有的18B20的VCC与单片机的VCC连接在一起,所有的18B20的GND与单片机的GND连接在一起。
所有的18B20的数据线用一根线连接在一起,连接到单片机的引脚上,单片机的引脚要加上拉电阻。
⑶ 那位行家能给我介绍介绍各种各样的单片机啊感谢!!
AT89C XXXXXXXX其中,AT是前缀,89CXXXX是型号,XXXX是后缀。
下面分别对这三个部分进行说明,并且对其中有关参数的表示和意义作相应的解释。
(l)前缀 由字母“AT”组成,表示该器件是ATMEL公司的产品。
(2)型号 由“89CXXXX”或“89LVXXXX”或“89SXXXX”等表示。
“89CXXXX”中,9是表示内部含 Flash存储器,C表示为 CMOS产品。
“89LVXXXX”中,LV表示低压产品。
“89SXXXX”中,S表示含有串行下载 Flash存储器。
在这个部分的“XXXX”表示器件型号数,如51、1051、8252等。
(3)后缀由“XXXX”四个参数组成,每个参数的表示和意义不同。在型号与后缀部分有“—”号隔开。
后缀中的第一个参数 X用于表示速度,它的意义如下:
X=12,表示速度为12 MHz。 X=20,表示速度为20 MHz。
X=16,表示速度为16 MHz。 X=24,表示速度为24 MHz。
后缀中的第二个参数 X用于表示封装,它的意义如下:
X=D,表示陶瓷封装。 X=Q,表示 PQFP封装。’
X=J,表示 PLCC封装。 X=A,表示 TQFP封装。
X=P,表示塑料双列直插 DIP封装。 X=W,表示裸芯片。
X=S,表示 SOIC封装。
后缀中第三个参数 X用于表示温度范围,它的意义如下:
X=C,表示商业用产品,温度范围为0~十 70℃。
X=I,表示工业用产品,温度范围为—40~十 85℃。
X=A,表示汽车用产品,温度范围为—40~十 125℃。
X=M,表示军用产品,温度范围为—55~十 150℃。
后缀中第四个参数 X用于说明产品的处理情况,它的意义如下:
X为空,表示处理工艺是标准工艺。
X=/883,表示处理工艺采用 MIL—STD—883标准。
例如:有一个单片机型号为“AT89C51—12PI”,则表示意义为该单片机是 ATMEL公司的Flash单片机,内部是 CMOS结构,速度为12 MHz,封装为塑封 DIP,是工业用产品,按标准处理工艺生产。
⑷ 跪求一单片机C程序,感谢!
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
//这里用的是AVR mega16,GCC下测试通过,51下稍微改动就可以了。
#define seg_dis PORTD
#define seg_ctrl PORTC
#define key_input PINA
volatile uint8_t time_on=2,time_off,cnt=0;
ISR(TIMER1_OVF_vect) //1s
{
TCNT1H=(65536-3906)/256;
TCNT1L=(65536-3906)%256;
cnt++;
if (cnt==time_on) seg_ctrl=0xff;
else if (cnt==time_off+time_on) {seg_ctrl=0xfe;cnt=0;}
}
void timer1_init(void)
{
TCNT1H=(65536-3906)/256;
TCNT1L=(65536-3906)%256;
TCCR1B=0x04;
TIMSK|=(1<<TOIE1);
}
void time_over(void)
{
TCNT1H=0xff;
TCNT1H=0xf0;
cnt=time_off+time_on-1;
}
void MUC_init(void)
{
DDRA=0X00;
DDRB=0XFF;
DDRC=0XFF;
DDRD=0XFF;
PORTA=0xff;
}
int main(void)
{
MUC_init();
timer1_init();
seg_dis=0x00;
seg_ctrl=0xfe;
time_on=2;
time_off=10;
sei();
while(1)
{
uint8_t key;
key=~(key_input&0xff);
switch(key)
{
case 0x01:
time_off=6;
time_over();
break;
case 0x02:
time_off=8;
time_over();
break;
case 0x04:
time_off=15;
time_over();
break;
case 0x08:
time_off=20;
time_over();
break;
default:
break;
}
}
}
⑸ 寻找师傅教我51单片机编程机器人谢谢!
看你这么喜欢单片机编程,哎不得回想一下当年自己,求学经历,学习单片机是一件很枯燥的事情,不是一件容易事,单片机开发和嵌入式开发的道路你还没有了解过,你真心想学习单片机,我给你指出条明路,先去到网上买一块51学习板,参考小宋老师手把手教你学习单片机视频和郭天祥老师的十天学会51单片机,讲的都非常好,学习一下两位老师的编程思路,和程序思想。
切记: 我教你学习C51单片机的目的,并不是让你去学习51单片机,只是51单片机结构比较简单,用在C语言的教学和学习上,是绰绰有余,但是很多学生都误以为大学老师在教大家学习单片机,如果你想以后往研发方面发展,你必须把C语言吃透,否则后面你会吃到苦头,市场上面单片机种类很多,选择市场主流单片机ARM,先推存你到网上下载谭浩强C设计第三版,和C语言深度解析,进行学习,买别的书浪费钱。
想把C语言吃透,就要通过单片机把C语言的32个关键字、结构体,指针、条件语句等一系列指令能在51单片机上面灵活应用,那你C语言算是入门了,只有通过不断的实验去灵活的应用C语言的各大语句,自己多积累经验,了解C语言的妙用。
先花1年的时间进行了解51单片机,在这里一年里你要多做实验多写程序,进行学了C语言,要练习到,你一拿到别人程序,一眼就能看懂,然后到单片机论坛里面,去看看别人做的DIY,自己也试着去做,单片机高手都是从论坛里面爬出来的。
我只介绍学习方法,确不能当你师傅,别人也不会当你师傅的,你也就死了这条心吧,
想学习单片机,必须具备自学能力,如果你没有自学能力,那我劝你别学习单片机了。
我这里有个单片机交流群,以前大学里面建的,如果在学习中遇到问题,可以到这里来解决。群:100626882
⑹ 单片机考试试题 急用 谢谢
修改如下:
ORG 0000H
LJMP 1000H
ORG 0003H
LJMP 2000H ;转到外部中断0
ORG 001BH
LJMP 3000H ;转到定时器1中断程序
ORG 1000H ;主程序
SETB EX0
SETB ET1
SETB EA ;以上开放是中断
SETB PT1 ;设置定时器1为高级
SJMP $
ORG 2000H ;外部中断0程序
RETI
ORG 3000H ;定时器1中断程序
RETI
⑺ 哪位高手能告诉我单片机的学习核心 怎么才能学好它 谢谢
一是看书。书必须看。不能不看,也不可多看。
二是要动手实践。如果学校实验室有条件的话,就去学校实验室。或者几个同学一起学。
三是自己买一块实验板。这样学起来也方便。
但是前提是你必须得有一台电脑。实验板推荐你用铁牛单片机实验板,这个高校里面学生用的最多了。
⑻ 单片机编程 请使用汇编语言编程 不要C语言 最好有注释 感谢!
TIMES EQU 30H
LED EQU 31H
ORG 0000H
LJMP MAIN:
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
MOV TIMES,#0
MOV LED,#0F0H
MOV P1,LED
SJMP $
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC TIMES
MOV A,TIMES
CJNE A,#10,T0ISR1
T0ISR1:
JC T0ISRE
MOV A,LED
CPL A
MOV LED,A
MOV P1,A
T0ISRE:
RETI
⑼ 51单片机按位取反的问题.致谢大神!
就是将D1这个变量的位值取反,1变为0,0变为1,假设D1=0,执行D1=~D1后,D1=1。这个处理在定时器0的中断程序中执行,定时器0周期性中断,就将D1的位值周期性取反,接于P1.0的灯就闪烁了。
⑽ 单片机大神,这些语句什么意思,最终实现了什么功能,谢谢各位
注释的足够详细了,最终的实现的功能就是单片机将AD转换的结果从串口传送出去。