📄 0832cpld.lst
字号:
C51 COMPILER V7.06 0832CPLD 07/25/2005 11:01:40 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 0832CPLD
OBJECT MODULE PLACED IN 0832cpld.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 0832cpld.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 DA0832_1 XBYTE[0X6000]
10 //#define DA0832_2 XBYTE[0X8000]
11 #define DA0832 XBYTE[0XA000]
12 #define scode 0xb0 //7218软件译码方式命令字
13 #define bcode 0x90 //B码译码方式命令字
14 #define hexcode 0xd0 //软件译码方式命令字
15 #define unchar unsigned char
16 sbit P3_0=P3^0;
17 sbit P1_0=P1^0;
18 char keynum; //按键号
19 char ledcursor=0; //保存光标当前位置
20 char distab[8]={0x2,0x3,0x8,0x00,0x10,0x10,0x10,0x10} ; // 要显示的内容
21 char ledtab[]={ 0xfb,0xb0,0xed,0xf5,0xb6,0xd7,0xdf,0xf0,
22 //0, 1, 2, 3, 4, 5, 6, 7
23 0xff,0xf7,0xfe,0x9f,0xcb,0xbd,0xcf,0xce,0x80 };
24 //8 ,9 ,a ,b ,c ,d ,e ,f ,熄灭
25 int delay=0;
26 //***************************************************************************************
27
28
29 char code sintab[]={ 128,140 ,152 ,164 ,176 ,187 ,198 ,208 ,217 ,226 ,233,
30 240 ,245 ,249 ,252 ,254 ,254 ,254 ,252 ,249 ,245,
31 240 ,233 ,226 ,217 ,208 ,198 ,187 ,176 ,164 ,152,
32 140 ,128 ,115 ,103 ,91 ,79 ,68 ,57 ,47 ,38,
33 29 ,22 ,15 ,10 ,6 ,3 ,1 ,1 ,1 ,3,
34 6 ,10 ,15 ,22 ,29 ,38 ,47 ,57 ,68 ,79,
35 91 ,103 ,115 ,127 ,140 ,152 ,164 ,176 ,187 ,198,
36 208 ,217 ,226 ,233 ,240 ,245 ,249 ,252 ,254 ,254,
37 254 ,252 ,249 ,245 ,240 ,233 ,226 ,217 ,208 ,198,
38 187 ,176 ,164 ,152 ,140 ,128 ,115 ,103 ,91 ,79,
39 68 ,57 ,47 ,38 ,29 ,22 ,15 ,10 ,6 ,3,
40 1 ,1 ,1 ,3 ,6 ,10 ,15 ,22 ,29 ,38,
41 47 ,57 ,68 ,79 ,91 ,103 ,115
42 };
43 //***************************************************************************************
44 void display()
45 {
46 1 unchar i;
47 1 DisCmd=scode; //采用软件译码
48 1 for(i=0;i<8;i++) //将distab中的数据送如7218
49 1 {
50 2 DisData=ledtab[distab[i]]; //查表转化并将字型送入7218
51 2 }
52 1
53 1 }
54 //**************************************************************************************
55 void clock_initial()
C51 COMPILER V7.06 0832CPLD 07/25/2005 11:01:40 PAGE 2
56 {
57 1 TMOD=0x01;
58 1 TR0=0;
59 1 TF0=0;
60 1 TH0=0X10;
61 1 TL0=0X10;
62 1 TR0=1;
63 1 }
64 //**************************************************************************************
65
66 //**************************************************************************************
67
68 void keyprg(unchar key) //键盘键值执行的程序
69 {
70 1 if(key==0x00)
71 1 delay+=1;
72 1 if(key==0x01)
73 1 delay-=1;
74 1
75 1 }
76 //**************************************************************************************
77 void intt0() interrupt 0
78 {
79 1
80 1 EX0=0; //关键盘中断,禁止相应其他按键
81 1 keynum=P1; //从p1口读入键盘值
82 1 keynum=keynum&0x0f; //取低四位;
83 1 keyprg(keynum);
84 1 EX0=1; //开中断
85 1 }
86 //**************************************************************************************
87 void clock0(void) interrupt 1
88 {
89 1 P3_0=!P3_0;
90 1 clock_initial() ;
91 1 }
92 //**************************************************************************************
93 void main()
94 {
95 1 char xdata *cpld;
96 1 int i,j;
97 1 cpld=0xA0ff;
98 1 EX0=1;
99 1 EA=1;
100 1 display();
101 1 while(1)
102 1 {
103 2 for(i=0;i<128;i++)
104 2 {
105 3 *cpld=sintab[i];
106 3 j=delay;
107 3 for(j;j>0;j--);
108 3 }
109 2 }
110 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 161 ----
CONSTANT SIZE = 128 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.06 0832CPLD 07/25/2005 11:01:40 PAGE 3
DATA SIZE = 29 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -