你好。51单片机的晃晃灯程序能给点参考吗。 51单片机点灯程序
51\u5355\u7247\u673a\u4e2d\u547c\u5438\u706f\u7684\u7a0b\u5e8f\u6211\u6709\u70b9\u4e0d\u61c2\u8fde\u7eed\u8c03\u6574\u300a\u53d1\u5149\u7684\u65f6\u95f4\u300b\u3001\u300a\u4e0d\u53d1\u5149\u7684\u65f6\u95f4\u300b\uff0c
LED \u7684\u4eae\u5ea6\uff0c\u5c31\u9010\u6e10\u7684\u53d8\u4e86\u3002
#include
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit D6=P1^5;
sbit D7=P1^6;
sbit D8=P1^7;
void delay(unsigned int z);
void main()
{ while(1)
{ D1=0;
delay(100);
D1=1;
delay(100);
D2=0;
delay(100);
D2=1;
delay(100);
D3=0;
delay(100);
D3=1;
delay(100);
D4=0;
delay(100);
D4=1;
delay(100);
D5=0;
delay(100);
D5=1;
delay(100);
D6=0;
delay(100);
D6=1;
delay(100);
D7=0;
delay(100);
D7=1;
delay(100);
D8=0;
delay(100);
D8=1;
delay(1000);
D8=0;
delay(500);
D8=1;
delay(500);
D7=0;
delay(500);
D7=1;
delay(500);
D6=0;
delay(500);
D6=1;
delay(500);
D5=0;
delay(500);
D5=1;
delay(500);
D4=0;
delay(500);
D4=1;
delay(500);
D3=0;
delay(500);
D3=1;
delay(500);
D2=0;
delay(500);
D2=1;
delay(500);
D1=0;
delay(500);
D1=1;
delay(500);
}
}
void delay(unsigned int z)
{ unsigned int x,y;
for(x=z;x>0;x--)
for(y=124;y>0;y--);
}
\u8fd9\u4e2a\u662fPI\u53e3\u5ef6\u65f6\u70b9\u4eae\u7684\u7a0b\u5e8f \u867d\u7136\u7e41\u7410\u4f46\u662f\u4fbf\u4e8e\u76f4\u89c2
1.1 ■寻找单片机 3
1.1.1 电磁炉与单片机 4
1.1.2 MP3播放机与单片机 5
1.1.3 更多单片机 5
1.2 ■学习单片机 6
1.2.1 掌握单片机基础知识 6
1.2.2 理解单片机系统 6
1.2.3 成为单片机系统设计师 7
1.3 ■单片机之家 7
1.3.1 Intel 8051单片机 7
1.3.2 PIC单片机 8
1.3.3 AVR单片机 9
1.3.4 其他单片机 9
1.4 ■应用体验--数字温度计 9
1.4.1 数字温度计工作原理 10
1.4.2 体验数字温度计 10
1.5 ■实例解读--装小球系统 11
1.5.1 需求分析 11
1.5.2 系统框架 12
第2章 如何成为单片机系统设计师 13
2.1 ■需要准备哪些 13
2.1.1 综合素质 13
2.1.2 软件工具 15
2.1.3 硬件工具之一:面包板 15
2.1.4 硬件工具之二:万用板和印刷电路板 18
2.1.5 焊接工具 19
2.1.6 焊接方法 21
2.2 ■单片机系统设计流程 22
2.2.1 需求分析 22
2.2.2 电路设计 23
2.2.3 程序设计 24
2.2.4 系统调试 24
2.3 ■应用体验--单片机控制下的发光二极管 25
2.3.1 发光二极管工作原理 25
2.3.2 单片机的控制 26
2.3.3 体验单片机控制发光二极管 26
2.4 ■实例解读--反应时间测试仪 27
2.4.1 需求分析 27
2.4.2 电路设计 27
2.4.3 程序设计 28
第3章 单片机系统登场 30
3.1 ■单片机系统组成 30
3.1.1 单片机本身 31
3.1.2 系统的构成 31
3.2 ■单片机系统抽丝剥茧 32
3.2.1 AT89S51单片机的"外衣" 33
3.2.2 AT89S51单片机的管脚 34
3.2.3 常见外设 36
3.3 ■元器件插曲之一:变压器 38
3.3.1 变压器基础知识 38
3.3.2 电源变压器 39
3.4 ■元器件插曲之二:二极管与整流 40
3.4.1 二极管基础知识 40
3.4.2 整流 40
3.4.3 整流全桥 42
3.5 ■元器件插曲之三:电容 43
3.5.1 电容基础知识 43
3.5.2 电容的种类 44
3.5.3 电源滤波 46
3.6 ■元器件插曲之四:三端稳压与单片机系统电源 47
3.6.1 三端稳压基础知识 47
3.6.2 单片机系统电源方案一:自制直流稳压电源 48
3.6.3 单片机系统电源方案二:电源适配器 48
3.6.4 单片机系统电源方案三:USB口供电 49
3.7 ■元器件插曲之五:晶振与振荡器 50
3.7.1 晶振基础知识 50
3.7.2 振荡器 51
3.8 ■诠释单片机最简系统 52
3.8.1 单片机最简系统 52
3.8.2 电源端(VCC、GND) 52
3.8.3 时钟信号端(XTAL1、XTAL2) 53
3.8.4 复位端(RST) 54
3.8.5 外部程序存储器访问控制端( ) 55
3.8.6 从最简系统出发 56
3.9 ■元器件插曲之六:电阻 56
3.9.1 电阻基础知识 56
3.9.2 电阻的参数和种类 58
3.9.3 电阻的分压、限流、上拉作用 59
3.10 ■从单片机最简系统开始设计 60
3.10.1 发光二极管交替发光 61
3.10.2 程序设计 61
3.10.3 初见汇编语言 63
3.10.4 初识指令 64
3.10.5 立即数 65
3.11 ■应用体验--发光二极管的交替发光 66
3.11.1 控制交替发光的原理 66
3.11.2 体验交替发光 66
3.12 ■元器件插曲之七:开关 66
3.12.1 开关基础知识 66
3.12.2 常用开关 67
3.13 ■实例解读--与发光二极管的交互 68
3.13.1 需求分析 68
3.13.2 电路设计 69
3.13.3 程序设计 69
3.13.4 延时子程序 72
第4章 单片机系统设计辅助软件 74
4.1 ■Proteus单片机系统仿真软件 74
4.1.1 Proteus软件界面 75
4.1.2 用Proteus仿真 76
4.2 ■µVision单片机程序开发 82
4.2.1 µVision软件界面 83
4.2.2 新建和保存项目 83
4.2.3 向项目中添加文件 84
4.2.4 汇编程序,生成执行代码 87
4.2.5 生成下载到单片机的执行代码HEX文件 88
4.3 ■µVision的调试及仿真功能 89
4.3.1 调试界面 89
4.3.2 虚拟逻辑分析仪 89
4.4 ■应用体验--把程序下载到单片机里 92
4.4.1 下载器与单片机 92
4.4.2 体验下载过程 92
4.5 ■实例解读--流水灯 93
4.5.1 需求分析 93
4.5.2 电路设计 94
4.5.3 软件设计 94
第2篇 揭 密
单片机的内部结构是怎样的?单片机开发经常会用到哪些电子技术和元器件知识?还有那困扰了很多人的单片机编程语言……本篇将生动地通过诸多实例带出单片机的基础知识,在遇到相关模电、数电、元器件知识时会有及时的补充说明,带领读者一点点揭开单片机的神秘面纱。
第5章 单片机的触角--I/O口 101
5.1 ■何谓I/O口 101
5.1.1 I/O口的功能 101
5.1.2 I/O口与单片机的关系 102
5.1.3 I/O口的操作 103
5.2 ■元器件插曲之八:场效应管 104
5.2.1 JFET 105
5.2.2 MOSFET 106
5.3 ■元器件插曲之九:逻辑门 106
5.3.1 非门 106
5.3.2 或门 107
5.3.3 或非门 107
5.3.4 与门 107
5.3.5 与非门 107
5.3.6 异或门 108
5.3.7 缓冲器 108
5.4 ■元器件插曲之十:锁存器与触发器 108
5.4.1 门控D锁存器 109
5.4.2 边沿D触发器 109
5.5 ■I/O口结构探密 110
5.5.1 P1口 110
5.5.2 P3口 110
5.5.3 P0口 111
5.5.4 P2口 112
5.5.5 I/O口小结 112
5.6 ■应用体验--控制流水灯 112
5.6.1 功能与电路 113
5.6.2 体验控制流水灯 113
5.7 ■实例解读--晃晃灯 113
5.7.1 原理分析 114
5.7.2 需求分析 114
5.7.3 电路设计 114
5.7.4 软件设计 116
第6章 七段数码管显示 118
6.1 ■二进制与数据 118
6.1.1 二进制与数字 118
6.1.2 二进制与语音 119
6.1.3 二进制与图像 120
6.2 ■元器件插曲之十一:七段数码管 121
6.2.1 七段数码管原理 121
6.2.2 七段数码管显示数字 122
6.3 ■应用体验--计时器 123
6.3.1 功能与电路 124
6.3.2 体验计时器 124
6.4 ■元器件插曲之十二:蜂鸣器 125
6.4.1 蜂鸣器 125
6.4.2 蜂鸣器如何工作 125
6.5 ■元器件插曲之十三:三极管及三极管开关 125
6.5.1 三极管基础 126
6.5.2 三极管的直流放大特性 128
6.5.3 三极管的直流增益 128
6.5.4 三极管的电流关系式 129
6.5.5 三极管开关 129
6.6 ■实例解读--带声音提示的秒表 130
6.6.1 需求分析 130
6.6.2 电路设计 130
6.6.3 开关抖动的处理 130
6.6.4 计时中数字的增加 133
6.6.5 软件设计 134
第7章 解剖单片机 136
7.1 ■单片机的功耗 136
7.1.1 运行功耗 137
7.1.2 I/O口驱动功耗 137
7.1.3 空闲模式 137
7.1.4 待机模式 138
7.2 ■单片机内部结构 138
7.2.1 从I/O口到内部结构 138
7.2.2 数据在内部交换 139
7.2.3 算术逻辑单元(ALU) 140
7.2.4 在µVision中观察寄存器 141
7.3 ■单片机的程序存储器 142
7.3.1 整体结构 143
7.3.2 程序下载到哪里 144
7.3.3 片内程序存储器 144
7.3.4 程序计数器PC 145
7.3.5 是片内还是片外程序存储器 145
7.3.6 在µVision中观察程序存储器 147
7.4 ■单片机的数据存储器 149
7.4.1 片内数据存储器 149
7.4.2 工作寄存器区(00H~1FH) 150
7.4.3 位寻址区(20H~2FH) 151
7.4.4 开放区(30H~7FH) 153
7.4.5 在µVision中观察数据存储器 153
7.5 ■单片机的特殊功能寄存器 155
7.5.1 特殊功能寄存器分布图 155
7.5.2 特殊功能寄存器的功能 156
7.5.3 特殊功能寄存器的字节操作 158
7.5.4 特殊功能寄存器的位操作 158
7.5.5 在µVision中观察特殊功能寄存器 159
7.6 ■应用体验--用取表方式实现流水灯 162
7.6.1 取表法 162
7.6.2 取表法小结 164
7.6.3 体验流水灯 165
7.7 ■实例解读--直接驱动七段数码管 165
7.7.1 需求分析 165
7.7.2 电路设计 165
7.7.3 软件设计 166
第8章 单片机与汇编指令 168
8.1 ■汇编语言真面目 168
8.1.1 汇编语言与高级语言 169
8.1.2 从汇编程序到执行代码 169
8.1.3 伪指令 170
8.2 ■指令的执行 173
8.2.1 振荡周期、机器周期、指令周期 173
8.2.2 指令的执行 174
8.3 ■寻址方式 175
8.3.1 直接寻址 175
8.3.2 间接寻址 175
8.3.3 寄存器寻址 176
8.3.4 寄存器特征寻址 177
8.3.5 立即寻址 177
8.3.6 变址寻址 177
8.4 ■指令分类 177
8.4.1 指令概述 178
8.4.2 指令的长度 178
8.5 ■算术运算指令 179
8.5.1 加法指令--ADD A, <src-byte> 179
8.5.2 带进位的加法指令--ADDC A, <src-byte> 180
8.5.3 带借位的减法指令--SUBB A,<src-byte> 181
8.5.4 自增/自减指令--INC <byte>/ DEC <byte> 181
8.5.5 乘法指令--MUL AB 182
8.5.6 除法指令--DIV AB 183
8.5.7 十进制调整指令--DA A 183
8.6 ■逻辑运算指令 184
8.6.1 与操作--ANL <dest-byte>,<src-byte> 184
8.6.2 或操作--ORL <dest-byte>, <src-byte> 185
8.6.3 异或操作--XRL <dest-byte>,<src-byte> 186
8.6.4 累加器A清0操作--CLR A 186
8.6.5 累加器A取反操作--CPL A 187
8.6.6 累加器A位移动操作--RL、RLC、RR、RRC 187
8.6.7 累加器A高低位交换操作--SWAP A 188
8.7 ■数据装载指令 189
8.7.1 片内数据装载指令--MOV<dest>, <src> 189
8.7.2 数据指针DPTR装载指令--MOV DPTR, #data16 190
8.7.3 堆栈指令--PUSH、POP 191
8.7.4 数据交换指令--XCH、XCHD 194
8.7.5 片外数据装载指令--MOVX <dest>, <src> 195
8.7.6 查表指令--MOVC <dest>, <src> 197
8.8 ■布尔指令 198
8.8.1 清0、置1、取反操作--CLR、SETB、CPL 198
8.8.2 布尔逻辑运算指令--ANL、ORL 199
8.8.3 位数据装载指令--MOV <dest-bit>,<src-bit> 200
8.8.4 布尔跳转指令--JC、JNC、JB、JNB、JBC 200
8.9 ■调用子程序指令 201
8.9.1 长调用指令--LCALL 201
8.9.2 绝对调用指令--ACALL 202
8.9.3 返回指令--RET、RETI 203
8.10 ■跳转与循环指令 203
8.10.1 无条件跳转指令--LJMP、AJMP、SJMP、JMP 203
8.10.2 条件跳转指令--JZ、JNZ 204
8.10.3 比较跳转指令--CJNE <dest-byte>, <src-byte>, rel 205
8.10.4 循环指令--DJNZ <byte>,<rel-addr> 207
8.10.5 无操作指令--NOP 208
8.11 ■应用体验--七段数码管的串行控制技术 208
8.11.1 串行与并行传输 208
8.11.2 串行控制七段数码管 209
8.11.3 程序设计 210
8.12 ■实例解读--指令应用(程序)实例 211
8.12.1 数据求和 211
8.12.2 减法与二进制的二补数 212
8.12.3 异或操作指令XRL用于比较寄存器数值 213
8.12.4 利用布尔指令产生矩形波信号 214
8.12.5 布尔指令应用于控制 215
第3篇 解 密
之所以单片机能成为控制核心,设计出包罗万象的应用系统来,是因为开发者利用了单片机提供的种种功能及各种外设。本篇将介绍单片机的各种功能,加上诸如传感器、模数转换、扫描显示、串行、中断的应用思维,结合更多的元器件、电子电路知识,为读者逐个解开实际的单片机系统的秘密。
第9章 传感器及模拟信号的处理 219
9.1 ■元器件插曲之十四:运算放大器 219
9.1.1 运算放大器基础 220
9.1.2 运算放大器的参数 221
9.1.3 运算放大器的黄金守则 222
9.2 ■基础运放电路 223
9.2.1 同相放大器 223
9.2.2 反相放大器 224
9.2.3 跟随器 225
9.2.4 向运放进行单电源供电 226
9.3 ■比较器 226
9.3.1 过零比较器 227
9.3.2 非过零比较器 227
9.3.3 迟滞比较器(施密特触发器) 228
9.4 ■具有运算功能的运放电路 229
9.4.1 加法放大器 229
9.4.2 单运放差分放大器 230
9.4.3 仪表放大器 232
9.5 ■滤波器 234
9.5.1 高通滤波器 234
9.5.2 低通滤波器 235
9.5.3 带通滤波器 236
9.5.4 带阻滤波器 238
9.6 ■传感器 238
9.6.1 压力传感器 239
9.6.2 光电传感器 242
9.6.3 温度传感器 243
9.7 ■应用体验--幅频变换 245
9.7.1 MPX4115A压力传感器 245
9.7.2 幅频变换器 247
9.8 ■实例解读--磁场强度的测量 248
9.8.1 霍尔传感器与磁场的测量 248
9.8.2 线性霍尔传感器3503 248
9.8.3 检测电路 250
第10章 ADC和DAC 251
10.1 ■模数转换 251
10.1.1 从模拟信号到数字信号 251
10.1.2 电平指示器中的ADC 253
10.2 ■元器件插曲之十五:ADC0804 255
10.2.1 管脚名称及功能 255
10.2.2 使能控制端 255
10.2.3 转换控制端 256
10.2.4 时钟信号 256
10.2.5 模拟输入电压范围 256
10.2.6 转换时间 256
10.2.7 接地 257
10.2.8 参考电平与分辨率 257
10.3 ■ADC与单片机 258
10.3.1 单片机控制ADC0804 258
10.3.2 程序设计 259
10.4 ■模拟信号的调理 260
10.4.1 电平变换电路 260
10.4.2 峰值检测器 261
10.4.3 绝对值电路 262
10.4.4 微分器和积分器 263
10.4.5 采样保持电路 264
10.4.6 接地问题 266
10.5 ■数模转换 268
10.5.1 数模转换基础 269
10.5.2 DAC0808 269
10.5.3 DAC的程序控制 270
10.6 ■如何选择ADC 271
10.6.1 常用ADC简介 271
10.6.2 如何确定位数 273
10.6.3 如何确定转换速率 273
10.6.4 如何确定是否需要采样保持器 273
10.6.5 如何确定工作电压和参考电平 274
10.7 ■如何选择DAC 274
10.7.1 如何确定分辨率 274
10.7.2 如何确定线性度 274
10.7.3 如何确定转换精度 274
10.7.4 如何理解建立时间 275
10.7.5 按参数条件选择 275
10.8 ■应用体验--DAC正弦波
发生器 276
10.8.1 正弦信号公式 276
10.8.2 正弦波发生程序 277
10.9 ■实例解读--数字温控系统 278
10.9.1 系统功能与硬件设计 278
10.9.2 程序设计 278
第11章 时间的计算 283
11.1 ■定时与计数 283
11.1.1 什么是定时 283
11.1.2 什么是计数 284
11.1.3 单片机的Timer 285
11.2 ■与Timer有关的寄存器 285
11.2.1 Timer实现的延时 285
11.2.2 Timer模式控制寄存器TMOD 286
11.2.3 Timer寄存器 288
11.2.4 Timer控制寄存器TCON 288
11.2.5 Timer用做定时/计数器小结 288
11.3 ■Timer的工作模式1 289
11.3.1 模式1的特点 289
11.3.2 模式1的设置 290
11.3.3 模式1的计数初始值 291
11.3.4 设计模式1的计数初始值 292
11.3.5 利用Timer进行长时间定时 294
11.4 ■Timer的工作模式0 295
11.4.1 模式0的特点 295
11.4.2 设计模式0的计数初始值 296
11.5 ■Timer的工作模式2 297
11.5.1 模式2的特点 297
11.5.2 模式2的设置 298
11.5.3 设计模式2的计数初始值 300
11.6 ■Timer的工作模式3 300
11.6.1 模式3的特点 300
11.6.2 模式3的设置 301
11.6.3 设计模式3的计数初始值 303
11.6.4 在Vision中观察Timer 303
11.7 ■计数器 305
11.7.1 计数器的应用 305
11.7.2 计数器的设置 306
11.7.3 在Vision中操作计数器 307
11.7.4 计数器的计数初始值设定 308
11.7.5 各种模式下的计数器 308
11.7.6 计数脉冲的要求 311
11.7.7 TMOD寄存器的门控位 312
11.8 ■看门狗 313
11.8.1 什么是看门狗 313
11.8.2 单片机的内置看门狗 313
11.9 ■应用体验--"叮咚"门铃 315
11.9.1 功能及电路 315
11.9.2 "叮咚"声发生程序 315
11.10 ■实例解读--频率计 318
11.10.1 利用计数器设计频率计 318
11.10.2 频率计的程序 318
第12章 扫描与显示 322
12.1 ■扫描多位七段数码管 322
12.1.1 动态扫描的原理 323
12.1.2 动态扫描操作指南 325
12.1.3 动态扫描方式程序 326
12.2 ■扫描键盘 327
12.2.1 什么是键盘 327
12.2.2 键盘的电路结构 328
12.2.3 键盘按键判断程序 329
12.2.4 键盘编码器芯片74C922 332
12.3 ■扫描发光二极管点阵 334
12.3.1 显示原理 334
12.3.2 发光二极管点阵器件结构 335
施密特触发器
加法放大器
差分放大器
仪表放大器
滤波器
压力传感器
光电传感器
温度传感器
霍尔传感器
模数转换器
电平移位器
增益控制器
峰值检测器
绝对值电路
微/积分器
采样保持器
系统接地
数模转换器
键盘
LED点阵
液晶屏
继电器
红外对管
直流电动机
PWM
步进电动机
RAM和ROM
EEPROM存储器
Flash存储
适用对象
不知从哪里开始学习单片机的人。有的朋友正准备开始学习单片机,但是陷于在市面上琳琅满目的单片机教程的选择中。本书的写作手法和内容叙述独特、新颖,是一本真正读起来不费劲、学起来不枯燥、用起来得心应手的参考书。这将极大提高学习的兴趣和吸收的效率。
广大的学生朋友。不管您的手里是否有了单片机的教程,都可以从本书一开始就找到学习单片机的崭新道路,这都归功于本书从头到尾丰富生动的、贴近生活的实例。如果您想真正高效地、深刻地、扎实地学习单片机基础知识和应用方法,不妨选择本书读一读。本书既可以单独作教程使用,也可作为一本参考书,讲述课堂内外与单片机有关的精彩案例。
老师们。如果能在课堂上使用本书中一些生动的单片机应用实例结合到知识介绍中,或者干脆把本书中知识描述、过程讲解、实例解析直接引入课堂,与学生们一起在单片机学习中互动。同时跟随本书深刻地对单片机原理、系统规划设计、软/硬件设计方法进行形象地学习,在活跃课堂气氛的同时,让学生真正掌握了单片机相关知识和学习的方法,岂不是事半功倍、皆大欢喜吗?
正想利用单片机设计系统的人。可能您在工作中、毕业设计中需要利用单片机结合外设设计一个应用系统来完成老板、老师布置的任务,但是原来掌握的单片机知识可能有些不够,不知道从何下手来设计单片机应用系统。本书将把单片机系统设计中包括电路知识、电子元器件知识、电子工艺、单片机系统组成方案等一粒粒"珍珠"串起来,实现为您带来设计的灵感和帮助您着手开始设计与制作。
内容结构
晃晃灯???具体要求能描述详细点吗???
绛旓細7.3.2 绋嬪簭涓嬭浇鍒板摢閲 1447.3.3 鐗囧唴绋嬪簭瀛樺偍鍣 1447.3.4 绋嬪簭璁℃暟鍣≒C 1457.3.5 鏄墖鍐呰繕鏄墖澶栫▼搴忓瓨鍌ㄥ櫒 1457.3.6 鍦µVision涓瀵熺▼搴忓瓨鍌ㄥ櫒 1477.4 鈻鍗曠墖鏈虹殑鏁版嵁瀛樺偍鍣 1497.4.1 鐗囧唴鏁版嵁瀛樺偍鍣 1497.4.2 宸ヤ綔瀵勫瓨鍣ㄥ尯(00H~1FH) 1507.4.3 浣嶅鍧鍖(20H~2FH) 1517.4.4 寮鏀惧尯(30H~7FH...