51单片机C语言编程基础及实例[收.pdf





《51单片机C语言编程基础及实例[收.pdf》由会员分享,可在线阅读,更多相关《51单片机C语言编程基础及实例[收.pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、51 单片机 C 语言编程基础及实例时间:2008-01-08 来源:作者:点击:80792 字体大小:【大 中 小】基础知识:51 单片机编程基础第一节:单数码管按键显示第二节:双数码管可调秒表第三节:十字路口交通灯第四节:数码管驱动第五节:键盘驱动第六节:低频频率计第七节:电子表第八节:串行口应用基础知识:51 单片机编程基础单片机的外部结构:1.DIP40 双列直插;2.P0,P1,P2,P3 四个 8 位准双向I/O 引脚;(作为 I/O 输入时,要先输出高电平)3.电源 VCC(PIN40)和地线GND(PIN20);4.高电平复位RESET(PIN9);(10uF 电容接 VCC与
2、 RESET,即可实现上电复位)5.内置振荡电路,外部只要接晶体至X1(PIN18)和 X0(PIN19);(频率为主频的12 倍)6.程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM 中的程序)7.P3 支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O 部件:(所为学习单片机,实际上就是编程控制以下I/O 部件,完成指定任务)1.四个 8 位通用 I/O 端口,对应引脚P0、P1、P2 和 P3;2.两个 16 位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1)3.一个串行通信接口;(SCON,SBUF)4.一个中断控制器;(I
3、E,IP)针对 AT89C52 单片机,头文件AT89x52.h 给出了 SFR 特殊功能寄存器所有端口的定义。C 语言编程基础:1.十六进制表示字节0 x5a:二进制为01011010B;0 x6E 为 01101110。2.如果将一个16 位二进数赋给一个8 位的字节变量,则自动截断为低8 位,而丢掉高8 位。3.+var表示对变量var 先增一;var 表示对变量后减一。4.x|=0 x0f;表示为x=x|0 x0f;5.TMOD=(TMOD&0 xf0)|0 x05;表示给变量TMOD 的低四位赋值0 x5,而不改变TMOD 的高四位。6.While(1);表示无限执行该语句,即死循环
4、。语句后的分号表示空循环体,也就是;在某引脚输出高电平的编程方法:(比如 P1.3(PIN4)引脚)代码1.#include /该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2.void main(void )/void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.4.P1_3=1;/给 P1_3 赋值 1,引脚 P1.3就能输出高电平VCC 5.While(1);/死循环,相当 LOOP:goto LOOP;6.注意:P0 的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至 VCC 电源。在某引脚输出低电平的编程方法:(比如 P2.7 引脚)代码1.#in
5、clude /该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2.void main(void)/void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.4.P2_7=0;/给 P2_7 赋值 0,引脚 P2.7就能输出低电平GND 5.While(1);/死循环,相当 LOOP:goto LOOP;6.在某引脚输出方波编程方法:(比如 P3.1 引脚)代码1.#include /该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2.void main(void )/void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.4.While(1)/
6、非零表示真,如果为真则执行下面循环体的语句文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3
7、N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH
8、3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 H
9、H3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10
10、HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10
11、 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H1
12、0 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L35.6.P3_1=1;/给 P
13、3_1 赋值 1,引脚 P3.1就能输出高电平VCC 7.P3_1=0;/给 P3_1 赋值 0,引脚 P3.1就能输出低电平GND 8./由于一直为真,所以不断输出高、低、高、低,从而形成方波9.将某引脚的输入电平取反后,从另一个引脚输出:(比如P0.4=NOT(P1.1))代码1.#include /该头文档中有单片机内部资源的符号化定义,其中包含P0.4和 P1.1 2.void main(void)/void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.4.P1_1=1;/初始化。P1.1作为输入,必须输出高电平5.W hile(1)/非零表示真,如果为真则执行下面循
14、环体的语句6.7.i f(P1_1=1)/读取 P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC 8.P0_4=0;/给 P0_4 赋值 0,引脚 P0.4就能输出低电平GND 9.else/否则 P1.1输入为低电平GND 10./P0_4=0;/给 P0_4 赋值 0,引脚 P0.4就能输出低电平GND 11.P0_4=1;/给 P0_4 赋值 1,引脚 P0.4就能输出高电平VCC 12./由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平13.将某端口8 个引脚输入电平,低四位取反后,从另一个端口8 个引脚输出:(比如P2=NOT(P3))代码1.#in
15、clude /该头文档中有单片机内部资源的符号化定义,其中包含P2 和 P3 2.void main(void )/void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.4.P3=0 xff;/初始化。P3 作为输入,必须输出高电平,同时给P3 口的 8 个引脚输出高电平5.While(1)/非零表示真,如果为真则执行下面循环体的语句6./取反的方法是异或1,而不取反的方法则是异或0 7.P2=P30 x0f/读取 P3,就是认为P3 为输入,低四位异或者1,即取反,然后输出8./由于一直为真,所以不断将P3 取反输出到P2 9.文档编码:CK2C6J1E4H10 HH3N5
16、B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N
17、5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3
18、N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH
19、3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 H
20、H3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10
21、HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10
22、 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3文档编码:CK2C6J1E4H10 HH3N5B4Z5J10 ZQ3D10X3R1L3注意:一个字节的8 位 D7、D6 至 D0,分别输出到P3.7、P3.6 至 P3.0,比如 P3=0 x0f,则
23、P3.7、P3.6、P3.5、P3.4 四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0 四个引脚都输出高电平。同样,输入一个端口 P2,即是将P2.7、P2.6 至 P2.0,读入到一个字节的8 位 D7、D6 至 D0。第一节:单数码管按键显示单片机最小系统的硬件原理接线图:1.接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF 2.接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF 3.接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理4.接配置:EA(PIN31)。说
24、明原因。发光二极的控制:单片机I/O 输出将一发光二极管LED 的正极(阳极)接P1.1,LED 的负极(阴极)接地GND。只要 P1.1 输出高电平VCC,LED 就正向导通(导通时LED 上的压降大于1V),有电流流过LED,至发 LED 发亮。实际上由于 P1.1 高电平输出电阻为10K,起到输出限流的作用,所以流过 LED 的电流小于(5V-1V)/10K=0.4mA。只要 P1.1 输出低电平GND,实际小于0.3V,LED 就不能导通,结果LED 不亮。开关双键的输入:输入先输出高一个按键 KEY_ON 接在 P1.6 与 GND 之间,另一个按键KEY_OFF 接 P1.7 与
25、GND 之间,按 KEY_ON 后LED 亮,按 KEY_OFF 后 LED 灭。同时按下LED 半亮,LED 保持后松开键的状态,即ON 亮 OFF 灭。代码1.#include 2.#define LED P11 /用符号 LED 代替 P1_1 3.#define KEY_ON P16 /用符号 KEY_ON 代替 P1_6 4.#define KEY_OFF P17 /用符号 KEY_OFF 代替 P1_7 5.void main(void)/单片机复位后的执行入口,void表示空,无输入参数,无返回值6.7.KEY_ON=1;/作为输入,首先输出高,接下KEY_ON,P1.6则接地为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 语言 编程 基础 实例

限制150内