標(biāo)題: 求大神幫下忙,下面的如何改為c語(yǔ)言程序? [打印本頁(yè)]
作者: dream602 時(shí)間: 2019-4-2 19:58
標(biāo)題: 求大神幫下忙,下面的如何改為c語(yǔ)言程序?
XinHao EQU P1.0
Light EQU P2.0
ORG 0000H
AJMP MAIN
------------------MAIN-----------------
MAIN: CLR light ;初始時(shí)燈泡熄滅
Check: SETB XinHao
JNB XinHao,yanshi ;檢測(cè)是否有信號(hào)
LJMP Check
yanshi: LCALLdelay ;延時(shí)防信號(hào)抖動(dòng)
SETB XinHao
JNB XinHao,dianliang ;有,點(diǎn)亮燈泡
LJMP Check
-------------------dianliang--------------------
dianliang: SETB light ;點(diǎn)亮燈泡
LOOP: SETB XinHao
JB XinHao,yanshi1 ;判斷是否無(wú)信號(hào)
LJMP LOOP
yanshi1: LCALLdelay ;延時(shí)防抖動(dòng)
SETB XinHao
JB XinHao,yanshi8 ;再次確定無(wú)信號(hào)
LJMP LOOP
yanshi2: LCALL delay1 ;利用定時(shí)器延時(shí)兩分鐘
CLR light ;熄滅燈泡
RET
--------------------delay-------------------
Delay: MOV R0, #100
D1: MOV R1, #100
D2: DJNZ R1, D2
DJNZ R0, D1
RET
----------定時(shí)器延時(shí)兩分鐘----------
delay1: MOV R2, #180
MOV IE, #00H
MOV TMOD, #01H
SETB TR0
CLR TF0
LOOP0: MOV TL0, #0FH
MOV TH0, #00H
LOOP1: JBC TF0,LOOP2 ;定時(shí)是否溢出
JMP LOOP1
LOOP2: DJNZ R2, LOOP0
MOV TMOD, #00H
CLR TR0
CLR TF0
RET
---------------------END---------------------
END
作者: angmall 時(shí)間: 2019-4-7 13:08
給你改了一下試試。
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit XinHao =P1^0;
- sbit Light =P2^0;
- void Delay(void)
- {
- uint x, y;
-
- for(x=100;x>0;x--)
- for(y=100;y>0;y--);
- }
- void delay1(void) //定時(shí)器延時(shí)兩分鐘
- {
- uchar count=180;
- TMOD=0x01; //定時(shí)器0工作方式1
- TR0=1; //啟動(dòng)定時(shí)器
- TH0=0;
- do{
- TF0=0;
- TL0=0x0F;
- while(!TF0); //定時(shí)是否溢出
- } while((count--) > 0);
- TR0=0;
- TF0=0;
- }
- void dianliang(void)
- {
- Light = 1; //點(diǎn)亮燈泡
- XinHao = 1;
- if(XinHao == 1) //判斷是否無(wú)信號(hào)
- {
- Delay(); //延時(shí)防抖動(dòng)
- XinHao = 1;
- if(XinHao == 1) //再次確定無(wú)信號(hào)
- {
- delay1(); //利用定時(shí)器延時(shí)兩分鐘
- Light = 0; //熄滅燈泡
- }
- }
- }
- void main(void)
- {
- Light = 0; //初始時(shí)燈泡熄滅
- while(1)
- {
- XinHao = 1;
- if(XinHao == 0) //檢測(cè)是否有信號(hào)
- {
- Delay(); //延時(shí)防信號(hào)抖動(dòng)
- XinHao = 1;
- if(XinHao == 0)
- {
- dianliang(); //有,點(diǎn)亮燈泡
- }
- }
- }
- }
復(fù)制代碼
作者: dream602 時(shí)間: 2019-4-9 16:34
特別感謝
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |