手把手教你学51单片机(C语言版)
- 格式:pptx
- 大小:2.85 MB
- 文档页数:72
(四)说到这里,我们来讲讲数码管的显示方式,可分为两种:动态扫描和静态显示。
上面我们所说的即为静态显示。
但是如果我们采用动态扫描显示,那么就可以解决上面的问题,即可以显示多个数码管了。
上面我们所说的静态显示把数码管的COM脚接至VCC或GND端,其他的接至PX口上,这样只要PX口上输出相应的高低电平,就可以显示对应的数字或字符。
但是如果我们采用动态扫描的方法,比如显示6个数码管,硬件连接可以这样解决:a--dp还是接至P0.0--P0.7上,还有6个COM脚再接至另外口的P2.0--P2.5。
P0口作段选(控制数字字符)P2口作位选(选通哪个数码管导通)这样我们控制P0和P2口就可以控制6个数码管了。
但是,细心的朋友,会问这样的问题:P2位选,是让数码管一个一个亮的,那还是不能控制6个一起亮或灭嘛!?^_^ 想想好象是对的哦?怎么办...难道错了?嘿嘿,问你个问题?黑夜里,拿着一支烟,在你面前快速的晃动,你会发现什么样的现象?是不是原本不连续的点变成了一条看上去连续的曲线或者直线!再回过头来,仔细想想我们的数码管!原理是一样的,你可别忘了,我们的单片机可是一个计算机哦,计算机的运算速度,大家可想而知吧!这里再说说51单片机的机器周期和时钟周期等概念。
所谓机器周期就是访问一次存储器的时间。
而1个机器周期包括12个时钟周期。
如果单片机工作在12M晶体下,那么一个时钟周期为:1/12微妙。
一个机器周期12*1/12 = 1微妙。
如果晶体为6M,时钟周期和机器周期各是多少呢?在汇编中,我们还要关心,指令执行的机器周期长短不一,有1个周期、2个周期和4个周期等。
说着说着,跑了这么远了...还是回到原来的话题,如果我们把位选的P2也看作上面的“烟”一划而过,那么我们看到的是不是6个一起亮或一起灭了!^_^ 哈哈,原来如此... 记住,在任何某一时刻,有且只有一个数码管能发光。
如果你能把这句话理解了,你是真明白我的意思了!朋友,现在给你个任务,让6个数码管分别显示1、2、3、4、5、6。
我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机上接上最少的外围电路元件让单片机工作。
一般只须连接晶体、VCC、GND、RST即可,一般情况下,A T89C51的31脚须接高电平。
#include<reg51.h> //头文件定义。
或用#include<at89x51.h>其具体的区别在于:后者定义了更多的地址空间。
//在Keil安装文件夹中,找到相应的文件,比较一下便知!sbit P1_0 = P1 ^ 0; //定义管脚void main (void){while(1){P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效}}就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。
因为我们把LED的正通过电阻接至VCC。
P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。
那么这样就能达到了我们预先的要求了。
while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。
如果我们要试着点亮其他的LED,也类似上述语句。
这里就不再讲了。
点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。
我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。
假设我们有8个LED分别接在P1口的8个引脚上。
硬件连接,在P1_1--P1_7上再接7个LED即可。
例程如下:#include<reg51.h>sbit P1_0 = P1 ^ 0;sbit P1_1 = P1 ^ 1;sbit P1_2 = P1 ^ 2;sbit P1_3 = P1 ^ 3;sbit P1_4 = P1 ^ 4;sbit P1_5 = P1 ^ 5;sbit P1_6 = P1 ^ 6;sbit P1_7 = P1 ^ 7;void Delay(unsigned char a){unsigned char i;while( --a != 0){for(i = 0; i < 125; i++); //一个; 表示空语句,CPU空转。
相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。
不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚,更不用说他的英文全称和简称了。
单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。
简称为:单片微型计算机或单片机(Single Chip Computer)。
单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。
不过这一切都没什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。
现在我只想把我学习单片机的经历,详细地讲叙给大家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。
但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已!首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什么东西了。
还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机,但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。
嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候,我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出,或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。
于是,我横下一条心,坚持看我的单片机书和资料。
当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。
具体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上书或者资料,自己却什么也不知道了,根本不用说自己写程序了。
本文由63250272贡献 doc文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
教 第一章 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 程 目 录 1 硬件基础 1.模电部分 模电部分 电平特性 .…….…………………………………………………..88 电阻 ………………………………………………………………..88 电容 ………………………………………………………………..77 二极管 ……………………………………………………………..66 三极管 ……………………………………………………………..76 数码管 ……………………………………………………………..66 稳压管 ……………………………………………………………..77 场效应管 …………………………………………………………..88 光耦 ………………………………………………………………88 蜂鸣器 ……………………………………………………………..88 继电器 ……………………………………………………………..88 自恢复保险 ………………………………………………………..88 瞬态电压抑制器 …………………………………………………..88 晶闸管(可控硅) …………………………………………………….88 红外发送,接收头 ………………………………………………..88 晶振 ………………………………………………………………..88 按键,排针,端子…………………………………………….……….88 常用集成芯片 ……………………………………………………..88 2.数电部分 数电部分 1.2.1 二进制逻辑运算……………………………………………………….88 1.2.2 反相器 ……………………………………………………………..88 1.2.3 与非门 ……………………………………………………………..88 1.2.4 或非门 ……………………………………………………………..88 1.2.5 译码器 ……………………………………………………………..88 1.2.6 编码器 ……………………………………………………………..88 1.2.7 锁存器 ……………………………………………………………..88 1.2.8 触发器 ………………………………….………………………….99 1.2.9 数据选择器 ………………………………………………………..77 1.2.10 多谐振荡器 ………………………………………………………..56 1.2.11 A/D,D/A 转换器 ………………………………………..…………..88 3.单片机概述 单片机概述 什么是单片机 …………………………………………………….88 单片机的功能 …………………………………………………….88 单片机的标号信息及封装 ……………………….………………88 51 单片机硬件架构 ………………………………………………88 51 单片机外部引脚介绍 ..…………………………….………….88 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 第二章 软件安装及使用教程 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 Keil 软件安装过程 ……………………………………….……….88 Keil 工程的建立 …………………………………………………….88 Keil 常用按钮介绍 …………………………………………………88 下载软件 PROGISP 安装及配置 …………………………………87 安装下载器的 USB 驱动 …………………………………………88 点亮第一个发光二极管 …………………………………………..88 Keil 软件仿真调试 ………………………………………………..88 Proteus 仿真软件安装及使用 ……………………………….……88 2 第三章 3.1 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 单片机常用 C 语言基础 二进制与十六进制 ……………………………………………….88 数据类型,运算符与表达式 ……………………….……………88 while,do……while 语句 ……………………….………………….78 for 语句 ………………………………………………………………55 if….else…语句 ………………………………………………………77 switch…case…语句 ………………………………………………99 break,continue 语句 …………………………………………….88 goto 语句 ………………………………………………………….66 宏定义,数组及结构体 ………………………………………….77 函数定义及调用 ……………….…………………………………10 指针定义及应用 ………………………………………….………34 16 第四章 基础实验教程 16 4.1 实验一:点亮 LED …………………..……………………………16 4.2 实验二:流水灯 …………………..……………………………..19 4.3 实验三:数码管静态显示………………………………………..22 4.4 实验四:数码管动态显示…………………………………..……24 4.5 实验五:独立按键检测 …………………………………..……..29 4.6 实验六:矩阵键盘检测 ………………………………….…….30 4.7 实验七:基于计数器按键检测 ………………………….…….34 4.8 实验八:计数器实验 ……………………………………………38 4.9 实验九:定时器数字时钟(数码管显示) ……….…………..…40 4.10 实验十:外部中断实验 ……………………………………………44 4.11 实验十一:UART 串行通信实验 …………………………..…46 4.12 实验十二:存储实验(AT24C02) ……………………………….…52 4.13 实验十三:蜂鸣器奏曲实验………………………………………..…65 4.14 实验十四:18B20 温度传感器测温………………………..…………72 4.15 实验十五:红外遥控解码实验……………………………..…………83 4.16 实验十六:AD 转换实验…………………………………..…..…..90 4.17 实验十七:红外对管实验………………………………………….97 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 实验十八:液晶 LCD1602 驱动实验………………………..….…..98 实验十九: 液晶 LCD12864 驱动实验…………………..………..104 实验二十:8*8 点阵 LED 显示……………………………….……111 实验二十一:DS1302 时钟芯片实验(基于数码显示 ..…………….113 实验二十二:继电器选通实验………………………………………..120 实验二十三:步进电机控制实验…………………………………..121 实验二十四:PWM 控制………………………………………………124 实验二十五:多机通信(基于 RS485)…………………………………128 第五章 高级实验教程 …………………………………………………..2 5.1 实验一:数字时钟 5.2 实验二:电子音乐 ……………………………………….……………19 5.3 实验三:步进马达控制 ………………………………….………….26 5.4 实验四:D/A 数模转换 ……………………………………….….…33 5.5 实验五:RS232 通信串口数据传输 ……………………….…….…37 5.6 实验六: I2C 总线控制实验 ………………………………….…….40 5.7 实验七: 气压测量系统实验 ………………………………………..46 5.8 实验八: 短距离无线数据传输系统 ………………………………..50 5.9 实验九: GPS 全球定位系统实验 ……………………….…………………60 3 第六章 电子设计大赛 1.直流稳压电源专题 直流稳压电源专题 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 整理电路 ..……………………………………………………….88 滤波电路 ……………………………………………………………88 集成稳压电路 ………………………………………………………88 ldo 稳压电路 …………………………………………………….88 DC-DC 开关电源 ………………………………………………..88 2.基础,高级运放专题 基础, 基础 6.2.1 运放概述 ………………………………………………………..88 6.2.2 同相放大器 ……………………………………………………..88 6.2.3 反相放大器 ……………………………………………………..88 6.2.4 电压跟随器………………………………………………………88 6.2.5 加法器……………………………………………………………88 6.2.6 差分放大器 ……………………………………………………..88 6.2.7 微分器 …………………………………………………………..88 6.2.8 积分器 ………………………………………………………..…88 6.2.9 简易低通滤波器 ………………………………………………..88 6.2.10 "电流-电压" 转换电路 …………………………………………88 6.2.11 全波整流电路 …………………………………………………..88 6.2.12 正弦波发生器 …………………………………………………..88 4 6.2.13 三角波发生器 …………………………………………………..88 6.2.14 高频放大电路 …………………………………………………..88 6.2.15 音频放大电路 …………………………………………………..88 3.传感器专题 传感器专题 6.3.1 0 温度传感器 …………………………………………..……………88 6.3.2 0 湿度传感器 …………………………………………………….88 6.3.3 人体传感器 …………………………………………………….88 6.3.4 酒精传感器 …………………………………………………….88 6.3.5 烟雾传感器 …………………………………………………….88 6.3.6 霍尔传感器 …………………………………………………….88 6.3.7 0 压力传感器 …………………………………………………….88 6.3.8 角度传感器 …………………………………………………….88 6.3.9 光电传感器 …………………………………………………….88 6.3.10 0 超声波传感器 ………………………………………………….88 4.电机专题 电机专题 6.4.1 6.4.2 6.4.3 直流电机原理与应用…………………………………………..88 步进电机原理与应用 …………………………………………88 舵机原理与应用 ………………………………………………88 5.实战设计 实战设计 6.5.1 万年历(含日程管理) ……………………………………….…..88 第七章 项目开发设计 7.1 7.2 7.3 7.4 项目开发概述 …………………………………………….……..88 智能抄表系统 ………………………………………………………88 水控机 ………………………………………………………………88 公交车自动报站系统 ………………………………………………88 3 第八章 拓展技术 8-1 8-2 8-3 8-4 高端技术有哪些 ……………………………………………………88 如何选择一个技术方向发展 ………………………………………..88 各个技术方向的就业前景 …………………………………………..88 各个技术方向的产品前景 …………………………………………..88 5 附录 A 单片机实验板简介 ST-51C 实验板硬件资源…………………………………………………..88 ST-51C 实验板配套资料…………………………………………………..88 ST-51C 实验板详细视频教程……………………………………………..88 5 ST-51C 实验板原理图……………………………………………………..88 ST-51C 实验板扩展 AVR 核心板 ..………………………………………88 参考文献 5 1本文由od1987贡献 pdf文档可能在WAP端浏览体验不佳。
中国科学技术大学业余无线电协会编目 录§1 前言 (1)§2 单片机简介 (2)2.1 数字电路简介 (2)2.2 MCS-51单片机简介 (2)2.3 Easy 51 Kit Pro简介 (5)2.4 Easy 51 Kit Pro电路功能分析 (5)§3 MCS-51单片机的C语言编程 (8)3.1 汇编语言 (8)3.2 建立你的第一个C项目 (8)3.3 生成hex文件 (12)3.4 Keil C语言 (14)3.5 单片机I/O (18)3.6 中断 (25)3.7 定时器/计数器 (27)3.8 定时器的应用举例 (29)3.9 外部中断 (34)3.10 串行通信 (38)3.11 定时器2 (43)3.12 看门狗 (47)3.13 空闲模式和掉电模式 (50)§4 MCS-51单片机C语言编程应用进阶 (51)4.1 扫描式键盘 (51)4.2 EEPROM芯片AT93C46的读写 (55)4.3 Keil C的高级使用 (63)§5 编写高质量的单片机C程序 (64)5.1 文件结构 (64)5.2 程序的版式 (66)5.3 单片机程序命名规则与变量选择 (70)5.4 表达式和基本语句 (73)5.5 函数设计 (77)5.6 单片机程序框架 (79)附图:Easy 51 Kit Pro电路图(最小系统板) (80)附图:Easy 51 Kit Pro电路图(学习板) (81)§1 前言什么是单片机,目前还没有一个确切的定义。
普通认为单片机是将CPU、RAM、ROM、定时器/计数器以及输入输出(I/O)接口电路等计算机主要部件集成在一块芯片上,这样所组成的芯片级微型计算机称为单片微型计算机(Single Chip Microcomputer)。
简称为单片微机或单片机。
利用单片机程序,可以实现对硬件系统的小型化的智能控制。