📄 misc.lst
字号:
C51 COMPILER V7.00 MISC 08/21/2006 21:45:37 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MISC
OBJECT MODULE PLACED IN misc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE misc.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #ifndef _MISC_C
2 #define _MISC_C
3
4
5 #include <REG768.H> /*Philips 87LPC768 寄存器定义头文件*/
6
7 #include "config.h"
8 #include "misc.h"
9
10
11 //I/O口初始化程序
12 void init_port()
13 {
14 1 P0 = 0xFF;
15 1 P1 = 0xFF;
16 1 P2 = 0xFF;
17 1 }
18
19 #define INBUF_LEN 4 //数据长度
20
21 unsigned char inbuf1[INBUF_LEN];
22 unsigned char checksum,count3;
23 bit read_flag=0;
24
25 void init_serial(void)
26 {
27 1 SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
28 1 TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
29 1 PCON |= 0x80; //SMOD=1;
30 1 TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz
31 1 ES = 1;//IE |= 0x90; //Enable Serial Interrupt
32 1 }
33
34 //向串口发送一个字符
35 void send_char_com(unsigned char ch)
36 {
37 1 SBUF=ch;
38 1 while(TI==0);
39 1 TI=0;
40 1 }
41
42 //向串口发送一个字符串,strlen为该字符串长度
43 void send_string_com(unsigned char *str,unsigned int strlen)
44 {
45 1 unsigned int k=0;
46 1 do
47 1 {
48 2 send_char_com(*(str + k));
49 2 k++;
50 2 } while(k < strlen);
51 1 }
52
53 void put_string(unsigned char *str)
54 {
55 1 unsigned int len;
C51 COMPILER V7.00 MISC 08/21/2006 21:45:37 PAGE 2
56 1 len = sizeof(str);
57 1 send_string_com(str, len);
58 1 return;
59 1 }
60
61
62 //串口接收中断函数
63 void serial () interrupt 4 using 3
64 {
65 1 if(RI)
66 1 {
67 2 unsigned char ch;
68 2 RI = 0;
69 2 ch=SBUF;
70 2 if(ch>127)
71 2 {
72 3 count3=0;
73 3 inbuf1[count3]=ch;
74 3 checksum= ch-128;
75 3 }
76 2 else
77 2 {
78 3 count3++;
79 3 inbuf1[count3]=ch;
80 3 checksum ^= ch;
81 3 if( (count3==(INBUF_LEN-1)) && (!checksum) )
82 3 {
83 4 read_flag=1; //如果串口接收的数据达到INBUF_LEN个,且校验没错,
84 4 //就置位取数标志
85 4 }
86 3 }
87 2 }
88 1 }
89
90
91 void serial_test()
92 {
93 1 while(1)
94 1 {
95 2 if(read_flag) //如果取数标志已置位,就将读到的数从串口发出
96 2 {
97 3 read_flag=0; //取数标志清0
98 3 send_string_com(inbuf1,INBUF_LEN);
99 3 }
100 2 }
101 1 }
102
103 #endif
104
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 175 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 6
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -