📄 call7416.lst
字号:
C51 COMPILER V8.02 CALL7416 08/10/2007 12:00:04 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE CALL7416
OBJECT MODULE PLACED IN CALL7416.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CALL7416.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /****************************************************************/
2 /* 这是调用AD7416的汇编程序(AD7416A.ASM)的C51程序。 */
3 /* 文件名CALL7416.C。 */
4 /* 功能:本程序是通过调用汇编语言程序读出数字温度传感器AD7416 */
5 /* 芯片的温度值,温度值占两个字节但只有高1O位有效。测温范围 */
6 /* 是-55℃~125℃。本程序含有计算温度值和判断温度正负的部分。 */
7 /* 8片AD7416的地址依次是:90H,92H,94H,96H,98H,9AH,9CH,9EH。 */
8 /* 本程序适合AD7416 和51系列单片机的连接,晶振为12MHZ左右。 */
9 /****************************************************************/
10 #include <reg52.h>
11 #define uchar unsigned char
12 #define uint unsigned int
13
14 void delay1(uint x);
15 extern uint chai; //把全局变量chai声明为外部变量
16 extern uint a_func(uchar); //把a_func 声明为外部函数
17
18 uint idata wendu; //温度
19 uchar idata ZorF; //正还是负判断字节
20 uint idata mid1;
21 float idata Temperature;
22 uchar i,h,l,c,temp;
23
24 void delay1(uint x) //延时程序
25 {
26 1 uchar tw;
27 1 while (x-->0){
28 2 for (tw=0;tw<125;tw++){;}
29 2 }
30 1 }
31
32 void main() //主程序
33 {
34 1 SP=0xcf;
35 1 delay1(1000);
36 1 EA=0;
37 1 chai=a_func(0x90); // 将第1片AD7416的温度值读出,0x90为第1片AD7416的地址
38 1 mid1=chai; // 把它放入变量mid1中
39 1 h=mid1/256; // 以下是计算温度值和判断温度正负的部分。
40 1 l=mid1%256;
41 1 c=2; //循环两次
42 1 wendu=h;temp=l; //将高8位和低8位的前2位连接
43 1
44 1 while(c--)
45 1 {
46 2 if(temp&0x80)
47 2 {
48 3 wendu<<=1;
49 3 wendu|=0x0001;
50 3 }
51 2 else
52 2 {
53 3 wendu<<=1;
54 3 }
55 2 }
C51 COMPILER V8.02 CALL7416 08/10/2007 12:00:04 PAGE 2
56 1 //以下判断温度正负
57 1 if(h&0x80) //若为负
58 1 {
59 2 wendu=wendu-0x01;
60 2 wendu=~wendu; //变回原码
61 2 wendu=wendu&0x03FF;
62 2 Temperature=wendu*0.25;
63 2 ZorF=0;
64 2 }
65 1 else //若为正
66 1 {
67 2 Temperature=wendu*0.25;
68 2 ZorF=1;
69 2 }
70 1 while(1);
71 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 216 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = 9 ----
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 + -