#ifndef MC8051FUN_H #define MC8051FUN_H #include #include <8052.h> void uart_init(long fosc, long baud); void uart_send_chr(char tx_data); void uart_send_str(const char *str); int8_t rotary_encoder_stat(uint8_t b); extern uint8_t sevenseg_dec[10]; extern uint8_t sevenseg_dec_inv[10]; /** * Minimum frequency is 15 Hz @ FOSC of 11 Mhz */ #define default_timer16_init_val(freq) ((65536L)-FOSC/12L/freq) #define default_timer8_init_val(freq) ((256L)-FOSC/12L/freq) #define at89xx_6t_timer16_init_val(freq) ((65536L)-FOSC/6L/freq) #define at89xx_6t_timer8_init_val(freq) ((256L)-FOSC/6L/freq) #define STC15XX 1 // STC15xx family #define AT89XX 2 // AT89XX family #define AT89XX_6T 3 // AT89C89C52 in 6T mode #if MCU==AT89XX_6T #define timer8_init_val(freq) at89xx_6t_timer8_init_val(freq) #define timer16_init_val(freq) at89xx_6t_timer16_init_val(freq) #else #define timer8_init_val(freq) default_timer8_init_val(freq) #define timer16_init_val(freq) default_timer16_init_val(freq) #endif uint16_t int_to_bcd(uint16_t i); int getbutton(uint8_t pinval, uint8_t *button); extern uint8_t getbutton_time; #endif