📄 test.lst
字号:
C51 COMPILER V7.06 TEST 06/26/2008 11:03:33 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE test.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg52.h"
2 #include "intrins.h"
3 #define uchar unsigned char
4 #define uint unsigned int
5 sbit ds=P2^2;
6 sbit led=P2^0;
7 sbit led1=P2^1;
8 uchar flag ;
9 uint temp; //参数temp一定要声明为 int 型
10 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
11 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //不带小数点数字编码
12 /*延时函数*/
13 void TempDelay (uchar us)
14 {
15 1 while(us--);
16 1 }
17 void delay(uint count) //延时子函数
18 {
19 1 uint i;
20 1 while(count)
21 1 {
22 2 i=200;
23 2 while(i>0)
24 2 i--;
25 2 count--;
26 2 }
27 1 }
28
29 /*串口初始化,波特率9600,方式1 */
30 void init_com()
31 {
32 1 TMOD=0x20; //设置定时器1为模式2
33 1 TH1=0xfd; //装初值设定波特率
34 1 TL1=0xfd;
35 1 TR1=1; //启动定时器
36 1 SM0=0; //串口通信模式设置
37 1 SM1=1;
38 1 // REN=1; //串口允许接收数据
39 1 PCON=0; //波特率不倍频
40 1 // SMOD=0; //波特率不倍频
41 1 // EA=1; //开总中断
42 1 //ES=1; //开串行中断
43 1 }
44
45 /*数码管的显示 */
46 void display(uint temp)
47 {
48 1 uchar shi,ge;
49 1 shi=temp/100;
50 1 ge=temp%100/10;
51 1
52 1 P1=0xbf;
53 1 P0=table[shi];
54 1
55 1 delay(1);
C51 COMPILER V7.06 TEST 06/26/2008 11:03:33 PAGE 2
56 1 P1=0x7f;
57 1 P0=table[ge];
58 1
59 1 delay(1);
60 1
61 1
62 1 }
63 void ds_reset(void)
64 {
65 1 ds=1;
66 1 _nop_(); //1us
67 1 ds=0;
68 1 TempDelay(80); //当总线停留在低电平超过480us,总线上所以器件都将被复位,这里//延时约530us总线停留在低
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -