微控制器

微控制器
微控制器

微控制器系统原理

结课论文

设计课题:基于HCSO8AW60超声波测距系统设计学院名称:

专业班级:

姓名:

学号:

指导教师:

[键入文字] 目录

1 概述 (1)

1.1课题背景及重要意义 (1)

1.2设计思想及基本功能 (1)

2 总体方案设计 (2)

2.1总体方案设计 (2)

3 硬件电路设计 (2)

3.1 超声波测量电路 (2)

3.2 显示电路设计 (6)

3.3 LED与单片机连接电路设计 (8)

3.4 晶振电路设计 (8)

3.5 复位电路设计 (9)

3.6电源电路设计 (9)

4 系统软件设计 (10)

4.1 主程序软件设计 (10)

4.2 中断子程序 (11)

5总结 (11)

参考文献 (12)

附录(一)系统原理图 (13)

附录(一)源程序 (14)

1 概述

1.1课题背景及重要意义

超声波是指频率在20kHz以上的声波,它属于机械波的范畴。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。

由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声在空气中测距在特殊环境下有较广泛的应用。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。因此超声波测距在移动机器人的研究上得到了广泛的应用。同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。

1.2设计思想及基本功能

系统的设计主要包括两部分,即硬件电路和软件程序。硬件电路主要包括单片机电路、发射电路、接收电路、显示电路和电源电路,另外还有复位电路和LED控制电路等。我采用以S08AW60单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路。整个电路采用模块化设计,由信号发射和接收、供电、温度测量、显示等模块组成。发射探头的信号经放大和检波后发射出去,单片机的计时器开始计时,超声波被发射后按原路返回,在经过放大带通滤波整形等环节,然后被单片机接收,计数器停止工作并得到时间。温度测量后送到单片机,通过程序对速度进行校正, 结合两者实现超声波测距的功能。软件程序主要由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。它控制单片机进行数据发送与接收,在一定温度下对超声波速度的校正,还有实现数据正确显示在LCD上。另外程序控制单片机消除各探头对发射和接收超声波的影

响。相关部分附有硬件电路图、程序流程图。

实际的环境对超声波有很大的影响,如空气的温度对超声波的速度影响也很大,在设计的过程中考虑了这一因素,并给出了一些解决方案。

2 总体方案设计

2.1总体方案设计

综合以上方案选择,基于单片机的液位控制系统总体方案设计是基于满足设计要求的前提并且根据理论上的可实现性和硬件上的经济实用性,而进行设计的。本系统以89C52为中控单元,采用超声波来采集液位信息,用蜂鸣器来报警,两个用独立按键分别控制报警上下限,用LCD1602显示。

液位控制系统设计的总体框图如图2.1所示。

图2.1 超声波测距系统结构框图

3 硬件电路设计

3.1 超声波测量电路

(1)超声波工作原理

超声波发生器内部有两个压电晶片和一个共振板,当两极外加脉冲信号的频率等于压电晶片的固有振荡频率时,压电晶片将发生共振,并带动共振板振动,从而产生超声波;同理,当共振板接收到超声波时,将压迫压电晶片产生振动,

将机械能转换为电信号。

时序图表明只需要提供一个10us 以上的出发脉冲信号即可,该模块内部将发出8个

40KHz 周期点评检测回回波。一旦检测到有回波信号。回响信号的脉冲宽度与所测的距离成正比。由此可以通过发射信号到收到回响信号时间间隔可以计算得到距离,测距时序原理如图3.11所示。

发信

模块内部发出信号

10usTTL

电平

循环发出8个40KHz 脉冲

输出回响信号

回响电平输出与检测距离成正比

图3.11超声波测距时序原理图

超声波发射探

超声波接收探头

h

测量目标

图3.12超声波测距示意图

被测距离

。式中:s 为超声波传播距离;h 为发射探头与接收

探头之间的距离。由于s 远大于h ,因此可近似认为d=s ,则d=s=ct /2,t 为发射超声波与接收超声波的时间间隔,c 为超声波在空气中的传播速度。在空气中,

常温下超声波的传播速度是334m/s,但其传播速度c易受空气中温度的影响,声速与温度关系如表1所示,由此可修正超声波传播速度T

331+

=。

.0

5.

c607

由于本次设计液位测量距离较近,在不同温度T下的测量结果偏差较小,故在此为忽略不同温度下c不同这一影响,选择常温声速334m/s。

图3.13超声波实物图

在图3.12中以红色开始分别为电源(VCC),出发控制信号输入(Trig),回响信号输出(Echo),电源地(GND)

(2)超声波发射电路

采用LM386对输出信号进行功率放大,LM386多用于音频放大,也可用于超声波发射。LM386第1脚和第8脚之间串接的E1、R1,可使电路获得较大的增益,PTA1为单片机输入的脉冲信号,经功率放大后由第5脚输出,驱动探头发射超声波。电路如图3.14所示。

图3.14超声波发射电路图

为了顺利接收回波信号,本文采用索尼公司生产的集成芯片CX20106,如图3.15所示,CX20106是一款红外线检波接收的专用芯片,由于红外遥控常用的载波频率38kHz与超声波频率40kHz比较接近,而且CX20106内部设置的滤波器中心频率f0可由其5脚外接电阻调节,范围为30~60 kHz,因此采用它来做接收电路。PTE2接单片机定时器外部输入捕捉0通道。回波信号先经过CX20106内部的前置放大器和限幅放大器,将信号调整到适当的幅值,由滤波器进行频率选择,滤除干扰信号,再经整形,送给输出端7脚,7脚与单片机INT0连接,当接收到与滤波器中心频率相符的回波信号时,输出端7脚即输出低电平,触发中断。电路如图3.15所示。

图3.15超声波接收电路图

(4)温度补偿电路

由于声音的速度在不同的温度下有所不同,为提高系统的精度,采用了温度补偿功能。这里采用的主要元器件是是美国Dallas半导体公司生产的单总线数字温度传感器DS18B20,其具有精度高、智能化、体积小、线路简单等特点。将DS18B20数据线与单片机的PTA0口相连,就可以实现温度测量电路如图所示。如图3.16所示。

图3.16 DS18B20电路图

3.2 显示电路设计

(1)液晶显示原理

液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。

(2)线段的显示

点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。

(3)字符的显示

用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。1602显示即只要输对应字符的ASCII码值和相应的位置,即可显示对应的字符。

图3.22单片机与1602接线示意图

P1为16P插座,可以用排针与1602和插座连接。

3.3 LED与单片机连接电路设计

用一个单片机引脚控制一个LED灯来只是工作状态。电路如图3.3所示。

图3.3单片机及LED灯电路图

3.4 晶振电路设计

电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。

图3.4是单片机的晶振电路。片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般高频多在1MHz~16MHz之间选取。C1、C2是反馈电容,其值在5pF~25pF之间选取。本电路选用的电容为10pF,晶振频率为4MHz。晶振电路应尽可能地接近单片机。

图3.4单片机晶振电路图

3.5 复位电路设计

复位电路的作用是使CPU和系统的其他部件都处于一个确定的初始状态,并从这个状态开始工作。复位电路包括内部复位信号产生电路和外部复位电路。图3.5所示的复位电路可以实现上述基本功能。

图3.5单片机复位电路图

3.6电源电路设计

单片机正常工作电压为2.7V-5.5V,因此设计的电源电路主要是提供单片机工作电压。图3.6是为单片机提供电压(5V)的电源电路。先通过变压器将220V 的交流电变换为16V交流电,然后再通过整流桥整流,通过LM7805对直流电稳压,电容器到了滤波起到作用。在这个电路中采用了三端集成稳压器LM7805,可以输出5V的直流电压以供给单片机。

图3.6电源电路图

4 系统软件设计

系统软件设计主要包括显示子程序,超声波测距程序。本章节系统的介绍了显示子程序,超声波测距程序的设计流程,具体的程序代码见附录。

4.1 主程序软件设计

主程序构成无限循环,主要完成单片机初始化,开关中断,距离显示内容初始化,工作状态显示。主程序的流程图如图4.1所示。

图4.1 主程序流程图

主程序流程说明:

电路主要分为以下几个部分,分别是定时器1初始化显示部分、超声波测距部分,各部分具有不同的子程序。

主程序的作用主要是先初始化单片机以及显示内容,初始化中断程序,等待输入捕捉发生,定时器计数值处理,通过分析处理计算出距离。

4.2 中断子程序

中断服务子程序,主要完成当定时器计数溢出时,对计数值进行处理。如图4.2所示。

图4.2中断服务子程序

5总结

经过一周左右的资料查找和设计,我已完成了基于HCS08AW60单片机的超声波测距系统设计。本文设计了介绍了超声波测距电路设计到软件设计的一系列步骤。本设计是以HCS08AW60单片机为主控制单元,超声波作为测距测量器件,LCD1602作为显示器液的测距系统。

参考文献

[1] 王威.嵌入式微控制器S08AW原理与实践[M].北京:北京航空航天大学

出版社,2009

[2] 张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:

国防工业出版社,2004

[3] 阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006

[4] 王巧芝、王彩霞等.Altium Designe电路设计标准教程[M]. 北京:中国

铁道出版社,2012

附录(一)系统原理图

附录(一)源程序

#include

#include"derivative.h"

#define uchar unsigned char

#define uint unsigned int

//全局变量定义

unchar data_string[]="0000";

uint s = 0 ;

uint ic_time1;

uint ic_timer2;

char ic_flag = 0;

char ovf_flag = 0;

uint period;

/******LCD1602控制端口与数据端口定义******/

#define CLR_SCREEN 0 //清屏

#define DISP_ON 1 //显示开

#define DISP_OFF 2 //显示关

#define CURSOR_ON 3 //光标开

#define CURSOR_OFF 4 //光标关

#define CURSOR_FLASH_ON 5 //光标闪烁开

#define CURSOR_FLASH_OFF 6 //光标闪烁关

#define PICTURE_LEFT 7 //画面左移

#define PICTURE_RIGHT 8 //画面右移

#define CURSOR_LEFT 9 //光标左移

#define CURSOR_RIGHT 10 //光标右移

#define LCD_RS PTED_PTED7 //寄存器选择信号#define LCD_RW PTED_PTED6 //读/写信号

#define LCD_EN PTED_PTED5 //使能端

#define LCDIO PTBD //数据线

#define RX PTED_PTED2; //超声波输入引脚echo #define TX PTAD_PTAD1; //超声波输出引脚trig #define DQ PTAD_PTAD0;//ds18b20引脚

#define LED PTAD_PTAD2;//LED工作灯

/******函数声明******/

void Init_TPM(); //定时器初始化

void Init_Port();//IO初始化函数

void Init_ECT();//时钟初始化函数

void LCD_dlay();//延时子程序

void LCD_en_dat();//LCD写数据

void LCD_init();//LCD初始化函数

void LCD_cmd();//LCD指令判断和处理函数

void LCD_set_xy();//LCD设定坐标函数

void LCD_write_string();//写字符串函数

void LCD_DISP_init();//LCD初始化函数

void transform();//数值转换函数

void distance_show();//距离显示函数

void StartModule();//触发脉冲函数

/******定时器初始化******/

void Init_TPM(void)

{

TMP1SC = 0x4E;//定时器一处中断使能,总线时钟64分频

TPM1MODH = 0xF4;//预置数寄存器高八位

TPM1MODL = 0X24;//预置数寄存器低八位

TPM1C0SC = 0x0C;//定时器1通道0在上、下升边沿捕捉,中断禁止}

/******IO口初始化******/

void Init_Port(void)

{

PTEDD_PTEDD5 = 1;//PTE5口作为输出引脚

PTEDD_PTEDD6 = 1;//PTE6口作为输出引脚

PTEDD_PTEDD7 = 1;//PTE7口作为输出引脚

PTBDD = 0XFF;//B口作为输出引脚

PTAD = 0X00;//A口输出为0

PTADD_PTADD0 = 1;//PTA0口作为输出引脚

PTADD_PTADD1 = 1;//PTA1口作为输出引脚

PTADD_PTADD2 = 1;//PTA2口作为输出引脚

}

/******时钟初始化******/

void Init_ECT(void)

{

ICGC1 = 0X78;

ICGC2 = 0X20;

SOPT_COPE = 0;

}

/******LCD延时程序******/

void LCD_dlay(void)

{

int i;

for(i = 0;i<10;i++)

{

int j ;

while(j>0)

j--;

}

}

/******LCD写指令******/

void LCD_en_command(uchar command)

{

LCD_delay();

LCD_RW = 0;

LCD_RS = 0;

LCD_EN = 1;

LCDIO = command;

LCD_EN = 0;

}

/******LCD写数据******/

void LCD_en_dat(uchar dat)

{

LCD_delay();

LCD_RW = 0;

LCD_RS = 1;

LCD_EN = 1;

LCDIO = dat;

LCD_EN = 0;

}

/******LCD显示初始化******/

void LCD_init(void)

{

LCD_en_command(0x38);

LCD_en_command(0x0c);

LCD_en_command(0x01);

}

/******LCD接受的命令******/

void LCD_cmd(uchar cmd)

{

switch(cmd)

{

case CLR_SCREEN:LCD_en_command(0x01);break; //清屏

case DISP_ON:LCD_en_command(0x0c);break; //显示开case DISP_OFF:LCD_en_command(0x08);break; //显示关

case CURSOR_ON:LCD_en_command(0x0e);break; //光标开

case CURSOR_OFF:LCD_en_command(0x0c);break; //光标关

case CURSOR_FLASH_ON:LCD_en_command(0x0f);break; //光标闪烁开

case CURSOR_FLASH_OFF:LCD_en_command(0x0e);break;//光标闪烁关

case PICTURE_RIGHT: LCD_en_command(0x1c);break; //画面右移

case CURSOR_LEFT: LCD_en_command(0x10);break; //光标左移

case CURSOR_RIGHT: LCD_en_command(0x14);break; //光标右移

default:break;

}

}

/******LCD行列坐标******/

void LCD_set_xy(uchar x,uchar y)

{

uchar address;

if(x == 0)

address = 0x80 + y;

else

address = 0xc0 + y;

LCD_en_command(address);

}

/******LCD写字符******/

void LCD_write_string(uchar x,uchar y,uchar *s)

{

LCD_set_xy(x,y);

while(*s)

{

LCD_en_dat(*s);

s++;

}

}

/******LCD显示初始化******/

void LCD_DISP_init(void)

{

LCD_init();

LCD_cmd(CLR_SCREEN);

LCD_cmd(DISP_ON);

LCD_cmd(CURSOR_ON);

LCD_cmd(CURSOR_FLASH_OFF);

}

/******LCD显示数值转换函数******/

void transform(uint data)

{

uchar tempt0;

uchar tempt1;

uchar tempt2;

uchar tempt3;

tempt0 = data/1000%10;

tempt2 = data/10%10;

tempt3 = data%10;

data_string[0] = tempt0 + 0x30;

data_string[1] = tempt1 + 0x30;

data_string[2] = tempt2 + 0x30;

data_string[3] = tempt3 + 0x30;

}

/******距离显示函数******/

void distance_show(uint i)

{ int t;

float c;//声速

while(timer>=1)

{

t=ReadTemperature();

c =331.5+0.607*t;

distance = (i*0.016*c)/1000;//单位m

}

transform(distance);

LED = 0;

delay(200);

LED = 1;

LCD_write_string(1,4,data_string);

}

/******触发脉冲******/

void StartModule(void) //启动模块 {

int i;

TX=1; //启动一次模块 for(i=0,i<1000;i++)

TX=0;

}

//

//18b20初始化函数

void Init_DS18B20(void)

{

uchar x=0;

DQ = 1; //DQ复位

delay(8); //稍做延时

DQ = 0; //单片机将DQ拉低

delay(80); //精确延时大于 480us

DQ = 1; //拉高总线

delay(10);

单片机应用技术试卷A及答案

《单片机应用技术(C语言版)》试卷A一、单项选择题(每题1.5分,共30分) 1、51单片机的CPU主要由()组成。 A、运算器、控制器 B、加法器、寄存器 C、运算器、加法器 D、运算器、译码器 2、程序是以()形式存放在程序存储器中。 A、C语言源程序 B、汇编程序 C、二进制编码 D、BCD码 ——引脚()3、单片机8031的EA。 A、必须接地 B、必须接+5V电源 C、可悬空 D、以上三种视需要而定 4、单片机上电复位后,PC的内容为()。 A、0x0000 B、0x0003 C、0x000B D、0x0800 5、外部扩展存储器时,分时复用做数据线和低8位地址线的是() A、P0口 B、P1口 C、P2口 D、P3口 6、单片机的ALE引脚是以晶振振荡频率的()固定频率输出正脉冲,因此它可作为外部时钟或外部定时脉冲使用。 A、1/2 B、1/4 C、1/6 D、1/12 7、下面叙述不正确的是()。 A、一个C源程序可以由一个或多个函数组成。 B、一个C源程序必须包含一个主函数main( )。 C、在C程序中,注释说明只能位于一条语句的后面。 程序的基本组成部分单位是函数。C、D 8、在C语言中,当do-while语句中的条件为()时,循环结束。 A、0 B、false C、true D、非0 9、下面的while循环执行了()次空语句。 While(i=3); A、无限次 B、0次 C、1次 D、2次 10、C程序总是从()开始执行的。 A、主函数 B、主程序 C、子程序 D、主过程 11、在C51程序中常常把()作为循环体,用于消耗CPU运行时间,产生延时效果。 A、赋值语句 B、表达式语句 C、循环语句 D、空语句 12、在单片机应用系统中,LED数码管显示电路通常有()显示方式。 A、静态 B、动态 C、静态和动态 D、查询 13、共阳极LED数码管加反相器驱动时显示字符“6”的段码是() A、0x06 B、0x7D C、0x82 D、0xFA 14、51单片机的定时器T1用做定时方式时,采用工作方式1,则工作方式控制字为() A、0x01 B、0x05 C、010 D、0x50 15、启动T0开始计数是使TCON的()。

快速入门单片机汇编语言

快速入门单片机汇编语言 简要: 单片机有通用型和专用型之分。专用型是厂家为固定程序的执行专门开发研制的一种单片机,其程序不可更改。通用型单片机是常用的一种供学习或自主编制程序的单片机,其程序需要自己写入,可更改。单片机根据其基本操作处理位数不同可以分为:1位、4位、8位、16、32位单片机。 正文: 在此我们主要讲解美国ATMEL公司的89C51单片机。 一、89C51单片机PDIP(双列直插式)封装引脚图: 其引脚功能如下: P0口(p0.0—p0.7):为双向三态口,可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。 P1口(p1.0—p1.7):其每一位都能作为可编程的输入或输出线。 P2口(p2.0—p2.7):每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。 P3口(p3.0—p3.7):其为双功能口,作为第一功能使用时,其功能与P1口相同。当

作为第二功能使用时,每一位功能如下表所示。 P3口第二功能 Rst\Vpd:上电复位端和掉电保护端。 XTAL1(xtal2):外接晶振一脚,分别接晶振的一端。 Gnd:电源地。 Vcc:电源正级,接+5V。

PROG\ALE:地址锁存控制端 PSEN:片外程序存储器读选通信号输出端,低电平有效。 EA\vpp:访问外部程序储存器控制信号,低电平有效。当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。当EA为低电平时只访问外部程序存储器。 二、常用指令及其格式介绍: 1、指令格式: [标号:]操作码 [ 目的操作数][,操作源][;注释] 例如:LOOP:ADD A,#0FFH ;(A)←(A)+FFH 2、常用符号: Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。 rel:相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。 #data:包含于指令中的8位立即数。 #data16:包含于指令中的16位立即数。 addr16:16位目的地址。 direct:直接寻址的地址。

单片机应用技术课后习题参考答案

1 习题1答案 1.2 填空题 (1)单片级应用系统是由硬件系统、软件系统组成的 (2)除了单片机和电源外,单片机最小系统包括时钟电路、复位电路 (3)除了电源和电线引脚外,XTAL1、XTAL2、RST、EA引脚信号必须连接相应电 路 (4)51系列单片机的存储器主要有4个物理存储空间,即片内数据存储器、片内程序存储器、片外数据存储器、片外程序存储器 (5)51系列单片机的XTAL1和XTAL2引脚是时钟电路 (6)51系列单片机的应用程序一般存放在程序存储器 (7)片内RAM低128单元,按其用途划分为工作寄存器组、位寻址区、用户RAM区(8)但振荡脉冲频率为12MHz时,一个机器周期为1us,当振荡脉冲频率为6MHz时,一个机器周期为2us (9)51系列单片机的复位电路有两种,即上电复位电路、按键复位电路 (10)输入单片机的复位信号需延续2个机器周期以上的高电平即为有效。 1.3 (4)什么是机器周期?机器周期和晶振频率有何关系?当晶振频率为6MHz时,机器周期是多少? 答: 规定一个机器周期的宽度为12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。 当振荡脉冲频率为6 MHz时,一个机器周期为2 μs。 (5)51系列单片机常用的复位方法有哪几种?画电路图并说明其工作原理。 答: (a)上电复位电路(b)按键复位电路 单片机常见的复位电路 图(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST端的电位

与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。 图(b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图(b)中的RESET键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。 习题3 答案 3.2 填空题 (2)用C51编程访问51单片机的并行I/O口是,可以按字节,寻址操作,还可以按位操作(4)C51中定义一个可位寻址变量FLAG访问P3口的P3.1引脚的方法是s bit FLAG=P3^1; (10)下面的while循环执行了无限次空语句。 i=3; While(i!=0); (15)在以下的数组定义中,关键字“code”是为了把tab数组存储在程序存储器ROM中 Unsigned char code b[]={}; 3.3 上机操作题 (1) //xiti3_3_1.c——第三章习题3.3上机操作题(1) #include void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1){ P1=0x55; //按状态1的方式点亮8个LED delay(200); //延时 P1=0xaa; //按状态2的方式点亮8个LED delay(200); //延时 } } void delay(unsigned char i) //延时函数参见任务1程序ex1_1.c (2) //xiti3_3_2.c——第三章习题3.3上机操作题(2) #include //包含头文件REG51.H void delay(unsigned char i); //延时函数声明 void main() //主函数 { unsigned char i,l,r; while(1){ l=0x10; // 高4位灯的位置初值为00010000B r=0x08; // 低4位灯的位置初值为00001000B

快速入门单片机汇编语言

快速入门单片机汇编语 言 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

快速入门单片机汇编语言 简要: 单片机有通用型和专用型之分。专用型是厂家为固定程序的执行专门开发研制的一种单片机,其程序不可更改。通用型单片机是常用的一种供学习或自主编制程序的单片机,其程序需要自己写入,可更改。单片机根据其基本操作处理位数不同可以分为:1位、4位、8位、16、32位单片机。 正文: 在此我们主要讲解美国ATMEL公司的89C51单片机。 一、89C51单片机PDIP(双列直插式)封装引脚图: 其引脚功能如下: P0口(—):为双向三态口,可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。 P1口(—):其每一位都能作为可编程的输入或输出线。 P2口(—):每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。 P3口(—):其为双功能口,作为第一功能使用时,其功能与P1口相同。当作为第二功能使用时,每一位功能如下表所示。 P3口第二功能

Rst\Vpd:上电复位端和掉电保护端。 XTAL1(xtal2):外接晶振一脚,分别接晶振的一端。 Gnd:电源地。 Vcc:电源正级,接+5V。 PROG\ALE:地址锁存控制端 PSEN:片外程序存储器读选通信号输出端,低电平有效。 EA\vpp:访问外部程序储存器控制信号,低电平有效。当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。当EA为低电平时只访问外部程序存储器。 二、常用指令及其格式介绍: 1、指令格式: [标号:]操作码 [ 目的操作数][,操作源][;注释] 例如:LOOP:ADD A,#0FFH ;(A)←(A)+FFH 2、常用符号: Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。 rel:相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。 #data:包含于指令中的8位立即数。 #data16:包含于指令中的16位立即数。

单片机35个实例1(汇编)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。

4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此, 我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太 大,所以我们在执行某一指令时,插入延时程序,来达到我们 的要求,但这样的延时程序是如何设计呢?下面具体介绍其原 理: 如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒 机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248 =498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002

因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7 =248时,延时10ms,以此为基本的计时单位。如本实验要求 0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如 下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据 发光二极管的单向导电性可知,这时发光二极管L1熄灭;当 P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我 们可以使用SETB P1.0指令使P1.0端口输出高电平,使用 CLR P1.0指令使P1.0端口输出低电平。 5.程序框图

《单片机应用技术》课程标准

电子技术应用专业 《单片机应用技术》课程标准 增加附录:51或52单片机说明书,编程软件烧程序软件使用说明,增加实验中使用的各种器件说明 修改任务内容:去掉任务ISP下载线制作 增加点阵及液晶显示 一、概述 (一)课程性质 单片机技术是现代电子工程领域一门飞速发展的技术,其在教学及产业界的技术推广仍然是当今科学技术发展的热点。学习单片机并掌握其应用已经成为电子类学生必须具备的技能,也是现代工科学生就业的一个基本条件。 《单片机应用技术》是电子技术应用专业的一门职业技术课。它以模拟电子技术、数字电子技术、C语言等课程为基础。后续课程如电子产品装调技术、电子产品检测技术及相关实训课程,一般都要应用到单片机系统的应用。它可以充分体现学生利用自己所掌握的知识解决实际工程问题的能力。单片机知识在电子类专业整个课程体系中处于承上启下的核心地位。 通过本课程的学习,使学生掌握单片机技术及其在工业控制、经济建设和日常生活中的应用,培养学生实践能力、创新能力,为将来从事相关产品的检测和维护等工作奠定坚实的基础,为学生将来在电子类专

业领域进一步发展打下良好基础。 (二)课程基本理念 本课程的设计突破了学科体系模式,打破了原来各学科体系的框架,将各学科的内容按“项目”进行整合。本课程的“项目”以职业实践活动为主线,因而,它是跨学科的,且理论与实践一体化。强调学生个人适应劳动力市场变化的需要。因而,本课程的设计兼顾了企业和个人两者的需求,着眼于人的全面发展,以培养全面素质为基础,以提高综合职业能力为核心。 本课程包含了单片机应用技术的五个项目,每个项目均由若干个具体的典型工作任务组成,每个任务均将相关知识和实践(含实验)过程有机结合,力求体现“做中学”、“学中做”的教学理念;本课程内容的选择上降低理论重心,突出实际应用,注重培养学生的应用能力和解决问题的实际工作能力。 (三)课程设计思路 本课程标准注重培养分析问题、解决问题的能力,强化学生动手实践能力,遵循学生认知规律,紧密结合应用电子专业的发展需要,为将来从事应用电子产品的设计、检测奠定坚实的基础。将本课程的教学活动分解设计成若干项目或工作情景,以项目为单位组织教学,并以典型设备为载体,通过具体案例,按单片机项目实施的顺序逐步展开,让学员在掌握技能的同时,引出相关专业理论知识,使学生在技能训练过程中加深对专业知识、技能的理解和应用,培养学生的综合职业能力,满足学生职业生涯发展的需要。 二、课程目标 1、总目标 本课程先修要求:学生已学习《模拟电子技术》、《数字电子技术》等相关专业基础理论课程,有一定的电路识图、分析能力后进行本专业能力实训。通过实训学生应达到: (一)应使学生熟悉单片机的原理与结构,通过试验实训的训练和一些简易单片机项目制作,掌握单片机控制的基本原理、接口技术,掌

单片机C语言快速入门学

单片机c语言入门学 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具 体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵 ^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使 你每天捧着本书,把那本书翻烂,也永远学不会单片机的!刚接触单片机的朋友,看了资料,

《单片机应用技术》试卷B及答案

《单片机应用技术(C 语言版)》试卷B 一、 单项选择题(每题1.5分,共30分) 1、51单片机的CPU 主要由( )组成。 A 、运算器、控制器 B 、加法器、寄存器 C 、运算器、加法器 D 、运算器、译码器 2、PSW 中的RS1和RS0用来( ) 。 A 、选择工作方式 B 、指示复位 C 、选择定时器 D 、选择工作寄存器组 3、单片机8031的EA —— 引脚( )。 A 、必须接地 B 、必须接+5V 电源 C 、可悬空 D 、以上三种视需要而定 4、单片机上电复位后,PC 的内容为( )。 A 、0x0000 B 、0x0003 C 、0x000B D 、0x0800 5、单片机的4个并行I/O 端口作为通用I/O 端口使用,在输出数据时,必须外接上拉电阻的是( ) A 、P0口 B 、P1口 C 、P2口 D 、P3口 6、单片机的ALE 引脚是以晶振振荡频率的( )固定频率输出正脉冲,因此它可作为外部时钟或外部定时脉冲使用。 A 、1/2 B 、1/4 C 、1/6 D 、1/12 7、下面叙述不正确的是( )。 A 、一个C 源程序可以由一个或多个函数组成。 B 、一个 C 源程序必须包含一个主函数main( )。 C 、在C 程序中,注释说明只能位于一条语句的后面。 D 、C 程序的基本组成部分单位是函数。 8、在C51语言的if 语句中,用做判断的表达式为( )。 A 、关系表达式 B 、逻辑表达式 C 、算术表达式 D 、任意表达式

9、下面的while循环执行了()次空语句。 While(i=3); A、无限次 B、0次 C、1次 D、2次 10、C程序总是从()开始执行的。 A、主函数 B、主程序 C、子程序 D、主过程 11、在C51程序中常常把()作为循环体,用于消耗CPU运行时间,产生延时效果。 A、赋值语句 B、表达式语句 C、循环语句 D、空语句 12、在单片机应用系统中,LED数码管显示电路通常有()显示方式。 A、静态 B、动态 C、静态和动态 D、查询 13、在共阳极数码管使用中,若要仅显示小数点,则其相应的字段码是()。 A、0x80 B、0x10 C、0x40 D、0x7F 14、51单片机的定时器T1用做定时方式时,采用工作方式1,则工作方式控制字为() A、0x01 B、0x05 C、0x10 D、0x50 15、MCS-51系列单片机串行口发送/接收中断源的工作过程是:当串行口接收或发送完一帧数据时,将SCON中的(),向CPU申请中断。 A、RI或TI置1 B、RI或TI置0 C、RI置1或TI置0 D、RI置0或TI置1 16、在定时/计数器的计数初值计算中,若设最大计数值为M,对于工作方式1下的M值为()。 A、M=213 = 8192 B、M=28 = 256 C、M=24 = 16 D、M=216 = 65536 17、51单片机的串行口是()。 A、单工 B、全双工 C、半双工 D、并行口 18、表示串行数据传输速率的指标为()。 A、USART B、UART C、字符帧 D、波特率 19、串行口的控制寄存器为()。 A、SMOD B、SCON C、SBUF D、PCON 20、串行口的发送数据和接收数据端为()。 A、TXD和RXD B、TI和RI C、TB8和RB8 D、REN 二、填空题(每空1.5分,共30分)

STM32单片机快速入门V1.0概要

STM32 单片机快速入门 王志杰 2010年 5月 15日 目录 1 集成开发环境 (IDE ...................................................................................................................3 1.1 IAR 集成开发环境 ...............................................................................................................3 1.2 KEIL集成开发环 境 (20) 1.3 TrueSTUDIO集成开发环 境 (41) 2 附 录 ...........................................................................................................................................

.....54 2.1 源代码 main.c (54) 1集成开发环境(IDE 1.1IAR 集成开发环境 1.1.1安装 IAR 可从 IAR 网站上下载软件。 https://www.360docs.net/doc/b49704073.html, 下载安装,如下图所示:运行 IAR ,界面如下所示:

STM32

单片机快速入门 1.1.2创建一个工程 选择 File>New>Workspace STM32单片机快速入门新建一个 project ,选择

单片机应用技术(C语言)试题

一、选择题 1、单片机8031的/EA引脚(C)。 A. 可悬空 B. 必须接+5V电源 C. 必须接地 D. 以上三种情况视需要而定 2、MCS-51单片机的4个并行I/O端口作为通用I/O端口使用,在输出数据时,必须外接上拉电阻的是(A)。 A. P0口 B. P1口 C. P2口 D. P3口 3、当MCS-51单片机应用系统需要扩展外部存储器或其它接口芯片时,(A)可作为低8位地址总线使用。 A. P0口 B. P1口 C. P2口 D. P0口和P2口 4、系统复位后,堆栈指针SP的内容是(B)。 A. 08H B. 07H C. 30H D. 50H 5、MCS-51单片机的位寻址区位于内部RAM的( D )单元。 A. 00H~7FH B. 20H~7FH C. 00H~1FH D. 20H~2FH 6、PSW中的RS1和RS0用来(A)。 A. 选择工作寄存器组 B. 指示复位 C. 选择定时器 D. 选择工作方式 7、MCS-51单片机规定一个机器周期共有(A)个节拍。 A. 12 B. 6 C. 8 D. 16 8、下面叙述不正确的是(C)。 A. 一个C源程序可以由一个或多个函数组成 B. 一个C源程序必须包含一个函数main() C. 在C51中,注释说明只能使用/*……*/注释 D. C程序的基本组成单位是函数 9、在C51程序中常常把(D)作为循环体,用于消耗CPU时间,产生延时效果。 A. 赋值语句 B. 表达式语句 C. 循环语句 D. 空语句 10、在单片机应用系统中,LED数码管显示电路通常有(C )显示方式。 A. 静态 B. 动态 C. 静态和动态 D. 查询 11、共阳极LED数码管加反向器驱动时显示字符“6”的段码是(B)。 A. 06H B. 7DH C. 82H D. FAH 12、LED数码管若采用动态显示方式,下列说法错误的是(C)。 A. 将各位数码管的段选线并联 B. 将段选线用一个8位I/O端口控制 C. 将各位数码管的公共端直接连接在+5V或者GND上 D. 将各位数码管的位选线用各自独立的I/O端口控制 13、按键开关的结构通常是机械弹性元件,在按键按下和断开时,触点在闭合和断开瞬间会产生接触不稳定,为消除抖动引起的不良后果,常采用的方法有(C)。 A. 硬件去抖动 B. 软件去抖动 C. 硬、软件两种方法 D. 单稳态电路去抖方法

基于protuse的单片机模拟的实例

本人对单片机的一些了解,在这里和大家分享。 (1)基于AT89C52的同步串口通信 ①单片机1程序 (程序在Kile C51上运行通过。) /******************************************************************** * 文件名:液晶1602显示.c * 描述: 该程序实现了对液晶1602的控制。 * 创建人:东流,2009年4月10日 * 版本号:2.0 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int //这三个引脚参考资料 sbit E=P3^5; //1602使能引脚 sbit RW=P3^6; //1602读写引脚 sbit RS=P3^7; //1602数据/命令选择引脚 sbit aaa=P1^0; sbit bbb=P1^1; sbit aa=P3^0; sbit bb=P3^1; /******************************************************************** * 名称: delay() * 功能: 延时,延时时间大概为140US。 * 输入: 无 * 输出: 无

***********************************************************************/ void delay() { int i,j; for(i=0; i<=100; i++) for(j=0; j<=20; j++) ; } /******************************************************************** * 名称: enable(uchar del) * 功能: 1602命令函数 * 输入: 输入的命令值 * 输出: 无 ***********************************************************************/ void enable(uchar del) { P2 = del; RS = 0; RW = 0; E = 0; delay(); E = 1; delay(); } /******************************************************************** * 名称: write(uchar del) * 功能: 1602写数据函数 * 输入: 需要写入1602的数据 * 输出: 无 ***********************************************************************/ void write(uchar del) { P2 = del; RS = 1; RW = 0; E = 0; delay(); E = 1; delay();

单片机应用技术说课稿

各位领导、专家、评委:你们好! 我是自控系计算机控制技术教研室老师刘刚。我说课的课程是“单片机技术应用”。下面我从课程设置、课程内容、课程实施、课程评价等等六方面来汇报对课程的钻研情况和教学思想。恳请在座的专家、评委批评指正。 《单片机应用技术》课程在计算机控制技术专业人才培养方案中具有重要作用,,是“计算机控制工程综合能力”的重要构成部分,对学生职业能力的培养起到重要支撑作用。同时,《单片机技术应用》课程也是专业课程体系中的一个关键环节,对课程体系的构建起到了承上启下的关键作用,是前期《模拟电子技术》、《数字电子技术》、《C语言程序设计》等课程的综合和提升,又是后续《计算机控制技术》、《自控理论》等课程的前提和基础。 经过调研我们得知本专业的学生将来大致的就业岗位:生产维修岗、设计研发岗以及技术支持岗,不同的岗位适应于不同的行业,对职业能力的需求也有所侧重。但总的来说都要求学生具有一定的理论基础与较强的实践应用能力。据此,我们将课程目标定位于:使学生了解单片机的特点、基本工作原理;了解单片机与微型计算机的区别与联系;掌握单片机的指令系统、中断系统、扩展系统、定时器、接口技术。掌握单片机应用程序的设计方法。并将课程目标细化为能力目标、知识目标和素质目标。 立足于课程的培养目标,我们以实际控制任务、高职培养目标、人的认识规律、以及单片机设计师职业资格要求等为依据精心选择、设计课程内容。 本课程以循环流水灯、电子钟、温度测量报警系统3个电子产品的设计制作过程为载体。根据产品的设计制作过程,结合单片机的知识点划分为10个教学任务,每个学习任务既是一项单片机应用技能的训练,又是整个产品设计制作的一个环节。 3个电子产品分别适用单片机学习的3个阶段:入门、基础、扩展。 循环流水灯涉及简单的开关量控制,是单片机控制的基础,设计制作简单,容易实现,有助于提高学生的积极性。 电子钟涉及单片机应用系统的常用电路,即显示电路和键盘电路,其设计制作过程涉及外部中断、定时/计数器应用,是进一步应用的基础。 温度测量报警系统是在前面制作的基础上,对并行接口芯片、串行

STM8单片机入门快速教程

STM8单片机入门快速教程 一、前言 因个人在学习STM8时遇到许多困惑,所以编译一个 STM8快速入门教程,望能为初学者提供一些帮助。二、STM8使用的编译软件和下载软件 STM8有对应库函数,但我用的是IAR编译软件,是直 接操作寄存器,所以就不对库函数多少什么。IAR是最 近一两年才支持STM8编译的,所以软件嘚找好,注册 机嘚选对。下载软件我是用现成的“轩微科技STM8编 程下载器”淘宝要60多一个。因操作寄存器所以要具 备几个文档,具体我配带在文件里面了。编程用的头文 件是#include 或#include , 根据型号而定,有的型号不一样定义的地址会不一样 的。 三、IO的输出、输入 每个单片机我想最重要懂的应该是它怎么输出高低电平还怎么输入。STM8管脚分三级流水控制。分别有方向寄存器、控制寄存器、还有输出/输入寄存器。 方向寄存器:是控制IO口成输出还是输入状态 控制寄存器:有两个,是控制IO口以什么模式输出或输入 因为高级单片机有很多种输出模式,比如上拉 输入,推挽输出等....。

输出/输入寄存器:其分别有单独的输出寄存器和输入寄存器,输出寄存器给其高低电平就输出高低电平 (条件是配置为输出状态时)。输入寄存器无 论是在输出还是输入模式都可读取IO的高低 电平状态。 其具体设置可下面: DDR CR1 CR2 引脚设置 0 0 0 悬浮输入 0 0 1 上拉输入 0 1 0 中断悬浮输入 0 1 1 中断上拉输入 1 0 0 开漏输出 1 1 0 推挽输出 1 X 1 输出(最快速度为10MHZ)

单片机应用技术C语言版

1.1单片微型计算机(Single Chip Microcomputer)简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(Central Processing Unit)、存储器(memory)、基本输入/输出(Input/Output,简称I/O)接口电路、定时/计数器和中断系统等 1.2软件是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,二者相互依赖,缺一不可 1.3单片机的发展经历了由4位机到8位机,再到16位机的发展过程 1.4中央处理器CPU:8位,运算和控制功能 内部RAM:共256个RAM单元,用户使用前128个单元, 用于存放可读写数据,后128个单元被专用寄存器占用。 内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。 定时/计数器:两个16位的定时/计数器,实现定时或计数功能。 并行I/O口:4个8位的I/O口P0、P1、P2、P3。 串行口:一个全双工串行口。 中断控制系统:5个中断源(外中断2个,定时/计数中断2个,串行中断1个) 时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ 1.5按键手动复位,有电平方式和脉冲方式两种。 1.6寄存器SP的复位电路07H 寄存器P0-P3的复位电路FFH 寄存器PC的复位电路0000H 寄存器B的复位电路00H 1.7单片机的时序概念从小到大依次是:节拍、状态、机器周期和指令周期 1.8机器周期:一个机器周期分为6个状态:S1~S6。每个状态又分为两拍:P1和P2 1.9指令周期:是执行一条指令所需的机器周期数。 1.10P0口:双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。 1.11 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0*(外部中断0) P3.3 INT1*(外部中断1) P3.4 T0(定时器0外部计数输入) P3.5 T1(定时器1外部计数输入) P3.6 WR*(外部数据存储器写选通) P3.7 RD*(外部数据存储器读选通) 1.12P0口输出高电平必须接上拉电阻。P1~P3口输出高电平不必接上拉电阻。 1.13对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。 1.14直接寻址:直接通过地址访问(00H~7FH) 1.15 data 直接访问内部数据存储器(128字节),访问速度最快 1.16C5l的数据类型有位型(bit)、无符号字符(unsigned char)、有符号字符(signed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长型(unsigned long)、有符号长型(signed long)、浮点(float)和指针类型等。其中short与long属整型数据、float与double 型属浮点型数据。 1.17bit flag; // 将flag定义为位变量sfr P1 = 0x90; //定义P1口,地址90H #define uchar unsigned char宏定义 sbit P1_0=P1^0变量声明 void delay(uchar i);被调函数声明void main() 定义主函数

《单片机应用技术》课程标准

《单片机应用技术》课程标准

一、课程简介 《单片机应用技术》以标准C语言和MCS-51单片机为基础,全面系统地介绍基于C 语言的单片机程序设计与应用的基本问题,是一门重在应用、兼顾理论的实用教程。主要内容包括:MCS-51系列单片机开发操作环境、单片机硬件系统、单片机的C语言概述、C51语言程序设计基础、单片机内部资源和外部扩展资源的C51语言编程、μVision2集成开发环境的使用等。本课程以单片机应用系统为主,实训要求选自工程实际;将知识点分散到完成不同的实训情境中,以任务为驱动,边讲边练;课内课外结合,组织学生创新竞赛,培养学生的创新能力。 二、课程性质与定位 本课程是电子类各专业(如电子信息工程技术、应用电子技术、电气自动化技术等)的一门专业课程,而且是核心课程。通过本课程的教学,使学生系统掌握单片机的基本原理、功能、应用、程序设计方法和编程技巧,使学生掌握一种基本机型,掌握单片机控制技术的基本原理和应用,为今后从事电子、自动化控制领域的工作打下基础。其前修课程有《电工电子技术》、《EDA技术》、《计算机文化基础》等,后续课程为《单片机C语言开发技术》、《嵌入式系统》等课程。 三、课程设计思路 本课程的开发设计是校内课程团队成员与行业企业技术人员共同分析岗位需求,确立岗位职业能力与工作过程。 走访大量从事电子产品、设备设计、生产、制造和电子自动检测相关企业,深 入行业企业一线进行岗位职业能力与工作过程调查; 与企业生产一线技术人员共同制定课程标准,共建更能贴近和满足实际应用能 力需求的能力训练体系; 与在企业一线从事电子测量、电子产品设计与制作、电子电气设备生产、运行、 维护的毕业学生进行交流,听取毕业生对本课程建设的反馈意见,以他们的亲身经历和切身体会帮助我们审视以往课程建设体系中存在的问题,并对实训教学情境的构建提出修改意见。 通过与行业企业的深入交流,确立了以面向装配工、测量员、电子产品设计与制作的生产制造等岗位、针对实际工作过程中完成各项工作任务应具备的职业能力,从系统化的学习情境设计入手,确立了以围绕突出学生职业能力培养和职业素质养成这一主

1小时单片机c语言快速入门1

1小时c语言入门 (一) 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚,更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机(Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机,但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着

书在埋头复习的时候,我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出,或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似,编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲的全是C方面的,完全在浪费你的时间! 呵呵^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使你每天捧着本书,把那本书翻烂,也永远学不会单片机的!

单片机入门常用知识

概述: 所谓单片机就是能在一个芯片上完成计算机处理功能的设备,在芯片的内部有计算单元、数据处理单元、程序存储以及常用的外部接口管理单元。在软件程序的管理控制下可实现设计者所需要的功能。 最初的单片机受芯片设计密度的限制,功能和性能不强,随着技术的发展,目前的单片机可实现大多数的常用接口功能,软件的存储空间也越来越大,处理能力大幅增加。 单片机常用功能: 普通端口功能:单片机都带有多个逻辑端口,可作为逻辑状态的输入输出使用,可用于控制或读取外部状态。 定时功能:单片机内部包含有定时器,通过对定时时钟进行计数来产生需要的延时,延时的长短可通过设置定时器的计数值来设置。 中断功能:单片机内部设定有多个中断入口,每当产生中断条件后,程序自动跳入到中断入口,通过中断入口的跳转指令转到中断处理程序,执行完后返回到产生中断跳转程序处的下一个指令地址。在单片机接口上,有专用的中断管脚,可设置为电平中断或边沿中断,当管脚出现条件时,设置对应的中断标志,触发相应中断。除了管脚中断,串口、定时、A/D等几乎都可产生中断。同时,中断的响应还需要设置对应的寄存器到要求的状态才可。 串口功能:串口相对于并口来说,数据是通过一个管脚送出或读入,数据长度一般为8位,按顺序移位送出。串口特点具有实用管脚少,应用方式灵活的特点,通过RS232电平转换可直接和计算机的串

口进行通讯。 A/D功能:可直接输入模拟信号,软件发出转换信号后,信号的幅值可通过转换变换为数值信号送对应的寄存器上。 D/A功能:可直接输出模拟信号,信号的幅值可通过D/A端口的设置数值来设定。 以上为常用功能,有些单片机还有SPI、USB、CAN等多种接口外部常用设备: 显示和输入:单片机的处理信息一般通过液晶屏或数码管来显示处理内容,液晶屏或数码管可直接连接到单片机管脚上,按照显示需求设置软件即可,输入多用按键输入,也可直接连接到单片机管脚上,软件通过监测管脚状态可获得按键信息。 串口应用:单片机串口信号一般为TTL电平,外部常用RS232或RS485,在应用中需要加对用的转换芯片或模块。 开发环境: 单片机储存的程序为二进制格式,把程序写入到单片机需要专用的设备,早期完成这个功能采用编程器来完成,编程器通过打印机口或串口以及USB口和计算机连接,单片机则通过可锁插座装入到编程器上,通过计算机上的软件选择好单片机型号,读入要下载的二进制软件,然后运行编程,则完成下载。目前,则是通过仿真器(下载线)来完成,一般是通过USB口连接计算机,计算机上下载功能和仿真功能集合到一起。通过编译软件把软件编译成二进制文件,然后直接下载即可。下载后的软件可通过仿真运行进行调试。

相关文档
最新文档