当前位置:文档之家› MSP430单片机课程设计

MSP430单片机课程设计

MSP430单片机课程设计
MSP430单片机课程设计

MSP430单片机课程设计报告

姓名:

专业:

学号:

所在学院:

2 0 12 年6 月17 号

实验一:简单计算器设计

一、目的

利用单片机芯片MSP430x14x、四位八段共阴数码管,已制作好的电路板等器件设计制作一个计算器,用LED显示计算数值及结果。

二、功能

要求计算器能实现六位以内的数加减乘除四种运算,当所得结果超过六位数时则显示“EER”,当一次计算结束时要求计算器有复位功能。LED的最高位显示符号位,次高位空下来,其余六位显示要计算的数字。(自我发挥:求平方根。)

三、程序流程图

四、程序源代码

#include

#include "stdio.h"

#include

#define uchar unsigned char

#define uint unsigned int

unsigned char segment[24] =

{0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e,

0x8f,0xbf,0x89,0xb9,

0xff,0x86,0xaf,0xde};

unsigned char disbuff[8] = {20,20,0,0,0,0,0,0};//初始数码管

unsigned char getkey(void);

unsigned int qiushu();

void clear(void);

void zhuanhuan();

void delay(unsigned int j)

{

for(uint i=0;i

}

unsigned int qiushu() //转化成相应的十进制整数

{unsigned int y;

y=disbuff[2]*100000+disbuff[3]*10000+disbuff[4]*1000+disbuff[5]*100 +disbuff[6]*10+disbuff[7];

return y;

}

void clear(void) //清除屏幕

{unsigned int a;

for(a=7;a>1;a--)

disbuff[a]=0;

}

void zhuanhuan(long r) //提取十进制整数各位数值,并显示

{

disbuff[7]=r%10;

disbuff[6]=r/10%10;

disbuff[5]=r/100%10;

disbuff[4]=r/1000%10;

disbuff[3]=r/10000%10;

disbuff[2]=r/100000%10;

}

uchar getkey(void) //获取键值

{ uchar z,x=16;

P1OUT=0x00;

if((!(P1IN&BIT6))||(!(P1IN&BIT7))||(!(P1IN&BIT5))||(!(P1IN&BIT4))) {

delay(10000);

if((!(P1IN&BIT6))||(!(P1IN&BIT7))||(!(P1IN&BIT5))||(!(P1IN&BIT4))) {

for(z=0;z<=1;z++)

{

P1OUT=~BIT0;

if(!(P1IN&BIT7))

{x=3;break;}

P1OUT=~BIT0;

if(!(P1IN&BIT6))

{x=7;break;}

P1OUT=~BIT0;

if(!(P1IN&BIT5))

{x=11;break;}

P1OUT=~BIT0;

if(!(P1IN&BIT4))

{x=15;break;}

//line 1

P1OUT=~BIT1;

if(!(P1IN&BIT7))

{x=2;break;}

P1OUT=~BIT1;

if(!(P1IN&BIT6))

{x=6;break;}

P1OUT=~BIT1;

if(!(P1IN&BIT4))

{x=14;break;}

//line3

P1OUT=~BIT3;

if(!(P1IN&BIT6))

{x=4; break;}

P1OUT=~BIT3;

if(!(P1IN&BIT7))

{x=0; break;}

P1OUT=~BIT3;

if(!(P1IN&BIT5))

{x=8; break;}

P1OUT=~BIT3;

if(!(P1IN&BIT4))

{x=12; break;}

//line 2

P1OUT=~BIT2;

if(!(P1IN&BIT6))

{x=5; break;}

P1OUT=~BIT2;

if(!(P1IN&BIT7))

{x=1; break;}

P1OUT=~BIT2;

if(!(P1IN&BIT5))

{x=9; break;}

P1OUT=~BIT2;

if(!(P1IN&BIT4))

{x=13; break;}}

while((!(P1IN&BIT6))||(!(P1IN&BIT7))||(!(P1IN&BIT5))||(!(P1IN&BIT4)) )

for(uchar j=0;j<=7;j++)

{

P4OUT=0x80>>j;

P2OUT=segment[disbuff[j]];

delay(500);

}

delay(20000);

while((!(P1IN&BIT6))||(!(P1IN&BIT7))||(!(P1IN&BIT5))||(!(P1IN&BIT4)) )

for(uchar j=0;j<=7;j++)

{

P4OUT=0x80>>j;

P2OUT=segment[disbuff[j]];

delay(500);

}

delay(20000);

}

}

return (x);

}

/*************************主函数************************/ void main(void)

{

uchar k,flag=0,i=9;

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗

P5DIR|=BIT7;

P5OUT&=~BIT7;

P4DIR=0xff;

P2DIR=0xff;

P1DIR=0x0F;

P1OUT=0xff;

while(1)

{ long p,q,r;

disbuff[1]=20;

i=getkey();

if(i<10)

{

disbuff[2]=disbuff[3];

disbuff[3]=disbuff[4];

disbuff[4]=disbuff[5];

disbuff[5]=disbuff[6];

disbuff[6]=disbuff[7];

disbuff[7]=i;

}

else {

switch(i)

{case 10:disbuff[0]=23;

p=qiushu();

clear();

flag=10;

break;

case 12:disbuff[0]=16;

p=qiushu();

clear();

flag=12;

break;

case 13:disbuff[0]=17;

p=qiushu();

clear();

flag=13;

break;

case 14:disbuff[0]=18;

p=qiushu();

clear();

flag=14;

break;

case 15:disbuff[0]=19;

p=qiushu();

clear();

flag=15;

break;

case 11:{q=qiushu(); //做相应的计算求值 clear();

switch(flag)

{case 10:r=sqrt(p);break;

case 12:r=p+q;break;

case 13:r=p-q;break;

case 14:r=p*q;break;

case 15:r=p/q;break;

}

if((r>999999)||(r<0))

{

clear();

disbuff[5]=21;

disbuff[6]=21;

disbuff[7]=22;

}

else zhuanhuan(r);

}

break;

}

}

for(uchar j=0;j<=7;j++) //显示

{

P4OUT=0x80>>j;

P2OUT=segment[disbuff[j]];

delay(200);

}

}

}

实验二:猜数字游戏设计

一、目的

利用单片机芯片MSP430x14x、四位八段共阴数码管,设计一个猜数字游戏,并将游戏结果显示在数码管上。

二、功能

要求该设计能实现如下的功能:游戏开始后,先在程序内随即设定四个0-9之间的不同数,作为游戏数答案。然后用户给出4个数,该软件会将您提交的数与它自动产生的数进行比较,结果在八段数码管上显示成"kAsB"。k代表位置正确数字也正确的字数,s代表数字正确但位置不正确的字数。当k=4且s=0时,则比较正确显示“GOOD”,进行下一次比较。

三、程序流程图

开始

初始化参数

LED显示

扫描按键,

有按键

消抖,读入键值

显示数字,并与设定

的数进行比较

k=4且s=0?

Y

比较正确,显示“GOOD”,进行下一次比较

N LED显示比较结果

四、程序源代码

#include

#define uchar unsigned char

#define uint unsigned int

unsigned char leddata[17] = {0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e,0x82}; unsigned char disbuff[8] = {0,0,0,0,0,10,0,11};//初始数码管unsigned char a[4]={2,4,6,7};

unsigned char getkey(void);

void delay(unsigned int asdf) //延时

{

for(uint asd=0;asd

}

/*************************主函数************************/ void main(void)

{

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗

P5DIR|=BIT7;

P5OUT&=~BIT7;

P4DIR=0xff;

P2DIR=0xff;

P1DIR=0x0F;

P1OUT=0xff;

while(1)

{ int k=0,s=0,i,j;

i=getkey();

if(i<10)

{disbuff[0]=disbuff[1];

disbuff[1]=disbuff[2];

disbuff[2]=disbuff[3] ;

disbuff[3]=i;}

for(j=0;j<4;j++) //比较

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

{if((a[j]==disbuff[i])&&(i==j)){k++;}

else if((a[j]==disbuff[i])&&(i!=j)){s++;}

disbuff[4]=k;

disbuff[6]=s;

if(k==4&&s==0)

{disbuff[0]=16;

disbuff[1]=0;

disbuff[2]=0;

disbuff[3]=13;}}

for(uchar j=0;j<=7;j++) //显示

{

P4OUT=0x80>>j;

P2OUT=leddata[disbuff[j]];

delay(200);

}

}

}

uchar getkey(void) //获取键值

{ uchar z,x=16;

P1OUT=0x00;

if((!(P1IN&BIT6))||(!(P1IN&BIT7))||(!(P1IN&BIT5))||(!(P1IN&BIT4))) {

delay(10000);

if((!(P1IN&BIT6))||(!(P1IN&BIT7))||(!(P1IN&BIT5))||(!(P1IN&BIT4))) {

for(z=0;z<=1;z++)

{

P1OUT=~BIT0;

if(!(P1IN&BIT7))

{x=3;break;}

P1OUT=~BIT0;

if(!(P1IN&BIT6))

{x=7;break;}

P1OUT=~BIT0;

if(!(P1IN&BIT5))

{x=11;break;}

P1OUT=~BIT0;

if(!(P1IN&BIT4))

{x=15;break;}

//line 1

P1OUT=~BIT1;

if(!(P1IN&BIT7))

{x=2;break;}

P1OUT=~BIT1;

if(!(P1IN&BIT6))

{x=6;break;}

P1OUT=~BIT1;

if(!(P1IN&BIT4))

{x=14;break;}

//line3

P1OUT=~BIT3;

if(!(P1IN&BIT6))

{x=4; break;}

P1OUT=~BIT3;

if(!(P1IN&BIT7))

{x=0; break;}

P1OUT=~BIT3;

if(!(P1IN&BIT5))

{x=8; break;}

P1OUT=~BIT3;

if(!(P1IN&BIT4))

{x=12; break;}

//line 2

P1OUT=~BIT2;

if(!(P1IN&BIT6))

{x=5; break;}

P1OUT=~BIT2;

if(!(P1IN&BIT7))

{x=1; break;}

P1OUT=~BIT2;

if(!(P1IN&BIT5))

{x=9; break;}

P1OUT=~BIT2;

if(!(P1IN&BIT4))

{x=13; break;}}

while((!(P1IN&BIT6))||(!(P1IN&BIT7))||(!(P1IN&BIT5))||(!(P1IN&BIT4)) )

for(uchar j=0;j<=7;j++)

{

P4OUT=0x80>>j;

P2OUT=leddata[disbuff[j]];

delay(500);

}

delay(20000);

while((!(P1IN&BIT6))||(!(P1IN&BIT7))||(!(P1IN&BIT5))||(!(P1IN&BIT4)) )

for(uchar j=0;j<=7;j++)

{

P4OUT=0x80>>j;

P2OUT=leddata[disbuff[j]];

delay(500);

}

delay(20000);

}

}

return (x);

}

课程设计小结:

为期一个半星期的单片机课程设计不知不觉就接近尾声了,在这短短的一个半星期内的时间里,我们进行了计算器,猜数字游戏和串口通行三个设计,时间虽然短暂,但是个人觉得受益匪浅,真切体会到将理论付诸于实践,将所学到的理论知识灵活的运用于实际项目中。

初拿到设计计算器这个题目,感觉无从下手。虽然经过一个学期对MSP430各个部分的学习,但要将所学到的知识连贯起来去实现一项有多种功能的软件确实是无能为力,这其间要涉及到各种函数的编写,调用以及实现。所以,对于我们这样一个新手,算是一种考验。于是,首先我们先考虑整体的流程图,然后把要用到哪些功能函数写下来,把最基本的部分先进行试编写,比如函数、参数的定义,关看门狗啊等一些规定死了的东西写出来,对于不懂的部分通过上网、看书将资料查到,查到后然后再将各种功能函数进行往里面填入。仅仅将那些资料就那样简单的拼接是完全不行的,中间必须将各个函数的参量联系起来,然后按照功能依次调用。如果不是清楚每个部分的功能那也是不行的,那样或者会将调用次序编写错位,或者少漏的话,最后整个程序就不能进行正确编译、调试及运行。所以经过N多次的调试,修修改改,终于整个程序准确无误的运行了预定的功能,当程序运行成功时,对于初学者来说那是多么大的安慰,这对后面程序的编写提供了更多的动力。由于第一次进行综合设计,所以第一个设计用的时间稍微长了点,虽然中间经历了很多波折,但是通过自己的思考跟努力亲自做出来也是很高兴的。有了第一个实验的基础于是我们就对第二个实验就有帮助不少,仔细想想两个实验还是有联系的,第一个实验的主要部分是对数进行四则运算,而第二个是对数进行比较,于是我们就是对关键部分的功能函数进行修改。知道了原理,在经过不断的修改,于是第二个实验也很快做出来了。

课程设计就要结束了,虽然时间很短,但是真正觉得学的比一个学期学到的实用很多。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。

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

基于单片机的温度控制器设计 内容摘要:该温度报警系统以AT89C51单片机为核心控制芯片,实现温度检测报警功能的方案。该系统能实时采集周围的温度信息,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。该系统实现了对温度的自动监测和自动调温功能。 关键词:AT89C51ADC0808 温度检测报警自动调温 Abstract:The temperature alarm system AT89C51 control chip, realize temperature detection alarm function scheme. The system can collect real-time temperature information around that internal procedures set alarm equipped, according to different application environment can be set different alarm upper. The system realizes the automatic monitoring of temperature. The instrument can achieve the automatic thermostat function. Keywords:AT89C51 ADC0808Temperature detectingalarmautomatic thermostat 引言:本课题是基于单片机的温度控制器设计,经过对对相关书籍资料的查阅确定应用单片机为主控模块通过外围设备来实现对温度的控制。实现高低温报警、指示和低温自加热功能(加热功能未在仿真中体现)。 1.设计方案及原理 1.1设计任务 基于单片机设计温度检测报警,可以实时采集周围的温度信息进行显示,并且可以根据应用环境不同设定不同的报警上下限。 1.2设计要求 (1)实时温度检测。 (2)具有温度报警功能。 (3)可以设报警置温度上下限。 (4)低于下限时启动加热装置。 1.3总体设计方案及论证

基于-89C51单片机的秒表课程设计汇本

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (4) 2.2设计指标 (4) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计容提要 (4) 3 课程设计报告容 (5) 3.1设计思路 (5) 3.2设计过程 (6) 3.3 程序流程及实验效果 (7) 3.4 实验效果 (16) 4 心得体会 (17)

基于MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计容为以8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求

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

单片机原理与接口技术课程设计题目汇总 说明:为便于同学提前探讨开发思路,特将本课程设计的可选题目发给大家。 每个同学可以在以下题目中选一题要求:课程设计考核内容包括:源程序;设计报告文档基于单片机的电子时钟设计设计内容:1、用LCD液晶作为显示设备(30分) 2、可以分别设定小时,分钟和秒,复位后时间为:00: 00:00 (30 分) 3、能实现日期的设置,年、月、日(30分) 4、其他创新内容(10分)如:闹钟功能;显示星期;整点音乐报时等。 图示: 2010-04-09 MON 11:06:42 基于单片机的交通灯显示系统(一) 设计内容: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分) 显示: A 083: B 079 4th Period 10:25

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

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

51单片机交通灯课程设计

第一章单片机概述 单片机是20世纪70年代中期发展起来的一种大规模集成电路器件。它在一块芯片内芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。 单片机的应用技术是一项新型的工程技术,其内涵随着单片机的发展而发展。由于MCS-51系列的单片机的模块化结构比较典型、应用灵活,为许多大公司所采纳,使8051系列的单片产品日新月异。在Intel公司20世纪80年代初推出MCS-51系列单片机以后,世界上许多著名的半导体厂商相继生产和这个系列兼容的单片机,使产品型号不断地增加、品种不断丰富、功能不断加强,在国内外单片机应用中占有重要地位。由于单片机具有功能强、体积小、价格低等一系列优点,在各个领域都有广泛的应用,有力地推动了各行各业的技术改造和产品更新换代。 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,

产品更新换代的节奏也越来越快。 第二章MSC-51芯片简介 8051是MCS-51系列单片机的典型产品。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: ·中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 ·数据存储器(RAM) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM 只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·程序存储器(ROM): 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。 ·全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

单片机课程设计题目

《单片机原理与应用》课程设计题目 1.基于单片机的电子秒表 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。 要求按键输入采用中断方式,按键A接INT0,按键B接INT1。 2.智能电动百叶窗 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,用一台直流电机控制百叶窗叶片的旋转(正转/反转),用一个光敏电阻传感器测量室内光强度,并用两位数码管显示测量结果,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。 设置两个极限位置保护行程开关,用于保护百叶窗叶片:当正转到极限位置压下行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。 按键输入采用中断方式,按键中断请求信号接INT0. 单片机根据设定光强S1和S2(S2 > S1)和实测光强P控制电机M的动作:当P<=S1时,控制M正转以增加进光量; 当P>S2时,控制M反转以减少进光量; 当S1S+1时,控制R断开电加热回路; 当S-1

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

单片机课程设计报告电 子密码锁 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 个按键的矩阵键盘。 在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确

单片机课程设计报告

《单片机原理及接口技术》课程设计题目:简易计算器设计 级:电子1547 名:苏丹丹、李静、齐倩 号:05号、17号、11号

导教师:张老师 间:2013年12月 西安航空学院电气学院

目录 一、选题的背景和意义-------------------1 1.1选题的背景-------------------------------------1 1.2选题的意义-------------------------------------1 二、总体设计-------------------------------1 2.1设计任务---------------------------------------1 2.2方案选择---------------------------------------1 三、硬件设计-------------------------------2 3.1 元器件名称--------------------------------------------------------2 3.2 计算器按键介绍--------------------------------------------------2 3.3硬件系统框图、单元电路--------------------------3 四、软件设计-------------------------------3 4.1 软件调试步骤-----------------------------------------------------3 4.2软件设计流程图---------------------------------------------------4 五、结束语------------------------------------5 六、参考文献--------------------------------5 七、附录---------------------------------------6

单片机课程设计报告册

重庆大学城市科技学院电气信息学院单片机课程设计报告 简易数字直流电源 A Direct Current Source on MCU 组长:张华江 (20060054) 专业、班级: 06级电子信息工程2班 小组成员:唐堃(20060037)魏公贺(20060045) 设计日期: 2009-6-17 指导教师:谢从晋

重庆大学城市科技学院 本科学生课程设计任务书 说明:1、学院、专业、年级均填全称。 2、本表除签名外均可采用计算机打印。本表不够,可另附页,但应在页脚添加页码。

目录 一、引言 (4) 二、总体方案设计 (4) 三、硬件电路设计 (5) 3.1控制部分 (5) 3.1.1 设定初值 (5) 3.1.2 加减设定及报警电路 (5) 3.2显示部分 (7) 3.3电路输出部分 (7) 3.4其他部分 (8) 3.5完整电路 (9) 四、软件系统设计 (11) 4.1软件流程图 (11) 4.2程序源代码 (12) 五、问题及解决 (13) 5.1硬件电路问题 (13) 5.2软件调试问题 (13) 参考文献 (14)

简易数控直流电源 摘要:该电源系统以C51单片机为核心控制芯片,实现数控直流稳压电源功能的方案。设计通过拨码开关设定初值(高4位、低4位分别对应其个位和小数位),然后对其加以判断该值是否正确(错误发声)。值再通过一个译码器74LS48传给数码显示。同时采用数模转换器DAC0832和两个运算放大器LM193构成稳压源,再通过外部中断从而实现了输出电压范围为0V~9.9V,电压步进0.1V的数控稳压电源,最大纹波不大于10mV。达到实现实验目的。 关键词:C52单片机;译码器74LS48;数模转换器DAC0832;运算放大器LM193 一、引言 本文以对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。 二、总体方案设计 对应该原理设计图,通过拨码开关经过上拉电阻设定初值,传到控制口,加以判定

单片机课程设计完整版《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) 对直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速范

51单片机课程设计秒表

微控制器技术课程 设计报告 设计题目:秒表 专业:供用电技术 班级:供电141 学号:140315143 姓名:王晨铭 指导教师:李昊 设计时间:2016.6.21

微控制器技术课程设计任务书 设计题目:秒表 设计时间:2016.6.20 设计任务: 在单片机开发板或软件仿真,编制程序,实现以下功能 1、利用定时器实现秒表功能,精确到0.1S; 2、数码管显示当前计时时间; 3、设定三个键,计时开始,停止计时和复位清零。 背景资料:1、单片机原理与应用 2、检测技术 3、计算机原理与接口技术 进度安排: 1、第1天,领取题目,熟悉设计内容,分解设计步骤和任务; 2、第3天,规划设计软硬件,编制程序流程、绘制硬件电路。 3、第5天,动手制作硬件电路,或编写软件,并调试。 4、第7天,中期检查。 5、第9天,完善设计内容,书写设计报告。 6、第13天,提交设计报告,整理设计实物,等待答辩。 7、第14天,设计答辩。

目录 一、设计任务和要求 (3) (1)设计任务 (3) (2)设计要求 (3) 二、设计方案与论证 (3) 三、单元电路设计与参数计算 (4) (1)时钟电路 (4) (2)按钮电路 (4) (3)显示电路 (5) (4)单片机 (5) 四、原理图及器件清单 (6) ( 1 )总原理图 (6) (2)PCB图 (7) (3)Proteus仿真图 (7) (4)元器件清单 (8) 五、安装与调试 (8) (1)安装 (8) (2)调试 (8) 六、性能测试和分析 (9) 七、结论和心得 (9) 八、参考文献 (9)

题目:秒表 二、方案设计与论证 本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。其模块电路如图2-1所示。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。为了使电路简单化,本设计选用共阳数码管。但根据显示方式的不同选择,我们可以有几种方案: 方案一:使用静态显示方式。静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/0口。如果另外想扩展单片机功能,则能使用的输出管脚很是有限。 方案二:使用动态显示方式。这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。 本小组尝试了各种方案,在此报告中以静态显示方式为例说明。(动态显示方式省略) 显示电路 单片机 AT89C51 时钟电路 按钮电路

51单片机课程设计源程序

TIME0_DOWN EQU F0 ;将F0设置为定时器0定时到标志 FINISH_ID EQU 30H ;学号发送标志 KEY_FLAG BIT 00H ;有键按下标志 KEY_LONG BIT 01H ;键长按 KEY_D EQU 31H ;键值存放地址 ADC0809_AD EQU 8000H ;设置ADC0809地址 DAC0832_AD EQU 0000H ;设置DAC0832地址 ADC_FLAG BIT 02H ;设置ADC0809读数据标志 ADC_DATE EQU 32H ;设置ADC0809数据地址 ADC_0 EQU 33H ;ADC0809转化为BCD码后个位存放地址 ADC_1 EQU 34H ;十分位存放地址 ADC_2 EQU 35H ;百分位存放地址 ADC_3 EQU 36H ;千分位存放地址 ORG 0000H ;程序开始,跳转至主程序 0000 020030 LJMP MAIN ORG 0003H ;外部中断0入口0003 020141 LJMP INT0_IN ORG 000BH ;设置定时器0中断入口地址 000B 020132 LJMP TIME0 ORG 0013H ;外部中断1入口0013 020151 LJMP INT1_IN ORG 0030H ;主程序开始地址 0030 758169 MAIN: MOV SP,#69H ;初始化堆栈指针 0033 C292 CLR P1.2 ;显示器清零 0035 D292 SETB P1.2 0037 753000 MOV FINISH_ID,#0 ;将标志位清零 003A C2D5 C LR TIME0_DOWN 003C C200 CLR KEY_FLAG 003E C201 CLR KEY_LONG 0040 753100 MOV KEY_D,#0 0043 C202 CLR ADC_FLAG 0045 753200 MOV ADC_DATE,#0 0048 753300 MOV ADC_0,#0 004B 753400 MOV ADC_1,#0 004E 753500 MOV ADC_2,#0 0051 753600 MOV ADC_3,#0 0054 C291 CLR P1.1 ;初始化键盘,行线置零,有键按下触发中断 0056 C293 CLR P1.3

单片机课程设计报告模板

单片机系统课程设计报告 专业:自动化 学生姓名: 学号: 指导教师: 完成日期: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 程序清单..................................

最全最好的课程设计-51单片机电子日历时钟( 含源程序)

LED日历时钟课程设计 院系: 班级: 姓名: 学号: 指导教师: 2012 年06 月16 日

目录

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 第一章前言 数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k B ytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

基于51单片机课程设计报告

单片机课程设计 课题:基于51单片机的交通灯设计 专业:机械设计制造及其自动化 学号: 指导教师:邵添 设计日期:2017/12/18 成绩: 大学城市科技学院电气学院 基于51单片机数字温度计设计报告

一、设计目的作用 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度围-55°C~+125°C。在-10~+85°C围,精度为±0.5°C。18B20的精度较差,为±2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。 二、设计要求 (1).利用DS18B20传感器实时检测温度并显示。 (2).利用数码管实时显示温度。 (3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。 (4).能够手动设置上限和下限报警温度。 三、设计的具体实现 1、系统概述 方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案设计框图如下:

单片机课程设计模板2017

课程设计(论文)课程名称单片机应用课程设计 题目 院(系) 专业班级 姓名 学号 指导教师 年月日

西安建筑科技大学课程设计(论文)任务书 专业班级:电子1302 学生姓名:王玖玲指导教师(签名): 一、课程设计(论文)题目 正弦波信号发生器设计 二、本次课程设计(论文)应达到的目的 本次课程设计是自动化专业学生在学习了《单片机原理及应用》课程及《模拟电子线路》、《数字电子线路》等专业基础课程之后进行的一次综合训练,其主要目的是加深学生对单片机软硬件技术和相关理论知识的理解,进一步熟悉51单片机系统设计的基本理论、方法和技能;掌握工程应用的基本内容和要求,力争做到理论与实际的统一;同时培养学生分析问题、解决问题的能力和独立完成系统设计的能力,并按要求编写相关的技术文档和设计报告等。 三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 1.设计内容 (1)选择51单片机,晶振采用12MHz。 (2)设计一个能产生0至50HZ正弦波信号。通过0832D/A芯片完成数模转换。 (3)频率值由键盘输入。 (4)将频率值由LED数码管上显示(两位)。 2.设计要求 (1)按照任务书的要个求完成系统分析及方案设计。 (2)完成硬件原理图的设计,并选择相关元器件。 (3)完成控制软件流程图的设计,编写相应的单片机控制程序。 (4)撰写设计报告。 3. 成果要求 (1)在proteus中实现仿真。 (2)提交课程设计报告。 四、应收集的资料及主要参考文献: 1.李建忠.单片机原理及应用.西安电子科技大学出版社,2008 2.杨居义.单片机课程设计指导.清华大学出版社,2009 3.李海滨等.单片机技术课程设计与项目实例.中国电力出版社,2009 以及与51系列单片机相关的文献及教材。 五、审核批准意见 教研室主任(签字)

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