📄 com_1.lst
字号:
C51 COMPILER V6.12 COM_1 06/27/2007 23:29:00 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE COM_1
OBJECT MODULE PLACED IN .\com_1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\com_1.c DEBUG OBJECTEXTEND
stmt level source
1 #include "reg51.h"
2 #include "string.h"
3 sbit P3_2=P3^2;
4 char receive_data[96];
5 char flag;
6 char converse=0;
7 unsigned char code table[]={
8 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
9 //串口初始化 晶振为11.0592M 方式1 波特率300-57600
10 void InitCom(unsigned char BaudRate)
11 {
12 1 unsigned char THTL;
13 1 switch (BaudRate)
14 1 {
15 2 case 1: THTL = 64; break; //波特率300
16 2 case 2: THTL = 160; break; //600
17 2 case 3: THTL = 208; break; //1200
18 2 case 4: THTL = 232; break; //2400
19 2 case 5: THTL = 244; break; //4800
20 2 case 6: THTL = 250; break; //9600
21 2 case 7: THTL = 253; break; //19200
22 2 case 8: THTL = 255; break; //57600
23 2 default: THTL = 208;
24 2 }
25 1 SCON = 0x50; //串口方式1,允许接收
26 1 TMOD = 0x20; //定时器1定时方式2
27 1 TCON = 0x40; //设定时器1开始计数
28 1 TH1 = THTL;
29 1 TL1 = THTL;
30 1 PCON = 0x80; //波特率加倍控制,SMOD位
31 1 RI = 0; //清收发标志
32 1 TI = 0;
33 1 TR1 = 1; //启动定时器
34 1 }
35
36 //从串口接收一个定长字符串(非中断方式,只用于字符需有一个的idata字符串数组)
37 //如unsigned char *Str;
38 //unsigned char i[]="abcd";
39 //InHandStr = &i;
40 void ComInStr(unsigned char *Str)
41 {
42 1 while(*Str !='@') //判断是否到了字符串的尾部
43 1 {
44 2 while(!RI); //空语句判断字符是否收完
45 2 *Str = SBUF; //保存字符
46 2 RI = 0; //清RI
47 2 Str++; //字符串指针加一
48 2 converse=1;
49 2 }
50 1 }
51
52 void delay(int c)
53 {
54 1 int i,j;
55 1 for(i=0;i<c;i++)
C51 COMPILER V6.12 COM_1 06/27/2007 23:29:00 PAGE 2
56 1 for(j=0;j<10;j++)
57 1 ;
58 1 }
59 void delay1s(void)
60
61 {
62 1
63 1 unsigned char i,j,k;
64 1
65 1 for(k=60;k>0;k--)
66 1
67 1 for(i=20;i>0;i--)
68 1
69 1 for(j=248;j>0;j--);
70 1
71 1 }
72 void main()
73 {
74 1 unsigned char i,j; //i:每个字的显示循环;j每个字的显示码除以2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -