来单片机高手帮我做4道单片机题目呀!急急急!!
MOV DPTR,#7fH
CLR A
LOOP1:
MOVX @DPTR,A
INC A
JNZ LOOP1
DEC A
LOOP2:
MOVX @DPTR,A
DEC A
JNZ LOOP2
AJMP LOOP1
我有这样的程序原来给别人做个这样的开发,原理图,线路板图,样品都有
104139988
下面是一点你看下,有要的找我
////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////子程序包括对DS18b20的操作等///////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/*INITIALIZATION初始化*/
void ini(void)
{ DQ=0;
delay1(100);
DQ=1;
delay1(10);
if(DQ==0)
{DQ=1;
ds1820bit=0;
}
else ds1820bit=1; //初始化失败
delay1(90);
}
//写入一字节数据
void wrcom(uchar com)
{
uchar a;
DQ=0;
_Nop();;
_Nop();;
DQ=1;
_Nop();;
_Nop();;
a=com&(0x01<<0);
if(a==0)DQ=0;
else DQ=1;
delay1(5);
DQ=1;
_Nop();;
_Nop();;
DQ=0;
_Nop();;
_Nop();;
DQ=1;
_Nop();;
_Nop();;
a=com&(0x01<<1);
if(a==0)DQ=0;
else DQ=1;
delay1(5);
DQ=1;
_Nop();;
_Nop();;
DQ=0;
_Nop();;
_Nop();;
DQ=1;
_Nop();;
_Nop();;
a=com&(0x01<<2);
if(a==0)DQ=0;
else DQ=1;
delay1(5);
DQ=1;
_Nop();;
_Nop();;
DQ=0;
_Nop();;
_Nop();;
DQ=1;
_Nop();;
_Nop();;
a=com&(0x01<<3);
if(a==0)DQ=0;
else DQ=1;
delay1(5);
DQ=1;
_Nop();;
_Nop();;
DQ=0;
_Nop();;
_Nop();;
DQ=1;
_Nop();;
_Nop();;
a=com&(0x01<<4);
if(a==0)DQ=0;
else DQ=1;
delay1(5);
DQ=1;
_Nop();;
_Nop();;
DQ=0;
_Nop();;
_Nop();;
DQ=1;
_Nop();;
_Nop();;
a=com&(0x01<<5);
if(a==0)DQ=0;
else DQ=1;
delay1(5);
DQ=1;
_Nop();;
_Nop();;
DQ=0;
_Nop();;
_Nop();;
DQ=1;
_Nop();;
_Nop();;
a=com&(0x01<<6);
if(a==0)DQ=0;
else DQ=1;
delay1(5);
DQ=1;
_Nop();;
_Nop();;
DQ=0;
_Nop();;
_Nop();;
DQ=1;
_Nop();;
_Nop();;
a=com&(0x01<<7);
if(a==0)DQ=0;
else DQ=1;
delay1(5);
DQ=1;
_Nop();;
_Nop();;
}
//读出一字节数据
uchar rbyte(void)
{ uchar i;
uchar a;
a=0;
for(i=0;i<8;i++)
{
DQ=1;
_Nop();;
_Nop();;
DQ=0;
_Nop();;
_Nop();;
_Nop();;
DQ=1;
delay1(1);
if(DQ==0) a=a;
else a=(0x01<<i)|a;
delay1(10);
}
return(a);
}
//////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////显示程序/////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
show(uchar xs1,xs2,xs3)
{
if(Keybit1) //为1显示设置
{v1=xs1;
v2=xs2;
v3=xs3;
}
else //为0显示温度
{v1=xssm1[xs1];
v2=xssm2[xs2];
v3=xssm3[xs3];
}
if(!Lenbit&&!Rebit) //指示电器有否工作
{ddd=0;}
else
{ddd=ddd1;}
//------------------------------------
}
////////////////////////////////////////////////////////////
//发出命令//////////////////////////////////////////
//////////////////////////////////////////////////////
void ds18b20(void)
{ uchar i;
if(!T0bit1)
{
EA=0;
ini();
_Nop();;
_Nop();;
wrcom(0xcc); //跳过读Rom
_Nop();;
_Nop();;
wrcom(0x44); //转换命令
EA=1;
_Nop();;
_Nop();;
T0bit1=1; //设转换标志
T0emp0=0; //从现在起记时750ms
}
// delay(1); //////////////////////////////////////////////////////////////
if(T0bit0)
{
EA=0;
ini();
_Nop();;
_Nop();;
wrcom(0xcc); //跳过读Rom
_Nop();;
_Nop();;
wrcom(0xbe); //读温度命令
_Nop();;
_Nop();;
for(i=0;i<2;i++)
{
Scrtp[i]=rbyte();
_Nop();;
_Nop();;
}
EA=1;
T0bit1=0; //清转换标志
T0bit0=0; //清时间到标志
}
}
////////////////////////////////////////////////////////
AD()
{uchar d,c;
uint h;
d=Scrtp[0];
c=Scrtp[1];
h=Scrtp[1];
h=h*0x100+d;
if(!(0==c>>3))
{h=~h+1; negbit=1;} //负温时置negbit=1
else {negbit=0;} //否则置0
temp=h;
temp=(temp*0x271)/0x2710; //*0.0625
if(!temp)
{negbit=0;}
//转BCD显示码并显示
if(!Keybit1) //设置参数时不显示温度
{
if(!ds1820bit&&(temp<=100)) //低于100C显示实际温度
{Xsb=temp/100;
if(Xsb==0)
{Xsb=0xc;} //Xsb=0不显示
if(negbit) //如果negbit为1显示负号
{Xsb=0xd;} //显示负号
Xss=temp/10;
Xsg=temp%10;
show(Xsb,Xss,Xsg); //调用显示程序
}
else //高于100C显示FF
{
v1=0xff;
if(ddd1)
{v2=0xe1;
v3=0xd8;}
else{v2=0xff;
v3=0xff;}
}
}
}
//////////////////////////////////////////////////////////
1 x>0
y={ 0 x=0
-1 x<0
ORG 0000H
LJMP MAIN
ORG 1000H
MAIN:
MOV A,40H
JZ LING
JB ACC.7,FUSHU
MOV A,#01H
AJMP OVER
LING:
MOV A,#00H ;若执行到此句说明程序结束
AJMP OVER;转至结束,下面的同理
FUSHU:
MOV A,#-1
AJMP OVER
OVER:
MOV 41H,A
SJMP $
END
单片机程序设计4*4键盘输入系统~控制16个发光二极管
C1: JNB P3.4,C2 ;逐列扫描 MOV ROW,#00H ;存列号 LJMP CALCU C2: JNB P3.5,C3 MOV ROW,#01H ;存列号 LJMP CALCU C3: JNB P3.6,C4 MOV ROW,#02H ;存列号 LJMP CALCU C4: JNB P3.7,C1 MOV ROW,#03H ;存列号 CALCU: MOV A,LINE ;根据行号和...
单片机的高手们!!帮帮忙啊!!
for(t=85;t>0;t--); }}void main(){ uchar k,m=0x01; P0=0xff; P2=0x00; while(1) { for(k=0;k<4;k++) { P2=m; P0=DSY_CODE[k+1]; DelayMS(20); m=_crol_(m,1); } m=0x01;}} ...
求助各位单片机高手
74HC08,你找找它的PDF资料看看,应该是4个门电路,你按图图中的接法,直接其中的一个门电路就行了。12v那个是电压故障检测吧,利用电阻分压,给4脚一个电压,如果12v电压消失,复位芯片就会产生复位信号了!
求单片机高手给我详细解释这个程序 越详细越好
include"reg51.h"#define uint unsigned int#define uchar unsigned charuchar PWM=0x7f;\/\/设置初始脉宽调制值为128sbit ENA=P3^4;\/\/电机启动控制位 void INTT0()interrupt 0\/\/外部中断0中断处理函数,低电平触发,实现对脉宽PWM的增加{if(PWM<=255){PWM++;}elsePWM=0xff;}void INTT1()...
我想用单片机控制4pin CPU风扇的转速,但它是四根脚所以我不懂应该怎么...
黑:负极(接地线)红:正极(接正12V)黄:FG输出(转速输出)蓝;FWM控制(转速控制线)
找个单片机高手帮我做下题目
(1)定时器0,定时器1,外部中断0,外部中断1,串行口中断。正确,设置定时器0,定时器1为高优先权即可。(2)外部中断0,定时器1,外部中断1,定时器0,串行口中断 。不可能,同优先级时定时器0为最高优先级,而且外部中断1级别比定时器1高。4、找书对着抄。5、(1)0000H:复位程序由此开始...
制作简单的单片机,求高手帮忙改程序!!!不甚感激!!!
\/\/\/,求高手帮忙利用6个LED灯,做花样流水灯,实现周期为30秒的交通灯,其中红灯20秒,绿灯10秒,黄灯3秒 参考 include<reg52.h>\/\/ define uchar unsigned char\/\/ define uint unsigned int \/\/一下均为位定义,C51特点 sbit d0=P2^0;\/\/位定义 第一组数码管 sbit d1=P2^1;sbit d2=...
跪求单片机C编程高手帮我编一个:矿井三级排水系统,要求是,四个水位传...
include<reg52.h> int yi,er,san,ting,deng;define a P1 void main(){ while(1){ switch(a){ case 0xfe: yi=0;接第一个水泵 case 0xfd: er=0;...case 0xfb: san=0;...case 0xf7: deng=0;接安全指示灯 } } } 把4个传感器信号接单片机P1.0 P1.1 P1...
单片机,C语言写的一小段程序,高手帮看看
这是一个简单的流水灯实验,前面的void delay(uint)是一个函数申明,你这一段里面没有给delay函数,给的程序不够清晰。如果是延迟100ms的话,delay函数应该是这样的:void delay(unsigned int x){ unsigned int i,j;for( i =0;i < x;i++ ){ for( j =0;j<3;j++ );} } 给定delay(...
51单片机问题。。编写4个LED数码管同时循环显示0—9的数字 的程序...
{ unsigned char j;while(i--) for(j = 0; j < 115; j++);} \/\/--- void main(void){ unsigned char n1;unsigned char code SEG[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, \/\/0-4 0x92, 0x82, 0xf8, 0x80, 0x90};\/\/5-9 while(1) { P0 = SEG[n1]; \/\/P0...
犹黎铁泰: 展开全部1. 答:单片机是在一块集成电路上把CPU、存储器、定时器/计数器及多种形式的I/O接口集成在一起而构成的微型计算机.它与通用微型计算机相比,具有如下特点:(1) 单片机的程序存储器和数据存储器是分工的,前者为ROM,后者...
四平市15210788301: 请教几道单片机编程题目,谢谢帮助!!!!!!! - ?
犹黎铁泰: 1、编程,将8031单片机片内RAM 20H至2FH单元中的数据顺序移到50H至5FH单元中.ORG 0000HMOV R0,#20HMOV R1,#50HMOV R7,#10H L00P: MOV A,@R0MOV @R1,AINC R0INC R1DJNZ R7,LOOPEND 2、编程,将8031单...
四平市15210788301: 找单片机高手帮忙做题?
犹黎铁泰: 楼主你分数给的也太少了,不过鉴于兴趣,我尝试着做做,希望大家一起来讨论啊,我也不敢肯定 一 1、A 2、B(五楼的好像不对吧,我们再讨论一下吧) 3、B 4、B 5、B 6、C 7、C 8、C 9、A(将题目中的46改成46H,我想应该是楼主敲错...
四平市15210788301: 跪求4个单片机填空题,积分好说,只有4个不麻烦. - ?
犹黎铁泰: 1. 起始(0000H),末尾(0FFFH). 2. 起始(1000H),...
四平市15210788301: 谁能帮我做做这几个单片机的指令题目啊?? - ?
犹黎铁泰: 1、mov R1,#3bhmov R2,#46HCLR CSUBB R1,R2MOV R3,#5CHMOV R4,#3DHSUBB R3,R4MOV 31H,R1MOV 30H,R3 2、ANL R1,#0FHANL R2,#F0HORL R1,R2
四平市15210788301: 有谁会做这5道关于单片机的填空题1.单片机复位时PC= H,SP= H,工作寄存器采用第 组.2.MCS - 51单片机的存储器分为 存储器和 存储器.MCS - 51单片机内部... - ?
犹黎铁泰:[答案] 1.0000H ,07H ,第0组 2.程序 ,数据,三 ,SFR ,21个 3.没看懂你的空在哪?可以看成是数据总线,地址总线和控制总线! 4.外部中断0,外部中断1,定时/计数器0溢出中断,定时/计数器1溢出中断,串行口中断0 5.0003H ,16 ,8 ,16 绝对正确哦!
四平市15210788301: 求助:单片机的简单编程题 - ?
犹黎铁泰: 1.程序如下:编程思想是把起始地址30H放在R0中,然后用寄存器间址@R0表示地址里存放的数,并用CJNE指令和#0AH比较,不一样就跳转至NEXT,地址加1继续比,比之前先判断下R0中的数等于#50H吗,等于的话表示任务完成了,不用再...
四平市15210788301: 单片机题目一套,急急急!!! - ?
犹黎铁泰: 给你回答一部分吧. 选择题:2C3A4B5D 填空题: 2位单元名称,位单元地址 3EA 低电平 2us 4B A 512,24 6低电平触发,下降沿触发 7注释 操作码 8128 工作寄存器区,位寻址区,堆栈和用户可寻址区 9128,71H-7FH 判断题(T正确F错误) TFFFT FFFFT 画图题自己试着画吧,这里不好传. 编程题2 MOV R0,#50H MOV R7,#33 CLR A LOOP:MOV @R0,A INC R0 DJNZ R7,LOOP SJMP $ END 最后一题: (A)=50H (SP)=50H (51H)=30H (52H)=50H PC=3050H
四平市15210788301: 单片机编程题 急!!!高手进,小弟送分!!! - ?
犹黎铁泰: 1.编程将外部数据存储器2100H单元中的高4位置“1”,其余位清“0” MOV DPTR, #2100H ;设定地址 MOV A, #11110000B ;准备数字 MOVX @DPTR, A ;送到外部数据存储器2100H单元中2.编程将内部数据存储器40H单元的第0位和第7位置“1”,其余位取反.MOV A, 40H ORL A, #10000001B ;或,即是按照“位”相加 XRL A, #01111110B ;用1异或,相当与取反 MOV 40H, A 完
四平市15210788301: 单片机的题目,望高手帮忙解答下,最好有过程……?
犹黎铁泰: 现象:每个灯闪烁点亮10次,再转移到下一个灯闪烁点亮10次,循环不止. 答: 在方式1下: T0始值为=2^16-50ms/1us=2^16-50000=64k-50000=65536-50000=15536=3CB0 所以: TH0=3C TL0=B0