📄 119cpld.lst
字号:
C51 COMPILER V7.06 119CPLD 07/25/2005 17:28:34 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 119CPLD
OBJECT MODULE PLACED IN 119cpld.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 119cpld.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #include<absacc.h>
3 #include <intrins.h>
4 #define unchar unsigned char
5 #define unint unsigned int
6 #define DisCmd XBYTE [0xC100] //7218控制字地址
7 #define DisData XBYTE [0xC000] //7218数据口地址
8 #define scode 0xb0 //7218软件译码方式命令字
9 #define bcode 0x90 //B码译码方式命令字
10 #define hexcode 0xd0 //软件译码方式命令字
11 #define unchar unsigned char
12 //MAX191工作在ROM Mode 方式
13 //对外中断1采用了查询方式,中断方式还得再试验
14 //12位AD精度有了,可是速度是一个问题,
15 //按现在的用法,转换时间为12uS,再算上数据处理时间(包括数据存储、显示等),对模拟信号的采样频率估计最快也
-就是
16 //几十KHz(只考虑转换时间和存储在RAM中所需时间)
17 sbit P3_3=P3^3;
18 unchar xdata *AD;
19 unint voltage;
20 unchar keynum;
21 unchar flag=0;
22 unchar dot;
23 char distab[8]={0x13,0x13,0x14,0x00,0x12,0x12,0x0e,0x11} ; // 要显示的内容 hello-pp
24 char code ledtab[]={ 0xfb,0xb0,0xed,0xf5,0xb6,0xd7,0xdf,0xf0,
25 //0, 1, 2, 3, 4, 5, 6, 7
26 0xff,0xf7,0xfe,0x9f,0xcb,0xbd,0xcf,0xce,
27 //8 ,9 ,a ,b ,c ,d ,e ,f
28 0x80,0xbe,0x8b,0xee,0x84 };
29 //熄灭 H L P -
30 void delay1s()
31 {
32 1 unint i,j;
33 1 for(i=100;i>0;i--)
34 1 for(j=500;j>0;j--);
35 1 }
36
37 void display()
38 {
39 1 unchar i;
40 1 DisCmd=scode; //采用软件译码
41 1 for(i=0;i<8;i++) //将distab中的数据送如7218
42 1 {
43 2 DisData=ledtab[distab[i]]; //查表转化并将字型送入7218
44 2 }
45 1 //for(i=1000;i>0;i--);
46 1 }
47 ADStart()
48 {
49 1 unchar d_h,d_l;
50 1
51 1 //AD=0xA000;
52 1 //a=*AD; //WR下跳沿启动
53 1 //_nop_();
54 1 //while(P3_3==1);
C51 COMPILER V7.06 119CPLD 07/25/2005 17:28:34 PAGE 2
55 1 AD=0xA100;
56 1 d_h=(*AD)&0x0f;
57 1 AD=0xA000;
58 1 d_l=*AD;
59 1 voltage=d_h*0x0100+d_l;
60 1 distab[3]=voltage/1000;
61 1 distab[3]=distab[3];
62 1 voltage=voltage%1000;
63 1 distab[2]=voltage/100;
64 1 voltage=voltage%100;
65 1 distab[1]=voltage/10;
66 1 voltage=voltage%10;
67 1 distab[0]=voltage;
68 1 // distab[7]=0x10;
69 1 distab[6]=0x10;
70 1 distab[5]=0x10;
71 1 distab[4]=0x10;
72 1 display();
73 1 delay1s();
74 1 }
75 //**************************************************************************************
76 void intt0() interrupt 0
77 {
78 1 EX0=0; //关键盘中断,禁止相应其他按键
79 1 keynum=P1; //从p1口读入键盘值
80 1 keynum=keynum&0x0f; //取低四位;
81 1 if(keynum==0x0f)
82 1 flag=!flag;
83 1 if(flag)
84 1 distab[7]=0x00;
85 1 else
86 1 distab[7]=0x13;
87 1 display();
88 1 EX0=1; //开中断
89 1 }
90 //**************************************************************************************
91 /*
92 void intt1() interrupt 1 //AD转换中断
93 {
94 ADStart();
95 }
96 */
97 void main()
98 {
99 1
100 1 //unchar n;
101 1 EX0=1;
102 1 //EX1=1;
103 1 EA=1;
104 1 dot=3;
105 1 //for(n=0;n<8;n++)
106 1 //distab[n]=n;
107 1 display();
108 1 while(1)
109 1 {
110 2 if(flag)
111 2 ADStart();
112 2 }
113 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.06 119CPLD 07/25/2005 17:28:34 PAGE 3
CODE SIZE = 309 ----
CONSTANT SIZE = 21 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 ----
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 + -