文档库 最新最全的文档下载
当前位置:文档库 › 洛阳理工学院单片机课程设计报告(已修改)

洛阳理工学院单片机课程设计报告(已修改)

洛阳理工学院

课程设计报告

课程名称单片机原理与接口技术

设计题目基于51系列单片机的实验平台开发设计专业通信工程

班级B120509

学号B12050923

姓名徐国旗

完成日期2015年1月2日

摘要 (1)

第1章概述 (2)

1.1 设计题目 (2)

1.2 设计步骤 (2)

1.3 Proteus与Keil C51软件介绍 (2)

第2章硬件电路设计 (3)

2.1 电路各元器件介绍 (3)

2.1.1 LCD1602液晶 (3)

2.1.2 两位一体共阴数码管 (4)

2.1.3 其它元器件介绍 (5)

2.2 仿真电路连接与实物焊接 (6)

2.2.1 protues仿真电路 (6)

2.2.2电路板焊接 (7)

第3章软件设计 (8)

3.1 程序整体思路 (8)

3.2 程序编程实现 (8)

3.3 程序的优缺点分析 (11)

第4章仿真及实物效果展示 (12)

4.1 关闭菜单与主菜单 (12)

4.2流水灯模块 (12)

4.3 计数器模块 (13)

4.4 LCD液晶显示模块 (13)

心得体会 (14)

参考文献 (15)

附录 (15)

基于51系列单片机的实验平台开发设计

摘要

单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数

(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由于单芯片微电脑常用于当控制器故又名single chip microcontroller,但是目前在中国大陆仍多沿用“单片机”的称呼。主要特点:

1、主流单片机包括CPU、4KB容量的ROM、128 B容量的RAM、2个16位定时/计数器、4个8位并行口、全双工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。

2、系统结构简单,使用方便,实现模块化;

3、单片机可靠性高,可工作到10^6 ~10^7小时无故障;

4、处理功能强,速度快。

5、低电压,低功耗,便于生产便携式产品

6、控制功能强

7、环境适应能力强。

本次课程设计就是利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,主要通过电路原理图,进行电路的焊接。原理图主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计。这次单片机的课设它具有模块化硬件结构和简单的人机交互功能,硬件功能模块及部分演示程序。该实验板具有降低设计成本,缩短开发周期,丰富学生知识,提高设计水平等优点。

第1章概述

1.1 设计题目

基于51系列单片机的实验平台开发设计

1.2 设计步骤

1.学习各元器件,弄清楚其工作原理;

2.Proteus软件仿真电路图的绘制;

3.根据电路图在开发板上进行焊接;

4.编写、调试开发板程序

5.下载到单片机中,查看实际运行效果。

1.3 Proteus与Keil C51软件介绍

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍

第2章硬件电路设计

2.1 电路各元器件介绍

2.1.1 LCD1602液晶

液晶显示器,或称LCD(Liquid Crystal Display),为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗很低,因此倍受工程师青睐,适用于使用电池的电子设备。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。

1、LCD1602实物图

图1 LCD 外观及引脚

显示容量:16 个×2 排字符;工作电流 2.0mA(5.0V);字符尺寸:2.95×4.35mm。【能够看到的是 2 排,各 16 个字符,不是汉字】

2、LCD1602的读写

LCD1602 的第5脚:R/W,读写操作选择(1-读,0-写)。

表1 LCD1602的读写

LCD1602 的第6脚:E 端为使能端,当E端由高电平跳变成低电平时(负

【类似于74LS373,需要负跳变】执行一条命令或写入,液晶模块执行命令。

跳变)

一个数据,都要使E有一个负跳变。

2.1.2 两位一体共阴数码管

数码管是一种半导体发光器件,其基本单元是发光二极管。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。同时数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字

1、实物图

图2 两位一体LED数码管

2、共阴极LED数码管的内部结构原理图:

图3共阴极LED数码管的内部结构原理图

表2 共阴数码管字模表

2.1.3 其它元器件介绍

1、LED流水灯

流水灯中用8只LED发光二极管练成一排,作为流水灯。二极管长引脚为正极短引脚为负极,也可用万用表测量。发光二极管如图所示。

图4 LED发光二极管

2、74LS138 、74LS373芯片

图5 74LS138引脚及真值表

注:1 表示高电平,0 表示低电平,×表示任意【C 为高位,A 为低位】

图6 74LS373引脚及功能表

74LS373 的三种工作方式:

跟随(OE =0,LE=1,输出跟随输入)

锁存(OE =0,LE 从高变为低负跳变时,锁存D0~D7)

高阻(OE =1,Q0~Q7 输出为高阻,相当于断开)

另外,此次设计中还用的排阻、色环电阻、电容、三极管等元件,在此不再做详细介绍。

2.2 仿真电路连接与实物焊接

2.2.1 protues仿真电路

在protues中连接各模块电路,注意各元器件的接法,各模块连接电路图如下:

图7 液晶显示及流水灯模块

图8 数码管及按键模块

其它模块的连接在此不再展示,详见附录。

2.2.2电路板焊接

1、焊接准备

根据电路原理图,焊接元器件。先读出色环电阻的阻值,判断电容引脚的正负极,或用万用表测试。检测各器件是否正常。准备好电烙铁、焊锡、松香等必备物品。

2、焊接

给电烙铁加热,达到温度后按电路板上元件从低到高的顺序进行焊接,在焊接时要细心、仔细,在正确的位置焊上正确的元件,防止出现错误。

3、检测焊接电路

完成后检查是否有漏焊、连锡等问题。在我们组用了一上午焊接电路,检查时发现LCD液晶显示不能显示、一个发光二极管不亮,经检测是器件损坏,经更换后故障解除。焊接实物图如下:

图9 焊接电路图

第3章软件设计

3.1 程序整体思路

从电路着手编写程序,希望一个程序能把各模块连接起来,而不是用多个程序进行加载。并且打开电源后能够重复进入各模块,而不是每次都需要复位。所以可以先分开写各模块程序,然后连接起来。可用while语句查询各标志位实现开电源后能够重复进入各模块。程序的流程及各标志位含义如下:

图10 程序流程图

表3 各标志位含义

3.2 程序编程实现

(1)流水灯函数程序(执行该模块的同时,LCD上显示流水灯菜单,详见附录):void ledmod(){

writemenu(LEDmenu);//写菜单

for(i=0;i<3;i++) //先闪烁几下后全亮

{ P2=0x55;

delay(150);

P2=0xaa;

delay(150);}

P2=0;

while(1){

if(a1==1){

for(i=0;i<8;i++) //往左流

{

if(a==0)break; //a=0,跳出LED模块,下同

if(a2==1){a1=0;break;}

P2=led[i];

delay(200);

while(a3==1) if(a==0)break;}//a3=1,执行while循环,相当于暂停

}

if(a2==1){

for(i=0;i<8;i++) //往右流

{

if(a==0)break;

if(a1==1){a2=0;break;}

P2=led[7-i];

delay(200);

while(a3==1) if(a==0)break;

}

}if(a==0)break;}}

(2)计数器函数程序(执行该模块的同时,LCD上显示计数器菜单,详见附录):void coutermod(){

if(b1==1){b1=0;//进入计数器后,写菜单并让数码管显示0,流水灯熄灭

writemenu(counter);

P0=0x3f;

P2=0xff;}

if(b2==1){b2=0; //按下按键数据改变时,数码管重新显示

p25=1;p26=0;p27=0;

P0=table[count/10];

p25=p26=p27=0;

P0=table[count%10];}}

(3)LCD液晶显示模块程序(执行该模块的同时,LCD上显示其菜单,详见附录):void LCDmod(){

if(c0==1){c0=0;writemenu(lcdmenu);}//写LCD菜单

if(c1==1){c1=0; //

wcmd(0x80+0x40);for(j=0;j<16;j++)wdat(name[j]);}

if(c2==1){c2=0;

wcmd(0x80+0x40);for(j=0;j<16;j++)wdat(num[j]);}

if(c3==1){c3=0;

wcmd(0x80+0x40);for(j=0;j<16;j++)wdat(date[j]);}}

(4)写各菜单函数(用于写各个模块的菜单):

void writemenu(unsigned char p[])

{wcmd(0x01);

for(j=0;j<16;j++)

wdat(p[j]);

wcmd(0x80+0x40);

for(;j<32;j++)

wdat(p[j]);

(5)主函数

void main()

{

TCON=0x55;//01010101,TR1=TR0=IT1=IT0=1

TMOD=0x66;//01100110, 两个都为计数方式2

TH0=TL0=0xff;

TH1=TL1=0xff;

IE=0x8f;

LCD_init();

writemenu(OFF);

P0=0;

while(1){

if(s){ //s=1,开始;s=0,关闭。

while(1){

if(s1){s1=0;writemenu(mainmenu);}

if(a==1){ledmod();}

if(b==1){coutermod();}

if(c==1){LCDmod();}

if(s==0) {writemenu(OFF);break;}

}}}}

(6)四个中断函数:

key0() interrupt 1{delay(100);

if(a==0&&b==0&&c==0&&s){a=1;return;}//&&b==0&&c==0&&s,判断是否在主菜单中,下同

if(a==1)if(a1==0&&a3==0)a1=1; //&&a3==0,暂停时不能通过中断改变循环方向if(b==1){count++;if(count==100)count=0;b2=1;}

if(c==1){if(c1==0){c1=1;}}

}

key1() interrupt 3{ delay(100);

if(b==0&&a==0&&c==0&&s){b=b1=1;return;} //b1=1,第一次进入计数器

if(a==1)if(a2==0&&a3==0)a2=1;

if(b==1){count--;if(count<0)count=0;b2=1;}

if(c==1){if(c2==0){c2=1;}}

}

key2() interrupt 0{ delay(100);

if(c==0&&b==0&&a==0&&s){c=1;c0=1;return;}

if(a==1&&(a1||a2)){a3=!a3;}//&&(a1||a2),防止刚进入流水灯时,按下暂停键暂停

if(b==1){count=0;b2=1;}

if(c==1){if(c3==0){c3=1;}}

}

key3() interrupt 2{ delay(100);

if(a==0&&b==0&&c==0){s=!s;} //在关闭或主菜单中按下key3开始或进入主菜单

if(a==1){a=0;a1=a2=a3=0;}

if(b==1){b=count=b2=0;}

if(c==1){c=c1=c2=c3=0;}

if(s) s1=1; //s=1,在每次由各模块返回到主菜单或由关闭到主菜单时写主菜单

else s2=1; //s=0,在刚通电或由主菜单关闭时写关闭菜单

}

此次编程和优化总共花费了十多个小时,最终达到自己预想的效果,其它如LCD驱动函数、定义变量等命令在此不再列出,详见附录中的源程序。

3.3 程序的优缺点分析

优点:

(1)一个程序能把各模块连接起来,而不是用多个程序进行加载。

(2)打开电源后能够重复进入各模块,无需每次复位。

(3)每个模块都可以通过按键实现多种功能,功能丰富。

(4)可根据LCD提示操作,更加人性化。

(5)各模块单独为一个函数,使程序结构明朗。

缺点:主要是标志位过于繁多,阅读困难,给程序的修改和优化带来麻烦。所以程序还有待优化。

第4章仿真及实物效果展示

4.1 关闭菜单与主菜单

关闭菜单与主菜单效果如下图所示:

图11 仿真与实物的关闭菜单与主菜单

4.2流水灯模块

功能有左流、右流、清零、返回,部分功能展示如下:

图12 流水灯模块仿真及实物部分效果

4.3 计数器模块

功能有加计数、减计数、清零、返回,部分功能展示如下:

图13 计数器模块部分效果

4.4 LCD液晶显示模块

功能有显示姓名、学号、日期、返回,部分功能展示如下:

图14 LCD 模块部分效果

心得体会

参考文献

【1】林立,张俊亮编单片机原理及应用——基于Proteus和Keil c[M]. 北京:电子工业出版社,2013.1

【2】谭浩强. C程序设计(第四版). 北京:清华大学出版社,2010.6

【3】周润景等.PROTEUS入门实用教程.北京:机械工业出版社,2007.

【4】贾好来.MCS-51单片机原理及应用.北京:机械工业出版社,2007.

附录

1、源程序

#include

#define uchar unsigned char

sbit RS=P1^6;

sbit RW=P1^7;

sbit p25=P2^5;

sbit p26=P2^6;

sbit p27=P2^7;

sbit p32=P3^2;

sbit p33=P3^3;

sbit p34=P3^4;

sbit p35=P3^5;

bit s,s1,s2,a,a1,a2,a3,b,b1,b2,c,c0,c1,c2,c3;

char count;

uchar LCD_Status,i,j;

uchar code mainmenu[]=" Main menu: 1LED 2C 3LCD4OFF";

uchar code LEDmenu[]={' ',' ',' ','N','o','w',' ','i','s',' ','L','E','D',

':',' ',' ',' ','1',':',0x7f,'2',':',0x7e,'3',':','p','/','s',' ','4',':','R'};

uchar code counter[]="Now is counter: 1:+ 2:- 3:'0'4:R";

uchar code lcdmenu[]=" Now is LCD: 1name2num3date4R";

uchar code name[]=" XuGuoQi ";

uchar code num[]=" B12050923 ";

uchar code date[]=" 2014/12/18 ";

uchar code OFF[]=" OFF Press key4 Start";

uchar code led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7e,0x3c,0x18,0x00};

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void delay(unsigned int count)

{ unsigned char i;

while(count--)

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

}

/*************************LCD相关驱动函数*****************************/ unsigned char Busy_Check() //检查忙函数

{ RS=0; RW=1; //RS=0,控制寄存器,RW=1,读

p25=0;p26=1;p27=0;

delay(1);

LCD_Status = P0;

delay(1);

p25=1;p26=1;p27=0;

return LCD_Status;

}

void wcmd(unsigned char cmd) //写命令函数, RS=0;RW=0

{while((Busy_Check()&0x80)==0x80);

RS=0;RW=0;

p25=0;p26=1;p27=0;

P0=cmd;

delay(1);

p25=1;p26=1;p27=0;

}

void wdat(unsigned char dat) //写数据函数, RS=1;RW=0

{

while((Busy_Check() & 0x80)==0x80);

RS=1;RW=0;

p25=0;p26=1;p27=0;

P0=dat;

delay(1);

p25=1;p26=1;p27=1;

P0=0; //每次写数据后熄灭LED数码管

P2=0xff; //每次写数据后熄灭LED流水灯

}

void LCD_init() // 初始化函数

{ wcmd(0x38); //38H=0011 1000,使用8 位,用5×7 的字型,2 行

delay(1); //改为0x3C=0011 1100,就用5×10 字型

wcmd(0x01); //01H=0000 0001,清屏【命令1】

delay(1);

wcmd(0x06); //06H=0000 0110,字符不动,光标自动右移一格【命令3】

delay(1);

wcmd(0x0c); //0eH=0000 1110,开显示,无光标,字符不闪烁【命令4】

delay(1);

}

/***************************写各菜单函数******************************/

void writemenu(unsigned char p[])

{wcmd(0x01);

for(j=0;j<16;j++)

wdat(p[j]);

wcmd(0x80+0x40);

for(;j<32;j++)

wdat(p[j]);

}

/*************************LED流水灯模块函数***************************/ void ledmod(){

writemenu(LEDmenu);//写菜单

for(i=0;i<3;i++) //先闪烁几下后全亮

{ P2=0x55;

delay(150);

P2=0xaa;

delay(150);}

P2=0;

while(1){

if(a1==1){

for(i=0;i<8;i++) //往左流

{

if(a==0)break; //a=0,跳出LED模块,下同

if(a2==1){a1=0;break;}

P2=led[i];

delay(200);

while(a3==1) if(a==0)break;}//a3=1,执行while循环,相当于暂停

}

if(a2==1){

for(i=0;i<8;i++) //往右流

{

if(a==0)break;

if(a1==1){a2=0;break;}

P2=led[7-i];

delay(200);

while(a3==1) if(a==0)break;

}

}if(a==0)break;}}

/**************************计数器模块函数*****************************/ void coutermod(){

if(b1==1){b1=0;//进入计数器后,写菜单并让数码管显示0,流水灯熄灭writemenu(counter);

P0=0x3f;

P2=0xff;}

if(b2==1){b2=0; //按下按键数据改变时,数码管重新显示

p25=1;p26=0;p27=0;

P0=table[count/10];

单片机课程设计 简易计算器的设计

目录 摘要 (1) 绪论 (1) 1.设计要求及功能分析 (1) 1.1 设计要求 (1) 1.2 基本功能 (2) 2.设计方案 (2) 2.1 硬件部分设计方案 (2) 2.1.1 单片机部分 (2) 2.1.2 按键部分 (2) 2.1.3 显示部分 (2) 2.2 软件部分设计方案 (2) 3.系统的硬件总体设计 (4) 3.1 系统的总体硬件设计 (4) 3.2 键盘连接电路 (4) 3.3 显示屏连接电路 (5) 3.4 单片机芯片AT89C51 (6) 3.5 外接电路 (7) 4.系统的软件总体设计 (8) 4.1 键盘识别程序设计 (8) 4.2 显示程序 (11) 4.3 运算程序 (11) 5.元器件清单及程序清单 (12) 5.1 元器件清单 (12) 5.2 程序清单 (12) 6.软件仿真 (18) 6.1 仿真验证 (18) 6.2 性能分析 (20) 6.3 出现故障及其原因 (20) 6.4 解决方法 (20) 结论 (20) 参考文献 (21) 致谢 (21) 附录PCB图 (22)

简易计算器的设计 学生:李飞马鹏超舒宏超 指导老师:王孝俭 摘要:单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可,用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。 关键词:单片机、计算器、控制电路、仿真。 绪论 设计要求掌握数码管移位动态扫描显示的编程方法,掌握矩阵扫描的编程方法,掌握数据在内部运算的编程方法。设计任务实现最大8位正整数加、减、乘、除,具备清零、等于功能,16个按键功能依次为:数字0、数字1、数字2、数字3、数字4、数字5、数字6、数字7、数字8、数字9、清零、等于、加、减、乘、除。 1.设计要求及功能分析 1.1设计要求: 本次单片微型计算机与接口技术课程设计做的是利用C51单片机为主体的计算器,实现了简单的加、减、乘、除功能。采取的是键盘输入和液晶显示屏的输出结果显示。主要硬件构成部分由四个,一个AT89C51单片机芯片,一个液晶显示屏,一个4*4键盘和一个排阻(10K)做P0口的上拉电阻,可以实现16位的数值操作计算。 1.2基本功能: 首先,计算器可现实8位数字,开机运行时,只有数码管最低位显示为“0”,其他位全部不显示;

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

哈尔滨远东理工学院 课题名称 专业班级 学号 学生姓名 指导教师 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) 实现绿波带。所谓‘绿波带’,是指在一定路段,只要按照规定时速,就能一路绿灯畅行无阻。“绿波带”将根据道路车辆行驶的速度和路口间的距离,自动设置信号灯的点亮时间差,以保证车辆从遇到第一个绿灯开始,只要按照规定速度行驶,之后遇到的信号灯将全是绿灯。

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

课程设计( 论文) 课程名称单片机 题目名称简易密码锁的设计学院高等技术学院 专业班级高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

单片机课程设计计算器

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

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

格式说明(打印版格式,手写版不做要求) (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.有程序运行结果的截屏图片。

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

题目: 智能小车设计 打开命令行终端的快捷方式: 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 ..

单片机课程设计报告电子密码锁完整版

单片机课程设计报告电 子密码锁 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

山东交通学院 单片机原理与应用课程设计院(部):轨道交通学院 班级:自动化121 学生姓名: 学号: 指导教师: 时间:— 课程设计任务书 题目电子密码锁设计 系 (部) 轨道交通学院 专业班级自动化121 学生姓名 学号 06 月 01 日至 06 月 12 日共 2 周 指导教师(签字) 系主任(签字) 年月日

目录 3.总体设计 (2)

4 密码比较模块 (6) (6) (8) (9) 附录 (10)

摘要 设计运用了ATMEL公司的AT89S52芯片系统,将微处理器、总线、蜂鸣器、矩阵键盘、存储器和I/O口等硬件集中一块电路板上,通过读取键盘输入的数据(密码)并储存到ATMEL912 24C08存储器中,然后判断之后键盘输入的数据与已存储的数据是否相同来决定打开密码箱或锁键盘或报警。在keil4软件中编程,系统可实现6位密码的处理,并通过控制步进电机控制密码箱门的电子锁,同时还可以修改改密码。利用单片机系统制作的密码箱安全性能更高,更易操作且体积小。 关键词:单片机、密码锁、修改密码 1.设计要求 本实验将实现六位数的电子密码锁。要求使用4X4 行列式键盘作为输入,并用LCD 实时显示。具体要求如下:1. 开机时LCD显示“welcome to use”,初始化密码为“123456”,密码可以更改。 2. 按下“10”,开始则显示“Enter Please:”。3. 随时可以输入数值,并在LCD上实时显示‘*’。当键入数值时,为了保密按从左到右依次显示‘*’,可键入值为0~9。 4. 按下“13”键,则表示确定键按下,进行密码对比。如相符则在LCD第一行显示“Open the door!”,同时指示灯亮起并且步进电机旋转一定的角度;如不符,则LCD第一行显示“Wrong password!”,并且蜂鸣器同时提示一下。如果密码连续三次错误则蜂鸣器连续响5下,并且持续5秒不能进行任何操作 5.在开锁状态下按下“12”键,进入修改密码状态,LCD同时提示“Enter new code!”。为删除按键,出入之后可以进行删除。按键为关闭按键,只有在打开状态下才可以关闭,按下之后LCD显示“Close the door!”。 2.功能概述 此设计分为四个功能模块。 第一模块:按键输入模块,用于密码的输入以及其他的密码操作按键。 第二模块:LCD模块,是与使用者交流的界面,用于显示各种状态下的内容。 第三模块:步进电机模块,用于控制密码锁的打开与关闭。 第四模块:24C08模块,用于储存输入的密码并读出来。 3.总体设计 本次设计作品的主要构成部分包括80C51单片机、LCD1602、24C08、矩阵按键、LED 等、蜂鸣器。如图1总体仿真图,图2实物图。 图1 总体电路图 图2 密码锁实物图 4.硬件设计 矩阵按键设计 如图3所示矩阵按键由P1口控制,了加强密码的保密性,采用一个4×4的矩阵式键盘可以任意设置用户密码(1-16位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I/O口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,通常采用这种方法。 每一行与每一列的交叉处不相同,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N根行线与M根列线,即可组成具有N × M 个按键的矩阵键盘。 在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确

AT89C51单片机C实现简易计算器

AT89C51单片机简易计算器的设计 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图:

二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

(二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。 图 2 矩阵键盘布局图 矩阵键盘内部电路图如图3所示:

单片机课程设计报告

课程设计报告 课程名称单片机原理及应用 设计题目电子琴的设计 专业班级自动化1142 姓名周太永 学号1104421242 指导教师蔡长青张卓 起止时间2014.6.23-2014.7.11 成绩评定 考核内容设计 表现 设计 报告 答辩 综合 评定 成绩 电气与信息学院

2013/2014学年第二学期 《单片机控制系统设计与调试》课程设计任务书 指导教师:蔡长青班级:自动化1141、2班 地点:机房、单片机实验室(实训中心415) 课程设计题目:基于单片机原理的电子琴设计 一、课程设计目的 1.灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计, 到PCB制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。 2.能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。 3.独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问 题的能力,为日后的毕业设计及科研工作奠定良好的基础。 二、课程设计内容(包括技术指标) 1.焊接。认真、仔细,避免缺焊、漏焊。 2.频率计算。会计算脉冲值与频率的关系。 3.工作过程。开机时,第一步是对定时器T0进行初始化,设定它的工作状态(对 于本系统将T0设定为工作方式0);然后判断是否有键按下,如果没有按键按下,继续判断,如果有按键按下,则判断是哪个键按下;再根据按键的功能将计数初值装入定时器T0中中并启动T0,当T0定时完毕后,重新装入计数初值继续定时并将P3.3取反,再次定时完毕后再一次的装入计数初值 继续定时并将P3.3取反,一直循环此操作直到按键释放为止,按键释放后 停止T0工作并再次判断是否又有按键按下,并继续执行以前的过程。 三、时间安排 1.布置任务、查资料1天 2.硬件电路图设计及PCB制版3天 3.硬件电路图及PCB制版验收、电路板焊接1天 4.软件编程设计3天 5.系统调试3天 6.调试验收1天 7.完成设计报告3天 四、基本要求 1.画出硬件电路图,完成PCB制版; 2.画出软件流程图,编写程序(C51语言/汇编语言); 3.完成系统调试; 4.提交设计报告。

单片机课程设计完整版《PWM直流电动机调速控制系统》

单片机原理及应用课程设计报告设计题目: 学院: 专业: 班级: 学号: 学生姓名: 指导教师: 年月日 目录

设计题目:PWM直流电机调速系统 本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED 液晶显示器、霍尔测速电路以及独立按键组成的电子产品。电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。 关键词:直流电机调速;定时中断;电动机;波形;LED显示器;51单片机 1 设计要求及主要技术指标: 基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM调速控制装置。 设计要求 (1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。 (2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。 (3)设计一个4个按键的键盘。 K1:“启动/停止”。 K2:“正转/反转”。 K3:“加速”。 K4:“减速”。 (4)手动控制。在键盘上设置两个按键----直流电动机加速和直流电动机减速键。在

手动状态下,每按一次键,电动机的转速按照约定的速率改变。 (5)*测量并在LED显示器上显示电动机转速(rpm). (6)实现数字PID调速功能。 主要技术指标 (1)参考L298说明书,在系统中扩展直流电动机控制驱动电路。 (2)使用定时器产生可控PWM波,定时时间建议为250us。 (3)编写键盘控制程序,实现转向控制,并通过调整PWM波占空比,实现调速; (4)参考Protuse仿真效果图:图(1) 图(1) 2 设计过程 本文设计的直流PWM调速系统采用的是调压调速。系统主电路采用大功率GTR为开关器件、H桥单极式电路为功率放大电路的结构。PWM调制部分是在单片机开发平台之上,运用汇编语言编程控制。由定时器来产生宽度可调的矩形波。通过调节波形的宽度来控制H电路中的GTR通断时间,以达到调节电机速度的目的。增加了系统的灵活性和精确性,使整个PWM脉冲的产生过程得到了大大的简化。 本设计以控制驱动电路L298为核心,L298是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。 本设计以AT89C52单片机为核心,如下图(2),AT89C52是一个低电压,高性能 8位,片内含8k bytes的可反复擦写的只读程序存储器和256 bytes的随机存取数据存储器(),器件采用的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 图(2) 对直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速范

单片机课程设计——基于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 程序清单.................................. 一、设计任务和要求

单片机课程设计报告模板

单片机系统课程设计报告 专业:自动化 学生姓名: 学号: 指导教师: 完成日期:2011 年 3 月17 日

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

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

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

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘。显示采用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 程序清单..................................

单片机课程设计电阻测量(完整版)

课程设计报告课程名称:单片机课程设计 设计题目:电阻测量 院系:通信与控制工程系 专业:通信工程 班级: 学生姓名: 学号: 08409212 起止日期: 指导教师: 教研室主任:

摘要 本设计电阻测量是利用A/D转换原理,将被测模拟量转换成数字量,并用数字方式显示测量结果的电子测量仪表。通常测量电阻都采用大规模的A/D转换集成电路,测量精度高,读数方便,在体积、重量、耗电、稳定性及可靠性等方面性能指标均明显优于指针式万用表。其中,A/D转换器将输入的模拟量转换成数字量,逻辑控制电路产生控制信号,按规定的时序将A/D转换器中各组模拟开关接通或断开,保证A/D 转换正常进行。A/D转换结果通过计数译码电路变换成BCD码,最后驱动显示器显示相应的数值。本系统以单片机AT89C52为系统的控制核心,结合A/D转换芯片ADC0809设计一个电阻测量表,能够测量一定数值之间的电阻值,通过四位数码显示。具有读数据准确,测量方便的特点。 关键词:单片机(AT89C52);电压;A/D转换;ADC0809

目录 设计要求 (1) 1、方案论证与对比 (1) 1.1方案一 (1) 1.2方案二 (1) 1.3方案对比与比较................................... 错误!未定义书签。 2、系统硬件电路的设计 (2) 2.1振荡电路模块 (2) 2.2A/D转换电路模块 (3) 2.2.1主要性能 (3) 2.2.2 ADC0809芯片的组成原理 (4) 2.2.3 ADC0809引脚功能 (4) 2.3主控芯片AT89C52模块 (5) 2.3.1主要功能特性 (6) 2.3.2 主要引脚功能 (6) 2.4显示控制电路的设计及原理 (8) 3、程序设计 (9) 3.1初始化程序 (9) 3.2主程序 (10) 3.3显示子程序 (10) 3.4A/D转换测量子程序 (11) 4、调试及性能分析 (11) 4.1调试与测试 (11) 4.2性能分析 (12) 5、元件清单 (13) 6、总结与思考及致谢............................... 错误!未定义书签。参考文献. (13)

数字逻辑实验报告二demo

洛阳理工学院实验报告 系别计算机班级B130532 学号B13053235 姓名李登辉 课程名称数字逻辑实验日期2013.11.4 实验名称译码器及其应用成绩 实验条件: 1.+5V直流电压。 2.逻辑电平开关。 3. 逻辑电平显示器。 4.双踪示波器 5.连续脉冲源 6.拨码开关组 7. 译码显示器 8. 74LS138 CC4511 实验要求: 74LS138译码器逻辑功能测试。用两片74LS138构成一个4线-16线译码器,并进行实验。 实验目的:1掌握中规模集成译码器的逻辑功能和使用方法。 2熟悉数码管的使用。 实验步骤:一:熟悉74LS138译码器,了解其工作原理。其逻辑图和引脚排列如图所示: 其中A2,A1 ,A0为地址输入端,Y0~Y7为译码输出端,S1,S2,S3为使能端。

当S1=1,S2+S3=0时,器件使能,地址码所指定的输出端有信号输出(低电平0有效),其他输出端均无信号输出(全为1)。当S1=0,S2+S3=X,或S1=X,S2+S3=1时,译码器禁止,所有输出同时为1. 二:按照74LS138译码器的逻辑图和引脚排列连接电路,连接成功后观察期工作情况,注意观察其工作情况是否符合其功能。以下为连接后工作图:

三:利用使能端将两个38译码器组合连成一个4-16译码器如图所示: 根据如上所示的原理图在操作台上连线,并观察其工作情况。工作图片如下所示: 级联后138的三个输入端连接后作为4线-16译码器的三个输入端,第一个138的两个使能端与第二个138的非使能端连接后作为4线-16的一个输入端,而第一个138的非使能端与第二个138的使能端分别接高电平,低电平。得到的16 输

单片机4X4键盘计算器课程设计报告书

《单片机课程设计报告》 教学院: 专业班级: 学号: 学生: 指导教师: 时间: 地点:

单片机课程设计任务书 一、课题名称 单片机课程设计 二、设计目的 为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的单片机课程设计。通过实训使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。 三、设计容 设计基于51单片机的简易计算器系统电路,并以该电路为基础进行编程,要求能够实现0-99之间的数进行加、减、乘、除运算的功能。 四、设计要求 1、设计简易计算器,要求能对0-99之间的数进行加、减、乘、除运算。 2、用4×4的键盘作为输入设备。 3、用LED或LCD进行显示。 4、编写无符号数加、减、乘、除运算、输入和显示的程序。 5、对系统的进行综合和调试,使其具有对0-99之间的数进行加、减、乘、除运算的功能。 6、编写课程设计的总结

六、设计报告 课程设计报告的基本容至少包括封面、正文、附录三部分。课程设计报告要求统一格式,字体工整规。 1、封面 封面包括“《单片机课程设计》课程设计报告”、班级、、学号以及完成日期等。 2、正文 正文是实践设计报告的主体,具体由以下几部分组成: (1)课程设计题目; (2)课程设计任务与要求; (3)设计过程(包括设计方案、设计原理、创新点以及采用的新技术等); (4)方案的比较与论证; (5)硬件电路设计,各个模块的设计与器件的选择; (6)软件程序的设计与调试; (7)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法;技术实现技巧和创新点;作品存在的问题和改进设想等); 3.附录 附录1:系统设计原理图 附录2:系统硬件元器件清单 附录3:系统的程序 七、考核方式与成绩评定办法 及格(60分~69分)、60分以下为不及格。

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

. .. . .. .. 西南科技大学 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单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

单片机课程设计修改版oc

摘要 随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。本文介绍了一种应用 AT89S52单片机设计的防盗自动报警电子密码锁系统。经实验验证该系统具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可作为产品进行开发,应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,所以电子密码锁凭着比较强的实用性、锁密匙量大,又要制造简单;既安全可靠,又成本低廉;既保密性强,又实用性广,在密码锁的巨大市场上占有一席之地。 本文讲述了基于AT89S52单片机的“电子密码锁”的设计与实现,首先在绪论中介绍了此系统的简介、研究本系统的目的和意义。此后,本文在第二、三、四章论述了系统整体结构框图,系统各模块功能,论述了系统工作原理并对所使用各种芯片的功能与特性进行了介绍、系统硬件设计;在第五章中重点剖析了软件设计开发的过程。而在最后一章简述了本次设计的总结,个人感受。此外,通过对系统软硬件的不断调试,进一步完善功能,同时也加深了对单片机、LCD液晶显示器、电路设计等方面知识。 关键词: 单片机;AT89S52;电子密码锁; LCD显示 1.密码锁 1.1密码锁的介绍

安全问题是现代社会各界普遍关注的焦点之一。在现实生活中,很多场合都用到了电子密码锁,比如说门禁系统,银行账户管理,保险箱等等地方都要用到电子密码锁,而且对其要求也很高。所以高安全性能密码锁的研究就成了一个必需的话题。近几年各种安全产品(如指纹识别、卡辨识、红外防盗等)已相继问世,但这类产品的特点是针对特定指纹或有效卡。只能适用于保密要求高或供个人使用的保险箱保险柜等,虽然这些产品安全性高,但其生产成本高,携带、安装及使用不方便,这在一定程度上限制了这类产品的普及和推广。 随着单片机的迅速发展,其应用领域越来越广,如消费电子、家用电器、办公设备、商业营销设备、工业控制和机电一体化控制系统、智能测量仪表以及汽车与航空航天电子系统中都广泛采用了单片机。51系列单片机由于具有可靠性好,以及扩展控制功能强等优点,成为国内目前应用最广泛的一种8为单片机之一。随着单片机的应用领域越来越广泛,可以看出其的优越性和可靠性,所以将其应用到保密和安全方面是必然的,也是相当可靠,相当有意义的,基于单片机的电子密码锁的研究在保护财产和人身安全方面可以给人们带来更多更好的选择。 本文介绍的是一种由单片机编程控制实现的多功能密码锁,这种电路设计具有密码输入有效提示、错误指示、控制开锁电平、控制报警电路、密码修改等功能。可在意外泄密的情况下及时修改密码,密码可以是1-16位,保密性强、灵活性高、特别适用于家庭、办公室学生宿舍及宾馆等场所,具有社会推广价值。 1.2电子密码锁发展趋势 从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使

相关文档