📄 chengxu.lst
字号:
C51 COMPILER V8.05a CHENGXU 06/03/2012 14:23:21 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chengxu.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 汇诚科技
3
4 实现功能:此版配套测试程序
5 使用芯片:AT89S52
6 晶振:11.0592MHZ
7 波特率:9600
8 编译环境:Keil
9 作者:zhangxinchunleo
10 网站:www.ourhc.cn
11 淘宝店:汇诚科技 http://shop36330473.taobao.com
12 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
13 /********************************************************************
14 程序说明:
15 1、所有IO口流水灯3次。
16 2、所有IO口闪烁输出5次。
17 3、按下P2.0按键点亮P1.0灯,按下P2.1按键点亮P1.1灯,按下P2.2按键点亮P1.2灯,按下P2.3按键点亮P1.3灯,
18 4、接收串口发送的数据再返回原值。
19 ********************************************************************/
20 #include<reg52.h> //库文件
21 #define uchar unsigned char//宏定义无符号字符型
22 #define uint unsigned int //宏定义无符号整型
23
24 sbit P10=P1^0;
25 sbit P11=P1^1;
26 sbit P12=P1^2;
27 sbit P13=P1^3;
28
29 sbit P14=P1^4;
30 sbit P15=P1^5;
31 sbit P16=P1^6;
32 sbit P17=P1^7;
33 /********************************************************************
34 初始定义
35 *********************************************************************/
36 uchar dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
37 /********************************************************************
38 延时函数
39 *********************************************************************/
40 void delay()//延时程序 0.2秒
41 {
42 1 uchar m,n,s;
43 1 for(m=50;m>0;m--)
44 1 for(n=20;n>0;n--)
45 1 for(s=248;s>0;s--);
46 1 }
47
48 /********************************************************************
49 功能:串口初始化,波特率9600,方式1
50 *********************************************************************/
51 void Init_Com(void)
52 {
53 1 TMOD = 0x20;
54 1 PCON = 0x00;
55 1 SCON = 0x50;
C51 COMPILER V8.05a CHENGXU 06/03/2012 14:23:21 PAGE 2
56 1 TH1 = 0xFd;
57 1 TL1 = 0xFd;
58 1 TR1 = 1;
59 1 }
60 /********************************************************************
61 闪烁函数
62 *********************************************************************/
63 void shanshuo(uchar j)
64 {
65 1 uchar i;
66 1 for(i=0;i<j;i++)
67 1 {
68 2 P0=0X00;P1=0X00;P2=0X00;P3=0X00;
69 2 delay();
70 2 P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;
71 2 delay();
72 2 }
73 1 }
74 /********************************************************************
75 流水灯函数
76 *********************************************************************/
77 void liushuideng(uchar j)
78 {
79 1 uchar i,temp,a,k;
80 1 for(i=0;i<j;i++)
81 1 {
82 2 temp=0xfe; //11111110定义每次一个灯亮
83 2 P3=P2=P0=P1=temp;//直接对1/0口赋值,使批输出低电平。
84 2 delay();//延时
85 2 for(k=1;k<8;k++)//实现广告灯的从右到左移动
86 2 {
87 3 a=temp<<k; //左移i位
88 3 P3=P2=P0=P1=a;//相与求值
89 3 delay();
90 3 }
91 2 }
92 1 }
93 /********************************************************************
94 主函数
95 *********************************************************************/
96 void main()
97 {
98 1 Init_Com();//串口初始化
99 1 liushuideng(3);//所有IO口流水灯3次
100 1 shanshuo(5);//所有IO口闪烁输出5次
101 1 while(1)
102 1 {
103 2 if(P14==0){P10=0;} //如果P1.4按键按下,P1.0口输出低电平,指示灯亮。
104 2 if(P15==0){P11=0;} //如果P1.5按键按下,P1.1口输出低电平,指示灯亮。
105 2 if(P16==0){P12=0;} //如果P1.6按键按下,P1.2口输出低电平,指示灯亮。
106 2 if(P17==0){P13=0;} //如果P1.7按键按下,P1.3口输出低电平,指示灯亮。
107 2
108 2 if(RI) //扫描判断是否接收到数据,
109 2 {
110 3 dat=SBUF; //接收数据SBUF赋与dat
111 3 RI=0; //RI 清零。
112 3 SBUF=dat; //在原样把数据发送回去
113 3 }
114 2 }
115 1 }
116
117 /********************************************************************
C51 COMPILER V8.05a CHENGXU 06/03/2012 14:23:21 PAGE 3
118 结束
119 *********************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 169 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 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 + -