📄 vmeter_18.lst
字号:
1: #include <pic18.h>
2: #include "HD44780.h"
3:
4: const char own[]={
5: /*ri*/0x2E,0x2A,0x2A,0x2E,0x2A,0x2A,0x2E,0x20,
6: /*yue*/0x2E,0x2A,0x2E,0x2A,0x2E,0x2A,0x36,0x20,
7: /*nian*/0x28,0x2F,0x32,0x2F,0x2A,0x3F,0x22,0x20,
8: };
9:
10: unsigned char volts[]="0.00"; //0.00
11: const char *string="U=0.00V"; //U=0.00V
12: const char *warn=" WARN!"; //WARN!
13: const char *normal="NORMAL"; //NORMAL
14:
15: unsigned int V=8,Old_V=0;
16: bit step;
17:
18: void Display(void)
19: {
20: volts[0]=V/1000;
21: volts[2]=(V-volts[0]*1000)/100;
22: volts[3]=(V-volts[0]*1000-volts[2]*100)/10;
23:
24: volts[0]|=0x30;
25: volts[2]|=0x30;
26: volts[3]|=0x30;
27:
28: volts[1]='.';
29:
30: PutString(1,3,volts);
31:
32: return;
33: }
34:
35: void main(void)
36: {
37: TRISA0=1;
38: TRISB=0x01;
39: TRISE0=0;
40:
41: LCD_Begin(MODE_4BIT);
42:
43: ADCON0=0x41;
44: ADCON1=0x8e;
45:
46: SetChar(3,own);
47:
48: PutString(1,1,string);
49: PutString(2,3,"2005\xa\x30\x32\x09\x32\x31\x8");
50:
51: while(1)
52: {
53: GODONE=1;
54: while(GODONE==1){;}
55:
56: Old_V=V;
57:
58: V=((ADRESH<<8)+ADRESL)*4.91;
59:
60: if(Old_V!=V)Display();
61:
62: if(V>3500)
63: {
64: PORTB=~PORTB;
65: if(step=!step)PutString(1,10,warn);
66: else PutString(1,10," ");
67: RE0=0;
68: }
69: else
70: {
71: PORTB=0;
72: PutString(1,10,normal);
73: RE0=1;
74: }
75:
76: DelayS(1);
77: }
78:
79: return;
80: }
81:
82:
83:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -