C51单片机教程第5章 - 副本 (3)
第5章+单片机控制发光二极管
5.3.1 点亮一盏灯
【例5-1】 利用AT89S51单片机点亮灯led,原理电路 见图5-1,灯led接单片机P1.0引脚上,编写程序使led点亮。
5.3.1 点亮一盏灯
5.3.1 点亮一盏灯
参考程序(方法一):
#include <reg51.h>//定义头文件 sbit led=P1^0;//对端口进行位定义 void main() {
5.4 流水灯的实现
图5-2 单片机控制的流水灯
5.4 流水灯的实现
参考程序(方法一位定义): #include <reg52.h> #define uint unsigned int sbit led0=P1^0; sbit led1=P1^1; sbit led2=P1^2; sbit led3=P1^3; sbit led4=P1^4; sbit led5=P1^5; sbit led6=P1^6; sbit led7=P1^7; void delayms(uint xms) {
CONTENTS
5.3 I/O端口的编程举例
目
录
5.4 流水灯的实现
5.5 交通灯的实现
5.2 C51程序主体结构
(1)对I/O端口编程控制时,要对I/O端口特殊功能寄存 器声明,在C51的编译器中,这项声明包含在头文件reg51.h 中,编程时,可通过预处理命令#include<reg51.h>,把这个 头文件包含进去。
led=0;
}
5.3.1 点亮一盏灯
参考程序(方法二):
#include <reg52.h> void main()
如何实现一个灯 接一个灯的点亮?
{
P1=0xfe;//11111110
单片机原理及应用——C51编程+Proteus仿真(第3版)课件第5章 开关键盘显示器接口设计
在【例5-1】基础上,编写控制发光二极管反复循环点亮的流水灯。 【例5-2】电路仍采用图5-2,制作由上至下再由下至上反复循环点亮显
示的流水灯,3种方法实现。
(1)数组的字节操作实现 建立1个字符型数组,将控制8个LED显示的8位数据作为数组元素,依
次送P1口。参考程序:
#include <reg51.h> #define uchar unsigned char uchar tab[ ]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f ,
// 读入P1口的状态,送入state // 屏蔽P1口的高6位 // 判P1口低2位开关状态
{
case 0: P2=0x01; break; case 1: P2=0x02; break; case 2: P2=0x04; break; case 3: P2=0x08; break;
// 点亮P2.0脚LED //点亮P2.1脚LED // 点亮P2.2脚LED //点亮P2.3脚LED
} }
//左移初值赋给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据左移一位 // 赋右移初值给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据右移一位
15
程序说明: 注意使用移位运算符“>>”、“<<”与使用循环左移函数 “_crol_”和循环右移函数“_cror_” 区别。左移移位运算“<<”是将高位 丢弃,低位补0 ;右移移位运算、“>>”是将低位丢弃,高位补0。而循环 左移函数“_crol_” 是将移出的高位再补到低位,即循环移位;同理循环 右移函数“_cror_” 是将移出的低位再补到高位。
单片机C51课程总结
定义位地址符号伪指令——BIT
by wky
12
第4章 单片机的C51语言
C51的程序结构
与标准C程序结构完全相同
语法规则、编程方法与标准C也相同
C51的变量——数据类型
与标准C 相同的数据类型:字符型(char)、整型 (int)、长整型(long)、浮点型(float)、指针型 C51扩充数据类型:位变量(bit)、SFR(sfr或
3
by wky
第2章 MCS-51单片机结构及原理
8051单片机的结构
8051CPU、4KB程序存储器、128B数据存储器、
4个并行接口、1个串行接口、2个外部中断、2
个定时器/计数器
8051CPU(运算器+控制器)
程序计数器(Program Counter——PC) 数据指针(Data Pointer ——DPTR)
MCS-51单片机课程总结
(单片机设计技术)
1
by wky
第1章 单片机基础知识概述
单片机的组成
CPU
存储器(程序存储器和数据存储器)
I/O接口(并行口、串行口、中断、定时器/计数 器、A/D转换器、EEPROM、SPI接口……)
总线
地址总线AB(Address Bus)
数据总线DB(Data Bus)
控制总线CB(Control Bus)
2
by wky
第1章 单片机基础知识概述
数制及数制转换
十进制、二进制、十六进制
计算机中带符号数的表示法
原码、反码、补码(正数表示相同,负数表示 不同)【熟悉8位二进制补码】
计算机中的编码
BCD码(熟悉8421BCD码)
C51单片机基础学习教程
C51单片机基础学习教程C51单片机是一种常用的8位单片机,广泛应用于工业控制、家用电器和电子产品等领域。
若想学习C51单片机,首先需要掌握C语言的基础知识。
以下是一个C51单片机基础学习教程,介绍了C语言的相关内容,并给出了一个简单的例子。
一、C语言基础1.数据类型:C语言中主要有整型、字符型、浮点型等数据类型。
可以使用关键字来定义变量并赋值。
示例:int num = 10;char ch = 'A';float f = 3.14;2.运算符:C语言中有算术运算符、逻辑运算符、关系运算符等。
可以用于对变量进行运算和比较。
示例:int a = 10, b = 5;int sum = a + b;int result = (a > b) ? a : b;3.控制语句:C语言中有顺序结构、分支结构和循环结构。
可以用于控制程序的执行流程。
示例:if (num > 0)printf("The number is positive.");} else if (num < 0)printf("The number is negative.");} elseprintf("The number is zero.");4.函数:C语言中可以使用函数将代码模块化,并且可以通过参数和返回值传递数据。
示例:int add(int a, int b)return a + b;二、C51单片机入门2. 创建新项目:在Keil软件中创建一个新的项目,并选择C51单片机作为目标芯片。
3. 编写程序:在新建的项目中打开main.c文件,编写C语言程序。
可以使用C语言的代码编写方式。
示例:#include <reg51.h>//定义LED端口sbit LED = P1^0;void mai//设置LED口为输出LED=0;while (1)//LED闪烁LED=~LED;//延时for (int j = 0; j < 100; j++)}}}5. 调试程序:在Keil软件中打开调试窗口,可以对程序进行单步调试,查看程序的执行流程和变量的值。
《C51单片机技术教程》
《C51单片机技术教程》第一章:C51单片机概述本章主要介绍了C51单片机的基本概念、发展历史以及应用领域。
通过对单片机的定义和分类的讲解,读者能够了解到单片机的特点和功能。
第二章:C51单片机的基本原理本章主要介绍了C51单片机的基本原理,包括单片机的内部结构、寄存器以及时钟系统等。
通过对这些基础知识的学习,读者能够更好地理解和运用C51单片机。
第三章:C51单片机的编程方法本章主要介绍了C51单片机的编程方法,包括汇编语言和C语言的编程技巧。
通过对这些编程方法的学习与实践,读者能够掌握C51单片机的编程技能。
第四章:C51单片机的应用实例本章主要介绍了一些C51单片机的应用实例,包括LED灯控制、数码管显示、蜂鸣器控制等。
通过这些实例的学习与实践,读者能够将所学的知识运用到实际的项目中。
第五章:C51单片机的调试与测试本章主要介绍了C51单片机的调试与测试方法,包括仿真器的使用以及调试工具的选择等。
通过对这些调试与测试方法的学习与实践,读者能够提高项目的开发效率和质量。
第六章:C51单片机的扩展技术本章主要介绍了C51单片机的扩展技术,包括外部中断、定时器、串口通信等。
通过对这些扩展技术的学习与实践,读者能够更好地理解和运用C51单片机。
第七章:C51单片机的进阶应用本章主要介绍了C51单片机的进阶应用,包括数据存储与访问、模拟信号处理、网络通信等。
通过对这些进阶应用的学习与实践,读者能够提高项目的功能和性能。
第八章:C51单片机的应用案例本章主要介绍了一些C51单片机的应用案例,包括智能家居控制系统、智能车、温湿度监测系统等。
通过对这些应用案例的学习与实践,读者能够将所学的知识应用到实际项目中。
总结:《C51单片机技术教程》是一本详细介绍C51单片机的技术教材。
通过对C51单片机的基本原理、编程方法以及应用实例的学习与实践,读者能够掌握C51单片机的基础知识和编程技巧,提高项目的开发效率和质量。
(单片机完整课件PPT)第五章
⑴ 对定时/计数器T0、T1中断,外中断边沿触发方式, CPU响应中断时就用硬件自动清除了相应的中断请求标 志。 ⑵对串行口中断,用户应在串行中断服务程序中用软件清 除TI或RI。
⑶对外中断电平触发方式,需要采取软硬结合的方法消除 后果。
只要 P1.0 端输出一个负脉冲就可以使 D 触发器置 “ 1” ,从而撤消了低电平的中断请求信号。所需 的负脉冲可增加如下两条指令得到: ORL P1,#01H ;P1.0为“1” ANL P1,#0FEH ;P1.0为“0”
T1
PX1 PT0 PX0
/INT1 T0 /INT0
相应位置1为高优先级;置0为低优先级。
优先级结构:
(1)低优先级中断可被高优先级中断所中断,反之不能; (2)任何一种中断(不管是高级还是低级),一旦得到
响应,与它同级的中断源不能再中断它。
(3)同级的中断源同时请求时,遵循辅助优先级顺序。
同级内的优先权 INT0 T0 INT1 T1 串行口 辅助优先级顺序 高
中断类型: (1)按中断源的不同分为: 硬件中断:由硬件产生请求使CPU响应中断。 软件中断:指可以通过相应的中断指令使CPU响应中断。 (2)按是否可屏蔽分为: 可屏蔽中断:指用户可以通过中断控制指令来控制CPU 是否响应中断源的中断请求。 不可屏蔽中断:指CPU不能屏蔽中断源的中断请求,必
ቤተ መጻሕፍቲ ባይዱ
须响应该中断请求。
2.中断申请标志
定时器控制寄存器TCON(88H)
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
ITX:选择 INTx中断触发方式。 ITX=1,选择 INT x 为下降沿触发方式。 ITX=0,选择
INT x 为低电平触发方式。
单片机基础(第3版)_第5章
(2)设定所用中断源的中断优先级;
(3)若为外部中断,则应确定低电平还是下降沿触发方式。
以设置外部中断0为例: ORG AJMP ORG AJMP MAIN: MOV MOV MOV MOV … EXINT0: … 0000H MAIN 0003H EXINT0 TCON, #01H IE, #81H IP, #01H SP, #3FH
5.3.4 定时器工作方式1 5.3.5 定时器工作方式2
5.3.6 定时器工作方式3
IE TCON
EA
— —
TR1
— —
ES
TR0
ET1 EX1 ET0 EX0
TF1
TF0
IE1
IT1
IE0 TI
IT0 RI
SCON SM0 SM1 SM2 REN
TB8 RB8
IP
—— —— ——
PS
PT1 PX1 PT0 PX0
例5-1 假设允许片内定时器/计数器0中断,禁止其他中断。 试根据假设条件设置IE的相应值。
解:(IE)=10000010B=82H
(a)用字节操作指令
MOV IE,#82H;或 MOV A8H,#82H;
(b)用位操作指令
SETB
SETB
ET0;定时器/计数器0允许中断
EA ;CPU开中断
5.2.3 中断优先级控制
1、优先级排列顺序 中断源 同级内的中断优先级
外部中断0中断 定时器/计数器T0溢出中断 外部中断1 定时器/计数器T1溢出中断 串行口中断
K
K+1
N 保护现场 为外设服务 恢复现场 N+m 返回
C51单片机基础学习教程(C语言)
读引脚
图 1.6 P2 口的结构图 P2 口作为普通 I/O 口
CPU 发出控制电平“0” ,使多路开关 MUX 倒向锁存器输出 Q 端,构成一个 准双向口。其功能与 P1 相同。
地址
控制 C
VCC
读锁存器 R
内部总线 写锁存器
D
Q
P2.X
CL 锁存器
1 0 MUX
1 T
P2.X引脚
读引脚
图 1.7 P2 口作为地址总线图 在系统扩展片外程序存储器扩展数据存储器且容量超过 256B 时,CPU 发出控 制电平“1”,使多路开关 MUX 倒内部地址线。
2
误。
读锁存器
地址/数据
控制C &
1
内部总线 写锁存器
D
Q
CL
P0.X 锁存器
_ Q
1 0 MUX
VCC
T1 P0.X引脚
T2
器
地址/数据 1
控制C &
VCC
T1
内部总线
写锁存器
D
Q
P0.X CL 锁存器
_ Q
1 0 MUX
T2
P0.X引脚
第 1 章 初步了解单片机
1.189C51 的引脚封装
总线型
非总线型
图2 89C2051的引脚封装
图1 89C51的引脚封装
1.1 基本的 51 单片机结构
1.2 P0 口的结构
图 1.2 51 单片机结构图
1
下图为 P0 口的某位 P0.n(n=0~7)结构图,它由一个输出锁存器、一个转换开 关 MUX、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出 P0 口既可以作为 I/O 用,也可以作为地址/数据线用。
单片机原理及接口技术(C51编程)(第2版)-习题答案 - 第5章习题解答
第5章思考题及习题5参考答案一、填空1. AT89S51单片机任何一个端口要想获得较大的驱动能力,要采用电平输出。
答:低2.检测开关处于闭合状态还是打开状态,只需把开关一端接到I/O端口的引脚上,另一端接地,然后通过检测来实现。
答: I/O端口引脚的电平3. “8”字型的LED数码管如果不包括小数点段共计段,每一段对应一个发光二极管,有和两种。
答:7,共阳极,共阴极4. 对于共阴极带有小数点段的数码管,显示字符“6”(a段对应段码的最低位)的段码为,对于共阳极带有小数点段的数码管,显示字符“3”的段码为。
答:7DH,B0H5. 已知8段共阳极LED数码显示器要显示某字符的段码为A1H(a段为最低位),此时显示器显示的字符为。
答:d6. LED数码管静态显示方式的优点是:显示闪烁,亮度,比较容易,但是占用的线较多。
答:无,较高,软件控制,I/O口7. 当显示的LED数码管位数较多时,一般采用显示方式,这样可以降低,减少的数目。
答:动态,成本,I/O端口8. LCD 1602是型液晶显示模块,在其显示字符时,只需将待显示字符的由单片机写入LCD 1602的显示数据RAM(DDRAM),内部控制电路就可将字符在LCD上显示出来。
答:字符,ASCII码9. LCD 1602显示模块内除有字节的 RAM外,还有字节的自定义,用户可自行定义个5×7点阵字符。
答:80,显示数据,64,字符RAM,810.当按键数目少于8个时,应采用式键盘。
当按键数目为64个时,应采用式键盘。
答:独立,矩阵11.使用并行接口方式连接键盘,对独立式键盘而言,8根I/O口线可以接个按键,而对矩阵式键盘而言,8根I/O口线最多可以接个按键。
答:8,6412.LCD 1602显示一个字符的操作过程为:首先,然后,随后,最后。
答:读忙标志位BF,写命令,写显示字符,自动显示字符二、判断对错1.P0口作为总线端口使用时,它是一个双向口。
单片机原理及应用(C51版)第5章MCS-51单片机PPT课件
ET1(IE.3):定时器/计数器T1溢出中断允许位。ET1=1,允许 T1中断;ET1=0,禁止T1中断。
EX1(IE.2):外部中断1中断允许位。EX1=1,允许外部中断1 中断;EX1=0,禁止外部中断1中断。
降沿有效);IT0=0,外部中断0为电平触发方式。
TF0(TCON.5):定时器/计数器0(T0)的溢出中断请 求标志。当T0计数产生溢出时,由硬件将TF0置1
TF1(TCON.7):定时器/计数器1(T1)的溢出中断请
求标志
IE0(TCON.1):外部中断请求标志位。当引脚(P3.2 )上出现中断请求信号时,由硬件置位IE0,向CPU申请
MCS-51系列单片机的中断优先级是由中断优先级寄存
器IP控制的。
MSC-51单片机中的中断系统,应遵循以下基本准则:
(1) 低优先级中断可被高优先级中断请求所中断,高优
先级中断不能被低优先级中断请求所中断。
(2) 同级的中断请求不能打断已经执行的同级中断。
(3) 中断源自然优先级顺序
中断源自然优先级由高到低:
{
if (P1_0==1)
P1_7=1;
else
P1_7=0;
}
2021/3/12
10
5.2 MCS-51单片机定时器/计数器
2021/3/12
8
5.1.4 中断响应后中断请求的撤除
中断源提出中断申请,在CPU响应此中断请求后,该中 断源的中断请求在中断返回之前应当撤除,以免引起重复 中断,被再次响应。
5.1.5 中断系统应用
例:单片机读P1.0的状态,把这个状态送到P1.7的指示
(完整版)单片机课后习题答案
第一章单片机的概述1、除了单片机这一名称外,单片机还可称为(微控制器)和(嵌入式控制器)。
2、单片机与普通微型计算机的不同之处在于其将(CPU)、(存储器)和(I/O口)三部分,通过内部(总线)连接在一起,集成于一块芯片上。
3、在家用电器中使用单片机应属于微型计算机的(B)。
A、辅助设计应用B、测量、控制应用C、数值计算应用D、数据处理应用4、微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
5、MCS-51系列单片机的基本型芯片分别为哪几种?它们的差别是什么?答:MCS-51系列单片机的基本型芯片分别为:8031、8051和8751。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
6、为什么不应当把8051单片机称为MCS-51系列单片机?答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
7、AT89S51单片机相当于MCS-51系列单片机中哪一种型号的产品?“s”的含义是什么?答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash 存储器取代了87C51片内的4K字节的EPROM。
C51单片机C语言入门经典教程
C51单片机C语言入门经典教程
单片机C语言是机器语言的一种,它是一个非常强大的、复杂的、编
程语言。
单片机C语言的学习需要掌握几个核心概念,如内存、程序、数
据寄存器、指令集等。
一、学习单片机C语言,首先要了解计算机基本结构。
在计算机的整
个系统中,最重要的部分是处理器,处理器主要完成数据的运算和指令的
控制。
而内存则是处理器执行命令的场所,在处理器运行过程中,指令按
照特定的次序从内存中取出来,从而完成指令的操作。
这一系列运算称为"指令循环",即"程序循环",计算机就是按照指令循环的方式来运行的。
二、掌握单片机C语言,需要深入了解不同指令的含义和操作方式。
单片机C语言指令集主要分为十六进制(HEX)和二进制(Bin)两种形式。
十六进制的指令集主要由三个部分组成:操作码、操作符和操作数。
操作
码表示指令的作用,操作符表示指令的运算方向,而操作数则表示操作的
具体内容,比如操作的寄存器、地址、数据等。
而二进制指令集又可以分为"指令代码(Instr Code)"和"操作数标记(Op Codes)",前者表示指
令的实现方法,而后者表示操作数的类型及大小。
三、要掌握单片机C语言,还要熟悉常见的数据寄存器。
C51单片机基础学习教程(C语言)
作,晶振信号经 12 分频后形成机器周期。 当单片机的时钟系统工作正常的时候,在 ALE 引脚可以观察到稳定的脉冲
信号,其频率为:晶振频率/6。
机器周期TCY
S1 S2 S3 S4 S5 S6
振荡器
分 P1 频 80C51 器 P2
晶振周期
S状态
图 1.13 单片机工作的基本时序图 机器周期和指令周期
3
读锁存器
地址
控制 C
VCC
R
内部总线 写锁存器
D
Q
P2.X
CL 锁存器
1 0 MUX
1 T
P2.X引脚
读引脚
图 1.8 P2 口作为数据总线图 1.4 P1 口的内部结构
P1 口是 80C51 的唯一的单功能口,仅能用作数据输入输出口,它由一个输出 锁存器、两个三态输入缓冲器和输出驱动电路组成----准双向口。同 P2 口相同, 内部设有上拉电阻(约 30KΩ)。
(4) 指令周期: 它是指 CPU 完成一条操作所需的全部时间。 每条指令执行 时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周 期指令和四周期指令。 1.7 思考题
1.STC89C52 单片机内部程序存储器与数据存储器的容量各为多少? 2.52 系列单片机比 51 系列单片机多出的功能是什么? 3.在 DIP40 封装的 52 系列单片机里,接地引脚、电源引脚、复位引脚和晶振 引脚分别是那几个引脚。 4.在 12MHz 时钟脉冲的 52 系列单片机系统里,一个机器周期是多长时间? 5.在 52 系列单片机,那个引脚是控制使用内部程序存储器,还是外部程序存 储器?
40 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P08 31 EA 30 ALE 29 PSE 28 P28 27 P27 26 P26 25 P25 24 P24 23 P23 22 P22 21 P21
第5章 Keil C51-单片机原理与应用及C51程序设计(第4版)-谢维成-清华大学出版社
5.1 Keil C51简介 5.2 Keil uVision4 IDE的使用方法 5.3 Keil C51的调试技巧
3
第5章 Keil C51集成环境的使用
第5章 Keil C51集成环境的使用
一、 Keil µVision IDE界面
窗口标题栏 菜单栏 工具栏
项目管理器窗口 编辑窗口
命令窗口和 输出信息窗口
8
第5章 Keil C51集成环境的使用
(3) 选择好单片机芯片后,单击【确定】按钮,这时弹出如图5.4所 示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,问是否把启动代码文件拷贝到项目文件夹并添加到项 目中。如果程序用C51语言编写要选择【是】,汇编语言编写选择 【否】,单击后,项目文件就创建好了。
12
第5章 Keil C51集成环境的使用
(4) 弹出如图所示的Add Files to Group 'SourceGroup1' 对话框。在对话框中选择需要添加的程序文件,单击Add按 钮,把所选文件添加到项目文件中。
注意:在该对话框中 文件类型默认为*.C, 如果是汇编程序,需 在文件类型选择框选 择*.a*才看得到,如 果文件添加得不对, 可在项目管理器的 Source Group1下面 选中对应的文件,用 右键菜单中的 Remove File命令把 它移出去。
第5章 Keil C51集成环境的使用
5.2.1 建立项目文件
uVision4采用项目方式管理,一个项目用一个文件夹存放, 建项目时要先建一文件夹,文件夹建好后,启动uVision4, 通过用Project菜单下的New uvision Project命令建立项目文 件,过程如下:
KEIL C51 软件烧写说明 - 副本
KEIL C51 软件烧写操作说明1、适用范围适用于以51系列芯片作为软件运行载体的所有设备。
2、运行环境WIN98、NT、WIN2000、WINXP、WIN7等操作系统。
3、辅助工具PC机1台、KEIL C51 安装软件、编程器(UEC-5)1个、USB转RS232数据线(电脑无串口时需配备)1条4、软件安装Keil C51软件在首次使用时需要安装,使用的工装(电脑PC)上已安装好软件此步骤可以省略。
4.1 串口准备如果电脑已有串口,该步骤省略。
如果没有串口,则必须增加一个USB转串口的数据线。
安装该数据线的方法是:首先在电脑上安装该数据线的驱动程序,待驱动安装完成后,再插入USB转串口数据线,电脑会自动识别该数据线,至此数据线的驱动就安装成功了。
不过还需获得该扩展串口的串口号才能正常使用,获取串口号的方法是:右键点击“计算机”并单击“管理”,在弹出的窗口中选择“设备管理器”,再点击右边的“端口”,可以看到USB转串口的COM口,如下图所示。
(注意,必须保证USB转串口线已连接电脑,否则无法查看该串口号)。
4.2 安装KEIL C51双击“\KEILC51 v710_Full(μV3)\up51v710_Full\setup”目录中的Setup.exe,按提示进行该软件的安装,安装完后参照“\KEILC51 v710_F ull(μV3)\up51v710_Full”目录中的“安装说明.TXT”文件中所述方法进行破解。
4.3安装编程器驱动编程器目前主要采用U-EC5型号的编程器,该型号编程器的安装方法是:U-EC5先不要插到电脑的USB接口上,双击“\U-EC5驱动”目录下的“SiC8051F_uv3.exe”文件,按提示进行安装,安装完成后,再将U-EC5编程器插到USB接口上,待出现“该设备已可以使用”的提示时,驱动就安装成功。
5、KEIL C51设置5.1 KEIL C51应用程序打开打开KEIL C51有两种方法:(1)双击桌面的“Keil uVision3”图标或是Windows所有程序界面打开应用程序,通过菜单项“Project\Open Project”选取要烧写的产品软件。
keil c51 单片机手册
Optional Items
C51 TEST.C PRINT (filename)
{ opt1 | opt2 } Text contained within braces, separated by a vertical bar represents a group of items from which one must be chosen. The braces enclose all of the choices and the vertical bars separate the choices. One item in the list must be selected. Text in this sans serif typeface represents actual keys on the keyboard. For example, “Press Enter to continue.” Move the mouse until the mouse pointer rests on the item desired. Quickly press and release a mouse button while pointing at the item to be selected. Press the left mouse button while on a selected item. Then, hold the button down while moving the mouse. When the item to be selected is at the desired position, release the button. Click the mouse button twice in rapid succession.
《80C51单片机实用教程》PPT 第5章 80C51片内功能部件
⒋ 中断系统应用举例 【例5-1】 出租车计价器计程方法是
车轮每运转一圈产生一个负脉冲, 从外中断INT0()引脚输入。 行驶里程为: 轮胎周长×运转圈数设轮胎周长为2m, 试实时计算出租车行驶里程(单位米)。
、
演示Proteus仿真(见<仿真练习60例>练习12)
⒋ 中断返回 在中断服务程序最后,必须安排一条中断返回指令RETI 当CPU执行RETI指令后,自动完成下列操作: ⑴ 恢复断点地址。 ⑵ 开放同级中断,以便允许同级中断源请求中断。
5.1.4 中断系统的应用
中断系统的应用主要是编制应用程序 编制应用程序包括两大部分内容: 第一部分是中断初始化;第二部分是中断服务程序
⒈ 定时/计数器控制寄存器TCON
TCON已在节中介绍,其中 低4位用于外中断控制,高4位用于定时/计数器控制 TF1/TF0为定时/计数器T1/T0中断请求标志 TR1/TR0为定时/计数器T1/T0运行控制位 TR1/TR0=1,T1/T0运行;TR1/TR0=0,T1/T0停运行
表5-6 TCON的结构和各位名称、位地址
n=0~4(常正整数),对应中断源编号
⑶ using是C51关键字,用于中断函数内选择工作寄存器组 m=0~3(常正整数),对应工作寄存器区编号 [using m]缺省时,不进行工作寄存器组切换 但所有在中断函数内用到的工作寄存器将被压栈保护。
⑷ 中断函数不能被非中断调用 ⑸ 允许在中断函数中调用其他子函数
⑸ 恢复现场
⑹ 中断返回,最后一条指令必须是RETI
⒊ 中断C51编程
中断服务程序以C51子函数的形式出现,其格式如下: void 函数名( ) interrupt n [using m] {中断函数体语句;}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用系统的研制过程主要包括总体设计、硬 件设计、软件设计、仿真调试等几个阶段,图5-1 为单片机应用系统设计过程框图。单片机应用系统 一般要求可靠性好、系统具有自诊断功能、操作维 修方便、性能价格比较高。这些要求在进行应用系 统设计的过程中要根据不同的需要和应用场合予以 考虑。
图5-1 单片机应用系统设计过程框图
可以使用单片机仿真器提供的软件包中的编辑器来 编写单片机程序,也可以使用PC的编辑程序编写 程序,例如PC上的EDIT、PE等编辑软件。然后利 用开发系统提供的汇编或编译系统,将源程序编译 成可在目标机上直接运行的目标程序。该目标程序 可通过PC的串行通信接口直接传送到开发系统的 RAM中。本节主要介绍利用单片机仿真器进行51 汇编语言程序的编辑方法。
4. 联机在线仿真调试、修正软硬件错误 主要包括用户软件程序的调试和目标系统的硬件调 试。 (1) 用户软件程序的调试用户软件程序的调试可 分为以下几个步骤: ① 建立用户源程序。 ② 在单片机开发系统上,对用户源程序进行编译, 如果编译有错误,则要进行修改,再进行编译,直 至错误全部纠正为止。
③ 动态在线调试。用户程序中分为内部服务程序 以及与外部的接口程序。内部服务程序是指与用户 样机硬件无联系的用户程序,例如计算程序,虽然 经编译后已经没有语法错误,但可能有逻辑错误, 必须借助于动态在线调试手段,如单步运行、设置 断点等,发现逻辑错误,然后进行修改。对于外部 接口程序,一定要先把硬件故障排除以后,再对用 户程序进行动态在线调试,如果有错误,则进行修 改。在调试这一类程序时,硬件调试与软件调试是 不能完全分开的,许多硬件错误是通过对软件的调 试从而发现和纠正的。 ④ 将调试完毕的用户程序通过专用编程器固化在 EPROM中。
(2) 用户样机硬件调试 ① 静态调试。对用户样机进行调试,首先要进行 静态调试,静态调试的目的是排除明显的硬件故障。 第一步断电测量,在样机加电之前,先用万用表等 工具,根据硬件电路图,仔细检查样机线路是否连 接正确,并核对元器件的型号、规格和安装是否符 合要求。应特别注意对电源系统的检查,以防止电 源的短路和极性错误,并重点检查系统总线(地址 总线、数据总线和控制总线)是否存在相互之间的 短路或与其他信号线的短路。
(3) 建立数学模型根据问题的定义,描述出各个 输入变量和各个输出变量之间的数学关系,称为建 立数学模型。数学模型随系统任务的不同而不同。 例如在直接数字控制系统中,可采用数字 (proportional integral and differential controller,比 例积分与微分控制器)控制算法或其改进形式;在 测量系统中,从模拟输入通道得到的温度、流量、 压力等现场信息与该信号对应的实际值往往存在非 线性关系,需要进行非线性补偿。
(3) 总线驱动 MCS-51系列单片机的外部扩展空间可达64KB,但 扩展总线口(P0、P2)的负载能力有限(P0口为8 个LSTTL电路,P2口为4个LSTTL电路)。若负载 过重,系统便不能可靠地工作,这时可在P0口增加 双向三态缓冲器74LS245,在P2口加单向三态缓冲 器74LS244。
(2) 数据存储器和I/O接口 对于数据存储器的容量需求,各个系统之间差别较 大,对于常规的智能仪器和实时控制系统,MCS51单片机片内RAM已能满足要求。若需要扩充少 量RAM,可以考虑选用RAM/IO扩展芯片8155, 不仅扩充了RAM,而且增加输入输出接口。对于 数据采集系统,往往需要有较大容量的RAM存储 器,这时RAM芯片的选择原则是尽可能减少芯片 的数量。
(3) 机型和器件选择在选择机型和器件时应考虑 以下几点。 ① 货源充足稳定,便于批量生产。 ② 在考虑性能/价格比的前提下,选择最容易实现 应用系统技术指标的机种。 ③ 所选机型功能强、性能价格比好、有便于使用 的开发装置。 ④ 要选择设计者最熟悉的机种和元器件,以缩短 研制周期。 ⑤ 按照系统的精度、速度和可靠性等方面的要求 合理选择包括传感器、模拟电路、输入输出电路和 存储器等器件。
3. 软件设计 软件设计的任务是在总体设计和硬件设计的基础上 确定程序结构,分配单片机内部RAM资源,划分 功能模块,然后进行主程序和各模块程序的设计, 最后连接起来成为一个完整的应用程序。软件设计 的一般步骤如图5-2所示。
图5-2 软件设计步骤
(1) 系统定义系统定义是在进行软件设计前明确 软件承担的任务,然后结合硬件结构进一步确定软 件所承担任务的细节。细节如下: ① 定义说明各输入输出口的功能,确定信息交换 的方式、系统接口方式、占有口地址、读取和输出 方式等。 ② 在程序存储器和数据存储器区域中(注意考虑 是否有断电保护措施)合理分配存储空间,包括系 统主程序、常数表格、数据暂存区域、堆栈区域、 入口地址等。 ③ 对面板、控制开关、按键等输入量以及显示、 打印等输出量也必须给予定义,作为编程的依据。
第二步加电后检查各插件上引脚的电位,仔细测量 各点电平是否正常、尤其应注意8051插座的各点电 位。 第三步是在断电情况下,除CPU外,插上所有的元 器件,并把仿真器的仿真插头插入样机上的CPU插 座,准备联机仿真调试。
② 联机仿真、在线动态调试。在静态调试中,仅 对目标样机硬件进行了初步调试,只是排除了一些 明显的静态故障,而样机中的硬件故障(如各部件 内部存在的故障和部件之间连接的逻辑错误)主要 是靠联机仿真排除的。分别打开样机和仿真器电源 后,便可开始联机仿真调试,排除硬件的故障。 上面已经谈到,硬件调试和软件调试是不能完全分 开的,许多硬件错误是在软件调试中发现和被纠正 的。因此,在上面介绍的软件在线调试中,也包括 联机仿真、硬件在线动态调试以及硬件故障的排除。
5. 程序固化,系统独立运行 至此可将用户程序固化在程序存储器中,然后将程 序存储器插入目标样机系统中,目标样机系统可独 立运行。目标样机系统独立运行一段时间无故障后, 可认为整个设计开发过程结束。
5.2 单片机汇编程序的编辑方法
单片机的程序设计可以使用机器语言、单片机汇编 语言和高级语言三种编程语言。机器语言是CPU惟 一能够识别的语言,其他语言必须通过编译后形成 机器码供CPU识别;汇编语言是单片机系统设计中 最常用的程序设计语言;高级语言通用性好,只要 单片机开发系统具有编译的能力,就可以直接用高 级语言编写程序。MCS-51系列单片机的编译型高 级语言有: PL/M51、C-51、MBASIC-51等。
(4) 绘制程序流程图通常是根据系统功能及操作 过程和软件的结构,先列出程序的简单功能流程图, 再对该图进行扩充和具体化,把简单功能流程图中 每一部分转变成具体的存储单元、寄存器和I/O口 的操作,从而绘制出详细的程序流程图。 (5) 编写程序在完成流程图设计以后,依据流程 图编写程序。
(6) 汇编程序编写完后用开发系统或仿真器的汇 编程序将所编写的用户程序汇编成MCS-5l单片机 的机器码。 (7) 在线仿真调试通过单片机的开发系统,将所 编写的程序进行在线仿真调试,完成单片机应用系 统的各种功能,完成系统软件设计。
在选择I/O接口电路时,应从体积、价格、功能、 负载等方面考虑。标准的可编程接口电路8255、 8155接口简单,使用方便,对总线负载小,可优先 选用,但对要求口线扩充较少的系统,则可用TTL 或CMOS电路,以提高口线的利用率。需要注意的 是,CPU的I/O口负载能力有限,扩展以后,不宜 满载,应留有余量,否则会降低系统抗干扰能力。 对于A/D和D/A电路芯片的选择原则,应根据系统对 它的速度、精度和价格的要求来确定。 外围模拟电路应根据系统的要求,在速度、精度和 价格等方面选用,同时还应注意它们与传感器等的 匹配问题。
模块化程序设计是单片机应用系统软件设计中最常 用的方法。这种设计方法是把一个完整的程序分成 若干个功能相对独立的较小的程序模块,各个程序 模块分别进行设计、编制程序和调试,最后将调试 好的程序模块连接起来。 模块程序设计的优点是: 单个程序模块设计和调 试比较方便、容易完成,一个模块可以被多个任务 共用。
第5章 单片机实用开发步骤
5.1 5.2 5.3 5.4
单片机应用系统设计的一般流程 单片机汇编程序的编辑方法 源程序的编译 程序的仿真调试
5.1 单片机应用系统设计的一般流程
单片机应用系统是以单片机为核心,配以相应的外 围电路和软件,能实现某种功能的应用系统,它由 硬件部分和软件部分组成。硬件是系统的基础,软 件则是在硬件的基础上对其合理的调配和使用,从 而完成应用系统所要完成的任务。
1. 总体设计 (1) 总体方案设计、确定技术指标对于一个待开 发的单片机应用系统,应收集相关的技术资料,查 看过去是否有类似项目、产品。如果有,则可分析 这些项目、产品有什么优点、缺点,有什么值得借 鉴。如果没有,则应首先从理论上分析、探讨实现 的可能方案,根据客观条件如环境、测试手段、仪 器设备、资金成结构设计设计出合理的软件结构是设计 性能优良的单片机应用系统软件的基础。 常用的程序设计方法有3种: 模块化程序设计;自 顶向下逐步求精程序设计;结构化程序设计。 MCS-51应用系统的软件设计一般采用模块化程序 设计。为了便于编程和调试,应先进行软件结构设 计,根据系统要求的功能,把软件分为不同的“模 块”,明确各模块应完成的功能,以及各模块之间 的关系,主要是要指定哪些任务由主程序完成,哪 些任务由中断服务程序完成,以便进行模块化的程 序设计。
(2) 具体方案设计(软硬件功能划分)具体方案 设计是将总体设计方案具体化、细化。画出各部分 功能框图,大致给出各框图的实现方法,明确哪些 部分由软件完成,哪些部分由硬件完成。系统的硬 件配置和软件的设计是紧密地联系在一起的,且硬 件和软件具有一定的互换性。多用硬件完成一些功 能,可以提高工作速度,减少软件研制工作量,但 增加了硬件成本。若用软件替代某些硬件的功能, 可使硬件成本降低,但增加了软件的复杂性,而且 降低了系统的工作速度。因此,总体设计时,应综 合考虑以上因素,合理搭配软硬件的比重。
5.2.1 伟福仿真器软件包
单片机应用系统本身并无自开发能力,需要借助于 开发工具进行软件编辑、汇编和调试。目前国内用 于MCS-51型单片机的开发系统很多,伟福E2000 系列仿真器属于新型的专用开发系统,本节内容是 结合其软件包,对汇编程序的编辑等进行说明。