|
- //汇编源程序:
- //ST BIT P3.0
- //OE BIT P3.1
- // KEIL C51 中的头文件,其它的自己调整
- #include "reg51.h"
- void delay();
- // 位定义,KEIL C51 专用方式
- sbit ST = P3^0;
- sbit OE = P3^1;
- sbit P20 = P2^0;
- sbit P21 = P2^1;
- sbit P22 = P2^2;
- sbit P23 = P2^3;
- sbit P24 = P2^4;
- sbit P25 = P2^5;
- sbit P26 = P2^6;
- sbit P27 = P2^7;
- //ORG 0000H
- //LJMP MAIN
- //ORG 0030H
- //MAIN:
- int main()
- {
- unsigned char tempA;
- while(1)
- {
- // CLR P2.0
- // CLR P2.2
- P20 = 0;
- P22 = 0;
- // LCALL DELAY
- // CLR ST
- // SETB ST
- // CLR ST
- delay();
- ST = 0;
- ST = 1;
- ST = 0;
- // LCALL DELAY
- // SETB OE
- // MOV P1,#0FFH
- // MOV A,P1
- // CLR OE
- delay();
- OE = 1;
- P1 = 0xFF;
- tmpA = P1;
- OE = 0;
- // CLR C
- // SUBB A,#67H ;报警值
- // JNC ALERM
- // SJMP MAIN
- if(tmpA >= 0x67) // 忘记了很多汇编,大于或小于自己改
- {
- unsigned char i;
- while(1)
- {
- // ALERM: SETB P2.2
- // SETB P2.0
- P22 = 1;
- P20 = 1;
- // MOV R4,#255
- // DJNZ R4,$
- // CLR P2.0
- i = 255;
- while(--i);
- P20 = 0;
- // MOV R5,#255
- // DJNZ R5,$
- i = 255;
- while(--i);
- // SJMP ALERM
- }
- }
- }
- }
- void delay()
- {
- // DELAY:
- // MOV R2,#250
- // AA:
- // MOV R3,#255
- // DJNZ R3,$
- // DJNZ R2,AA
- // RET
- unsigned char t2,t3;
- t2 = 250;
- while(--t2)
- {
- t3 = 250;
- while(--t3);
- }
- }
- //END
复制代码 |
赞赏
-
1
查看全部赞赏
-
|