首页 > 试题

highend

更新时间:2022-12-03 10:51:30 阅读: 评论:0

初二下数学分式-夜走麦城


2022年12月3日发(作者:教育叙事论文)

/******************************************************************************

*****************

*********

2程序名称:智能电表主控程序

3程序设计:freevanx、LDZ

4时间:2006-9-29

5功能:1、计算电量、电费

62、接受键盘输入,将所要求的信息显示在LCD上

73、通过键盘设置内部计费参照,适应不同种类的器材,不同的

8地区,不同的电价,不同的计费时段。

9

10备注:◎版权所有,此程序仅可参考,未经授权,不得复制,分发。

11

12编译方法:将main.c

13characterlib.h

15STARTUP.A51(不是必需文件)

16添加到同一Group,然后

17

181、在工程文件列表中的main.c文件上右击鼠标

192、选择Optionsforfile“main.c”,打开一个对话框,

203、在Properties选项卡的右边激活GenerateAsmblerSRCfile复选框

214、在同一位置激活AsmbleSRCfile.复选框

22

23

*******************************************************************************

*****************

********/

24

25/**************************************************

26REG51.h包含各种寄存器的定义

27math.h使用了其中的ceil()和pow()函数

28string.h使用了其中的memt()函数

29characterlib.h自定义头文件,包含所有的字库

30定义了uchar,因为头文件中要用到

31****************************************************/

32#include

33#include

34#include

35//#include"characterlib.h"

36

37/**************************************************

388255的各种命令字,通过控制8255的PC口控制LCD芯片的各种显示

39方式

40****************************************************/

41#defineTYPE_COMMAND0x0e

42#defineTYPE_DATA0x0f

43#defineRESET0x09

44

45/**************************************************

46LCD芯片的命令字

47****************************************************/

48#defineCS1_LOW0x0c

49#defineCS1_HIGH0x0d

50#defineCS2_LOW0x06

51#defineCS2_HIGH0x07

52

53#defineSOFT_RESET0xe2

54

55#defineDISPLAY_ON0xaf

56#definePAGE_BASIC0xb8

57#defineCOLUMN00x00

58

59

60typedefunsignedcharuchar;

61

62/**************************************************

63各种初值定义,作为计算的基本单位

64****************************************************/

65structinitt

66{

67floathigh_fee;

68floatlow_fee;

69unsignedcharhighrange_start;

70unsignedcharhighrange_end;

71unsignedcharlowrange_start;

72unsignedcharlowrange_end;

73introtate_speed;

74};

75/**************************************************

76电量计定义,记录电量使用情况

77****************************************************/

78structcoulometer

79{

80inthigh;

81intlow;

82inttotal;

83};

84/**************************************************

85电费计定义,记录用电电费

86****************************************************/

87structfee

88{

89floathigh;

90floatlow;

91floattotal;

92};

93

94/**************************************************

95各个外部存储器或者端口地址的绝对定位定义

96****************************************************/

97volatileunsignedcharxdataRAM6264_at_0x1FF0;

98

99volatileunsignedcharxdataCommandPortOf8279_at_0x5FFF;

100volatileunsignedcharxdataDataOf8279_at_0x5EFF;

101

102volatileunsignedcharxdataCommandPortOf8255_at_0xBFFF;

103volatileunsignedcharxdataAPortOf8255_at_0xBFFC;

104volatileunsignedcharxdataCPortOf8255_at_0xBFFE;

105

106/**************************************************

107设置LCD芯片各页的命令字

108****************************************************/

109ucharidatapage[4]={0xb8,0xb9,0xba,0xbb};

110

111/*****************************************************

112键盘程序中使用到全局变量

113*******************************************************/

114ucharidataWhichFunctionKey=0x00;

115

116/*****************************************************

117整个程序中共享的全局变量,智能电表的基本数据

118*******************************************************/

119structinittidataSet={0.8,0.6,6,21,22,5,1000};

120structcoulometeridataCoulo={0,0,0};

121structfeeidataFee={0.0,0.0,0.0};

122

123/*****************************************************

124各个提示信息的下半行,显示实际的数据,由于要改动,所以

125不能放在code段

126*******************************************************/

127ucharxdataHighCoulometerTextBottom[8][32]=0;

128ucharxdataLowCoulometerTextBottom[8][32]=0;

129ucharxdataAllCoulometerTextBottom[8][32]=0;

130ucharxdataHighFeeTextBottom[8][32]=0;

131ucharxdataLowFeeTextBottom[8][32]=0;

132ucharxdataAllFeeTextBottom[8][32]=0;

133ucharxdataHighFeeSetTextBottom[8][32]=0;

134ucharxdataLowFeeSetTextBottom[8][32]=0;

135ucharxdataRotateSpeedSetTextBottom[8][32]=0;

136ucharxdataHighStartSetTextBottom[8][32]=0;

137ucharxdataHighEndSetTextBottom[8][32]=0;

138

139/*****************************************************

140字库,如果放在头文件中,低版本的Keil编译时会报错,所以拿过来了

141*******************************************************/

142ucharcodeHighCoulometerTextTop[8][32]=/*高峰用电量*/

143{

144{//高

1450x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

1460x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

1470x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

1480x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

149},

150{//峰

1510x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

1520x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

1530x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

1540x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

155},

156{//用

1570x00,0x00,0x0FE,0x22,0x22,0x22,0x22,0x0FE,

1580x22,0x22,0x22,0x22,0x0FF,0x02,0x00,0x00,

1590x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,

1600x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00

161},

162{//电

1630x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

1640x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

1650x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

1660x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

167},

168{//量

1690x20,0x20,0x20,0x0BE,0x0AA,0x0AA,0x0AA,0x0AA,

1700x0AA,0x0AA,0x0AA,0x0BF,0x22,0x30,0x20,0x00,

1710x00,0x80,0x80,0x0AF,0x0AA,0x0AA,0x0AA,0x0FF,

1720x0AA,0x0AA,0x0AA,0x0AF,0x80,0x80,0x00,0x00

173}

174

175};

176

177ucharcodeLowCoulometerTextTop[8][32]=/*;低谷用电量*/

178{

179{//低

1800x40,0x20,0x0F8,0x07,0x00,0x0FC,0x84,0x84,

1810x84,0x0FC,0x82,0x82,0x83,0x0C2,0x80,0x00,

1820x00,0x00,0x0FF,0x00,0x00,0x7F,0x20,0x10,

1830x08,0x20,0x47,0x18,0x60,0x80,0x70,0x00

184

185},

186{//谷

1870x00,0x10,0x08,0x04,0x83,0x40,0x20,0x18,

1880x20,0x41,0x82,0x86,0x0C,0x00,0x00,0x00,

1890x02,0x02,0x01,0x0FD,0x44,0x44,0x44,0x44,

1900x44,0x44,0x44,0x0FC,0x01,0x03,0x01,0x00

191},

192{//用

1930x00,0x00,0x0FE,0x22,0x22,0x22,0x22,0x0FE,

1940x22,0x22,0x22,0x22,0x0FF,0x02,0x00,0x00,

1950x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,

1960x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00

197},

198{//电

1990x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

2000x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

2010x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

2020x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

203},

204{//量

2050x20,0x20,0x20,0x0BE,0x0AA,0x0AA,0x0AA,0x0AA,

2060x0AA,0x0AA,0x0AA,0x0BF,0x22,0x30,0x20,0x00,

2070x00,0x80,0x80,0x0AF,0x0AA,0x0AA,0x0AA,0x0FF,

2080x0AA,0x0AA,0x0AA,0x0AF,0x80,0x80,0x00,0x00

209}

210};

211

212ucharcodeAllCoulometerTextTop[8][32]=/*;总用电量*/

213{

214{//总

2150x00,0x00,0x00,0x0F1,0x12,0x14,0x10,0x10,

2160x10,0x14,0x12,0x0F9,0x10,0x00,0x00,0x00,

2170x20,0x18,0x00,0x30B,0x41,0x41,0x45,0x49,

2180x59,0x41,0x41,0x73,0x00,0x08,0x30,0x00

219},

220{//用

2210x00,0x00,0x0FE,0x22,0x22,0x22,0x22,0x0FE,

2220x22,0x22,0x22,0x22,0x0FF,0x02,0x00,0x00,

2230x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,

2240x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00

225},

226{//电

2270x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

2280x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

2290x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

2300x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

231

232},

233{//量

2340x20,0x20,0x20,0x0BE,0x0AA,0x0AA,0x0AA,0x0AA,

2350x0AA,0x0AA,0x0AA,0x0BF,0x22,0x30,0x20,0x00,

2360x00,0x80,0x80,0x0AF,0x0AA,0x0AA,0x0AA,0x0FF,

2370x0AA,0x0AA,0x0AA,0x0AF,0x80,0x80,0x00,0x00

238}

239};

240

241ucharcodeHighFeeTextTop[8][32]=/*;高峰时段电费*/

242{

243{//高

2440x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

2450x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

2460x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

2470x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

248},

249{//峰

2500x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

2510x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

2520x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

2530x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

254

255},

256{//时

2570x00,0x0FC,0x84,0x84,0x84,0x0FE,0x14,0x10,

2580x90,0x10,0x10,0x10,0x0FF,0x10,0x10,0x00,

2590x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,

2600x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00

261},

262{//段

2630x00,0x00,0x0FC,0x24,0x24,0x0B2,0x22,0x40,

2640x3E,0x02,0x02,0x02,0x3F,0x42,0x40,0x00,

2650x10,0x10,0x0FF,0x09,0x09,0x09,0x89,0x80,

2660x47,0x29,0x11,0x2D,0x43,0x0C0,0x40,0x00

267

268},

269{//电

2700x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

2710x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

2720x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

2730x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

274},

275{//费

2760x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

2770x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

2780x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

2790x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

280}

281};

282

283ucharcodeLowFeeTextTop[8][32]=/*低谷时段电费*/

284{

285{//低

2860x40,0x20,0x0F8,0x07,0x00,0x0FC,0x84,0x84,

2870x84,0x0FC,0x82,0x82,0x83,0x0C2,0x80,0x00,

2880x00,0x00,0x0FF,0x00,0x00,0x7F,0x20,0x10,

2890x08,0x20,0x47,0x18,0x60,0x80,0x70,0x00

290},

291{//谷

2920x00,0x10,0x08,0x04,0x83,0x40,0x20,0x18,

2930x20,0x41,0x82,0x86,0x0C,0x00,0x00,0x00,

2940x02,0x02,0x01,0x0FD,0x44,0x44,0x44,0x44,

2950x44,0x44,0x44,0x0FC,0x01,0x03,0x01,0x00

296},

297{//时

2980x00,0x0FC,0x84,0x84,0x84,0x0FE,0x14,0x10,

2990x90,0x10,0x10,0x10,0x0FF,0x10,0x10,0x00,

3000x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,

3010x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00

302},

303{//段

3040x00,0x00,0x0FC,0x24,0x24,0x0B2,0x22,0x40,

3050x3E,0x02,0x02,0x02,0x3F,0x42,0x40,0x00,

3060x10,0x10,0x0FF,0x09,0x09,0x09,0x89,0x80,

3070x47,0x29,0x11,0x2D,0x43,0x0C0,0x40,0x00

308},

309{//电

3100x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

3110x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

3120x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

3130x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

314},

315{//费

3160x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

3170x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

3180x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

3190x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

320}

321};

322

323ucharcodeAllFeeTextTop[8][32]=/*;总电费*/

324{

325{//总

3260x00,0x00,0x00,0x0F1,0x12,0x14,0x10,0x10,

3270x10,0x14,0x12,0x0F9,0x10,0x00,0x00,0x00,

3280x20,0x18,0x00,0x30B,0x41,0x41,0x45,0x49,

3290x59,0x41,0x41,0x73,0x00,0x08,0x30,0x00

330},

331{//电

3320x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

3330x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

3340x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

3350x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

336},

337{//费

3380x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

3390x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

3400x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

3410x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

342

343}

344};

345

346ucharcodeHighFeeSetTextTop[8][32]=/*设置高峰电费*/

347{

348{//设

3490x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

3500x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

3510x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

3520x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

353

354},

355{//置

3560x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

3570x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

3580x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

3590x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

360

361},

362{//高

3630x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

3640x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

3650x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

3660x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

367},

368{//峰

3690x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

3700x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

3710x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

3720x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

373

374},

375{//电

3760x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

3770x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

3780x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

3790x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

380

381},

382{//费

3830x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

3840x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

3850x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

3860x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

387

388}

389};

390

391ucharcodeLowFeeSetTextTop[8][32]=/*设置低谷电费*/

392{

393{//设

3940x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

3950x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

3960x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

3970x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

398},

399{//置

4000x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

4010x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

4020x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

4030x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

404},

405{//低

4060x40,0x20,0x0F8,0x07,0x00,0x0FC,0x84,0x84,

4070x84,0x0FC,0x82,0x82,0x83,0x0C2,0x80,0x00,

4080x00,0x00,0x0FF,0x00,0x00,0x7F,0x20,0x10,

4090x08,0x20,0x47,0x18,0x60,0x80,0x70,0x00

410},

411{//谷

4120x00,0x10,0x08,0x04,0x83,0x40,0x20,0x18,

4130x20,0x41,0x82,0x86,0x0C,0x00,0x00,0x00,

4140x02,0x02,0x01,0x0FD,0x44,0x44,0x44,0x44,

4150x44,0x44,0x44,0x0FC,0x01,0x03,0x01,0x00

416},

417{//电

4180x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

4190x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

4200x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

4210x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

422},

423{//费

4240x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

4250x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

4260x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

4270x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

428}

429};

430

431ucharcodeRotateSpeedSetTextTop[8][32]=/*设置电表转速*/

432{

433{//设

4340x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

4350x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

4360x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

4370x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

438},

439{//置

4400x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

4410x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

4420x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

4430x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

444},

445{//电

4460x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

4470x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

4480x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

4490x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

450},

451{//表

4520x80,0x84,0x94,0x94,0x94,0x94,0x94,0x0FF,

4530x94,0x94,0x94,0x94,0x96,0x0C4,0x80,0x00,

4540x10,0x10,0x08,0x08,0x04,0x0FE,0x41,0x22,

4550x04,0x08,0x14,0x12,0x20,0x60,0x20,0x00

456},

457{//转

4580x08,0x0C8,0x0B8,0x8F,0x0E8,0x88,0x40,0x48,

4590x0C8,0x7F,0x48,0x48,0x4C,0x68,0x40,0x00,

4600x08,0x18,0x08,0x04,0x0FF,0x04,0x00,0x02,

4610x13,0x22,0x62,0x9A,0x06,0x02,0x00,0x00

462},

463{//速

4640x40,0x42,0x44,0x0CC,0x00,0x0F4,0x94,0x94,

4650x94,0x0FF,0x94,0x94,0x94,0x0F6,0x04,0x00,

4660x00,0x40,0x20,0x1F,0x20,0x51,0x48,0x44,

4670x42,0x7F,0x42,0x44,0x4C,0x61,0x20,0x00

468}

469};

470

471ucharcodeHighStartSetTextTop[8][32]=/*设置高峰起始时间*/

472{

473{//设

4740x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

4750x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

4760x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

4770x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

478},

479{//置

4800x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

4810x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

4820x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

4830x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

484},

485{//高

4860x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

4870x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

4880x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

4890x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

490},

491{//峰

4920x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

4930x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

4940x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

4950x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

496},

497{//起

4980x40,0x48,0x48,0x48,0x0FF,0x48,0x48,0x00,

4990x0C4,0x44,0x44,0x44,0x0FE,0x04,0x00,0x00,

5000x40,0x20,0x1F,0x20,0x7F,0x42,0x42,0x40,

5010x47,0x48,0x48,0x48,0x48,0x6E,0x20,0x00

502},

503{//始

5040x10,0x10,0x0F0,0x1F,0x10,0x0F0,0x40,0x60,

5050x58,0x47,0x40,0x40,0x50,0x60,0x0C0,0x00,

5060x40,0x22,0x15,0x08,0x16,0x61,0x00,0x0FE,

5070x42,0x42,0x42,0x42,0x42,0x0FF,0x02,0x00

508},

509{//时

5100x00,0x0FC,0x84,0x84,0x84,0x0FE,0x14,0x10,

5110x90,0x10,0x10,0x10,0x0FF,0x10,0x10,0x00,

5120x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,

5130x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00

514},

515{//间

5160x00,0x0F8,0x01,0x02,0x0F6,0x10,0x12,0x12,

5170x12,0x12,0x0FA,0x12,0x02,0x0FF,0x02,0x00,

5180x00,0x0FF,0x00,0x00,0x3F,0x11,0x11,0x11,

5190x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00

520}

521};

522

523ucharcodeHighEndSetTextTop[8][32]=/*设置高峰结束时间*/

524{

525{//设

5260x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

5270x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

5280x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

5290x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

530},

531{//置

5320x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

5330x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

5340x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

5350x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

536},

537{//高

5380x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

5390x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

5400x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

5410x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

542},

543{//峰

5440x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

5450x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

5460x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

5470x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

548},

549{//结

5500x00,0x30,0x28,0x0A4,0x63,0x10,0x08,0x48,

5510x48,0x48,0x7F,0x48,0x48,0x4C,0x08,0x00,

5520x00,0x22,0x63,0x22,0x12,0x12,0x00,0x0FE,

5530x42,0x42,0x42,0x42,0x42,0x0FF,0x02,0x00

554},

555{//速

5560x04,0x04,0x0E4,0x24,0x24,0x24,0x24,0x0FF,

5570x24,0x24,0x24,0x24,0x0F4,0x26,0x04,0x00,

5580x40,0x40,0x27,0x22,0x12,0x0A,0x06,0x0FF,

5590x06,0x0A,0x12,0x12,0x27,0x60,0x20,0x00

560},

561{//时

5620x00,0x0FC,0x84,0x84,0x84,0x0FE,0x14,0x10,

5630x90,0x10,0x10,0x10,0x0FF,0x10,0x10,0x00,

5640x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,

5650x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00

566},

567{//间

5680x00,0x0F8,0x01,0x02,0x0F6,0x10,0x12,0x12,

5690x12,0x12,0x0FA,0x12,0x02,0x0FF,0x02,0x00,

5700x00,0x0FF,0x00,0x00,0x3F,0x11,0x11,0x11,

5710x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00

572}

573};

574

575ucharcodeErrorText[8][32]=/*;操作发生错误*/

576{

577{//操

5780x10,0x10,0x10,0x0FF,0x90,0x0F0,0x0A0,0x0AE,

5790x0EA,0x0A,0x0EA,0x0AF,0x0A2,0x0F0,0x20,0x00,

5800x02,0x42,0x81,0x7F,0x04,0x44,0x24,0x14,

5810x0C,0x0FF,0x0C,0x14,0x24,0x66,0x24,0x00

582},

583{//作

5840x80,0x40,0x20,0x0F8,0x87,0x40,0x30,0x0F,

5850x0F8,0x88,0x88,0x0C8,0x88,0x0C,0x08,0x00,

5860x00,0x00,0x00,0x0FF,0x00,0x00,0x00,0x00,

5870x0FF,0x08,0x08,0x08,0x0C,0x08,0x00,0x00

588},

589{//发

5900x00,0x10,0x18,0x16,0x10,0x90,0x0F0,0x9F,

5910x90,0x90,0x92,0x94,0x10,0x18,0x10,0x00,

5920x40,0x20,0x90,0x88,0x46,0x41,0x23,0x14,

5930x08,0x14,0x22,0x21,0x40,0x0C0,0x40,0x00

594},

595{//生

5960x00,0x0C0,0x30,0x1E,0x10,0x10,0x10,0x0FF,

5970x10,0x10,0x10,0x10,0x18,0x10,0x00,0x00,

5980x41,0x40,0x42,0x42,0x42,0x42,0x42,0x7F,

5990x42,0x42,0x42,0x43,0x42,0x60,0x40,0x00

600},

601{//错

6020x80,0x40,0x70,0x0CF,0x48,0x48,0x48,0x48,

6030x7F,0x48,0x48,0x7F,0x0C8,0x68,0x40,0x00,

6040x00,0x02,0x02,0x7F,0x22,0x12,0x00,0x0FF,

6050x49,0x49,0x49,0x49,0x0FF,0x01,0x00,0x00

606},

607{//误

6080x40,0x42,0x0C4,0x0C,0x00,0x40,0x5E,0x52,

6090x52,0x0D2,0x52,0x52,0x5F,0x42,0x00,0x00,

6100x00,0x00,0x7F,0x20,0x12,0x82,0x42,0x22,

6110x1A,0x07,0x1A,0x22,0x42,0x0C3,0x42,0x00

612}

613};

614

615ucharcodeNumCharacters[11][32]=/*;数字字符库.)*/

616{

617{//0

6180x00,0x00,0x00,0x00,0x0F0,0x0F8,0x0C,0x04,

6190x04,0x04,0x0C,0x0F8,0x0F0,0x00,0x00,0x00,

6200x00,0x00,0x00,0x00,0x0F,0x1F,0x30,0x20,

6210x20,0x20,0x30,0x1F,0x0F,0x00,0x00,0x00

622},

623{//1

6240x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0F8,

6250x0FC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

6260x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,

6270x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00

628},

629{//2

6300x00,0x00,0x00,0x00,0x30,0x38,0x0C,0x04,

6310x04,0x0C,0x0F8,0x0F0,0x00,0x00,0x00,0x00,

6320x00,0x00,0x00,0x00,0x20,0x30,0x38,0x2C,

6330x26,0x23,0x21,0x38,0x00,0x00,0x00,0x00

634},

635{//3

6360x00,0x00,0x00,0x00,0x10,0x18,0x0C,0x84,

6370x84,0x0CC,0x78,0x30,0x00,0x00,0x00,0x00,

6380x00,0x00,0x00,0x00,0x08,0x18,0x30,0x20,

6390x20,0x31,0x1F,0x0E,0x00,0x00,0x00,0x00

640},

641{//4

6420x00,0x00,0x00,0x00,0x80,0x0C0,0x70,0x18,

6430x0FC,0x0FE,0x00,0x00,0x00,0x00,0x00,0x00,

6440x00,0x00,0x00,0x06,0x07,0x05,0x04,0x24,

6450x3F,0x3F,0x24,0x04,0x00,0x00,0x00,0x00

646},

647{//5

6480x00,0x00,0x00,0x00,0x0FC,0x0FC,0x0C4,0x44,

6490x44,0x0C4,0x84,0x04,0x00,0x00,0x00,0x00,

6500x00,0x00,0x00,0x00,0x08,0x18,0x30,0x20,

6510x20,0x30,0x1F,0x0F,0x00,0x00,0x00,0x00

652},

653{//6

6540x00,0x00,0x00,0x00,0x0F0,0x0F8,0x8C,0x44,

6550x44,0x0CC,0x98,0x10,0x00,0x00,0x00,0x00,

6560x00,0x00,0x00,0x00,0x0F,0x1F,0x30,0x20,

6570x20,0x30,0x1F,0x0F,0x00,0x00,0x00,0x00

658},

659{//7

6600x00,0x00,0x00,0x00,0x1C,0x0C,0x0C,0x0C,

6610x0CC,0x0EC,0x3C,0x1C,0x00,0x00,0x00,0x00,

6620x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x3F,

6630x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00

664},

665{//8

6660x00,0x00,0x00,0x00,0x30,0x78,0x0CC,0x84,

6670x84,0x0CC,0x78,0x30,0x00,0x00,0x00,0x00,

6680x00,0x00,0x00,0x00,0x0E,0x1F,0x31,0x20,

6690x20,0x31,0x1F,0x0E,0x00,0x00,0x00,0x00

670},

671{//9

6720x00,0x00,0x00,0x00,0x0F0,0x0F8,0x0C,0x04,

6730x04,0x0C,0x0F8,0x0F0,0x00,0x00,0x00,0x00,

6740x00,0x00,0x00,0x00,0x08,0x19,0x33,0x22,

6750x22,0x33,0x1F,0x0F,0x00,0x00,0x00,0x00

676},

677{//.

6780x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

6790x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

6800x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,

6810x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

682}

683};

684

685/*;按键功能*///设置按键功能数组的大小要相应的调整ShowDefault函数中“按键功能”

提示的下标

686

687ucharcodeDefaultText[12][8][32]=

688{

689{/*0高峰用电量*///0

690{

6910x00,0x00,0x00,0x00,0x0F0,0x0F8,0x0C,0x04,

6920x04,0x04,0x0C,0x0F8,0x0F0,0x00,0x00,0x00,

6930x00,0x00,0x00,0x00,0x0F,0x1F,0x30,0x20,

6940x20,0x20,0x30,0x1F,0x0F,0x00,0x00,0x00

695},

696{

6970x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

6980x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

6990x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

7000x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

701},

702{

7030x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

7040x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

7050x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

7060x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

707},

708{

7090x00,0x00,0x0FE,0x22,0x22,0x22,0x22,0x0FE,

7100x22,0x22,0x22,0x22,0x0FF,0x02,0x00,0x00,

7110x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,

7120x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00

713},

714{

7150x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

7160x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

7170x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

7180x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

719},

720{

7210x20,0x20,0x20,0x0BE,0x0AA,0x0AA,0x0AA,0x0AA,

7220x0AA,0x0AA,0x0AA,0x0BF,0x22,0x30,0x20,0x00,

7230x00,0x80,0x80,0x0AF,0x0AA,0x0AA,0x0AA,0x0FF,

7240x0AA,0x0AA,0x0AA,0x0AF,0x80,0x80,0x00,0x00

725}

726},

727{/*1低谷用电量*///1

728

729{

7300x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0F8,

7310x0FC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

7320x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,

7330x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00

734},

735{

7360x40,0x20,0x0F8,0x07,0x00,0x0FC,0x84,0x84,

7370x84,0x0FC,0x82,0x82,0x83,0x0C2,0x80,0x00,

7380x00,0x00,0x0FF,0x00,0x00,0x7F,0x20,0x10,

7390x08,0x20,0x47,0x18,0x60,0x80,0x70,0x00

740

741},

742{

7430x00,0x10,0x08,0x04,0x83,0x40,0x20,0x18,

7440x20,0x41,0x82,0x86,0x0C,0x00,0x00,0x00,

7450x02,0x02,0x01,0x0FD,0x44,0x44,0x44,0x44,

7460x44,0x44,0x44,0x0FC,0x01,0x03,0x01,0x00

747},

748{

7490x00,0x00,0x0FE,0x22,0x22,0x22,0x22,0x0FE,

7500x22,0x22,0x22,0x22,0x0FF,0x02,0x00,0x00,

7510x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,

7520x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00

753},

754{

7550x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

7560x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

7570x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

7580x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

759},

760{

7610x20,0x20,0x20,0x0BE,0x0AA,0x0AA,0x0AA,0x0AA,

7620x0AA,0x0AA,0x0AA,0x0BF,0x22,0x30,0x20,0x00,

7630x00,0x80,0x80,0x0AF,0x0AA,0x0AA,0x0AA,0x0FF,

7640x0AA,0x0AA,0x0AA,0x0AF,0x80,0x80,0x00,0x00

765}

766},

767{/*2总用电量*///2

768{

7690x00,0x00,0x00,0x00,0x30,0x38,0x0C,0x04,

7700x04,0x0C,0x0F8,0x0F0,0x00,0x00,0x00,0x00,

7710x00,0x00,0x00,0x00,0x20,0x30,0x38,0x2C,

7720x26,0x23,0x21,0x38,0x00,0x00,0x00,0x00

773},

774{

7750x00,0x00,0x00,0x0F1,0x12,0x14,0x10,0x10,

7760x10,0x14,0x12,0x0F9,0x10,0x00,0x00,0x00,

7770x20,0x18,0x00,0x30B,0x41,0x41,0x45,0x49,

7780x59,0x41,0x41,0x73,0x00,0x08,0x30,0x00

779},

780{

7810x00,0x00,0x0FE,0x22,0x22,0x22,0x22,0x0FE,

7820x22,0x22,0x22,0x22,0x0FF,0x02,0x00,0x00,

7830x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,

7840x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00

785},

786{

7870x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

7880x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

7890x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

7900x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

791

792},

793{

7940x20,0x20,0x20,0x0BE,0x0AA,0x0AA,0x0AA,0x0AA,

7950x0AA,0x0AA,0x0AA,0x0BF,0x22,0x30,0x20,0x00,

7960x00,0x80,0x80,0x0AF,0x0AA,0x0AA,0x0AA,0x0FF,

7970x0AA,0x0AA,0x0AA,0x0AF,0x80,0x80,0x00,0x00

798}

799},

800{/*3高峰时段电费*///3

801{

8020x00,0x00,0x00,0x00,0x10,0x18,0x0C,0x84,

8030x84,0x0CC,0x78,0x30,0x00,0x00,0x00,0x00,

8040x00,0x00,0x00,0x00,0x08,0x18,0x30,0x20,

8050x20,0x31,0x1F,0x0E,0x00,0x00,0x00,0x00

806},

807{

8080x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

8090x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

8100x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

8110x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

812},

813{

8140x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

8150x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

8160x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

8170x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

818

819},

820{

8210x00,0x0FC,0x84,0x84,0x84,0x0FE,0x14,0x10,

8220x90,0x10,0x10,0x10,0x0FF,0x10,0x10,0x00,

8230x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,

8240x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00

825},

826{

8270x00,0x00,0x0FC,0x24,0x24,0x0B2,0x22,0x40,

8280x3E,0x02,0x02,0x02,0x3F,0x42,0x40,0x00,

8290x10,0x10,0x0FF,0x09,0x09,0x09,0x89,0x80,

8300x47,0x29,0x11,0x2D,0x43,0x0C0,0x40,0x00

831

832},

833{

8340x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

8350x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

8360x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

8370x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

838},

839{

8400x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

8410x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

8420x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

8430x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

844}

845},

846{/*4低谷时段电费*/

847{

8480x00,0x00,0x00,0x00,0x80,0x0C0,0x70,0x18,

8490x0FC,0x0FE,0x00,0x00,0x00,0x00,0x00,0x00,

8500x00,0x00,0x00,0x06,0x07,0x05,0x04,0x24,

8510x3F,0x3F,0x24,0x04,0x00,0x00,0x00,0x00

852},

853{

8540x40,0x20,0x0F8,0x07,0x00,0x0FC,0x84,0x84,

8550x84,0x0FC,0x82,0x82,0x83,0x0C2,0x80,0x00,

8560x00,0x00,0x0FF,0x00,0x00,0x7F,0x20,0x10,

8570x08,0x20,0x47,0x18,0x60,0x80,0x70,0x00

858},

859{

8600x00,0x10,0x08,0x04,0x83,0x40,0x20,0x18,

8610x20,0x41,0x82,0x86,0x0C,0x00,0x00,0x00,

8620x02,0x02,0x01,0x0FD,0x44,0x44,0x44,0x44,

8630x44,0x44,0x44,0x0FC,0x01,0x03,0x01,0x00

864},

865{

8660x00,0x0FC,0x84,0x84,0x84,0x0FE,0x14,0x10,

8670x90,0x10,0x10,0x10,0x0FF,0x10,0x10,0x00,

8680x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,

8690x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00

870},

871{

8720x00,0x00,0x0FC,0x24,0x24,0x0B2,0x22,0x40,

8730x3E,0x02,0x02,0x02,0x3F,0x42,0x40,0x00,

8740x10,0x10,0x0FF,0x09,0x09,0x09,0x89,0x80,

8750x47,0x29,0x11,0x2D,0x43,0x0C0,0x40,0x00

876},

877{

8780x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

8790x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

8800x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

8810x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

882},

883{

8840x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

8850x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

8860x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

8870x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

888}

889},

890{/*5总电费*///5

891{

8920x00,0x00,0x00,0x00,0x0FC,0x0FC,0x0C4,0x44,

8930x44,0x0C4,0x84,0x04,0x00,0x00,0x00,0x00,

8940x00,0x00,0x00,0x00,0x08,0x18,0x30,0x20,

8950x20,0x30,0x1F,0x0F,0x00,0x00,0x00,0x00

896},

897{

8980x00,0x00,0x00,0x0F1,0x12,0x14,0x10,0x10,

8990x10,0x14,0x12,0x0F9,0x10,0x00,0x00,0x00,

9000x20,0x18,0x00,0x30B,0x41,0x41,0x45,0x49,

9010x59,0x41,0x41,0x73,0x00,0x08,0x30,0x00

902},

903{

9040x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

9050x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

9060x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

9070x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

908},

909{

9100x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

9110x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

9120x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

9130x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

914

915}

916},

917{/*6设置高峰电费*///6

918{

9190x00,0x00,0x00,0x00,0x0F0,0x0F8,0x8C,0x44,

9200x44,0x0CC,0x98,0x10,0x00,0x00,0x00,0x00,

9210x00,0x00,0x00,0x00,0x0F,0x1F,0x30,0x20,

9220x20,0x30,0x1F,00x0F,0x00,0x00,0x00,0x00

923},

924{

9250x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

9260x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

9270x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

9280x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

929

930},

931{

9320x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

9330x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

9340x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

9350x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

936

937},

938{

9390x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

9400x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

9410x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

9420x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

943},

944{

9450x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

9460x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

9470x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

9480x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

949

950},

951{

9520x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

9530x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

9540x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

9550x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

956

957},

958{

9590x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

9600x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

9610x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

9620x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

963

964}

965},

966{/*7设置低谷电费*///7

967{

9680x00,0x00,0x00,0x00,0x1C,0x0C,0x0C,0x0C,

9690x0CC,0x0EC,0x3C,0x1C,0x00,0x00,0x00,0x00,

9700x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x3F,

9710x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00

972},

973{

9740x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

9750x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

9760x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

9770x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

978},

979{

9800x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

9810x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

9820x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

9830x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

984},

985{

9860x40,0x20,0x0F8,0x07,0x00,0x0FC,0x84,0x84,

9870x84,0x0FC,0x82,0x82,0x83,0x0C2,0x80,0x00,

9880x00,0x00,0x0FF,0x00,0x00,0x7F,0x20,0x10,

9890x08,0x20,0x47,0x18,0x60,0x80,0x70,0x00

990},

991{

9920x00,0x10,0x08,0x04,0x83,0x40,0x20,0x18,

9930x20,0x41,0x82,0x86,0x0C,0x00,0x00,0x00,

9940x02,0x02,0x01,0x0FD,0x44,0x44,0x44,0x44,

9950x44,0x44,0x44,0x0FC,0x01,0x03,0x01,0x00

996},

997{

9980x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

9990x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

10000x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

10010x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

1002},

1003{

10040x00,0x3A,0x2A,0x2A,0x0AA,0x7F,0x2A,0x2A,

10050x2A,0x0FF,0x2A,0x2A,0x0AF,0x22,0x0E0,0x00,

10060x02,0x02,0x81,0x9F,0x41,0x41,0x21,0x1D,

10070x21,0x21,0x41,0x5F,0x80,0x01,0x00,0x00

1008}

1009},

1010{/*8设置电表转速*///8

1011{

10120x00,0x00,0x00,0x00,0x30,0x78,0x0CC,0x84,

10130x84,0x0CC,0x78,0x30,0x00,0x00,0x00,0x00,

10140x00,0x00,0x00,0x00,0x0E,0x1F,0x31,0x20,

10150x20,0x31,0x1F,0x0E,0x00,0x00,0x00,0x00

1016},

1017{

10180x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

10190x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

10200x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

10210x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

1022},

1023{

10240x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

10250x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

10260x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

10270x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

1028},

1029{

10300x00,0x0F8,0x48,0x48,0x48,0x48,0x0FF,0x48,

10310x48,0x48,0x48,0x0FC,0x08,0x00,0x00,0x00,

10320x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

10330x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00

1034},

1035{

10360x80,0x84,0x94,0x94,0x94,0x94,0x94,0x0FF,

10370x94,0x94,0x94,0x94,0x96,0x0C4,0x80,0x00,

10380x10,0x10,0x08,0x08,0x04,0x0FE,0x41,0x22,

10390x04,0x08,0x14,0x12,0x20,0x60,0x20,0x00

1040},

1041{

10420x08,0x0C8,0x0B8,0x8F,0x0E8,0x88,0x40,0x48,

10430x0C8,0x7F,0x48,0x48,0x4C,0x68,0x40,0x00,

10440x08,0x18,0x08,0x04,0x0FF,0x04,0x00,0x02,

10450x13,0x22,0x62,0x9A,0x06,0x02,0x00,0x00

1046},

1047{

10480x40,0x42,0x44,0x0CC,0x00,0x0F4,0x94,0x94,

10490x94,0x0FF,0x94,0x94,0x94,0x0F6,0x04,0x00,

10500x00,0x40,0x20,0x1F,0x20,0x51,0x48,0x44,

10510x42,0x7F,0x42,0x44,0x4C,0x61,0x20,0x00

1052}

1053},

1054{/*9设置高峰起始*///9

1055

1056{

10570x00,0x00,0x00,0x00,0x0F0,0x0F8,0x0C,0x04,

10580x04,0x0C,0x0F8,0x0F0,0x00,0x00,0x00,0x00,

10590x00,0x00,0x00,0x00,0x08,0x19,0x33,0x22,

10600x22,0x33,0x1F,0x0F,0x00,0x00,0x00,0x00

1061},

1062{

10630x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

10640x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

10650x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

10660x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

1067},

1068{

10690x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

10700x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

10710x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

10720x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

1073},

1074{

10750x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

10760x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

10770x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

10780x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

1079},

1080{

10810x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

10820x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

10830x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

10840x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

1085},

1086{

10870x40,0x48,0x48,0x48,0x0FF,0x48,0x48,0x00,

10880x0C4,0x44,0x44,0x44,0x0FE,0x04,0x00,0x00,

10890x40,0x20,0x1F,0x20,0x7F,0x42,0x42,0x40,

10900x47,0x48,0x48,0x48,0x48,0x6E,0x20,0x00

1091},

1092{

10930x10,0x10,0x0F0,0x1F,0x10,0x0F0,0x40,0x60,

10940x58,0x47,0x40,0x40,0x50,0x60,0x0C0,0x00,

10950x40,0x22,0x15,0x08,0x16,0x61,0x00,0x0FE,

10960x42,0x42,0x42,0x42,0x42,0x0FF,0x02,0x00

1097}

1098

1099},

1100{/*A设置高峰结束*///10

1101{

11020x00,0x00,0x00,0x00,0x00,0x80,0x60,0x18,

11030x0C,0x78,0x0E0,0x80,0x00,0x00,0x00,0x00,

11040x00,0x00,0x00,0x20,0x3C,0x27,0x02,0x02,

11050x02,0x02,0x27,0x3F,0x3C,0x20,0x00,0x00

1106},

1107{

11080x40,0x40,0x42,0x0CC,0x00,0x40,0x0A0,0x9F,

11090x81,0x81,0x81,0x9F,0x0A0,0x20,0x20,0x00,

11100x00,0x00,0x00,0x7F,0x0A0,0x90,0x40,0x43,

11110x2C,0x10,0x28,0x26,0x41,0x0C0,0x40,0x00

1112},

1113{

11140x00,0x10,0x17,0x0D5,0x55,0x57,0x55,0x7D,

11150x55,0x57,0x55,0x0D5,0x17,0x10,0x00,0x00,

11160x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,

11170x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00

1118},

1119{

11200x04,0x04,0x04,0x0F4,0x94,0x94,0x95,0x96,

11210x94,0x94,0x94,0x0F4,0x04,0x06,0x04,0x00,

11220x00,0x0FE,0x02,0x02,0x7A,0x4A,0x4A,0x4A,

11230x4A,0x4A,0x7A,0x02,0x82,0x0FF,0x02,0x00

1124},

1125{

11260x00,0x0F0,0x00,0x0FF,0x00,0x0F0,0x90,0x88,

11270x4F,0x54,0x0A4,0x54,0x4C,0x0C4,0x40,0x00,

11280x00,0x1F,0x10,0x0F,0x08,0x1F,0x00,0x14,

11290x15,0x15,0x0FF,0x15,0x15,0x14,0x00,0x00

1130},

1131{

11320x00,0x30,0x28,0x0A4,0x63,0x10,0x08,0x48,

11330x48,0x48,0x7F,0x48,0x48,0x4C,0x08,0x00,

11340x00,0x22,0x63,0x22,0x12,0x12,0x00,0x0FE,

11350x42,0x42,0x42,0x42,0x42,0x0FF,0x02,0x00

1136},

1137{

11380x04,0x04,0x0E4,0x24,0x24,0x24,0x24,0x0FF,

11390x24,0x24,0x24,0x24,0x0F4,0x26,0x04,0x00,

11400x40,0x40,0x27,0x22,0x12,0x0A,0x06,0x0FF,

11410x06,0x0A,0x12,0x12,0x27,0x60,0x20,0x00

1142}

1143

1144},/*C系统复位*///11

1145/*{

1146{

11470x00,0x00,0x00,0x0E0,0x0F0,0x18,0x0C,0x04,

11480x04,0x04,0x0C,0x18,0x18,0x00,0x00,0x00,

11490x00,0x00,0x00,0x07,0x0F,0x18,0x30,0x20,

11500x20,0x20,0x30,0x10,0x08,0x00,0x00,0x00

1151},

1152{

11530x00,0x02,0x22,0x22,0x32,0x2E,0x0A2,0x62,

11540x22,0x22,0x91,0x09,0x01,0x00,0x00,0x00,

11550x00,0x00,0x42,0x22,0x1A,0x43,0x82,0x7E,

11560x02,0x02,0x0A,0x13,0x66,0x00,0x00,0x00

1157},

1158{

11590x20,0x30,0x0AC,0x63,0x30,0x88,0x0C8,0x0A8,

11600x99,0x8E,0x88,0x0A8,0x0CC,0x88,0x00,0x00,

11610x22,0x67,0x22,0x12,0x92,0x40,0x30,0x0F,

11620x00,0x00,0x3F,0x40,0x40,0x41,0x70,0x00

1163},

1164{

11650x20,0x10,0x0C,0x03,0x0FA,0x0AA,0x0AA,0x0AA,

11660x0AA,0x0AA,0x0AA,0x0FA,0x03,0x02,0x00,0x00,

11670x00,0x20,0x90,0x88,0x86,0x47,0x2A,0x12,

11680x12,0x2A,0x46,0x42,0x80,0x80,0x80,0x00

1169},

1170{

11710x80,0x40,0x20,0x0F8,0x07,0x10,0x0D0,0x10,

11720x11,0x16,0x10,0x10,0x0D8,0x10,0x00,0x00,

11730x00,0x00,0x00,0x0FF,0x20,0x20,0x20,0x23,

11740x2C,0x20,0x38,0x27,0x20,0x30,0x20,0x00

1175}

1176},*/

1177{/*按键功能*///12

1178{

11790x10,0x10,0x90,0x0FF,0x90,0x0A0,0x98,0x88,

11800x88,0x0E9,0x8A,0x88,0x88,0x0A8,0x98,0x00,

11810x01,0x41,0x80,0x7F,0x00,0x00,0x80,0x84,

11820x40B,0x30,0x10,0x28,0x47,0x0C0,0x00,0x00

1183},

1184{

11850x10,0x28,0x0E7,0x24,0x24,0x0C2,0x0B2,0x8E,

11860x10,0x54,0x54,0x0FF,0x54,0x7C,0x10,0x00,

11870x01,0x01,0x7F,0x21,0x51,0x24,0x18,0x27,

11880x48,0x89,0x89,0x0FF,0x89,0xCD,0x48,0x00

1189},

1190{

11910x08,0x08,0x08,0x0F8,0x0C,0x28,0x20,0x20,

11920x0FF,0x20,0x20,0x20,0x20,0x0F0,0x20,0x00,

11930x08,0x18,0x08,0x0F,0x84,0x44,0x20,0x1C,

11940x03,0x20,0x40,0x80,0x40,0x3F,0x00,0x00

1195},

1196{

11970x10,0x0D8,0x54,0x53,0x50,0x0DC,0x30,0x00,

11980x7F,0x90,0x88,0x84,0x86,0x0E0,0x00,0x00,

11990x00,0x0FF,0x09,0x49,0x89,0x7F,0x00,0x00,

12000x7E,0x90,0x88,0x84,0x86,0x80,0x0E0,0x00

1201}

1202}

1203

1204};

1205

1206/*****************************************************

1207全部函数声明:

1208*******************************************************/

1209voidInit_Cpu(void);

1210voidInit_8255andLCD(void);

1211

1212

1213/*****************************************************

1214LCD函数组,所有的函数中只应该调用DisplayALine函数,其他的函数

1215都是基本封装函数,为DisplayALine服务

1216*******************************************************/

1217voidSendCommandToLCD(ucharcommand);

1218voidDisplay_Left(ucharmdata);

1219voidDisplay_Right(ucharmdata);

1220voidDisplay_All(ucharmdata);

1221voidDisplaySelected(ucharpagenum,ucharcolumn,ucharmdata[16]);

1222voidDisplayAtRow(ucharrow,ucharcolumn,ucharmdata[32]);

1223voidDisplayALine(ucharline,ucharmdata[8][32]);

1224

1225

1226/*****************************************************

1227键盘函数中处理显示智能电表当前状态的函数

1228*******************************************************/

1229voidShowHighCoulometer(void);

1230voidShowLowCoulometer(void);

1231voidShowAllCoulometer(void);

1232voidShowHighFee(void);

1233voidShowLowFee(void);

1234voidShowAllFee(void);

1235

1236

1237voidClear(void);

1238voidWakeupDog(void);

1239

1240

1241/*****************************************************

1242键盘函数中处理设置智能电表各种初值的函数,其中

1243voidSetLowStart(ucharkey);

1244voidSetLowEnd(ucharkey);

1245由于功能和

1246voidSetHighStart(ucharkey);

1247voidSetHighEnd(ucharkey);

1248有重复,在系统中已经被废弃,不应该使用,在已经实现的函数

1249中仅仅简单的将功能键标志复位,不做其他任何事情

1250*******************************************************/

1251voidSetHighFee(ucharkey);

1252voidSetLowFee(ucharkey);

1253voidSetRotateSpeed(ucharkey);

1254voidSetHighStart(ucharkey);

1255voidSetHighEnd(ucharkey);

1256voidSetLowStart(ucharkey);

1257voidSetLowEnd(ucharkey);

1258

1259

1260/*****************************************************

1261辅助函数组,为系统中其他函数提供功能,不应该在程序中显示调用

1262*******************************************************/

1263ucharNumsToArray(intnumber,ucharArray[8]);

1264voidArrayToCharacters(ucharmessage[8],uchardisplay[8][32],ucharlength);

1265intArrayToDigitalI(ucharArray[8],ucharlength);

1266floatArrayToDigitalF(ucharArray[8],ucharlength);

1267

1268/*****************************************************

1269两个实用函数

1270*******************************************************/

1271voidShowError(void);

1272voidShowDefault(void);

1273

1274/*****************************************************

1275函数:main

1276*******************************************************/

1277

1278voidmain(void)

1279{

1280CommandPortOf8279=0x00;

1281CommandPortOf8279=0x34;

1282Init_Cpu();

1283Init_8255andLCD();

1284ShowDefault();

1285//ShowError();

1286

1287}

1288

1289/*******************************************************

1290函数:Delay

1291功能:延时

1292注:这个函数延时不是很精确,适用于对精度要求不高的延时

1293******************************************************/

1294voidDelay(inttime)reentrant

1295{

1296inti,j;

1297for(i=0;i

1298{

1299//for(j=0;j<20;j++)

1300//{

1301//#pragmaasm

1302//nop

1303//#pragmaendasm

1304//temp=i+1;

1305//}

1306j=i+1;

1307}

1308}

1309/*******************************************************

1310函数:Init_Cpu

1311功能:初始化cpu

1312******************************************************/

1313voidInit_Cpu(void)

1314{

1315intidataMode;

1316//SP=0x60;

1317TMOD=0x51;

1318IE=0x8E;

1319//EX0=0;

1320IT0=1;

1321IT1=0;

1322

1323/*******把电表转数作为T1计数初值****/

1324

1325Mode=_speed;

1326TL1=(uchar)(0x00ff&Mode);

1327TH1=(uchar)(Mode>>8);

1328TR1=1;

1329}

1330/******************************LCD显示基本功能封装函数

****************************************/

1331/*******************************************************

1332函数:Init_8255andLCD

1333功能:初始化8255和LCD

1334******************************************************/

1335voidInit_8255andLCD(void)

1336{

1337inti=0,j=0;

1338CommandPortOf8255=0x80;

1339CommandPortOf8255=TYPE_COMMAND;

1340CommandPortOf8255=RESET;

1341

1342SendCommandToLCD(SOFT_RESET);

1343SendCommandToLCD(DISPLAY_ON);

1344

1345for(i=0;i<4;i++)

1346{

1347SendCommandToLCD(page[i]);

1348SendCommandToLCD(COLUMN0);

1349

1350for(j=0;j<61;j++)

1351{

1352Display_All(0x00);

1353}

1354}

1355}

1356/*******************************************************

1357函数:SendCommandToLCD

1358功能:设置8255状态,向LCD发送命令

1359参数:

1360command:要发送到LCD的命令字

1361******************************************************/

1362voidSendCommandToLCD(ucharcommand)

1363{

1364CommandPortOf8255=TYPE_COMMAND;

1365APortOf8255=command;

1366

1367CommandPortOf8255=CS1_HIGH;

1368

1369//#pragmaasm

1370//nop

1371//#pragmaendasm

1372

1373CommandPortOf8255=CS1_LOW;

1374//#pragmaasm

1375//nop

1376//#pragmaendasm

1377

1378CommandPortOf8255=CS1_HIGH;

1379CommandPortOf8255=CS2_HIGH;

1380

1381//#pragmaasm

1382//nop

1383//#pragmaendasm

1384

1385CommandPortOf8255=CS1_LOW;

1386CommandPortOf8255=CS2_LOW;

1387}

1388/*******************************************************

1389函数:Display_Left

1390功能:在LCD的左半部分(第一块控制芯片)写入一个字节字符数据

1391参数:

1392mdata:要写入第一块芯片的一字节数据

1393******************************************************/

1394voidDisplay_Left(ucharmdata)

1395{

1396CommandPortOf8255=TYPE_DATA;

1397APortOf8255=mdata;

1398CommandPortOf8255=CS1_HIGH;

1399

1400//#pragmaasm

1401//nop

1402//#pragmaendasm

1403

1404CommandPortOf8255=CS1_LOW;

1405}

1406/*******************************************************

1407函数:Display_Right

1408功能:在LCD的右半部分(第二块控制芯片)写入一个字节字符数据

1409参数:

1410mdata:要写入第二块芯片的一字节数据

1411******************************************************/

1412voidDisplay_Right(ucharmdata)

1413{

1414CommandPortOf8255=TYPE_DATA;

1415APortOf8255=mdata;

1416CommandPortOf8255=CS2_HIGH;

1417//#pragmaasm

1418//nop

1419//#pragmaendasm

1420

1421CommandPortOf8255=CS2_LOW;

1422}

1423/*******************************************************

1424函数:Display_All

1425功能:在LCD的左右都写入一个相同的数据,只在初始化清屏幕的时候

1426使用,或者根本不要使用

1427参数:

1428mdata:要写入两块芯片的数据

1429注:一般不要调用这个函数

1430******************************************************/

1431voidDisplay_All(ucharmdata)

1432{

1433CommandPortOf8255=TYPE_DATA;

1434APortOf8255=mdata;

1435CommandPortOf8255=CS1_HIGH;

1436//#pragmaasm

1437//nop

1438//#pragmaendasm

1439

1440CommandPortOf8255=CS1_LOW;

1441//#pragmaasm

1442//nop

1443//#pragmaendasm

1444

1445CommandPortOf8255=CS1_HIGH;

1446CommandPortOf8255=CS2_HIGH;

1447

1448//#pragmaasm

1449//nop

1450//#pragmaendasm

1451

1452CommandPortOf8255=CS1_LOW;

1453CommandPortOf8255=CS2_LOW;

1454}

1455/*******************************************************

1456函数:DisplaySelected

1457功能:从指定的页,指定的列开始写入半个LCD屏幕显示的字符

1458参数:

1459pagenum:LCD的页号0~3页

1460column:LCD的列0x00~0x70

1461mdata:要在LCD确定位置写入的半个字符

1462注:FM12232共32行,4页,每页共8个像素行

1463******************************************************/

1464voidDisplaySelected(ucharpagenum,ucharcolumn,ucharmdata[16])

1465{

1466inti=0;

1467

1468SendCommandToLCD(page[pagenum]);

1469

1470if(column>=0x40)

1471{

1472column=column-0x40;

1473SendCommandToLCD(column);

1474

1475for(i=0;i<0x10;i++)

1476{

1477Display_Right(mdata[i]);

1478}

1479}

1480el

1481{

1482SendCommandToLCD(column);

1483

1484for(i=0;i<0x10;i++)

1485{

1486Display_Left(mdata[i]);

1487}

1488}

1489}

1490/*******************************************************

1491函数:DisplayAtRow

1492功能:在LCD指定行,从指定列开始,显示一个汉字字符

1493参数:

1494row:在LCD上要显示的行数,共0~1两行

1495column:要显示的列数

1496mdata:要在指定位置写入的一个字符

1497返回值:

1498注:

1499******************************************************/

1500voidDisplayAtRow(ucharrow,ucharcolumn,ucharmdata[32])

1501{

1502ucharothercolumn=column;

1503if(row==0)

1504{

1505DisplaySelected(0,column,mdata);

1506DisplaySelected(1,othercolumn,&mdata[16]);

1507

1508

1509}

1510elif(row==1)

1511{

1512DisplaySelected(2,column,mdata);

1513DisplaySelected(3,column,&mdata[16]);

1514}

1515}

1516/*******************************************************

1517函数:DisplayALine

1518功能:在LCD指定行显示一行字符串,最多8个字符

1519参数:

1520line:在LCD上要显示的行数,共0~1两行

1521mdata:在指定行要显示的字符串

1522返回值:

1523注:LCD函数中唯一应该被调用的函数

1524******************************************************/

1525voidDisplayALine(ucharline,ucharmdata[8][32])

1526{

1527inti,column;

1528for(i=0;i<8;i++)

1529{

1530column=i*0x10;

1531DisplayAtRow(line,column,&mdata[i][0]);

1532}

1533}

1534/******************************键盘基本功能封装函数

****************************************/

1535/*******************************************************

1536函数:ShowHighCoulometer

1537功能:显示高峰时间段所用电量

1538参数:

1539返回值:

1540注:

1541******************************************************/

1542voidShowHighCoulometer(void)

1543{

1544inti=0,j=0,Counter=0;

1545ucharmessage[8]=0;

1546

1547intCoulometerHigh=;

1548

1549DisplayALine(0,HighCoulometerTextTop);

1550

1551Counter=NumsToArray(CoulometerHigh,message);

1552memt(HighCoulometerTextBottom,0,8*32);

1553

1554for(i=0;i<=Counter;i++)

1555{

1556for(j=0;j<32;j++)

1557{

1558HighCoulometerTextBottom[i][j]=NumCharacters[message[i]][j];

1559}

1560}

1561

1562DisplayALine(1,HighCoulometerTextBottom);

1563Delay(20000);

1564}

1565/*******************************************************

1566函数:ShowLowCoulometer

1567功能:显示低谷时间段所用电量

1568参数:

1569返回值:

1570注:

1571******************************************************/

1572voidShowLowCoulometer(void)

1573{

1574inti=0,j=0,Counter=0;

1575ucharmessage[8]=0;

1576

1577intCoulometerLow=;

1578

1579DisplayALine(0,LowCoulometerTextTop);

1580

1581Counter=NumsToArray(CoulometerLow,message);

1582

1583memt(LowCoulometerTextBottom,0,8*32);

1584for(i=0;i<=Counter;i++)

1585{

1586for(j=0;j<32;j++)

1587{

1588LowCoulometerTextBottom[i][j]=NumCharacters[message[i]][j];

1589}

1590}

1591

1592DisplayALine(1,LowCoulometerTextBottom);

1593Delay(20000);

1594}

1595/*******************************************************

1596函数:ShowAllCoulometer

1597功能:显示用电的总电量

1598参数:

1599返回值:

1600注:

1601******************************************************/

1602voidShowAllCoulometer(void)

1603{

1604inti=0,j=0,Counter=0;

1605ucharmessage[8]=0;

1606

1607intCoulometerAll=;

1608

1609DisplayALine(0,AllCoulometerTextTop);

1610

1611Counter=NumsToArray(CoulometerAll,message);

1612

1613memt(AllCoulometerTextBottom,0,8*32);

1614for(i=0;i<=Counter;i++)

1615{

1616for(j=0;j<32;j++)

1617{

1618AllCoulometerTextBottom[i][j]=NumCharacters[message[i]][j];

1619}

1620}

1621

1622DisplayALine(1,AllCoulometerTextBottom);

1623Delay(20000);

1624}

1625/*******************************************************

1626函数:ShowHighFee

1627功能:显示高峰时间段用电电费

1628参数:

1629返回值:

1630注:显示时电费进行了取整,电费全部按照整数结帐,不足1元的按照

16311元计算

1632******************************************************/

1633

1634voidShowHighFee(void)

1635{

1636inti,j,FeeHigh,Counter;

1637ucharmessage[8]=0;

1638

1639DisplayALine(0,HighFeeTextTop);

1640

1641FeeHigh=(int)ceil();

1642

1643Counter=NumsToArray(FeeHigh,message);

1644memt(HighFeeTextBottom,0,8*32);

1645for(i=0;i<=Counter;i++)

1646{

1647for(j=0;j<32;j++)

1648{

1649HighFeeTextBottom[i][j]=NumCharacters[message[i]][j];

1650}

1651}

1652

1653DisplayALine(1,HighFeeTextBottom);

1654Delay(20000);

1655}

1656/*************************************************

1657函数:ShowLowFee

1658功能:显示低谷时间段所用电量的电费

1659参数:

1660返回值:

1661注:显示时电费进行了取整,电费全部按照整数结帐,不足1元的按照

16621元计算

1663******************************************************/

1664voidShowLowFee(void)

1665{

1666inti,j,FeeLow,Counter;

1667ucharmessage[8]=0;

1668

1669DisplayALine(0,LowFeeTextTop);

1670

1671FeeLow=(int)ceil();

1672

1673Counter=NumsToArray(FeeLow,message);

1674memt(LowFeeTextBottom,0,8*32);

1675for(i=0;i<=Counter;i++)

1676{

1677for(j=0;j<32;j++)

1678{

1679LowFeeTextBottom[i][j]=NumCharacters[message[i]][j];

1680}

1681}

1682

1683DisplayALine(1,LowFeeTextBottom);

1684Delay(20000);

1685}

1686/*******************************************************

1687函数:ShowAllFee

1688功能:显示本月累计所用电费

1689参数:

1690返回值:

1691注:显示时电费进行了取整,电费全部按照整数结帐,不足1元的按照

16921元计算

1693******************************************************/

1694voidShowAllFee(void)

1695{

1696inti,j,FeeAll,Counter;

1697ucharmessage[8]=0;

1698

1699DisplayALine(0,AllFeeTextTop);

1700

1701FeeAll=(int)ceil();

1702

1703Counter=NumsToArray(FeeAll,message);

1704memt(AllFeeTextBottom,0,8*32);

1705for(i=0;i<=Counter;i++)

1706{

1707for(j=0;j<32;j++)

1708{

1709AllFeeTextBottom[i][j]=NumCharacters[message[i]][j];

1710}

1711}

1712

1713DisplayALine(1,AllFeeTextBottom);

1714Delay(20000);

1715}

1716/*******************************************************

1717函数:Clear

1718功能:电表重新开始计数,将电量表和电费表清零

1719参数:

1720返回值:

1721注:

1722******************************************************/

1723voidClear(void)

1724{

=0;

=0;

=0;

1728

=0.0;

=0.0;

=0.0;

1732}

1733

1734/*******************************************************

1735函数:SetHighFee

1736功能:设置高峰时间段电价

1737参数:

1738key:键盘输入的值

1739返回值:

1740注:键盘上的E键作为输入结束键,键盘上的D键作为小数点输入键

1741******************************************************/

1742voidSetHighFee(ucharkey)

1743{

1744staticucharidataBuffer[8]=0;

1745staticucharidataCounter=0;

1746uchar*Pointer;

1747//inti;

1748

1749if(key==0x0e)

1750{

1751DisplayALine(0,HighFeeSetTextTop);

_fee=ArrayToDigitalF(Buffer,Counter-1);

1753ArrayToCharacters(Buffer,HighFeeSetTextBottom,Counter-1);

1754DisplayALine(1,HighFeeSetTextBottom);

1755

1756Delay(20000);

1757WhichFunctionKey=0x00;

1758Counter=0;

1759memt(Buffer,0,8);

1760}

1761el

1762{

1763if(Counter<8&&((key>=0x00&&key<=0x09)||key==0x0d))

1764{

1765DisplayALine(0,HighFeeSetTextTop);

1766Pointer=Buffer;

1767Pointer[Counter]=key;

1768Counter++;

1769ArrayToCharacters(Buffer,HighFeeSetTextBottom,Counter-1);

1770

1771DisplayALine(1,HighFeeSetTextBottom);

1772Delay(20000);

1773}

1774el

1775{

1776WhichFunctionKey=0x00;

1777Counter=0;

1778memt(Buffer,0,8);

1779

1780ShowError();

1781}

1782}

1783

1784}

1785/*******************************************************

1786函数:SetLowFee

1787功能:设置低谷时间段电价

1788参数:

1789key:键盘输入的值

1790返回值:

1791注:键盘上的E键作为输入结束键,键盘上的D键作为小数点输入键

1792******************************************************/

1793voidSetLowFee(ucharkey)

1794{

1795staticucharidataBuffer[8]=0;

1796staticucharidataCounter=0;

1797uchar*Pointer;

1798

1799if(key==0x0e)

1800{

1801DisplayALine(0,LowFeeSetTextTop);

_fee=ArrayToDigitalF(Buffer,Counter-1);

1803ArrayToCharacters(Buffer,LowFeeTextBottom,Counter-1);

1804DisplayALine(1,LowFeeSetTextBottom);

1805

1806Delay(20000);

1807WhichFunctionKey=0x00;

1808Counter=0;

1809memt(Buffer,0,8);

1810}

1811el

1812{

1813if(Counter<8&&((key>=0x00&&key<=0x09)||key==0x0d))

1814{

1815DisplayALine(0,LowFeeSetTextTop);

1816Pointer=Buffer;

1817Pointer[Counter]=key;

1818Counter++;

_fee=ArrayToDigitalF(Buffer,Counter-1);

1820

1821ArrayToCharacters(Buffer,LowFeeTextBottom,Counter-1);

1822DisplayALine(1,LowFeeSetTextBottom);

1823Delay(20000);

1824}

1825el

1826{

1827WhichFunctionKey=0x00;

1828Counter=0;

1829memt(Buffer,0,8);

1830

1831ShowError();

1832}

1833}

1834

1835}

1836/*******************************************************

1837函数:SetRotateSpeed

1838功能:设置电表转数/Kwh

1839参数:

1840key:键盘输入的数

1841返回值:

1842注:键盘上的E键作为输入结束键

1843******************************************************/

1844voidSetRotateSpeed(ucharkey)

1845{

1846staticucharidataBuffer[8]=0;

1847staticucharidataCounter=0;

1848uchar*Pointer;

1849

1850if(key==0x0e)

1851{

1852DisplayALine(0,RotateSpeedSetTextTop);

_speed=ArrayToDigitalI(Buffer,Counter-1);

1854ArrayToCharacters(Buffer,RotateSpeedSetTextBottom,Counter-1);

1855DisplayALine(1,RotateSpeedSetTextBottom);

1856

1857Delay(20000);

1858

1859WhichFunctionKey=0x00;

1860Counter=0;

1861memt(Buffer,0,8);

1862}

1863el

1864{

1865if(Counter<8&&(key>=0x00&&key<=0x09))

1866{

1867DisplayALine(0,RotateSpeedSetTextTop);

1868Pointer=Buffer;

1869Pointer[Counter]=key;

1870Counter++;

1871

1872ArrayToCharacters(Buffer,RotateSpeedSetTextBottom,Counter-1);

1873DisplayALine(1,RotateSpeedSetTextBottom);

1874

1875Delay(20000);

1876}

1877el

1878{

1879WhichFunctionKey=0x00;

1880Counter=0;

1881memt(Buffer,0,8);

1882

1883ShowError();

1884}

1885}

1886

1887}

1888/*******************************************************

1889函数:SetHighStart

1890功能:设置高峰时段的开始时间,默认为6

1891参数:

1892key:键盘输入的数

1893返回值:

1894注:键盘上的E键作为输入结束键

1895******************************************************/

1896voidSetHighStart(ucharkey)

1897{

1898staticucharidataBuffer[8]=0;

1899staticucharidataCounter=0;

1900uchar*Pointer;

1901intTemp;

1902

1903if(key==0x0e)

1904{

1905Temp=ArrayToDigitalI(Buffer,Counter-1);

1906if(Temp>=0&&Temp<=23)

1907{

1908DisplayALine(0,HighStartSetTextTop);

nge_start=Temp;

1910

1911ArrayToCharacters(Buffer,HighStartSetTextBottom,Counter-1);

1912DisplayALine(1,HighStartSetTextBottom);

1913

1914Delay(20000);

1915}

1916el

1917{

1918ShowError();

1919}

1920

1921WhichFunctionKey=0x00;

1922Counter=0;

1923memt(Buffer,0,8);

1924}

1925el

1926{

1927if(Counter<8&&(key>=0x00&&key<=0x09))

1928{

1929DisplayALine(0,HighStartSetTextTop);

1930Pointer=Buffer;

1931Pointer[Counter]=key;

1932Counter++;

1933

1934ArrayToCharacters(Buffer,HighStartSetTextBottom,Counter-1);

1935DisplayALine(1,HighStartSetTextBottom);

1936

1937Delay(20000);

1938}

1939el

1940{

1941WhichFunctionKey=0x00;

1942Counter=0;

1943memt(Buffer,0,8);

1944

1945ShowError();

1946}

1947}

1948

1949}

1950/*******************************************************

1951函数:SetHighEnd

1952功能:设置高峰时段的结束时间,此值在程序开始时默认为21

1953参数:

1954key:键盘输入的数

1955返回值:

1956注:键盘上的E键作为输入结束键

1957******************************************************/

1958voidSetHighEnd(ucharkey)

1959{

1960staticucharidataBuffer[8]=0;

1961staticucharidataCounter=0;

1962uchar*Pointer;

1963intTemp;

1964

1965if(key==0x0e)

1966{

1967Temp=ArrayToDigitalI(Buffer,Counter-1);

1968if(Temp>=0&&Temp<=23)

1969{

1970DisplayALine(0,HighEndSetTextTop);

nge_end=Temp;

1972

1973ArrayToCharacters(Buffer,HighEndSetTextBottom,Counter-1);

1974DisplayALine(1,HighEndSetTextBottom);

1975Delay(20000);

1976}

1977el

1978{

1979ShowError();

1980}

1981WhichFunctionKey=0x00;

1982Counter=0;

1983memt(Buffer,0,8);

1984}

1985el

1986{

1987if(Counter<8&&(key>=0x00&&key<=0x09))

1988{

1989DisplayALine(0,HighEndSetTextTop);

1990Pointer=Buffer;

1991Pointer[Counter]=key;

1992

1993Counter++;

1994

1995ArrayToCharacters(Buffer,HighEndSetTextBottom,Counter-1);

1996DisplayALine(1,HighEndSetTextBottom);

1997Delay(20000);

1998}

1999el

2000{

2001WhichFunctionKey=0x00;

2002Counter=0;

2003memt(Buffer,0,8);

2004ShowError();

2005}

2006}

2007

2008}

2009/*******************************************************

2010函数:SetLowStart

2011功能:设置低谷时段的开始时间

2012参数:

2013key:键盘输入的数

2014返回值:

2015注:由于有SetHighStart和SetHighEnd函数足以完成设置时间段任务

2016这个函数被废弃不用

2017******************************************************/

2018voidSetLowStart(ucharkey)

2019{

2020key=0;

2021WhichFunctionKey=0x00;

2022}

2023/*******************************************************

2024函数:SetLowEnd

2025功能:设置低谷时段的结束时间

2026参数:

2027key:键盘输入的数

2028返回值:

2029注:由于有SetHighStart和SetHighEnd函数足以完成设置时间段任务

2030这个函数被废弃不用

2031******************************************************/

2032voidSetLowEnd(ucharkey)

2033{

2034key=0;

2035WhichFunctionKey=0x00;

2036}

2037

2038/***********************************辅助类函数

**********************************************/

2039/*******************************************************

2040函数:NumsToArray

2041功能:将整数各个位的数字分离,并按照书写顺序放入一个数字数组

2042以方便LCD显示

2043参数:

2044number:要分离的整数

2045Array:存放分离后数字的数组

2046返回值:返回分离后数组的最大有效下标,即原来整数的位数

2047注:这是一个辅助的算法函数,在Show-类函数中用到这个函数

2048******************************************************/

2049ucharNumsToArray(intnumber,ucharArray[8])

2050{

2051inti,Counter,Temp;

2052

2053for(i=0;i<8;i++)

2054{

2055Array[i]=number%10;

2056if(number/10>=1)

2057{

2058number=number/10;

2059}

2060el

2061{

2062break;

2063}

2064}

2065

2066Counter=i;

2067if(Counter%2==0)

2068{

2069for(i=0;i

2070{

2071Temp=Array[i];

2072Array[i]=Array[Counter-i];

2073Array[Counter-i]=Temp;

2074}

2075}

2076el

2077{

2078for(i=0;i<(Counter+1)/2;i++)

2079{

2080Temp=Array[i];

2081Array[i]=Array[Counter-i];

2082Array[Counter-i]=Temp;

2083}

2084}

2085

2086returnCounter;

2087}

2088/*******************************************************

2089函数:ArrayToCharacters

2090功能:将数组中的单个数字通过查表得到字型码,并将字型码放入显示

2091缓存单元

2092参数:

2093message:存放数字的数组

2094display:存放查到字型码的二维数组

2095length:message数组中存放数据的长度,以最大下标值表示

2096返回值:

2097注:这是一个辅助的算法函数,在Set..系列函数中会用到这个函数

2098******************************************************/

2099voidArrayToCharacters(ucharmessage[8],uchardisplay[8][32],ucharlength)

2100{

2101inti,j;

2102memt(&display[0][0],0,8*32);

2103for(i=0;i<=length;i++)

2104{

2105for(j=0;j<32;j++)

2106{

2107display[i][j]=NumCharacters[message[i]][j];

2108}

2109}

2110}

2111/*******************************************************

2112函数:ArrayToDigitalI

2113功能:将一个存放单个数字的数组内容转换为整数

2114参数:

2115Array:存放键盘输入的呈现为单个数字的整数

2116length:数组Array中有效的元素个数,要求为数组的最大有效下标值

2117返回值:转换后的整数

2118注:这是一个辅助的算法函数,在Set-Start、End、Speed函数中用到这个函数

2119******************************************************/

2120intArrayToDigitalI(ucharArray[8],ucharlength)

2121{

2122intnumber=0;

2123inti=0;

2124

2125for(i=0;i<=length;i++)

2126{

2127number=number*10+Array[i];

2128}

2129

2130returnnumber;

2131}

2132/*******************************************************

2133函数:ArrayToDigitalF

2134功能:将一个存放单个数字的数组内容转换为小数

2135参数:

2136Array:存放键盘按顺序输入的呈现为单个数字的小数

2137length:数组Array中的数字个数,要求为数组Array的最大下标值

2138而不是真正的元素个数(最大下标值+1)

2139返回值:转换后的小数

2140注:这是一个辅助的算法函数,在Set-Fee类函数用到这个函数

2141******************************************************/

2142floatArrayToDigitalF(ucharArray[8],ucharlength)

2143{

2144ucharDotPosition;

2145uchari;

2146floatTail;

2147floatnumber;

2148intIntegerF,IntegerB;

2149

2150for(i=0;Array[i]!=0x0d;i++);

2151

2152DotPosition=i;

2153

2154IntegerF=ArrayToDigitalI(Array,DotPosition-1);

2155IntegerB=ArrayToDigitalI(&Array[DotPosition+1],length-(DotPosition+1));

2156Tail=IntegerB;

2157Tail=Tail/(pow(10,length-DotPosition));

2158

2159number=IntegerF+Tail;

2160

2161returnnumber;

2162}

2163/*******************************************************

2164函数:ShowError

2165功能:在LCD上显示出错信息

2166参数:

2167返回值:

2168注:在各个函数中都可能用到这个函数

2169******************************************************/

2170voidShowError(void)

2171{

2172DisplayALine(0,ErrorText);

2173Delay(20000);

2174}

2175/*******************************************************

2176函数:ShowDefault

2177功能:默认下屏幕显示

2178参数:

2179返回值:

2180注:这个函数为一个死循环函数,默认情况下一直显示这些信息

2181在主函数中用到产生一个死循环

2182******************************************************/

2183voidShowDefault(void)

2184{

2185inti=0;

2186while(1)

2187{

2188i=i%11;

2189DisplayALine(0,&DefaultText[11][0][0]);

2190DisplayALine(1,&DefaultText[i][0][0]);

2191

2192i++;

2193Delay(20000);

2194}

2195}

2196/*******************************************************

2197函数:WakeupDog

2198功能:唤醒小狗,小狗开始计时

2199参数:

2200返回值:

2201注:

2202******************************************************/

2203voidWakeupDog(void)

2204{

2205TL0=0x00;

2206TH0=0x00;

2207TR0=1;

2208}

2209

2210/******************************中断处理函数

******************************************/

2211/*******************************************************

2212函数:DogSniffer

2213功能:小狗看门,使用定时器T0,可以使键盘输入超时后自动复位

2214参数:

2215返回值:

2216注:如果有人按了功能键,并且在65×100ms内没有设置好,则功能键

2217标志会被清除,系统恢复到功能键没有按下的状态

2218******************************************************/

2219voidDogSniffer(void)interrupt1using0

2220{

2221staticintidataWait=0;

2222

2223if(WhichFunctionKey<0x06&&WhichFunctionKey>0x0d)

2224{

2225Wait=0;

2226}

2227el

2228{

2229if(Wait<100)

2230{

2231Wait++;

2232TL0=0x00;

2233TH0=0x00;

2234TR0=1;

2235}

2236el/*******如果超时将WhichFunctionKey标志取消********/

2237{

2238WhichFunctionKey=0x00;

2239}

2240}

2241}

2242/*******************************************************

2243函数:KeyBoard

2244功能:键盘的中断处理函数,判断按键,并调用相应处理函数

2245参数:

2246返回值:

2247注:键盘接到CPU的INT1中断

2248******************************************************/

2249voidKeyBoard(void)interrupt2using0

2250{

2251ucharkey;

2252CommandPortOf8279=0x40;

2253key=DataOf8279;

2254

2255if(WhichFunctionKey>=0x06&&WhichFunctionKey<=0x0d)

2256{

2257switch(WhichFunctionKey)

2258{

2259ca0x06:

2260SetHighFee(key);

2261break;

2262

2263ca0x07:

2264SetLowFee(key);

2265break;

2266

2267ca0x08:

2268SetRotateSpeed(key);

2269break;

2270

2271ca0x09:

2272SetHighStart(key);

2273break;

2274

2275ca0x0a:

2276SetHighEnd(key);

2277break;

2278

2279ca0x0b:

2280SetLowStart(key);

2281break;

2282

2283ca0x0d:

2284SetLowEnd(key);

2285}

2286}

2287el

2288{

2289switch(key)

2290{

2291ca0x00:

2292ShowHighCoulometer();

2293break;

2294

2295ca0x01:

2296ShowLowCoulometer();

2297break;

2298

2299ca0x02:

2300ShowAllCoulometer();

2301break;

2302

2303ca0x03:

2304ShowHighFee();

2305break;

2306

2307ca0x04:

2308ShowLowFee();

2309break;

2310

2311ca0x05:

2312ShowAllFee();

2313break;

2314

2315ca0x06:

2316WhichFunctionKey=0x06;

2317WakeupDog();

2318break;

2319

2320ca0x07:

2321WhichFunctionKey=0x07;

2322WakeupDog();

2323break;

2324

2325ca0x08:

2326WhichFunctionKey=0x08;

2327WakeupDog();

2328break;

2329

2330ca0x09:

2331WhichFunctionKey=0x09;

2332WakeupDog();

2333break;

2334

2335ca0x0a:

2336WhichFunctionKey=0x0a;

2337WakeupDog();

2338break;

2339

2340ca0x0b:

2341WhichFunctionKey=0x0b;

2342WakeupDog();

2343break;

2344

2345ca0x0c:

2346Clear();

2347break;

2348

2349ca0x0d:

2350WhichFunctionKey=0x0d;

2351WakeupDog();

2352break;

2353

2354default:

2355ShowError();

2356break;

2357}

2358}

2359}

2360/******************************电量计费函数

****************************************/

2361/*******************************************************

2362函数:OneCoulometer

2363功能:计算电量,在满一度电的时候更新电量表和计费表

2364参数:

2365返回值:

2366注:输入脉冲接到T1计数器上

2367******************************************************/

2368voidOneCoulometer(void)interrupt3using0

2369{

2370intMode;

2371/*******从外部RAM读入当前时间********/

2372ucharTime=RAM6264;

2373

2374

2375/*******判断高峰还是低谷********/

2376if((Time>=nge_start)&&(Time<=nge_end))

2377{

++;

++;

+=_fee;

+=_fee;

2382}

2383el

2384{

++;

++;

2387

+=_fee;

+=_fee;

2390}

2391

2392/*******把电表转数作为T1计数初值********/

2393Mode=_speed;

2394TL1=(uchar)(0x00ff&Mode);

2395TH1=(uchar)(Mode>>8);

2396TR1=1;

2397}

本文发布于:2022-12-03 10:51:30,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/43951.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:pass的反义词
下一篇:遒劲读音
标签:highend
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图