?? main.lst
字號:
C51 COMPILER V7.06 MAIN 10/20/2006 11:28:35 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 #define MAX_SBUF 10
7 unsigned char sbuf[MAX_SBUF];//串口緩沖區
8 unsigned char shead=0; //串口緩沖區的存儲數據位置
9 unsigned char stail=0; //串口緩沖區的存讀數據位置
10 void Enable_Int(unsigned char i);
11 void Disable_Int(unsigned char i);
12 main(void){
13 1 IE=0X40;//禁止所有中斷
14 1 EX0=1;//使能外部中斷0
15 1 IT0=0;//外部中斷0,電平觸發。
16 1 EA=1; /* 使能中斷 */
17 1 XBYTE[BAUD_HPORT]=BAUD_H;//設置串口波特率分頻的高8位
18 1 XBYTE[BAUD_LPORT]=BAUD_L;//設置串口波特率分頻的低8位,把波特率設置為19.2Kbps
19 1 Enable_Int(0);//使能擴展串口發送中斷
20 1 Enable_Int(1);//使能擴展串口接收中斷
21 1 while(1){
22 2 if(stail!=shead){//數據緩沖區不為空
23 3 Enable_Int(0);//打開發送中斷
24 3 }
25 2 }
26 1 }
27 void Enable_Int(unsigned char i){//使能擴展中斷i
28 1 unsigned char temp;
29 1 temp=XBYTE[INT_ENA]; //讀出使能寄存器的狀態
30 1 temp |=1<<i;//要對應的要使能比特寫1
31 1 XBYTE[INT_ENA]=temp;//把temp值給使能寄存器的
32 1 }
33 void Disable_Int(unsigned char i){//禁止擴展中斷i
34 1 unsigned char temp;
35 1 unsigned char mask;
36 1 mask=1<<i;
37 1 mask=~mask; //把要屏幕中斷的比特設置0,其他比特為1
38 1 temp=XBYTE[INT_ENA];//讀出使能寄存器的狀態
39 1 temp &=mask;
40 1 XBYTE[INT_ENA]=temp;//把使能寄存器相應的比特設置為0
41 1 }
42 void int0() interrupt 0 {//C51外部中斷0的中斷處理函數
43 1 unsigned char stat;
44 1 stat=XBYTE[INT_PEND];//讀中斷狀態
45 1 if(stat&0x01){//擴展串口發送中斷
46 2 if(stail!=shead){//發送緩沖區不為空
47 3 XBYTE[SDAT_PORT]=sbuf[stail];//發送接收到的串口數據
48 3 stail++; //把讀位置加1
49 3 stail %=MAX_SBUF;
50 3 }
51 2 else{//發送緩沖區為空
52 3 Disable_Int(0);//禁止擴展串口發送中斷
53 3 }
54 2 }
55 1 if(stat&0x02){//擴展串口接收中斷
C51 COMPILER V7.06 MAIN 10/20/2006 11:28:35 PAGE 2
56 2 sbuf[shead]=XBYTE[SDAT_PORT];//讀串口接收數據
57 2 shead ++; //把寫位置加1
58 2 shead %=MAX_SBUF;
59 2 }
60 1 }
61
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 201 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
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 + -