|
- #include "reg51.h"
- #define T1ms 0xFC18
- sbit keyA = P3 ^ 2;
- sbit KeyB = P3 ^ 3;
- sbit led = P3 ^ 4;
- unsigned int keyA_ms;
- unsigned int keyB_ms;
- void InitTimer0() {
- TMOD = 0x01;
- TH0 = T1ms >> 8;
- TL0 = T1ms;
- EA = 1;
- ET0 = 1;
- TR0 = 1;
- }
- void main(){
- InitTimer0();
- while(1){
- if(keyA_ms >= 1000 && keyB_ms >= 1000){
- led = !led;
- while(keyA_ms >= 1000 && keyB_ms >= 1000);
- }
- }
- }
- void Timer0Interrupt() interrupt 1 {
- TH0 = T1ms >> 8;
- TL0 = T1ms;
- if(keyA){
- keyA_ms = 0;
- } else {
- if(keyA_ms != 0xFFFF){
- keyA_ms++;
- }
- }
- if(KeyB){
- keyB_ms = 0;
- } else {
- if(keyB_ms != 0xFFFF){
- keyB_ms++;
- }
- }
- }
復(fù)制代碼 |
評分
-
查看全部評分
|