当前位置:文档之家› PIC单片机与串行闪存的SPI接口设计

PIC单片机与串行闪存的SPI接口设计

PIC单片机与串行闪存的SPI接口设计
PIC单片机与串行闪存的SPI接口设计

PIC单片机与串行闪存的SPI接口设计

孙晓晔

(冀科双实科技有限公司,石家庄050081)

摘要:依据SPI通信协议,详细介绍了PIC16F877A与M25P16的SPI接口的硬件电路连接以及软件程序的实现,并在自来水流量采集系统中得到应用,可为大容量数据存储提供参考。

关键词:串行闪存;SPI接口;M25P16;PIC16F877A

中图分类号:TP30 文献标识码:A

SPI Interface Between PIC MCU and Serial Fla sh

Sun Xiaoye

(Jikeshuangshi Science&Technology Co.,Ltd.,Shijiazhuang050081,China)

Abstract:This paper briefly introduces t he SPI communication protocol and M25P16chip,and discusses t he hardware design and soft2 ware implementation of t he interface between PIC16F877A and M25P16.The interface provides t he reference design for high2capacity data storage.

K ey words:serial flash;SPI interface;M25P16;PIC16F877A

引 言

PIC单片机以性能稳定、品种众多等特点在工业控制、仪器仪表、家电、通信等领域得到广泛应用。虽然很多型号自身集成了存储器,但在很多情况下难以满足系统对大容量存储的要求,需要外扩非易失性的存储器。与并行Flash存储器相比,串行Flash存储器占用MCU引脚少,体积小,易于扩展,接线简单,工作可靠,故而越来越多地应用在各类电子产品和工业测控系统中。本文主要讨论PIC16F877A单片机与串行闪存M25P16之间的SPI通信,在要求大容量数据存储且MCU引脚资源有限的情况下具有实用价值。

1 SPI工作原理

SPI(Serial Peripheral Interface)是一种常用的串行通信协议,用于MCU系统与外围设备的通信,可用来连接存储器、A/D转换器、D/A转换器、实时时钟、LCD驱动器、传感器,甚至其他处理器。SPI主要使用4个信号: MOSI(主机输出/从机输入)、MISO(主机输入/从机输出)、SCK(串行时钟)和CS(片选)。其中,SCK由主机产生,作为传输的同步时钟,控制所有数据传输。主机通过触发从设备的CS决定二者之间的SPI传输是否能够进行。主机和外设都包含1个串行移位寄存器。主机通过向自己的SPI串行寄存器写入1个字节来发起1次传输,然后通过MOSI信号线将数据传给外设,

同时外设将自己

图1 SPI传输

移位寄存器中的内容通过MISO信

号线返回给主机,如图1所示。这

样,两个移位寄存器中的内容就交

换了。也就是说,外设的写操作和

读操作是同步完成的。在实际应用

中,如果只进行写操作,则主机只需

忽略收到的字节即可;如果主机要

读外设的数据,必须发送1个字节来引发从机的传输,发送的这个字节可以是任意数据。

2 M25P16简介

M25P16是16Mb的串行闪存,具有先进的写保护机制,支持速度高达50M Hz的SPI总线的存取操作。该存储器有32个扇区,每个扇区256页,每页256字节。工作电压范围2.7~3.6V,工作温度范围-40~+85℃。数据保存长达20年,每个扇区可擦写/编程100000次。

M25P16支持的操作指令共有12条。指令格式为:命令字(1字节)地址(0/3字节)哑元(0/1/3字节)数据(0~∞字节)其中,8位的命令字是必需的,地址、哑元以及数据字节的有无和长度会因指令的不同而有所差别,详情如表1

所列。所有的命令码、地址、串行输入/输出的数据,均是高位在前,低位在后。

表1M25P16的指令集

指 令指令描述命令字

地址

字节数

哑元

字节数

数据

字节数

WREN写允许0x06000 WRDI写禁止0x04000 RDID读器件标识0x9F001~3 RDSR读状态寄存器0x05001~∞WRSR写状态寄存器0x01001 READ读数据0x03301~∞FAST_READ快速读数据0x0B311~∞PP页编程0x02301~256 SE扇区擦除0xD8300 BE整体擦除0xC7000 DP进入掉电模式0xB9000

RES 掉电模式唤醒

掉电模式唤醒

并读电子签名

0xAB

000

031~∞

对M25P16操作时,先选中芯片(即片选信号S拉低),然后串行输入操作指令字节,紧接着串行输入地址字节(0或3字节),必要时还要加入哑读字节,最后串行输入/输出数据字节,然后把片选信号拉高,之后M25P16启动内部控制逻辑,自行完成相应的操作。

3 SPI硬件设计

PIC16F877A单片机具有非常完善的SPI接口(RC3/SCK、RC4/SDI、RC5/SDO、RA5/SS),只有PIC16F877A作为从机时,RA5/SS引脚才作为SPI脚, PIC16F877A为主机时,SS可作为普通I/O使用。通过该接口,可比较容易地实现PIC16F877A与SPI Flash的通信。PIC16F877A与M25P16的硬件接口如图2所示。其中,SCK、SDI、SDO为MCU的SPI专用引脚,分别与存储器的对应引脚相连,可选MCU的任意I/O脚作为

存储器的片选信号,图中选取RC2脚与存储器的片选S 相连,这样,在SPI通信时只涉及MCU的C口,便于操作

。M25P16的HOLD和W直接接高电平,表示不允许在S有效的情况下暂停SPI通信且整个存储区都没有写保护。

图2中,VDD为+5V,由于PIC16F877A工作在5V 电压下,而M25P16的工作电压范围为2.7~3.6V,二者不能直接相连。这里采用电阻分压的方式,保证输入M25P16的S、C、D脚的电压在存储器能承受且能识别的范围内,通过在M25P16向PIC16F877A输入数据的SDO 脚加上拉电阻,保证MCU可以识别M25P16输出的高电压,从而保证正常的SPI通信。如果MCU工作于3.3V,则直接将二者的对应引脚相连即可。4 SPI软件设计

在硬件连线正确的基础上,要进行SPI通信,还要对M25P16编写驱动程序,包括SPI初始化、读M25P16的数据、向M25P16写入数据、数据的擦除等,这里使用C语言编程,编译器选择PICC,开发环境为MPLAB IDE8.10。

PIC16F877A的SPI通信涉及4个寄存器:控制寄存器SSPCON、状态寄存器SSPSTA T、串行接收/发送缓冲器SSPBU F和移位寄存器SSPSR。其中,SSPCON的8位都是可读可写的,用于设置SSP处于主/从模式、时钟频率、时钟极性、SSP使能以及写冲突检测;SSPSTA T只有高2位可读写,低6位是只读的。PIC16F877A处于接收模式时,SSPSR和SSPBU F构成2级缓冲的接收器, SSPSR每收到1个完整的字节,就将该字节传给SSP2 BU F,并将中断标志位SSPIF置1,可通过读SSPBU F得到数据;877A处于发送模式时,写SSPBU F操作会同时将数据写入SSPSR,触发传输。下面结合具体的代码进行详细阐述。

(1)SPI初始化与读写函数

void SpiInit(){//SPI初始化

TRISC=0xd3; //11010011设置PIC16F877A引脚RC2,

//RC3/SC K和RC5/SDO为输出,其他为输入SSPSTA T=0x80;

SSPCON=0x32;//SPI使能,主机传送模式,时钟为

//f osc/64(f osc为CPU时钟频率,这里为4M Hz) cs=1;//片选拉高

}

void SendByte(uchar data){//通过SPI写1字节数据SSPBU F=data;

while(!STA T_BF);

SSPIF=0;

}

uchar RcvByte(){//通过SPI读回1字节数据图2M25P16与PIC16F877A的接口电路

SSPBU F=0x00;//读数据时须先发送1字节的数据while(!STA T_BF);

return(SSPBU F);

}

从SendByte和RcvByte函数的代码中,可以看出数据发送和接收是否完成,都是通过判断STA T_BF标志位(SSPSTA T寄存器的BF位,STA T_BF是在头文件pic1687x.h中定义的名称)来实现的,而数据手册中关于BF位的描述仅用于接收模式。这是由于PIC16F877A通过SDO发送数据的同时,会通过SDI读入数据,当1字节发送完成时,刚好接收1字节到SSPBU F,这时SSPBU F 满,BF被置为1,故可通过STA T_BF标志判断1字节是否发送完成。

(2)连续写函数

M25P16的PP指令允许1次连续写入不超过1页(256字节)的数据。写入数据之前,首先要发出写允许命令,然后才能执行数据写入操作。数据写入函数参数包括address(32位地址)、block(写入数据缓冲区指针)、n(一次连续写入的字节数,n<256)。如果address的低8位不全为0,即不是从页起始处写,并且需要写入的数据超出该页剩余空间,则超出部分被丢弃。代码如下:

void WrBytes(u32address,uchar3block,uchar n){ uchar IsOver=0;

while(n){

write_enable();

cs=0; //片选拉低

delay(1);

SendByte(PP);

SendByte((address&0x00ff0000)>>16);

//写3字节地址高字节

SendByte((address&0x0000ff00)>>8);

//写3字节地址中字节

SendByte(address&0x000000ff);

//写3字节地址低字节

SendByte(3block);

//写1字节数据

n--;

block++;

address++;

while(n>0&&((address&0x000000ff)!=0)){

//数据未写完且未到下一页

delay(1);

SendByte(3block);

n--;

address++;

block++;

}

delay(1);

cs=1;

do{

cs=0;

delay(1);

SendByte(RDSR);

IsOver=RcvByte();

delay(1);

cs=1;

}

while(IsOver&0x01);//读状态寄存器,直到WIP=0 }

}

void write_enable(){//写允许

cs=0;//片选拉低

delay(1);

SendByte(WREN);

delay(1);

cs=1;//片选拉高

}

其中,delay()为延时子函数,参数为ms级,delay(1)即延时1ms。加入延时,是为了保证存储器在准备好的情况下才进行读写操作。

void delay(uint x){

uint a,b;

for(a=x;a>0;a--)

for(b=110;b>0;b--);

}

(3)连续读函数

M25P16允许发出读指令后,连续读取数据,这一模式极大提高了总线效率。数据读取函数的参数包括ad2 dress:32位地址;block:读数据缓冲区指针;n:一次连续读取的字节数,代码如下:

void ReadBytes(u32address,uchar3block,uchar n){ write_enable();

cs=0;

delay(1);

SendByte(FAST_READ);

SendByte((address&0x00ff0000)>>16);

//写3字节地址高字节SendByte((address&0x0000ff00)>>8);

//写3字节地址中字节SendByte(address&0x000000ff);

//写3字节地址低字节(下转51页)

图4 

衰减带通滤波器电路

图5

 参数设置

图6 仿真结果

PA 最大的线性功率输出大于或等于34dB ,考虑到

大约3dB 的多路损耗和滤波损耗以及1dB 的线缆和开

关损耗,天线端口的输出功率大约有+30dB 。PA 板卡的噪声干扰可以控制在6dB 以内,整个PA 系统的输入输出阻抗为50Ω。在设计中要特别注意PA 的散热设计,可

以通过温度感应调整PA 的方式来补充直接的散热设计,

从而更为有效地控制功率和优化散热设计。通过电源控制电路可以在需要时关闭PA ,降低整个板卡的功耗。

结 语

本文以设计一种U HF 超高频射频读写器为目的,设

计了基于射频芯片Intel R1000和A T91SAM9263微控制器的读写器系统,增加了外部PA 设计,从而大大增加了读写器的读写距离。本文所研究的读写器基带系统和射频系统,对RFID 读写系列产品的设计具有一定的借鉴意义。

参考文献

[1]Finkenzeller K lau S.射频识别(RFID )技术[M ].陈大才,译.

北京:电子工业出版社,2001.

[2]中华人民共和国科学技术部等十五部委.中国射频识别

(RFID )技术政策白皮书,2006.

[3]游战清,李苏剑.无线射频识别技术(RFID )理论与应用

[M ].北京:电子工业出版社,2004.

[4]程良伦,刘学钢.一种U HF 及微波段RFID 标签芯片的研究

与应用[J ].微计算机信息,2006,22(9):1822185.

[5]罗海勇,李锦涛,郭俊波,等.新一代超高频RFID 无线接口

标准EPC CLASS 21/G en 22研究[J ].电子技术应用,2006

(5):1312133.

[6]刘宏伟,李成.ISO/IEC1800026C 简析[J ].标准与技术跟踪,

2007(7):17220.

[7]陈邦媛.射频通信电路[M ].北京:科学出版社,2002.

(收稿日期:2009212209)

(上接48页)

SendByte (0x00);//写dummy byte

while (n ){

3block =RcvByte ();

block ++;n --;}delay (1);cs =1;}

M25P16的连续读操作与连续写不同的是,无论READ 还是FAST_READ ,在起始地址处1字节的数据读出后,会自动寻址更高地址处的数据,故程序中无需ad 2dress ++语句。

除了对M25P16的初始化、读写之外,经常还要对其进行擦除操作,擦除有扇区擦除和整体擦除2种方式,执行数据擦除将使内部所有数据变为FF H 。擦除操作与写操作类似,在此不再赘述。

结语

本文介绍的M25P16与PIC16F877A 的接口已应用于自来水流量数据采集的本地存储中。运行稳定可靠,未发现数据丢失现象,对其他应用有一定的参考价值。

参考文献

[1]陈肖华,任德志,徐丽萍,等.基于增强型SPI 接口的大容量

Flash 扩展实现[J ].国外电子元器件,2006(10):19222.[2]杨美刚,李小文.SPI 接口及其在数据交换中的应用[J ].通

信技术,2007,40(11):3852387.

[3]Microchip Technology Inc.PIC16F87XA Data Sheet [OL ].

2003[2009-11]https://www.doczj.com/doc/d79646015.html,.

[4]ST Corporation.M25P16Datasheet [OL ].(2004205)[20092

11]https://www.doczj.com/doc/d79646015.html,.

孙晓晔(助理工程师),主要研究领域为嵌入式技术和远程监控。

(收稿日期:2009212207)

单片机课程设计代码

陈新 2014/7/21 17:32:03 QQ可以找到历史记录的 陈新 17:33:15 无痕的回忆 17:01:52 LED_LOOP: MOV R1, #251 ;1s的显示延时(好奇怪,居然不准) LED_LOOP_1: MOV R4, #14 ;使用了寄存器R1,R4(估计可以使用堆栈临时释放) LED_LOOP_2: LCALL DISPLAY_MOVE DJNZ R4, LED_LOOP_2 DJNZ R1, LED_LOOP_1 RET 无痕的回忆 23:10:36 ORG 0000H AJMP MAIN ORG 0030H HC595_SCK BIT P0.4 HC595_RCK BIT P0.5 HC595_RST BIT P0.6 HC595_DAT BIT P0.7 MAIN: MOV A, #00H MOV P0, A CLR HC595_RST LOOP0: MOV R0, #0 LOOP1: MOV R1, #100 LOOP2: MOV R4, #10 LOOP3: LCALL DISPLAY DJNZ R4, LOOP3 DJNZ R1, LOOP2 INC R0 LJMP LOOP1 DELEY0: MOV R6, #4 ;1ms延时的子程序 DELEY1: MOV R7, #123 DELEY2: DJNZ R7, DELEY2 DJNZ R6, DELEY1 NOP RET

DISPLAY: MOV A, R0 MOV B, #100 DIV AB MOV B, #10 DIV AB ;MOV A, #0 LCALL SHOW_NUM MOV A, P0 ANL A, #0F0H ORL A, #1 MOV P0, A ;延时LCALL DELEY0 ;延时LCALL DELEY0 MOV A, R0 ;有问题MOV B, #100 DIV AB ;MOV A, #7 LCALL SHOW_NUM MOV A, P0 ANL A, #0F0H ORL A, #2 MOV P0, A ;延时LCALL DELEY0 ;延时LCALL DELEY0 MOV A, R0 MOV B, #100 DIV AB XCH A, B MOV B, #10 DIV AB ;MOV A, #7 LCALL SHOW_NUM MOV A, P0 ANL A, #0F0H ORL A, #4 MOV P0, A LCALL DELEY0 ;延时LCALL DELEY0 ;延时 MOV A, R0 MOV B, #10 DIV AB

关于单片机的一些小实验_06 一位数码管静态显示

/****************************************************************************** ************** * 功能:一位数码管静态显示。 * 硬件条件:1.CPU型号:AT89S52 * 2.晶振:12.000MHz * 3. P0口全部接上拉电阻。 * 4.短接P0.0__SMG1 * 短接P0.1__SMG2 * 短接P0.2__SMG3 * 短接P0.3__SMG4 * 短接P0.4__SMG5 * 短接P0.5__SMG6 * 短接P0.6__SMG7 * 短接P0.7__SMG8 * 短接P2.7__SI1 * 短接P2.6__RCK1 * 短接P2.5__SCK1 * 日期:2014年04月23号 ******************************************************************************* **************/ #include "reg52.h" // 包含头文件 /* 与编译器无关的数据类型定义*/ /****************************************************************************** **************/ typedef unsigned char uint8; // 无符号8位整型变量 typedef signed char int8; // 有符号8位整型变量 typedef unsigned short uint16; // 无符号16位整型变量 typedef signed short int16; // 有符号16位整型变量 typedef unsigned int uint32; // 无符号32位整型变量 typedef signed int int32; // 有符号32位整型变量 typedef float fp32; // 单精度浮点数(32位长度)typedef double fp64; // 双精度浮点数(64位长度) /****************************************************************************** **************/ /* 定义位变量*/ sbit P0_0 = P0 ^ 0; sbit P0_1 = P0 ^ 1; sbit P0_2 = P0 ^ 2; sbit P0_3 = P0 ^ 3; sbit P0_4 = P0 ^ 4; sbit P0_5 = P0 ^ 5; sbit P0_6 = P0 ^ 6;

单片机课程设计报告模板资料

哈尔滨远东理工学院 课题名称 专业班级 学号 学生姓名 指导教师 2015年10月14日

1、例举设计过程中遇到的问题及其解决方法(至少两例)。答:(1)问题说明: 解决方法: (2)问题说明: 解决方法: 2、教师现场提的问题记录在此(不少于2个问题)。

目录 1 设计任务 (1) 2设计方案 (2) 2.1任务分析 (2) 2.2方案设计 (2) 3 系统硬件设计 (3) 3.1时钟电路设计 (3) 3.2复位电路设计 (3) 3.3 灯控制电路设计 (3) 3.4 倒计时显示电路设计 (4) 3.5 按键控制电路设计 (5) 4 系统软件设计 (6) 4.1 1S定时 (6) 4.2 定时程序流程 (6) 4.3交通灯的设计流程图 (6) 4.4定时器0 及中断响应 (7) 5仿真与性能分析 (8) 6心得体会 (9) 参考文献 (10) 附录1 系统原理图 .......................................................................错误!未定义书签。附录2 系统PCB图 .....................................................................错误!未定义书签。附录3 程序清单 .. (11) II

1 设计任务 支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图1.1所示。设东西向为主干道,南北为支干道。 1. 基本要求 (1) 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 (2) 主、支干道均有车时,两者交替允许通行,主干道每次放行30秒,支干道每次放行20秒,设立30秒、20秒计时、显示电路。 (3) 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。黄灯亮时,原红灯按1Hz 的频率闪烁。 (4) 要求主支干道通行时间及黄灯亮的时间均可在0~99秒内任意设置。 2. 选做 (1) 可设置紧急按钮,在出现紧急情况时可由交警手动实现全路口车辆禁行而行人通行状态,即主干道和支干道均为红灯亮。 (2) 实现绿波带。所谓‘绿波带’,是指在一定路段,只要按照规定时速,就能一路绿灯畅行无阻。“绿波带”将根据道路车辆行驶的速度和路口间的距离,自动设置信号灯的点亮时间差,以保证车辆从遇到第一个绿灯开始,只要按照规定速度行驶,之后遇到的信号灯将全是绿灯。

单片机课程设计(温度控制系统)

温度控制系统设计 题目: 基于51单片机的温度控制系统设计姓名: 学院: 电气工程与自动化学院 专业: 电气工程及其自动化 班级: 学号: 指导教师:

2015年5月31日 摘要: (3) 一、系统设计 (3) 1.1 项目概要 (3) 1.2设计任务和要求: (4) 二、硬件设计 (4) 2.1 硬件设计概要 (4) 2.2 信息处理模块 (4) 2.3 温度采集模块 (5) 2.3.1传感器DS18b20简介 (5) 2.3.2实验模拟电路图 (7) 2.3.3程序流程图 (6) 2.4控制调节模块 (9) 2.4.1升温调节系统 (9) 2.4.2温度上下限调节系统 (8) 2.43报警电路系统 (9) 2.5显示模块 (12) 三、两周实习总结 (13) 四、参考文献 (13) 五、附录 (15)

5.1原理图 (15) 摘要: 在现代工业生产中,温度是常用的测量被控因素。本设计是基于51单片机控制,将DS18B20温度传感器实时温度转化,并通过1602液晶对温度实行实时显示,并通过加热片(PWM波,改变其占空比)加热与步进电机降温逐次逼近的方式,将温度保持在设定温度,通过按键调节温度报警区域,实现对温度在0℃-99℃控制的自动化。实验结果表明此结构完全可行,温度偏差可达0.1℃以内。 关键字:AT89C51单片机;温控;DS18b20 一、系统设计 1.1 项目概要 温度控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过低或过高的温度环境不仅是一种资源的浪费,同时也会对机器和工作人员的寿命产生严重影响,极有可能造成严重的经济财产损失,给生活生产带来许多利的因素,基于AT89C51的单片机温度控制系统与传统的温度控制相比具有操作方便、价价格便宜、精确度高和开展容易等优点,因此市场前景好。

单片机课程设计计算器

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:四位数加法计算器的设计学院名称:电气信息学院 专业班级: 学生学号:

学生姓名: 学生成绩: 指导教师: 课程设计时间:至

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 系统通过4x4的矩阵键盘输入数字及运算符。 2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。 3. 可以进行加法以外的计算(乘、除、减)。 4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

单片机课程设计完整版样本

课程设计( 论文) 课程名称单片机 题目名称简易密码锁的设计学院高等技术学院 专业班级高1 1 0 9 学号3869 学生姓名刘欢 指导教师胡立强 11月28 日 目录

一,任务目的 (3) 二,任务要求 (3) 三,电路与元器件 (4) 四,程序设计 (5) 五,程序运行测试 (6) 六,任务小结 (7) 七,心得体会 (8) 八,参考文献 (9) 1.任务目的

经过对具有四个按键输入和一个数码管显示的简易密码锁的设计与制作, 让读者理解C语言中数组的基本概念和应用技术, 并初步了解单片机与键盘和LED数码管的接口电路设计及编程控制方法。 2.任务要求 在一些智能门控管理系统, 需要输入正确的密码才能开锁。基于单片机控制的密码锁硬件电路包括三部分: 按键、数码显示和电控开锁驱动电路, 三者的对应关系如图表3.16所示。 表3.16 简易密码锁状态 简易密码锁的基本功能如下: 4个按键, 分别代表数字0,1,2,3: 密码在程序中事先设定, 为0-3之间的一个数字; 上电复位后, 密码锁初始状态为关闭, 密码管显示符号”—”; 当按下数字键后, 若与事先设定的密码相同, 则数码管显示字符”P”, 打开锁, 3秒后恢复锁定状态, 等待下一次密码的输入, 否则显示字符”E”持续3秒, 保持锁定状态并等待下次输入。 3.电路与元器件 根据任务要求, 用一位LED数码管作为显示器件, 显示密码锁的状态信息, 数码管采用静态连接方式; 4个按键连接到P0口的低四位

P0.0-P0.3引脚, 设P0.0连接数字”0”按键、P0.1连接数字”1”按键, 依次类推; 锁的开、关电路用P3.0控制的一个发光二极管代替, 发光二极管点亮表示锁打开, 熄灭表示锁定。根据以上分析, 采用如图3.21所示的连接电路。 图3.21 简易密码锁电路 简易密码锁电路所需元器件清单如表3.17所示。 元器件名称参数数量元器件名 称 参数数量 插座DIP40 1 电阻103 1 单片机AT89SC51 1 电解电容22UF 1

最新单片机课程设计心得(精选多篇)

单片机课程设计心得(精选多篇) 第一篇:单片机课程设计心得 单片机课程设计实训体会 两周的单片机课程设计实训 ,真是让我们受益匪浅,学到了很多东西,不管怎么样,先感谢学校给我的这么多机会.真正的学到了东西. 此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力.因为以前做过关于焊接的电工实习,所以对于我们机械设计专业的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提.其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了. 系统以at89s51 为核心部件,利用软件编程,通过键盘控制和液晶显示实现了秒表的功能,能实现本设计题目的基本要求和发挥部分。尽量做到硬件电路简单稳定,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。

我们将各个部分的程序编好后怎么都连不起来,出不了预期的效果.对于硬件在编程过程中pcb板的接触又是一个头疼的问题,在进行编译的时候,数码显示管上什么都没有,按一下旁边与之相连的元器件时就有显示了,所以也花费了好多时间在pcb板的重新焊接上,最后在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期两周的单片机课程设计没有浪费,我们从中学到了很多知识.,也让我们对单片机有了更深一步的了解.虽然最后结果是出来了,可这与老师的精心指导是分不开的,他引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以说老师是功不可抹的. 由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。 踉踉跄跄地忙碌了两周,我的单片机课程设计也终将告一段落。设计实物也基本达到预期的效果,但由于能力和时间的关系,总是觉得有很多不尽人意的地方,譬如功能不全、外观粗糙……数不胜数。但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

智能小车单片机课程设计报告

题目: 智能小车设计 打开命令行终端的快捷方式: ctr+al+t:默认的路径在家目录 ctr+shift+n:默认的路径为上一次终端所处在的路径. linux@ubuntu:~$ linux:当前登录用户名. ubuntu:主机名 :和$之间:当前用户所处在的工作路径. windows下的工作路径如C:\Intel\Logs linux下的工作路径是:/.../..../ ~:代表的是/home/linux这个路径.(家目录). ls(list):列出当前路径下的文件名和目录名. ls -a(all):列出当前路径下的所有文件和目录名,包括了隐藏文件. .:当前路径 ..:上一级路径 ls -l:以横排的方式列出文件的详细信息 total 269464(当前这个路径总计所占空间的大小,单位是K) drwxr-xr-x 3 linux linux 4096 Dec 4 19:16 Desktop 第一个位置:代表的是文件的类型. linux系统下的文件类型有以下几种. b:块设备文件 c:字符设备文件 d:directory,目录 -:普通文件. l:连接文件. s:套接字文件. p:管道文件. rwxr-xr-x:权限 r:读权限-:没有相对应的权限 w:写权限

x:可执行权限 修改权限: chmod u-或者+r/w/x 文件名 chmod g-或者+r/w/x 文件名 chmod o-或者+r/w/x 文件名 第一组:用户权限 第二组:用户组的权限 第三组:其他用户的权限. chmod 三个数(权限) 文件名 首先根据你想要的权限生成二进制数,再根据二进制数转换成十进制的三位数 rwxr-x-wx 111101011 7 5 3 chmod 753 文件名 rwx--xr-x 第二个位置上的数字:对应目录下的子文件个数,如果是非目录,则数字是1 第三个位置:用户名(文件创造者). 第四个位置:用户组的名字(前边的用户所处在的用户组的名字). 第五个位置:对应文件所占的空间大小(单位为b) 第六~八个位置:Dec 4 19:16时间戳(最后一次修改文件的时间) 最后一个位置:文件名 操作文件: 1.创建一个普通文件:touch 文件名 2.删除一个文件:rm(remove) 文件名 3.新建一个目录:mkdir(make directory) 目录名 递归创建目录:mkdir -p 目录1/目录2/目录3 4.删除一个目录:rmdir 目录名.//仅删除一个空目录 rm -rf 目录名//删除一个非空目录 5.切换目录(change directory):cd 路径 linux下的路径分两种 相对路径:以.(当前路径)为起点. 绝对路径:以/(根目录)为起点, 用相对路径的方式进入Music:cd ./Music 用绝对路径的方式进入Desktop:cd /home/linux/Desktop 返回上一级:cd ..

单片机课程设计题目汇总(全)范文

单片机课程设计题目汇总(一) 说明:为便于同学提前探讨开发思路,自学相关内容,特将本课程设计的可选题目发给大家。本次题目为其一部分,稍后会有另一部分。鼓励大家自己设计题目。 要求:每个小组2-3人,每个题目最多限两个小组选;课程设计考核内容包括:C51源程序;现场显示结果;设计报告文档(文档的格式稍后公布,请注意查收)。 一、基于单片机的电子时钟设计 设计内容:1、用LCD液晶作为显示设备(30分) 2、可以分别设定小时,分钟和秒,复位后时间为:00:00:00 (30分) 3、能实现日期的设置,年、月、日(30分) 4、其他创新内容(10分)如:闹钟功能;显示星期;整点音乐 报时等。 提示:用专用时钟芯片DS1302。 图示: 二、基于单片机的交通灯显示系统(一) 设计内容:1、东西方向、南北方向均有红、黄、绿三种信号灯;(30分) 2、带紧急制动按钮,按钮按下,所有方向亮红灯;再次按下, 恢复正常显示(20分) 3、夜间模式按钮按下,所有方向显示黄灯闪烁(20分) 4、实时提醒绿灯亮的剩余时间(30分) 图示: 三、基于单片机的交通灯显示系统(二) 设计内容:1、东西干道和南北干道的通行分左行、右行、直行,其中左行、右行固定15秒;直行固定30秒(40分) 2、信号灯分绿灯(3种)、红灯、黄灯,每次绿灯换红灯时,黄 灯亮3秒钟。(30分) 3、东西干道和南北干道交替控制,每次干道绿灯交替时,有3 秒钟所有干道的交通灯都是黄灯闪烁3秒钟,提示已经进入路口的车辆迅速通过。(30分)

4、其他创新内容。(10分) 图示: 四、基于单片机的波形发生器设计 设计内容:1、设计一款能产生3种以上波形的波形发生器(30分) 2、设计波形选择按钮(采用3个独立按键)(10分) 3、点阵显示波形图案(20分) 4、能同时输出两种波形(30分) 5、显示频率(10分) 图示: 五、基于单片机的LED点阵广告牌设计 设计内容:1、能显示不同字符、图形的LED点阵广告牌(30分) 2、用独立按键控制不同字符的切换效果(如闪烁、静止、平移) (30分) 3、可通过串口从电脑下载更新需要显示的字符(30分) 4、其他创新功能(10分) 图示:略 六、基于单片机的篮球计分器设计 设计内容:1、设计LCD显示篮球比分牌(30分) 2、通过加分按钮可以给A队或B队加分(20分) 3、设计对调功能,A队和B队分数互换,意味着中场交换场地。 (20分) 4、显示比赛倒计时功能(20分) 5、创新内容:如显示第几小节(10分) 显示: 七、基于单片机的电子贺卡设计 设计内容:1、设计基于单片机的伴奏乐曲(30分)

单片机数码管静态显示实验程序(汇编)

单片机数码管静态显示实验程序 org 00h num equ p0 ;p0口连接数码管 clr p2.0 ; mov dptr ,#tab clr a mov r2,#0 loop: movc a,@a+dptr mov num ,a acall delay_200ms inc r2 mov a,r2 cjne r2,#15, loop mov r2,#0 clr a ajmp loop tab : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH delay_200ms: mov r3,#20 delay: acall delay_10ms djnz r3,delay ret ;;;;;;;;;;;;;;;; 非中断精确1MS定时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; delay_1ms: MOV R7 ,#249 signed: ;循环部分4机器周期 nop nop djnz R7 ,signed ret ;返回指令2机器周期 ;2+249*4+2=1000us 可以精确定时1MS,假设外部晶振是12M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 非中断精确10MS定时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov r6,#9 ;2个机器周期用2us delay_10ms_sined: ;9次循环共用9(1ms+4us)=9036us acall delay_1ms djnz r6,delay_10ms_sined MOV r6 ,#240 ;2个机器中期用2us signed_10ms : ;循环部分4机器周期共240次 nop nop djnz r6 ,signed_10ms ret ;返回指令要2us ;2us+9036us+240*4us+2us = 10ms 即可精确定时10ms ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 非中断精确定时1s ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; delay_1s: mov r5,#99 ;两个机器周期2us delay_1s_signed: ;循环指令周期为4us,加上延时10ms ;(10ms+4us)*99 = 990.396ms acall delay_10ms djnz r5,delay_1s_signed mov r5 ,#9 ;两个机器周期2us signed_1s: ;循环指令周期为4us,加上延时1ms ;(1ms+4us)*9 = 9ms+36us acall delay_1ms djnz r5 ,signed_1s mov r5 ,# 140 ;机器周期2us signed_1s_: ;一次循环4us共有140次。140us*4 = 560us nop nop djnz r5,signed_1s_ ret ;2us ;2us+990ms+396us+2us+9ms+36us+2us+560us+2us = 999ms+1000us = 1s end

单片机课程设计-电子钟

中北大学 单片机课程设计说明书 数字钟设计 1 设计任务与要求 (1)

1.1设计任务 (1) 1.2设计要求 (1) 2单片机简介 (2) 2.1单片机的发展历程 (2) 3系统设计思路和方案 (3) 3.1系统总体方案 (3) 3.2硬件简介 (3) 3.2.1硬件选择 (3) 3.2.2 51单片机的构成 (4) 3.2.3 STC89C52RC引脚功能说明 (5) 3.2.4 LED简介 (6) 3.3 Keil调试 (7) 4、系统实物图 (9) 5、课程设计体会 (9) 参考文献 (10) 附录A (11) 附录B (13) 附录C (14)

1 设计任务与要求 1.1设计任务 本课题应完成以下设计内容: 1)硬件设计 设计数字钟的电路原理图,用PROTEL绘制硬件电路。制作实物。 2)软件设计 (1)时、分、秒的设置及显示; (2)画出程序框图; (3)调试与分析。用PROTEUS仿真。 3)课程设计说明书 1.2设计要求 本课程设计的基本要求是使学生全面掌握单片机控制系统设计的基本理论,熟悉掌握MCS-51 系列单片机的编程方法,具体要求:本例利用AT89C51的定时器和6位7段数码管,设计一个电子时钟。显示格式为“XX XX XX”,由左向右分别是:时、分、秒。

2单片机简介 2.1单片机的发展历程 单片机是微型计算机的一个重要分支,也是一种非常活跃和颇具生命力的机种,特别适用于工业控制领域。1971年微处理器研制成功不久,就出现了单片机,但最早的单片机是1位的,处理能力有限。单片机的发展共分四个阶段:第一阶段是初级阶段,功能非常简单;第二阶段是低性能阶段, 16位定时器/计数器,片内ROM、RAM容量加大,直到现在仍被广泛应用,是目前应用数量较多的单片机。、32位单片机推出阶段,以满足不同的用户需要。纵观单片机几十年的发展历程,单片机的今后发展方向将向多功能、高性能、高速度、低功耗、低价格、外围电路内装化以及内存储器容量增加和FLASH存储器化方向发展。 2.2实用价值与理论意义 在单片机模块里比较常见,数字时钟是一种用0数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更高的使用寿命,新词得到了广泛的应用。 数字时钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、码头、办公室等公用场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度远远超过老式钟表,钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。因此研究数字时钟及扩大其应用有着非常现实的意义。

单片机课程设计报告书模板

. .. . .. .. 西南科技大学 2011级微机原理与接口技术 课程设计报告 课题名称微机原理与接口技术 姓名 学号 院、系、部制造科学与工程学院 专业 指导教师 2014年月日

目录 一、绪言 (1) 二、系统设计 (1) 2.1系统整体流程图 (1) 2.2日历时钟的控制方案论证 (1) 2.3单片机的选择方案论证 (2) 2.4键盘选择方案论证 (2) 2.5显示模块的选择方案论证 (2) 2.6模块的选择方案论证 (2) 三、硬件电路设计 (2) 3.1日历时钟的控制电路图 (2) 3.2行列式键盘的设计 (3) 3.3数码管显示电路的设计 (3) 3.4蜂鸣器驱动电路的设计 (4)

3.5主要元器件选择 (4) 四、程序流程图 (5) 五、c语言程序设计 (5) 六、日历时钟的控制器仿真 (19) 6.1K e i l调试 (19) 6.2P r o t e u s调试 (19) 七、结束语 (20) 八、参考文献 (21) 1、绪言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。本设计采用AT89C51单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

单片机课程设计---简易电子琴设计

单片机 课程设计 课程设计名称: 专业班级: 学生姓名: 学号: 指导教师: 课程设计时间:

一、需求分析 1.1课题背景 随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。电子科技也在不断的前进,电子技术正在以不同的方式改变着我们的生活,电子琴设计也是希望给人们带来一些生活的乐趣。电子琴可以应用在很多方面,比如一些简易的玩具上或手机上。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。 1.2 课题设计的任务与主要内容 本文的主要内容是用AT89C51单片机为核心控制元件,设计一个简单的电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。定时器按设置的定时参数产生中断,由于定时参数不同,就会发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。 先根据要求设计硬件电路和编写相应的程序,然后进行仿真调试,最后细心焊接硬件电路图,将程序烤入芯片中,最终达到设计目的。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

基于c语言单片机电子时钟课程设计报告书

课程设计报告 课程名称:单片机程序设计 报告题目:电子时钟 学生: 所在学院:信息科学与工程学院专业班级: 学生学号: 指导教师:

2013年12月25日课程设计任务书

摘要 单片计算机即单片微型计算机。由RAM、ROM、CPU构成。定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。 本设计主要设计了一个基于AT89C51单片机的电子时钟。并在数码管上显示相应的时间。并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。 关键词:单片机;子时钟;键控制

目录 一、概述 (5) 1.1电子时钟简介 (5) 1.2电子时钟的基本特点 (5) 1.3电子时钟的原理 (5) 二、方案设计选择 (5) 2.1计时方案 (5) 2.2显示方案 (5) 三、硬件设计 (6) 3.1单片机型号选择 (6) 3.2数码管显示工作原理 (6) 3.3键盘电路设计 (7) 3.4电路原理图 (7) 四、软件设计 (7) 五、结论与心得 (15) 六、参考文献 (16)

一、概述 1.1 电子时钟简介 1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。 1.2 电子时钟的基本特点 现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

单片机课程设计报告范本

课程设计(生产实习)报告 课程:单片机应用课程设计 题目:数字钟与温度检测设计 班级: 学号: 姓名: 2016年月日

实习任务: 1:数字钟设计 2:基于DS18B20的温度测量模块设计 单片机AT89S52的介绍: 1) MCS-51 单片机产品兼容 2) 8K 字节在系统可编程Flash 存储器 3) 1000 次擦写周期 4) 全静态操作:0Hz~33Hz 5) 三级加密程序存储器 6) 32 个可编程I/O 口线 7) 三个16 位定时器/计数器 8) 八个中断源 9) 全双工UART 串行通道 10) 低功耗空闲和掉电模式 11) 掉电后中断可唤醒 12) 看门狗定时器 13) 双数据指针 14) 掉电标识符 功能特性描述 AT89S52是一种低功耗、高性能CMOS8 位微控制器,具有8K在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52 具有以下标准功能:8k 字节Flash,256 字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。

大学生单片机课程设计心得体会

大学生单片机课程设计心得体会 本页是网最新发布的《大学生单片机课程设计心得体会》的详细范文参考文章,好的范文应该跟大家分享,希望大家能有所收获。 大学生单片机课程设计心得体会 作为一名自动化专业的大学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。 在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。 接下来的4月,我意外的接到系学生工作处主管陈老师来电,说我系承办了院校园文化艺术节的南方擂台知识抢答竞赛,而学校又没有抢答器,要我组织几个学生做一个抢答器。我当时想,那好啊,做抢答器不难。以前有用与非门做过,于是我便爽

快的答应了陈老师,并保证没有问题,保质保量完成。当是可能是我想得太简单了,抢答器不就八个按键一个数码管显示不就完了么,把最先抢到的组别显示出来。可是到主任给我们提要求的时候才发现抢答器要实现我功能远不只这么多,倒计时、蜂鸣提示、范规报警、电子计分器,这些我都没有考虑进来。主任也说了,这是一次院级的比赛,电子系做的东西要拿的出手,要做就做点样子出来。我想也好,虽有点难度,但符合我喜欢挑战难度的性格。我说行!这个活我做了! 接到任务开始布属,我把计分电路分了出去由其它几个同学做,我专攻抢答部分。由于没有独立设计电路的经验,刚开始得一步步慢慢深入,正好我会PROTEUS。软硬件的调度都靠它完成,这样可以省很多的时间。做抢答器,我们花了一个月的时间,没日没夜的调试程序(当时单片机课程还没学到定时器中断,还得一边自学。)做PCB板,采购元器件,安装,调试,运行。那时,他们的计分电路也做好了,用了16个数码管做显示。我们将计分和抢答电路板及数码管安装在了事先木制的外壳上,进行整体调试。记得那时正赶上五一放假,而五月8号就是比赛了。我们都没有休息,将工作间从实验室搬到了寝室。那段时间虽然辛苦,但很充实,每个人收获都特别大。 为了让自己的编程水平能进一步提高,我将自己编写的程序发到了论坛里与大家共享,并下载网友们的程序进行分析。电子钟程序、液晶密码锁程序、跑马灯程序、大屏幕点阵屏程序、上

相关主题
文本预览
相关文档 最新文档