📄 menu.lst
字号:
C51 COMPILER V8.01 MENU 06/12/2006 14:46:40 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN .\output\menu.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE src\menu.c ROM(COMPACT) BROWSE ORDER INCDIR(.\Head) DEBUG OBJECTEXTEND PRIN
-T(.\output\menu.lst) TABS(8) OBJECT(.\output\menu.obj)
line level source
1 //--------------------------------------
2 //
3 //FileName= menu.c
4 //
5 //--------------------------------------
6 #include<string.h>
7 #include"menu.h"
8 #include"upd6464a.h"
9
10 extern uchar doom_id;
11 extern uchar protocol;
12 extern uchar baud;
13 extern uint s_id;
14
15 uchar code *PROTOCOL_TAB[]={
16 "B01",
17 "PELCO_D",
18 "PELCO_P",
19 "FOCURM"
20 };
21
22 uint code BAUDRATE_TAB[]={19200, 9600, 4800, 2400};
23
24 uchar disp_line_buff[25];
25
26 //--------------------------------------
27 // 菜单测试函数
28 //--------------------------------------
29 //显示自检菜单
30 void disp_init_menu(void)
31 {
32 1 uchar buf[25];
33 1 uchar i;
34 1 memset(buf, ' ', sizeof(buf)-1);
35 1 buf[sizeof(buf)-1] =0;
36 1 i =strlen(STR_0_0_0_DOOM_ID);
37 1 memcpy(buf, STR_0_0_0_DOOM_ID, i);
38 1 get_num(3,&buf[i],doom_id);
39 1 disp_one_line(buf,0,0);
40 1
41 1 memset(buf, ' ', sizeof(buf)-1);
42 1 buf[sizeof(buf)-1] =0;
43 1 i =strlen(STR_0_0_0_PROTOCOL);
44 1 memcpy(buf, STR_0_0_0_PROTOCOL, i);
45 1 memcpy(buf+i,PROTOCOL_TAB[protocol],strlen(PROTOCOL_TAB[protocol]));
46 1 disp_one_line(buf,1,0);
47 1
48 1 memset(buf, ' ', sizeof(buf)-1);
49 1 buf[sizeof(buf)-1] =0;
50 1 i =strlen(STR_0_0_0_BAUDRATE);
51 1 memcpy(buf, STR_0_0_0_BAUDRATE, i);
52 1 get_num(4,&buf[i],BAUDRATE_TAB[baud]);
53 1 disp_one_line(buf,2,0);
54 1
C51 COMPILER V8.01 MENU 06/12/2006 14:46:40 PAGE 2
55 1 memset(buf, ' ', sizeof(buf)-1);
56 1 buf[sizeof(buf)-1] =0;
57 1 i =strlen(STR_0_0_0_SERIAL);
58 1 memcpy(buf, STR_0_0_0_SERIAL, i);
59 1 get_num(6,&buf[i],s_id);
60 1 disp_one_line(buf,3,0);
61 1
62 1 memset(buf, ' ', sizeof(buf)-1);
63 1 buf[sizeof(buf)-1] =0;
64 1 i =strlen(STR_0_0_0_NUMBER);
65 1 memcpy(buf+(CONST_COLUMN_NUMBER_MAX-i)/2, STR_0_0_0_NUMBER, i);
66 1 disp_one_line(buf,4,0);
67 1 }
68
69 //--------------------------------------
70 // 菜单显示函数
71 //--------------------------------------
72 //显示一行字符串
73 //输入:
74 // str 字符串数组
75 //使用全局变量 disp_line_buff[]
76 void disp_one_line(uchar *str, uchar line, uchar column)
77 {
78 1 if(str ==NULL) return;
79 1 memset(disp_line_buff,0,sizeof(disp_line_buff));
80 1 memcpy(disp_line_buff, str, strlen(str));
81 1 change_str_to_disp_code(disp_line_buff,CONST_COLUMN_NUMBER_MAX);
82 1 upd6464A_write_addr_control(line,column);
83 1 upd6464A_character_display_control(UPD6464A_CMD_BLINK_OFF, disp_line_buff,CONST_COLUMN_NUMBER_MAX);
84 1 }
85
86
87 //将一行字符转换为显示码
88 void change_str_to_disp_code(uchar *str, uchar len)
89 {
90 1 uchar i;
91 1 for(i=0; i<len; i++)
92 1 str[i] =upd6464a_get_disp_code(str[i]);
93 1 }
94
95 //将num按照ASCII数字格式长度n填充到p中
96 void get_num(uchar n, uchar *p, uint num)
97 {
98 1 for(; n>0; n--)
99 1 {
100 2 *(p+n-1) =(num%10)+'0';
101 2 num /=10;
102 2 }
103 1 }
104
105 //End Of File
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 643 ----
CONSTANT SIZE = 97 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 33 42
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V8.01 MENU 06/12/2006 14:46:40 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -