📄 text1.lst
字号:
C51 COMPILER V7.50 TEXT1 08/07/2008 16:48:48 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************************************
2 * 文 件 名:test1.c
3 * 功 能:四位数码管静态显示(共阳)
4 * 硬件条件:1.CPU型号:AT89S52
5 * 2.晶振:12.000MHz
6 * 3.用跳线帽短接P0.0_SI1
7 * 用跳线帽短接P0.1_RCK1
8 * 用跳线帽短接P0.2_SCK1
9 * 用跳线帽短接P0.3_SMG1
10 * 用跳线帽短接P0.4_SMG2
11 * 用跳线帽短接P0.5_SMG3
12 * 用跳线帽短接P0.6_SMG4
13 * 作 者:韩泉城
14 *********************************************************************************************/
15 #include "reg52.h" // 包含头文件
16
17 /* 与编译器无关的数据类型定义 */
18 /********************************************************************************************/
19 typedef unsigned char uint8; // 无符号8位整型变量
20 typedef signed char int8; // 有符号8位整型变量
21 typedef unsigned short uint16; // 无符号16位整型变量
22 typedef signed short int16; // 有符号16位整型变量
23 typedef unsigned int uint32; // 无符号32位整型变量
24 typedef signed int int32; // 有符号32位整型变量
25 typedef float fp32; // 单精度浮点数(32位长度)
26 typedef double fp64; // 双精度浮点数(64位长度)
27 /********************************************************************************************/
28 /* 定义位变量 */
29 sbit P0_0 = P0 ^ 0;
30 sbit P0_1 = P0 ^ 1;
31 sbit P0_2 = P0 ^ 2;
32 sbit P0_3 = P0 ^ 3;
33 sbit P0_4 = P0 ^ 4;
34 sbit P0_5 = P0 ^ 5;
35 sbit P0_6 = P0 ^ 6;
36
37
38 #define SMG1_ON() (P0_3=0) // 定义"SMG1_ON()"为P0.3输出低电平,选中数码管1
39 #define SMG1_OFF() (P0_3=1) // 定义"SMG1_OFF()"为P0.3输出高电平,不选中数码管1
40 #define SMG2_ON() (P0_4=0) // 定义"SMG2_ON()"为P0.4输出低电平,选中数码管2
41 #define SMG2_OFF() (P0_4=1) // 定义"SMG2_OFF()"为P0.4输出高电平,不选中数码管2
42 #define SMG3_ON() (P0_5=0) // 定义"SMG3_ON()"为P0.5输出低电平,选中数码管3
43 #define SMG3_OFF() (P0_5=1) // 定义"SMG3_OFF()"为P0.5输出高电平,不选中数码管3
44 #define SMG4_ON() (P0_6=0) // 定义"SMG4_ON()"为P0.6输出低电平,选中数码管4
45 #define SMG4_OFF() (P0_6=1) // 定义"SMG4_OFF()"为P0.6输出高电平,不选中数码管4
46 #define SMG_ALL_OFF() P0_3=1;P0_4=1;P0_5=1;P0_6=1 //全部数码管都不选中
47 #define SMG_ALL_ON() P0_3=0;P0_4=0;P0_5=0;P0_6=0 //全部数码管都被选中
48
49
50 #define char_0 0xc0 // 字符'0'的数码管显示编码
51 #define char_1 0xf9 // 字符'1'的数码管显示编码
52 #define char_2 0xa4 // 字符'2'的数码管显示编码
53 #define char_3 0xb0 // 字符'3'的数码管显示编码
54 #define char_4 0x99 // 字符'4'的数码管显示编码
55 #define char_5 0x92 // 字符'5'的数码管显示编码
C51 COMPILER V7.50 TEXT1 08/07/2008 16:48:48 PAGE 2
56 #define char_6 0x82 // 字符'6'的数码管显示编码
57 #define char_7 0xf8 // 字符'7'的数码管显示编码
58 #define char_8 0x80 // 字符'8'的数码管显示编码
59 #define char_9 0x90 // 字符'9'的数码管显示编码
60 #define char_A 0x88 // 字符'A'的数码管显示编码
61 #define char_b 0x83 // 字符'b'的数码管显示编码
62 #define char_C 0xc6 // 字符'C'的数码管显示编码
63 #define char_d 0xa1 // 字符'd'的数码管显示编码
64 #define char_E 0x86 // 字符'E'的数码管显示编码
65 #define char_F 0x8e // 字符'F'的数码管显示编码
66 #define char_y 0x91 // 字符'y'的数码管显示编码
67
68 #define char_empty 0xff // 单个数码管清空显示编码
69 #define char_full 0x00 // 单个数码管全选显示编码
70
71
72 #define SI1_H() (P0_0=1) // 定义"SI1_H()"为P0.0输出高电平,作为74HC595的数据输入信
-号
73 #define SI1_L() (P0_0=0) // 定义"SI1_L()"为P0.0输出低电平,作为74HC595的数据输入信
-号
74
75 #define RCK1_H() (P0_1=1) // 定义"RCK1_H()"为P0.1输出高电平,作为74HC595的片选输入
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -