📄 sin_square.lst
字号:
C51 COMPILER V7.06 SIN_SQUARE 07/24/2005 17:22:31 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SIN_SQUARE
OBJECT MODULE PLACED IN .\sin_square.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\sampDAC0832-OK\sin_square.c BROWSE DEBUG OBJECTEXTEND PRINT(.\sin_square
-.lst) OBJECT(.\sin_square.obj)
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 scode 0xb0 //7218软件译码方式命令字
12 #define bcode 0x90 //B码译码方式命令字
13 #define hexcode 0xd0 //软件译码方式命令字
14 #define unchar unsigned char
15 sbit P3_0=P3^0;
16 sbit P1_0=P1^0;
17 char keynum; //按键号
18 char ledcursor=0; //保存光标当前位置
19 char enter=1;
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;
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 //**************************************************************************************
C51 COMPILER V7.06 SIN_SQUARE 07/24/2005 17:22:31 PAGE 2
55 void clock_initial()
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==0x0d)
71 1 delay-=1;
72 1 if(key==0x0e)
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 if(keynum==0x0f)
85 1 enter=!enter;
86 1 EX0=1; //开中断
87 1 }
88 /**************************************************************************************
89 void clock0(void) interrupt 1
90 {
91 P3_0=!P3_0;
92 clock_initial() ;
93 }
94 */
95 void main()
96 {
97 1 int i;
98 1 unchar j=0;
99 1 EX0=1;
100 1 EA=1;
101 1 display();
102 1 while(1)
103 1 {
104 2 while(enter)
105 2 {
106 3 for(i=0;i<128;i++)
107 3 {
108 4 DA0832_1=sintab[i];
109 4 j=delay;
110 4 for(j;j>0;j--);
111 4 }
112 3 }
113 2 while(!enter)
114 2 {
115 3 DA0832_1=0xf0;
116 3 for(j=delay;j>0;j--);
C51 COMPILER V7.06 SIN_SQUARE 07/24/2005 17:22:31 PAGE 3
117 3 DA0832_1=0x00;
118 3 for(j=delay;j>0;j--);
119 3 }
120 2 }
121 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 204 ----
CONSTANT SIZE = 128 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 30 ----
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 + -