【正文】
MOVE TMOD,06H MOVE TL0,0FFH MOVE TH0,0FFH SETB TR0 SETB ET0 SETB EA ACALL AD A CALL LB ACALL BDBH ACALL PID MOVE TL0,0FFH MOVE TH0,0FFHSAVGFIL: MOV R2,n1 MOV R0,32H MOV R1,33H LOOP MOV A,R0 DEC R0 DEC R0 MOV R0,A MOV A,R0 ADD A,04H MOV R0,A MOV A,R1 DEC R1 DEC R1 MOV R1,A MOV A,R1 ADD A,04H MOV R1,A DJNZ R2,LOOP MOV R0,2EH MOV R1,2FH ACALL AVGFILRET*********************************采樣子程序************************************MAIN: MOV R1,data MOV DPTR,7FF8H MOV R7,04HLOOP MOVX DPTR,A MOV R6,0HDELAY NOP NOP NOP DJNZ R6,DELAY MOVX A , DPTR MOV R1,A INC DPTR INC R1 DJNZ R7,LOOP RET**********************************鍵盤顯示程序*********************************DIR: MOV R0,79HMOV R3,01HMOV A,R3LD0: MOV DPTR,7F01HMOV DPTR,AINC DPTRMOV A,R0ADD A,0DHMOVC A,A+PCDIR1: MOVX DPTR,AACALL DL1msINC R0MOV A,R3JB ACC,5,LD1RL AMOV R3,AAJMP LD0LD1: RETDB 3FH,06H,5BH,4FH,66H,6DHDB 7DH,07H,7FH,6FH,77H,7CHDB 39H,5EH,79H,71H,73H3EHDB 31H,6EH,1CH,23H,40H,03HDB 18H,00DL1ms: MOV R7,02HDL: MOV R6,0FFHDL4: DJNZ R6,DL6DJNZ R7,DLRET**********************************濾波程序*************************************SAVGFIL: MOV R2,n1 MOV R0,32H MOV R1,33H LOOP MOV A,R0 DEC R0 DEC R0 MOV R0,A MOV A,R0 ADD A,04H MOV R0,A MOV A,R1 DEC R1 DEC R1 MOV R1,A MOV A,R1 ADD A,04H MOV R1,A DJNZ R2,LOOP MOV R0,2EH MOV R1,2FH ACALL AVGFILRET 外文資料翻譯The Description of AT89S511 General DescriptionThe AT89S51 is a lowpower, highperformance CMOS 8bit microcontroller with 4K bytes of InSystem Programmable Flash memory. The device is manufactured using Atmel’s highdensity nonvolatile memory technology and is patible with the industrystandard 80C51 instruction set and pinout. The onchip Flash allows the program memory to be reprogrammed insystem or by a conventional nonvolatile memory programmer. By bining a versatile 8bit CPU with InSystem Programmable Flash on a monolithic chip, the Atmel AT89S51 is a powerful microcontroller which provides a highlyflexible and costeffective solution to many embedded control applications.The AT89S51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, two 16bit timer/counters, a fivevector twolevel interrupt architecture, a full duplex serial port, onchip oscillator, and clock circuitry. In addition, the AT89S51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Powerdown mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next external interrupt or hardware reset.2 PortsPort 0 is an 8bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as highimpedance inputs. Port 0 can also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode, P0 has internal pullups. Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pullups are required during program verification.Port 1 is an 8bit bidirectional I/O port with internal pullups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 1 also receives the loworder address bytes during Flash programming and verification.Port PinAlternate FunctionsMOSI (used for InSystem Programming)MOSO (used for InSystem Programming) SCK(used for InSystem Programming)Port 2 is an 8bit bidirectional I/O port with internal pullups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal 2 emits the highorder address byte during fetches from external program memory and during accesses to external data memory that use 16bit addresses (MOVX DPT