📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 10/29/2006 14:33:43 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <stdio.h>
2 #include <absacc.h>
3 #include <intrins.h>
4 #include <./Atmel/at89x52.h>
5 #include "source.h"
6 unsigned int Mv_To_Dat(unsigned int mv){
7 1 #define Vref_2times 5
8 1 unsigned int dat;
9 1 dat=mv*(1024/5);
10 1 dat &=0x3ff;//10 bits is vaild.
11 1 return dat;
12 1 }
13 void Spi_Write(unsigned int dat){
14 1 unsigned char i;
15 1 TLC_NCS=0;
16 1 TLC_CLK_SET;
17 1 for(i=0;i<16;i++){
18 2 TLC_DIN=((dat&0x8000)>0)?1:0;
19 2 TLC_CLK_PULSE;
20 2 dat<<=1;
21 2 }
22 1 TLC_CLK_SET;
23 1 TLC_NCS=1;
24 1 }
25 #define SLOW_MODE 0X4000
26 #define FAST_MODE 0X0000
27 #define NORMAL_POWER_MODE 0X0000
28 #define SAVE_POWER_MODE 0X2000
29 void WriteA_RefreshB( unsigned int mv){/*通道A和B的模拟电压同时更新*/
30 1 unsigned int dat;
31 1 dat=Mv_To_Dat(mv);
32 1 dat <<=2;
33 1 dat |=FAST_MODE|NORMAL_POWER_MODE|0x8000;
34 1 Spi_Write(dat);
35 1
36 1 }
37 void WriteB_DoubleBuf( unsigned int mv){/*写通道B和双缓冲寄存器*/
38 1 unsigned int dat;
39 1 dat=Mv_To_Dat(mv);
40 1 dat <<=2;
41 1 dat |=FAST_MODE|NORMAL_POWER_MODE|0x0000;
42 1 Spi_Write(dat);
43 1 }
44 void Write_DoubleBuf( unsigned int mv){/*仅写双缓冲寄存器*/
45 1 unsigned int dat;
46 1 dat=Mv_To_Dat(mv);
47 1 dat <<=2;
48 1 dat |=FAST_MODE|NORMAL_POWER_MODE|0x0001;
49 1 Spi_Write(dat);
50 1 }
51 void Refresh_Two_Volt(unsigned int chla_mv,unsigned int chlb_mv){/*同时更新通道A和通道B的模拟电压值*/
52 1 Write_DoubleBuf(chlb_mv);/*先写双缓冲寄存器的值,其对应的是通道B的电压*/
53 1 WriteA_RefreshB(chla_mv);/*写通道A的电压,同时把双缓冲的电压值更新到B通道*/
54 1 /*这就达到了同时更新两路电压的目的*/
55 1 }
C51 COMPILER V7.06 MAIN 10/29/2006 14:33:43 PAGE 2
56 void Refresh_ChlA_Volt(unsigned int mv){/*只更新A的模拟电压*/
57 1 WriteA_RefreshB(mv);/*因为双缓冲寄存器的值没有改*/
58 1 /*所以这是只更新通道A的模拟电压*/
59 1 }
60 void Refresh_ChlB_Volt(unsigned int mv){/*只更新B的模拟电压*/
61 1 WriteB_DoubleBuf(mv);/*此命令更新通道B的模拟电压值*/
62 1 /*同时写双缓冲的值,这样就可以在更新其他通道时使用双缓冲寄存器中的值了,不会改变通
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -