性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

單片機(jī)從匯編向C轉(zhuǎn)變的請(qǐng)進(jìn)來(lái)討論

本人學(xué)過(guò)一點(diǎn)計(jì)算機(jī)C,單片機(jī)使用的匯編,正在從匯編向C過(guò)渡,大家給出這方面的一點(diǎn)經(jīng)驗(yàn),大家都來(lái)討論啊,都來(lái)貼些好東西吧,我先開(kāi)頭了
全部回復(fù)(6)
正序查看
倒序查看
ahai0306
LV.4
2
2005-01-17 15:29
[轉(zhuǎn)貼] 一個(gè)試驗(yàn)的匯編與C51程序?qū)Ρ?
;    P3.1 數(shù)據(jù)采集控制
;    P2.6 P2.7 個(gè)位 十位顯示轉(zhuǎn)換控制
;    P1口接8個(gè)開(kāi)關(guān)模擬數(shù)據(jù)
;    P1.0 - P1.3 為個(gè)位開(kāi)關(guān)量輸入  
;    P1.4 - P1.7 為十位開(kāi)關(guān)量輸入
;    此程序僅供參考
;    功能 P1口接8個(gè)開(kāi)關(guān)輸入量 4個(gè)一組,分別為個(gè)位,十位輸入
;            P0口接一個(gè)數(shù)碼管,依次顯示輸入量.P3.1控制是否讀入
;            開(kāi)關(guān)量. P2.6 P2.7控制是否顯示 個(gè)位 或十位    
      ORG 100h
         LJMP STAR
STAR: MOV P1,#0FFH
          SETB P3.1   數(shù)據(jù)讀入標(biāo)志
       MOV R0,#100     ,循環(huán)工作次數(shù)
LOOP:JB P3.1, $  P3.1低電平時(shí),采集P1口數(shù)據(jù)開(kāi)關(guān)量 處理顯示階段不再應(yīng)答P3.1
         MOV A,P1
         PUSH ACC
         ANL A,#0FH  取個(gè)位數(shù)值
         MOV R1,A    個(gè)位數(shù)值保存到R1
         POP ACC
         ANL A,#0F0H  
         SWAP A      高4位轉(zhuǎn)成字節(jié)信息
         MOV R2,A   十位數(shù)值保存到R2
         MOV  DPTR,#TABLED
         MOV  A,R1
         MOVC A,@A+DPTR
         MOV  P0,A
         CLR  P2.6      個(gè)位顯示
         ACALL DELAY500MS
         SETB P2.6
         MOV  A,R2
         MOVC A,@A+DPTR
         MOV  P0,A
         CLR  P2.7      十位顯示
         ACALL DELAY500MS
         SETB P2.7
         DJNZ R0,LOOP
DELAY500MS: 延時(shí)500毫秒子程略
        RET
TABLED: DB 0c0h,0f9h,0a4h,0b0h,99h, 92h, 82h,0f8h
        DB 80H, 90H, 88h, 83h, 0c6h,0a1h,86h,8eh
        END
0
回復(fù)
ahai0306
LV.4
3
2005-01-17 15:32
@ahai0306
[轉(zhuǎn)貼]一個(gè)試驗(yàn)的匯編與C51程序?qū)Ρ?    P3.1數(shù)據(jù)采集控制;    P2.6P2.7個(gè)位十位顯示轉(zhuǎn)換控制;    P1口接8個(gè)開(kāi)關(guān)模擬數(shù)據(jù);    P1.0-P1.3為個(gè)位開(kāi)關(guān)量輸入  ;    P1.4-P1.7為十位開(kāi)關(guān)量輸入;    此程序僅供參考;    功能P1口接8個(gè)開(kāi)關(guān)輸入量4個(gè)一組,分別為個(gè)位,十位輸入;            P0口接一個(gè)數(shù)碼管,依次顯示輸入量.P3.1控制是否讀入;            開(kāi)關(guān)量.P2.6P2.7控制是否顯示個(gè)位或十位          ORG100h        LJMPSTARSTAR:MOVP1,#0FFH          SETBP3.1  數(shù)據(jù)讀入標(biāo)志      MOVR0,#100    ,循環(huán)工作次數(shù)LOOP:JBP3.1,$  P3.1低電平時(shí),采集P1口數(shù)據(jù)開(kāi)關(guān)量處理顯示階段不再應(yīng)答P3.1        MOVA,P1        PUSHACC        ANLA,#0FH  取個(gè)位數(shù)值        MOVR1,A    個(gè)位數(shù)值保存到R1        POPACC        ANLA,#0F0H          SWAPA      高4位轉(zhuǎn)成字節(jié)信息        MOVR2,A  十位數(shù)值保存到R2        MOV  DPTR,#TABLED        MOV  A,R1        MOVCA,@A+DPTR        MOV  P0,A        CLR  P2.6      個(gè)位顯示        ACALLDELAY500MS        SETBP2.6        MOV  A,R2        MOVCA,@A+DPTR        MOV  P0,A        CLR  P2.7      十位顯示        ACALLDELAY500MS        SETBP2.7        DJNZR0,LOOPDELAY500MS:延時(shí)500毫秒子程略        RETTABLED:DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h        DB80H,90H,88h,83h,0c6h,0a1h,86h,8eh        END
[轉(zhuǎn)貼]與上面對(duì)應(yīng)的C程序
#include
typedef unsigned char BYTE;
BYTE code TABLED[16]={0Xc0,0Xf9,0Xa4,0Xb0,0X99, 0X92, 0X82,0X0f8,0X80,0X90,0X88,0X83,0Xc6,0Xa1,0X86,0X8e};
BYTE DATled;
sbit P26=P2^6;
sbit P27=P2^7;
sbit P31=P3^1;
int TIME;

void timedelay(DTIME)
int DTIME;
{
int I;
for(I=0;I<=DTIME;I++);
}

void main()
{
int TEMP;
  P26=1;
P27=1;
P31=1;
P1=0xFF;
TIME=1000;
  while(1) {
  while (P31==0) {
       DATled=P1;
       TEMP=DATled & 0x0f;
       P0=TABLED[TEMP];
       P26=0;
       timedelay(TIME);
       P26=1;
       TEMP=DATled >> 4;
       P0=TABLED[TEMP];
       P27=0;
       timedelay(TIME);
       P27=1;
                            }
           }
}
0
回復(fù)
2005-01-19 08:28
@ahai0306
[轉(zhuǎn)貼]與上面對(duì)應(yīng)的C程序#includetypedefunsignedcharBYTE;BYTEcodeTABLED[16]={0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0X0f8,0X80,0X90,0X88,0X83,0Xc6,0Xa1,0X86,0X8e};BYTEDATled;sbitP26=P2^6;sbitP27=P2^7;sbitP31=P3^1;intTIME;voidtimedelay(DTIME)intDTIME;{intI;for(I=0;I>4;      P0=TABLED[TEMP];      P27=0;      timedelay(TIME);      P27=1;                            }          }}
偶師傅10多年前開(kāi)始用匯編搞開(kāi)發(fā).....現(xiàn)在還是用這個(gè),一個(gè)新東西開(kāi)發(fā)周期就是半年以上....偶用C搞開(kāi)發(fā)現(xiàn)在就能說(shuō)比他的速度快了!
0
回復(fù)
myzjk
LV.4
5
2005-01-21 16:54
請(qǐng)教有三星單片機(jī)S3F9454的C語(yǔ)言編程經(jīng)驗(yàn)嗎?zjk207@163.com
0
回復(fù)
rich
LV.4
6
2005-02-24 09:50
@myzjk
請(qǐng)教有三星單片機(jī)S3F9454的C語(yǔ)言編程經(jīng)驗(yàn)嗎?zjk207@163.com
我也在找這方面的資料,我用的燒錄/仿真器是: OPENice i500    AIJI SYSTEM Co.,LTD. 其實(shí)它也支持 C語(yǔ)言,但苦于找不到相關(guān)的程序文件:EW21.EXW..
0
回復(fù)
2005-03-08 14:54
@myzjk
請(qǐng)教有三星單片機(jī)S3F9454的C語(yǔ)言編程經(jīng)驗(yàn)嗎?zjk207@163.com
你有SAMSUNG S3F9454的匯編方面的經(jīng)驗(yàn)嗎???
請(qǐng)dx賜教關(guān)于PWM控制和運(yùn)算方面的知識(shí)啊!
0
回復(fù)
發(fā)