⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdac1.c

📁 示波器DIY全套资料
💻 C
📖 第 1 页 / 共 2 页
字号:
/**************************************************************************** Description     : LCD module handler functions* HW-Environment  : AVR MCU ATMega162-10MHz*                   PCB eOscope v1.0*                   XC9500 firmware v1.1* SW-Environment  : AVR-GCC 3.4.3, Anjuta 1.2.1, AVR-INSIGHT, Avarice							* Author          : Daniel Ciocea** Revision        :      1.0 Initial version****************************************************************************/#include <avr/io.h>#include <avr/pgmspace.h>#include "TIMaC1.h"#include "LCDaC1.h"#include "eOscope.h"#include "grid.h"/* Macro for convenience */#define  LCD__vPrepareWriteDataFast() LCD_u8CtrlPort &= (~(1<<LCD_nCtrlRS));LCD_u8CtrlPort &= (~(1<<LCD_nCtrlRW));prog_char FontLookupTable [][8] ={ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},       // 1{ 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x04},       // 2{ 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00},       // 3{ 0x00, 0x0a, 0x0a, 0x1f, 0x0a, 0x1f, 0x0a, 0x0a},       // 4{ 0x00, 0x04, 0x1e, 0x05, 0x0e, 0x14, 0x0f, 0x04},       // 5{ 0x00, 0x03, 0x13, 0x08, 0x04, 0x02, 0x19, 0x18},       // 6{ 0x00, 0x06, 0x09, 0x05, 0x02, 0x05, 0x09, 0x16},       // 7{ 0x00, 0x06, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00},       // 8{ 0x00, 0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08},       // 9{ 0x00, 0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02},       // 10{ 0x00, 0x00, 0x04, 0x15, 0x0e, 0x15, 0x04, 0x00},       // 11{ 0x00, 0x00, 0x04, 0x04, 0x1f, 0x04, 0x04, 0x00},       // 12{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02},       // 13{ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00},       // 14{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06},       // 15{ 0x00, 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00},       // 16{ 0x00, 0x0e, 0x11, 0x19, 0x15, 0x13, 0x11, 0x0e},       // 17{ 0x00, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x0e},       // 18{ 0x00, 0x0e, 0x11, 0x10, 0x08, 0x04, 0x02, 0x1f},       // 19{ 0x00, 0x1f, 0x08, 0x04, 0x08, 0x10, 0x11, 0x0e},       // 20{ 0x00, 0x08, 0x0c, 0x0a, 0x09, 0x1f, 0x08, 0x08},       // 21{ 0x00, 0x1f, 0x01, 0x0f, 0x10, 0x10, 0x11, 0x0e},       // 22{ 0x00, 0x0c, 0x02, 0x01, 0x0f, 0x11, 0x11, 0x0e},       // 23{ 0x00, 0x1f, 0x10, 0x08, 0x04, 0x02, 0x02, 0x02},       // 24{ 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x11, 0x11, 0x0e},       // 25{ 0x00, 0x0e, 0x11, 0x11, 0x1e, 0x10, 0x08, 0x06},       // 26{ 0x00, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00},       // 27{ 0x00, 0x00, 0x06, 0x06, 0x00, 0x06, 0x04, 0x02},       // 28{ 0x00, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08},       // 29{ 0x00, 0x00, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x00},       // 30{ 0x00, 0x01, 0x02, 0x04, 0x08, 0x04, 0x02, 0x01},       // 31{ 0x00, 0x0e, 0x11, 0x10, 0x08, 0x04, 0x00, 0x04},       // 32{ 0x00, 0x0e, 0x11, 0x10, 0x16, 0x15, 0x15, 0x0e},       // 33{ 0x00, 0x0e, 0x11, 0x11, 0x11, 0x1f, 0x11, 0x11},       // 34{ 0x00, 0x0f, 0x11, 0x11, 0x0f, 0x11, 0x11, 0x0f},       // 35{ 0x00, 0x0e, 0x11, 0x01, 0x01, 0x01, 0x11, 0x0e},       // 36{ 0x00, 0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07},       // 37{ 0x00, 0x1f, 0x01, 0x01, 0x1f, 0x01, 0x01, 0x1f},       // 38{ 0x00, 0x1f, 0x01, 0x01, 0x1f, 0x01, 0x01, 0x01},       // 39{ 0x00, 0x0e, 0x11, 0x01, 0x1d, 0x11, 0x11, 0x1e},       // 40{ 0x00, 0x11, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11},       // 41{ 0x00, 0x0e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e},       // 42{ 0x00, 0x1c, 0x08, 0x08, 0x08, 0x08, 0x09, 0x06},       // 43{ 0x00, 0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11},       // 44{ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1f},       // 45{ 0x00, 0x11, 0x1b, 0x15, 0x11, 0x11, 0x11, 0x11},       // 46{ 0x00, 0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11},       // 47{ 0x00, 0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e},       // 48{ 0x00, 0x0f, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x01},       // 49{ 0x00, 0x0e, 0x11, 0x11, 0x11, 0x15, 0x09, 0x16},       // 50{ 0x00, 0x0f, 0x11, 0x11, 0x0f, 0x05, 0x09, 0x11},       // 51{ 0x00, 0x1e, 0x01, 0x01, 0x0e, 0x10, 0x10, 0x0f},       // 52{ 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04},       // 53{ 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e},       // 54{ 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0a, 0x04},       // 55{ 0x00, 0x11, 0x11, 0x11, 0x11, 0x15, 0x15, 0x0a},       // 56{ 0x00, 0x11, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x11},       // 57{ 0x00, 0x11, 0x11, 0x0e, 0x04, 0x04, 0x04, 0x04},       // 58{ 0x00, 0x1f, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1f},       // 59{ 0x00, 0x0e, 0x02, 0x02, 0x02, 0x02, 0x02, 0x0e},       // 60{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x00},       // 61{ 0x00, 0x0e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0e},       // 62{ 0x00, 0x04, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x00},       // 63{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f},       // 64{ 0x00, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00},       // 65{ 0x00, 0x00, 0x00, 0x0e, 0x10, 0x1e, 0x11, 0x1e},       // 66{ 0x00, 0x01, 0x01, 0x0d, 0x13, 0x11, 0x11, 0x0f},       // 67{ 0x00, 0x00, 0x00, 0x0e, 0x01, 0x01, 0x11, 0x0e},       // 68{ 0x00, 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x1e},       // 69{ 0x00, 0x00, 0x00, 0x0e, 0x11, 0x1f, 0x01, 0x0e},       // 70{ 0x00, 0x0c, 0x12, 0x02, 0x07, 0x02, 0x02, 0x02},       // 71{ 0x00, 0x00, 0x1e, 0x11, 0x11, 0x1e, 0x10, 0x0f},       // 72{ 0x00, 0x01, 0x01, 0x0d, 0x13, 0x11, 0x11, 0x11},       // 73{ 0x00, 0x04, 0x00, 0x06, 0x04, 0x04, 0x04, 0x0e},       // 74{ 0x00, 0x08, 0x00, 0x0c, 0x08, 0x08, 0x09, 0x06},       // 75{ 0x00, 0x01, 0x01, 0x09, 0x05, 0x03, 0x05, 0x09},       // 76{ 0x00, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e},       // 77{ 0x00, 0x00, 0x00, 0x0b, 0x15, 0x15, 0x11, 0x11},       // 78{ 0x00, 0x00, 0x00, 0x0d, 0x13, 0x11, 0x11, 0x11},       // 79{ 0x00, 0x00, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e},       // 80{ 0x00, 0x00, 0x00, 0x0f, 0x11, 0x0f, 0x01, 0x01},       // 81{ 0x00, 0x00, 0x00, 0x16, 0x19, 0x1e, 0x10, 0x10},       // 82{ 0x00, 0x00, 0x00, 0x0d, 0x13, 0x01, 0x01, 0x01},       // 83{ 0x00, 0x00, 0x00, 0x0e, 0x01, 0x0e, 0x10, 0x0f},       // 84{ 0x00, 0x02, 0x02, 0x0f, 0x02, 0x02, 0x12, 0x0c},       // 85{ 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x19, 0x16},       // 86{ 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x0a, 0x04},       // 87{ 0x00, 0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0a},       // 88{ 0x00, 0x00, 0x00, 0x11, 0x0a, 0x04, 0x0a, 0x11},       // 89{ 0x00, 0x00, 0x00, 0x11, 0x11, 0x1e, 0x10, 0x0f},       // 90{ 0x00, 0x00, 0x00, 0x1f, 0x08, 0x04, 0x02, 0x1f},       // 91{ 0x00, 0x08, 0x04, 0x04, 0x02, 0x04, 0x04, 0x08},       // 92{ 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04},       // 93{ 0x00, 0x02, 0x04, 0x04, 0x08, 0x04, 0x04, 0x02},       // 94{ 0x00, 0x0a, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00},       // 95{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},       // 96{ 0x00, 0x0a, 0x04, 0x0e, 0x11, 0x1f, 0x11, 0x11},       // 97{ 0x00, 0x0a, 0x04, 0x0e, 0x10, 0x1e, 0x11, 0x1e},       // 98{ 0x00, 0x04, 0x0a, 0x0e, 0x11, 0x1f, 0x11, 0x11},       // 99{ 0x00, 0x04, 0x0a, 0x0e, 0x10, 0x1e, 0x11, 0x1e},       // 100{ 0x00, 0x04, 0x0a, 0x0e, 0x04, 0x04, 0x04, 0x0e},       // 101{ 0x00, 0x04, 0x0a, 0x06, 0x04, 0x04, 0x04, 0x0e},       // 102{ 0x00, 0x1e, 0x01, 0x0e, 0x10, 0x0f, 0x04, 0x02},       // 103{ 0x00, 0x0e, 0x01, 0x0e, 0x10, 0x0e, 0x04, 0x02},       // 104{ 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x08, 0x04},       // 105{ 0x00, 0x02, 0x0f, 0x02, 0x0a, 0x04, 0x04, 0x02},       // 106{ 0x00, 0x0c, 0x12, 0x07, 0x02, 0x07, 0x02, 0x1d},       // 107{ 0x00, 0x1c, 0x02, 0x0f, 0x02, 0x0f, 0x02, 0x1c},       // 108{ 0x00, 0x11, 0x0a, 0x04, 0x1f, 0x04, 0x1f, 0x04},       // 109{ 0x00, 0x06, 0x09, 0x09, 0x06, 0x00, 0x00, 0x00},       // 110{ 0x00, 0x04, 0x0e, 0x15, 0x04, 0x04, 0x04, 0x04},       // 111{ 0x00, 0x04, 0x04, 0x04, 0x04, 0x15, 0x0e, 0x04}       // 112};prog_char CursorPrintPosition [128][2] ={//    {}, {},			// 2 randuri ocupate de frame  { 0x0,    0x5},  { 0x0,    0x23}, { 0x0,    0x41}, { 0x0,    0x5f}, { 0x0,    0x7d}, { 0x0,    0x9b}, { 0x0,    0xb9}, { 0x0,    0xd7}, { 0x0,    0xf5}, { 0x1,    0x13}, { 0x1,    0x31}, { 0x1,    0x4f}, { 0x1,    0x6d}, { 0x1,    0x8b}, { 0x1,    0xa9}, { 0x1,    0xc7}, { 0x1,    0xe5}, { 0x2,    0x3},  { 0x2,    0x21}, { 0x2,    0x3f}, { 0x2,    0x5d}, { 0x2,    0x7b}, { 0x2,    0x99}, { 0x2,    0xb7}, { 0x2,    0xd5}, { 0x2,    0xf3}, { 0x3,    0x11}, { 0x3,    0x2f}, { 0x3,    0x4d}, { 0x3,    0x6b}, { 0x3,    0x89}, { 0x3,    0xa7}, { 0x3,    0xc5}, { 0x3,    0xe3}, { 0x4,    0x1},  { 0x4,    0x1f}, { 0x4,    0x3d}, { 0x4,    0x5b}, { 0x4,    0x79}, { 0x4,    0x97}, { 0x4,    0xb5}, { 0x4,    0xd3}, { 0x4,    0xf1}, { 0x5,    0xf},  { 0x5,    0x2d}, { 0x5,    0x4b}, { 0x5,    0x69}, { 0x5,    0x87}, { 0x5,    0xa5}, { 0x5,    0xc3}, { 0x5,    0xe1}, { 0x5,    0xff}, { 0x6,    0x1d}, { 0x6,    0x3b}, { 0x6,    0x59}, { 0x6,    0x77}, { 0x6,    0x95}, { 0x6,    0xb3}, { 0x6,    0xd1}, { 0x6,    0xef}, { 0x7,    0xd},  { 0x7,    0x2b}, { 0x7,    0x49}, { 0x7,    0x67}, { 0x7,    0x85}, { 0x7,    0xa3}, { 0x7,    0xc1}, { 0x7,    0xdf}, { 0x7,    0xfd}, { 0x8,    0x1b}, { 0x8,    0x39}, { 0x8,    0x57}, { 0x8,    0x75}, { 0x8,    0x93}, { 0x8,    0xb1}, { 0x8,    0xcf}, { 0x8,    0xed}, { 0x9,    0xb},  { 0x9,    0x29}, { 0x9,    0x47}, { 0x9,    0x65}, { 0x9,    0x83}, { 0x9,    0xa1}, { 0x9,    0xbf}, { 0x9,    0xdd}, { 0x9,    0xfb}, { 0xa,    0x19}, { 0xa,    0x37}, { 0xa,    0x55}, { 0xa,    0x73}, { 0xa,    0x91}, { 0xa,    0xaf}, { 0xa,    0xcd}, { 0xa,    0xeb}, { 0xb,    0x9},  { 0xb,    0x27}, { 0xb,    0x45}, { 0xb,    0x63}, { 0xb,    0x81}, { 0xb,    0x9f}, { 0xb,    0xbd}, { 0xb,    0xdb}, { 0xb,    0xf9}, { 0xc,    0x17}, { 0xc,    0x35}, { 0xc,    0x53}, { 0xc,    0x71}, { 0xc,    0x8f}, { 0xc,    0xad}, { 0xc,    0xcb}, { 0xc,    0xe9}, { 0xd,    0x7},  { 0xd,    0x25}, { 0xd,    0x43}, { 0xd,    0x61}, { 0xd,    0x7f}, { 0xd,    0x9d}, { 0xd,    0xbb}, { 0xd,    0xd9}, { 0xd,    0xf7}, { 0xe,    0x15}, { 0xe,    0x33}, { 0xe,    0x51}, { 0xe,    0x6f}, { 0xe,    0x8d}, { 0xe,    0xab}, { 0xe,    0xc9}, { 0xe,    0xe7}};/* Local functions prototypes */void LCD__vBusyWait (void);void LCD__vWriteData(uint8_t u8Data);void LCD__vWriteDataFast(uint8_t u8Data);void LCD__vWriteBytes(uint8_t u8Control,uint8_t u8Data);void LCD__vWriteCtrl(uint8_t u8Control);uint8_t LCD__vGetHighByte (const uint16_t Value);uint8_t LCD__vGetLowByte (const uint16_t Value);uint8_t LCD__vGetDigit(const uint16_t Value, const uint8_t NrDigit);uint8_t LCD__u8GetYValue (uint8_t RowNr, uint8_t ByteNr);uint8_t LCD__vGetHighByte (const uint16_t Value) {	uint8_t Cycles = 0; 	for (uint16_t Temp16 = Value ; Temp16 > 256 ; Temp16 -= 256) Cycles++; 	return (Cycles); }uint8_t LCD__vGetLowByte (const uint16_t Value) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -