📄 acc1-2-2.lst
字号:
C51 COMPILER V7.09 ACC1_2_2 07/11/2005 11:19:05 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE ACC1_2_2
OBJECT MODULE PLACED IN acc1-2-2.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE acc1-2-2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*****************************************
2 文件名:ACC1-2-2.C
3 功能描述:定时100ms采样,利用当前的采样值和上一次的采样值进行直线差值,并送D/A输出
4 *****************************************/
5 #include <reg51.h>
6 #include <absacc.h>
7
8 /*****************************************
9 宏定义
10 *****************************************/
11 #define uchar unsigned char
12 #define uint unsigned int
13 #define ADC_7 XBYTE[0x7ff0] //定义模数转换IO地址
14 #define DAC_1 XBYTE[0x7ff2] //定义D/A第一路的IO地
15
16 /*****************************************
17 全局变量定义
18 *****************************************/
19 sbit str = P1^7;
20 uchar data ad[10]; //声明变量,用于存储转换结果
21 uint data time; //声明变量,用于定时
22 uchar data t0_h,t0_l; //用于存储定时器0的初值
23 uchar TK; //声明采样周期变量
24 uchar TC; //TK的变量
25 uchar KK; //斜率变量
26 char UK; //当前的D/A输出值
27 char UK_1; //上一次的输出值
28
29 /*****************************************
30 主函数
31 *****************************************/
32 void main(void)
33 {
34 1
35 1 TMOD = 0x01;
36 1 time = 10; //定时1ms
37 1 t0_h = (65536-500*time)/256; //计算定时器0初值
38 1 t0_l = (65536-500*time)%256;
39 1 t0_l = t0_l+20; //修正因初值重装而引起的定时误差
40 1 TH0 = t0_h;
41 1 TL0 = t0_l;
42 1 IT1 = 1; //边沿触发中断
43 1 EX1 = 1; //开外部中断1
44 1 ET0 = 1; //开定时中断0
45 1 TR0 = 1; //启动定时器
46 1
47 1 TK = 10; //采样周期=TK×10ms
48 1 TC = 1;
49 1 DAC_1= 0x80; //D/A清零
50 1 UK = 0; //变量清零
51 1 UK_1 = 0;
52 1 KK = 0;
53 1
54 1 EA = 1; //开总中断
55 1 while(1);
C51 COMPILER V7.09 ACC1_2_2 07/11/2005 11:19:05 PAGE 2
56 1 }
57
58 /**********************************************
59 函数名:INT1
60 功能 :1号外部中断服务程序
61 参数 :无*
62 返回值:无 *
63 ***********************************************/
64 void int1() interrupt 2 using 2
65 { int i;
66 1 uchar j;
67 1
68 1 TC--; //判采样周期到否
69 1 if(TC==0)
70 1 {
71 2 UK_1= UK;
72 2 UK = ADC_7-128; //读取A/D转换结果
73 2 DAC_1=UK_1+128; //送D/A输出
74 2 TC=TK; //采样周期变量恢
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -