📄 sramcpld.lst
字号:
C51 COMPILER V7.06 SRAMCPLD 07/24/2005 19:26:42 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SRAMCPLD
OBJECT MODULE PLACED IN SRAMCPLD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SRAMCPLD.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*7218在硬件译码的时候,低四位数据进行译码,最高位控制小数点,其余三位无效*/
2 // distab保存要显示的8位数据(每一位为一个字节)
3 // ledtab为7218软件译码字型表
4 #include<reg52.h>
5 //#include<intrins.h>
6 #include<absacc.h>
7 #define DisCmd XBYTE [0xC100] //7218控制字地址
8 #define DisData XBYTE [0xC000] //7218数据口地址
9 #define scode 0xb0 //7218软件译码方式命令字
10 #define bcode 0x90 //B码译码方式命令字
11 #define hexcode 0xd0 //软件译码方式命令字
12 #define unchar unsigned char
13 sbit P3_0=P3^0;
14 sbit P1_0=P1^0;
15 bit enter=0;
16 char keynum; //按键号
17 char ledcursor=7; //保存光标当前位置
18 char distab[8]={0x12,0x13,0x14,0x00,0x12,0x12,0x0e,0x11} ; // 要显示的内容 hello-pp
19 char temp[8];
20 char code ledtab[]={ 0xfb,0xb0,0xed,0xf5,0xb6,0xd7,0xdf,0xf0,
21 //0, 1, 2, 3, 4, 5, 6, 7
22 0xff,0xf7,0xfe,0x9f,0xcb,0xbd,0xcf,0xce,
23 //8 ,9 ,a ,b ,c ,d ,e ,f
24 0x80,0xbe,0x8b,0xee,0x84 };
25 //熄灭 H L P -
26 //***************************************************************************************
27 //void KeyprgF1(void){}
28 // void KeyprgF2(void ){}
29 //void KeyprgClear(void){}
30 //void KeyprgEnter(void){}
31 //***************************************************************************************
32
33 void display()
34 {
35 1 unchar i;
36 1 DisCmd=scode; //采用软件译码
37 1 for(i=0;i<8;i++) //将distab中的数据送如7218
38 1 {
39 2 DisData =ledtab[distab[i]]; //查表转化并将字型送入7218
40 2
41 2 }
42 1
43 1 }
44 //**************************************************************************************
45 void KeyprgF2() //在光标当前位置设置小数点
46 {
47 1 unchar i;
48 1 DisCmd=scode; //采用软件译码
49 1 for(i=0;i<8;i++) //将distab中的数据送如7218
50 1 {
51 2 if(i=ledcursor)
52 2 temp[i]=ledtab[distab[i]]+0x80;
53 2 temp[i]=ledtab[distab[i]]; //查表转化并将字型送入7218
54 2 DisData=temp[i];
55 2 }
C51 COMPILER V7.06 SRAMCPLD 07/24/2005 19:26:42 PAGE 2
56 1
57 1
58 1 }
59 //**************************************************************************************
60
61 void keyprg(unchar key) //键盘键值执行的程序
62 {
63 1 unchar i;
64 1 if((key<=9)&enter)
65 1 {
66 2 distab[ledcursor]=keynum; //键值送入distab最低位保存
67 2 if(ledcursor>0) //光标移位
68 2 ledcursor--;
69 2 else
70 2 ledcursor=7;
71 2 display(); //显示键值
72 2 }
73 1
74 1 else
75 1 {
76 2 switch(key)
77 2 {
78 3 case 0x0D: //加
79 3 if(distab[ledcursor]<0x09)
80 3 distab[ledcursor]++;
81 3 else
82 3 distab[ledcursor]=0;
83 3 display(); //显示键值
84 3 break;
85 3 case 0x0E: //减
86 3 if(distab[ledcursor]>0)
87 3 distab[ledcursor]--;
88 3
89 3 else
90 3 distab[ledcursor]=9;
91 3 display(); //显示键值
92 3
93 3 break;
94 3 case 0x0A: //KeyprgF1();
95 3
96 3 for(i=0;i<8;i++) //将distab中的数据送如7218
97 3 {
98 4 distab[i]=0;
99 4 }
100 3 ledcursor=7;
101 3 display(); //显示键值
102 3 break;
103 3 case 0x0B: //功能键F2
104 3 KeyprgF2();
105 3 break;
106 3 case 0x0C: //KeyprgBack();
107 3 if(ledcursor<7) //光标移位
108 3 ledcursor++;
109 3 else
110 3 ledcursor=0;
111 3 display(); //显示键值
112 3 break;
113 3 case 0x0F: //KeyprgEnter();
114 3 enter=!enter;
115 3 display(); //显示键值
116 3 break;
117 3 default:
C51 COMPILER V7.06 SRAMCPLD 07/24/2005 19:26:42 PAGE 3
118 3 break;
119 3 }
120 2 }
121 1
122 1 }
123 //**************************************************************************************
124 void intt0() interrupt 0
125 {
126 1 char xdata *cpld;
127 1
128 1 EX0=0; //关键盘中断,禁止相应其他按键
129 1 keynum=P1; //从p1口读入键盘值
130 1 keynum=keynum&0x0f; //取低四位;
131 1 // keyprg(keynum);
132 1 if(keynum<10)
133 1 {
134 2 cpld=0xA0ff;
135 2 *cpld=keynum;
136 2 cpld=0xA0fe;
137 2 *cpld=keynum;
138 2 }
139 1 if(keynum==0x0f)
140 1 {
141 2 cpld=0xA0ff;
142 2 distab[0]=*cpld;
143 2 cpld=0xA0fe;
144 2 distab[1]=*cpld;
145 2 display();
146 2 }
147 1 EX0=1;
148 1 }
149
150 void main()
151 {
152 1 EX0=1;
153 1 EA=1;
154 1 display();
155 1 while(1);
156 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 406 ----
CONSTANT SIZE = 21 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -