📄 proj_4.lst
字号:
C51 COMPILER V7.10 PROJ_4 03/02/2008 08:45:47 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE PROJ_4
OBJECT MODULE PLACED IN proj_4.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE proj_4.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 //ZC-51学习板实验源程序
3 //实验四 一位数码管计数器
4 //实验目的: 学习74HC164编程
5 //实验现象: 一位数码管计数显示
6 //http://www.ednchina.com/blog/zhichengdz/
7 //E-mail: zhicheng_dz@163.com
8
9 #include <reg52.h> //包括一个标准的51头函数
10
11 #define uchar unsigned char //预定义
12 #define uint unsigned int //预定义
13 #define ulong unsigned long //预定义
14
15 sbit SDA_164=P1^0; //74HC164端口定义
16 sbit SCLK_164=P1^1;
17 sbit DIG1=P1^2; //数码管位选端口
18 sbit DIG2=P1^3; //数码管位选端口
19 sbit DIG3=P1^4; //数码管位选端口
20 sbit DIG4=P1^5; //数码管位选端口
21
22 uchar code LedNumber[14]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80,0x00,0x04,0x5c};
23
24 void delay(int i,int j) //延时函数
25 {
26 1 int m;
27 1 for(;i>0;i--)
28 1 {
29 2 m=j;
30 2 for(;m>0;m--);
31 2 }
32 1 }
33
34 void wirteByte_74164 (uchar ch) //往74164中写一个字节
35 {
36 1 uchar i;
37 1 SCLK_164 = 0;
38 1 for (i=0;i<8;i++)
39 1 {
40 2 SDA_164 = ch&0x80;
41 2 SCLK_164 = 1;
42 2 ch = ch<<1;
43 2 SCLK_164 = 0;
44 2 }
45 1 }
46
47
48 void led_display (uchar ch) //一位数码管显示函数
49 {
50 1 wirteByte_74164 (LedNumber[ch]);
51 1 DIG4 = 0;
52 1 delay(300,200);
53 1 DIG4 = 1;
54 1 }
55
C51 COMPILER V7.10 PROJ_4 03/02/2008 08:45:47 PAGE 2
56 void main () //主函数
57 {
58 1 uchar ch;
59 1 while (1) //死循环
60 1 {
61 2 led_display (ch); //显示数字
62 2 ch++; //计数
63 2 if (ch>9)
64 2 {
65 3 ch=0;
66 3 }
67 2
68 2 }
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 106 ----
CONSTANT SIZE = 14 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -