123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- #pragma once
- #include <avr/io.h>
- #include <util/delay.h>
- #include "expander.h"
- #define LCD_WriteCommand(x)
- #define UC1601S_CA30 0x00
- #define UC1601S_CA74 0x10
- #define UC1601S_TC 0x24
- #define UC1601S_PC 0x28
- #define UC1601S_ADV 0x30
- #define UC1601S_SL 0x40
- #define UC1601S_PA 0xb0
- #define UC1601S_PM 0x81
- #define UC1601S_LC4 0x84
- #define UC1601S_AC 0x88
- #define UC1601S_LC3 0xa0
- #define UC1601S_DC1 0xa4
- #define UC1601S_DC0 0xa6
- #define UC1601S_DC2 0xae
- #define UC1601S_LC21 0xc0
- #define UC1601S_SYSTEMRESET 0xe2
- #define UC1601S_NOP 0xe3
- #define UC1601S_BR 0xe8
- #define UC1601S_CEN 0xf1
- #define UC1601S_DST 0xf2
- #define UC1601S_DEN 0xf3
- #define UC1601S_INTERNAL_VLCD 0x6
- #define UC1601S_BIAS_RATIO_6 0x0
- #define UC1601S_BIAS_RATIO_7 0x1
- #define UC1601S_BIAS_RATIO_8 0x2
- #define UC1601S_BIAS_RATIO_9 0x3
- #define UC1601S_DATA_OUTPUT() expander_set_dir(0, 0x00, 0x00)
- #define UC1601S_DATA_INPUT() expander_set_dir(0, 0xFF, 0x00)
- #define UC1601S_WR_PORT 1
- #define UC1601S_WR (1<<2)
- #define UC1601S_CD_PORT 1
- #define UC1601S_CD (1<<0)
- #define UC1601S_RD_PORT 1
- #define UC1601S_RD (1<<3)
- #define UC1601S_CS_PORT 1
- #define UC1601S_CS (1<<1)
- #define UC1601S_RST_PORT 1
- #define UC1601S_RST (1<<6)
- void uc1601s_write_command(unsigned char cmd);
- void uc1601s_write_data(unsigned char data);
- unsigned char uc1601s_read_data(void);
- void LCD_Initialize(void);
- void LCD_Clear(void);
- void LCD_GoTo(unsigned char x, unsigned char y);
- void LCD_WriteTextP(__flash const char *t);
- void LCD_WriteText(const char *t);
- void LCD_WriteChar(char c);
- #define LCD_WriteData(c) LCD_WriteChar(c)
- static inline void uc1601s_set_column_address(unsigned char addr) {
- uc1601s_write_command(UC1601S_CA30 | (addr&0x0f));
- uc1601s_write_command(UC1601S_CA74 | (addr>>4));
- }
- static inline void uc1601s_set_temp_compensation(unsigned char tc) {
- tc &= 0x3;
- uc1601s_write_command(UC1601S_TC | tc);
- }
- static inline void uc1601s_set_power_control(unsigned char pc) {
- pc &= 0x7;
- uc1601s_write_command(UC1601S_PC | pc);
- }
- static inline void uc1601s_set_scroll_line(unsigned char sl) {
- sl &= 0x3f;
- uc1601s_write_command(UC1601S_SL | sl);
- }
- static inline void uc1601s_set_page_address(unsigned char pa) {
- pa &= 0x0f;
- uc1601s_write_command(UC1601S_PA | pa);
- }
- static inline void uc1601s_set_vbias(unsigned char pm) {
- uc1601s_write_command(UC1601S_PM);
- uc1601s_write_command(pm);
- }
- static inline void uc1601s_set_partial_display(unsigned char lc) {
- lc &= 0x1;
- uc1601s_write_command(UC1601S_LC4 | lc);
- }
- static inline void uc1601s_set_ram_address(unsigned char ac) {
- ac &= 0x3;
- uc1601s_write_command(UC1601S_AC | ac);
- }
- static inline void uc1601_set_frame_rate(unsigned char lc) {
- lc &= 0x1;
- uc1601s_write_command(UC1601S_LC3 | lc);
- }
- static inline void uc1601s_set_all_pixel_on(unsigned char dc) {
- dc &= 0x1;
- uc1601s_write_command(UC1601S_DC1 | dc);
- }
- static inline void uc1601s_set_inverse_display(unsigned char dc) {
- dc &= 0x1;
- uc1601s_write_command(UC1601S_DC0 | dc);
- }
- static inline void uc1601s_set_display_enable(unsigned char dc) {
- dc &= 0x1;
- uc1601s_write_command(UC1601S_DC2 | dc);
- }
- static inline void uc1601s_set_lcd_mapping(unsigned char lc) {
- lc &= 0x6;
- uc1601s_write_command(UC1601S_LC21 | lc);
- }
- static inline void uc1601s_system_reset(void) {
- uc1601s_write_command(UC1601S_SYSTEMRESET);
- }
- static inline void uc1601s_set_lcd_bias_ratio(unsigned char br) {
- br &= 0x3;
- uc1601s_write_command(UC1601S_BR | br);
- }
- static inline void uc1601s_set_com_end(unsigned char cen) {
- uc1601s_write_command(UC1601S_CEN);
- uc1601s_write_command(cen);
- }
- static inline void uc1601s_set_partial_display_start(unsigned char dst) {
- uc1601s_write_command(UC1601S_DST);
- uc1601s_write_command(dst);
- }
- static inline void uc1601s_set_partial_display_end(unsigned char den) {
- uc1601s_write_command(UC1601S_DEN);
- uc1601s_write_command(den);
- }
|