- 首页
-
- 问答
-
-
匿名
ORG 00HAJMP MAINORG 30HMAIN:MOV DPTR,#TABMAIN1:MOV A,P2MOV B,#100DIV ABMOV 30H,AMOV A,BMOV B,#10DIV ABMOV 31H,AMOV 32H,BMOV A,30HMOVC A,@A+DPTRMOV P0,ACLR P1.0ACALL D1MSSETB P1.0MOV A,31HMOVC A,@A+DPTRMOV P0,ACLR P1.1ACALL D1MSSETB P1.1MOV A,32HMOVC A,@A+DPTRMOV P0,ACLR P1.2ACALL D1MSSETB P1.2AJMP MAIN1D1MS:MOV R7,#10MOV R6,#25DJNZ R6,$DJNZ R7,$-4RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;显示码表,共阴END
-
-
匿名
/*DS18b20温度传感器p3.4作为数据传输口 p1.0~3控制显示led的位选 共阳极 经过PNP后 低电平有效p0口是led的字形码晶振:11.0592M设计者:陈仲库设计日期:2006年3月29日*/#include<reg51.H>//#include<math.h>//#include<stdio.h>//#include <ctype.h>sbit DQ= P3^4;sbit p13= P1^3;sbit p12= P1^2;sbit p11= P1^1;sbit p10= P1^0;int flag;unsigned char disp1, disp2,disp3,disp0;unsigned char code ch[]={0xc0,0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82,0xf8,0x80,0x90}; /*0~9*/void delay(int us) { int s; for ( s=0; s<us; s++);}void disp() { P0 = 0xff; P0 = disp3; p13=0; delay(150); p13=1; P0 = 0xff; P0= disp2; p12=0; delay(150); p12=1; P0 = 0xff; P0 = disp1; p11=0; delay(150); p11=1; P0 = 0xff; P0 = disp0; p10=0; delay(150); p10=1; }void rst(void) { DQ = 1; delay(2); DQ = 0; delay(30); //精确延时 480~960us DQ = 1; delay(8); }unsigned int read(void) { int i=0;unsigned int u=0; for (i=0;i<16;i++){ DQ=0; u>>=1; DQ=1; if(DQ) u|=0x8000; delay(4);} return (u);}void write(unsigned char ku) { int i=0; for (i=0;i<8;i++){ DQ=0; DQ =ku&0x01; delay(3); DQ=1; ku>>=1;}} void read0(void) { int t1,t2, t0;unsigned int tp;unsigned int lsb; rst(); write(0xCC); write(0x44); rst(); write(0xCC); write(0xBE); tp=read(); lsb=(unsigned int)(tp*6.25); // t0=lsb/1000; disp0 = ch[t0]; //第1位,最高位p1.2 if(!t0) disp0 = 0xff; t2= lsb%1000; t1=t2/100; disp1= ch[t1]&0x7f; t1=t2%100; t2=t1/10; disp2=ch[t2]; //第3位,最低位p1.2 disp3=ch[t1%10];//第4位,最低位p1.3}void main(void) { while(1) { read0(); disp(); }}
-
-
-
-
-
-
求购