单片机课程设计

时间:2024.3.23

信息与电气工程学院

课程设计说明书

(2013 /2014 学年 第 2 学期)

课程名称 :单片机应用课程设计

题 目 :简易数字计数器设计

专业班级 :自动化1101

学生姓名 :

学 号:110410…

指导教师 :

设计周数 :2

设计成绩 :

20## 年 7 月 10 日

单片机课程设计任务书

一、课题名称

单片机课程设计

二、设计目的

为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的单片机课程设计。通过实训使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。

三、设计内容

设计基于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:系统的程序

七、考核方式与成绩评定办法

备注:成绩等级:优(90分~100分)、良(80分~89分)、中(70分~79分)、及格(60分~69分)、60分以下为不及格。

八、参考书目

[1] 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998

[2] 李广弟.单片机基础[M].北京:北京航空航天大学出版社,1994

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

[4] 廖常初.现场总线概述[J].电工技术,1999.

[5] 徐仁贵等编著.《单片微型计算机应用技术》.北京:机械工业出版社.20##年2月第1版

[6] 张毅刚等编著.《单片机原理及应用》. 北京:高等教育出版社.20##年1月第1版

一、课程设计任务与要求

设计基于51单片机的简易计算器系统电路,并以该电路为基础进行编程,要求能够实现0-99之间的数进行加、减、乘、除运算的功能,并要求如下:

1、设计简易计算器,要求能对0-99之间的数进行加、减、乘、除运算;

2、用4×4的键盘作为输入设备;

3、用LED或LCD进行显示;

4、使用C语言编写无符号数加、减、乘、除运算、输入和显示的程序;

5、对系统的进行综合和调试,使其具有对0-99之间的数进行加、减、乘、除运算的功能,还具有清零功能等;

6、编写课程设计的总结。

二、设计方案与选择方案

1、芯片

1.1、方案构思

本设计中的芯片可以采用两种方案,一种是以FPGA为核心处理芯片,配备相应的外设;另一种是以STC89C52处理器,配备相应的外设。

(1)方案一:采用FPGA控制

FPGA是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA的集成密度和性能提高很快,其集成密度最高达500万门/片以上,系统性能可达200MHz。由于FPGA器件集成密度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。

但是基于SRAM编程的FPGA,其编程信息需存放在外部存储器上,需外部存储器芯片,且使用方法复杂,保密性差,而其对于一个简单的计算器而言,使用FPGA有点大材小用,成本太高。

(2)方案二:采用AT89C51

单片机是单片微型机的简称,故又称为微控制器MCU(Micro Control Unit)。通常由单块集成电路芯片组成,内部包含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机广泛应用于智能产品,智能仪表,测控技术,智能接口等,具有操作简单、实用方便、价格便宜等优点。

AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。

1.2、方案比较与选择

通过以上两种方案的论证和比较,从设计的实用性、方便性和成本等诸多方面考虑,最终选择了以AT89C51单片机作为中央处理单元进行计算器的设计,这样设计能够实现对六位整数、两位小数的加、减、乘、除的四则运算。

2、输入模块

2.1方案构思

(1)方案一:采用独立式按键作为输入模块

独立式按键输入模块,其特点是:直接用I/O口构成单个按键电路,接口电路配置灵活、按键识别和软件结构简单;但是当键数较多时,占用I/O口较多,比较浪费资源。其原理图如图1所示。

图 1 独立的功能按键 图 2 矩阵键盘输入

(2)方案二:采用矩阵式键盘作为输入模块

矩阵式按键输入模块,其特点是:电路和软件稍复杂,但相比之下,当键数越多时,越节约I/O口,比较节省资源。其原理图如图2所示。

2.2、方案比较与选择

本设计中的输入模块使用的是矩阵键盘输入。

键盘输入预置用于计算,按键较多。若是采用独立按键,需频繁按键,为软件设计增加负担,且操作界面不友好;若是采用矩阵式按键,可以方便地输入一个数值,使操作界面更具有人性化,且节约了宝贵的I/O口资源。

通过对比,故采用方案二作为系统输入模块。

3、显示模块

3.1、方案构思

(1)方案一:采用LED数码管静态显示

采用LED数码管的静态显示,其特点是:其亮度较高;这种显示方式接口,编程容易且管理简单;不足的是,占用的I/O的线资源较多。如果采用单片机或CPLD/FPGA来控制的话,势必存在浪费I/O口资源的问题。如图3所示。

图 3 4位数码管静态显示

(2)方案二:采用LED数码管动态显示

采用LED数码管的动态显示,其特点是:其亮度比静态显示的亮度要差一些;但其电路比较简单,适合于显示位数较多的情况。如图4所示。

图 4 4位数码管的动态显示

(3)方案三:采用LCD1602液晶显示

采用LCD1602液晶显示,其特点是:可以调节其背光亮度,这种显示方式接口,编程虽然有些麻烦,但管理较方便,占用的I/O口资源线也不多。

3.2、方案比较与选择

本设计中的显示模块使用的是LCD1602液晶显示。

在计算器运算中,需显示的数字、符号较多,按很据个方面的特点,而后可以发现LCD液晶显示,虽然在价格上的确是稍贵于LED数码管;但数码管在硬件设计电路中,会因线太多、线路复杂而过于繁琐,则舍弃LED数码管,选择LCD液晶显示。

通过对比,故采用方案三作为系统显示模块。

三、整体方案原理框图

1.1硬件与软件系统设计

依据系统分析及实现功能,硬件小系统方框图如图1所示:

图5

依据系统硬件设计,软件系统主要包括:

单片机控制程序模块:作为系统的主控制程序模块,用KeilC编程控制其他程序模块的协调工作;

键盘程序模块:用来输入用户的功能,使单片机完成相应的控制功能;

液晶显示模块:使用字符型液晶显示器显示用户的选择。

1.2单片机模块

单片机控制主程序流程图如下:


图6

单片机外围扩展电路程序模块

为了节约成本,本设计中液晶显示模块与单片机之间采用模拟口线的方式控制,键盘与单片机之间采用扫描的工作方式。

键盘程序流程图(扫描方式)

键盘程序流程图如下所示:


图7

LCM程序流程图如下所示:


图8

本设计的软件系统分别用伟福E6000和KeilC编写及编译。4*4键盘程序模块用汇编语言和C语言编写,实现直接从P2口扫描得到键盘码,并采用查询方式得到与之对应的LCD字型码,在LCD上显示出来。

四、单元电路设计

1.1键盘输入

计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式。为此,我们引入了矩阵键盘的应用,采用四条I/O线作为行线,四条I/O线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。

矩阵键盘的工作原理:

计算器的键盘布局如图5所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。

图9 键盘布局图

图10 矩阵键盘内部电路图

键盘上的每一个按键都有一个键值。给键赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到给该列置低电平0,若读出各行状态为非全1,这时的行、列数据组合成键值。键盘键值从左到右、从上到下依次是77,7B,7D,7E;B7,BB,BD,BE,…,E7,EB,ED,EE。这种负逻辑表示往往不够直观,因而采用行、列线加反向器或软件求反的方法将键盘改成正逻辑。这时,键值依次为88,84,82,81;48,44,42,41,…,18,14,12,11。不论是正逻辑还是负逻辑,这种键值表示方式分散度在且不等距,用于指令不太方便。对于不是4*4或8*4或8*8键盘,使用也不容易,故在许多场合下,采用依次排列键值的方法。这时的键值与键号相一致。

1.2单片机控制

MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。

单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能。

图11 单片机控制电路的时钟电路和复位电路

LCD1602显示

图12 LCD1602显示

1602点阵字符液晶模块(LCM)引脚及功能

1脚(VDD/VSS):电源5V±10%或接地。

2脚(VSS/ VDD):接地或电源(5±0.5)V。

3脚(VO):反视度调整。使用可变电阻调整,通常接地。

4脚(RS):寄存器选择(1:选择数据寄存器;0:选择指令寄存器)。

5脚(R/W):读/写选择(1:读;0:写)。

6脚(E):使能操作(1:LCM可做读写操作;0:LCM不可做读写操作)。

7脚(DB0):双向数据总线的第0位。

8脚(DB1):双向数据总线的第1位。

9脚(DB2):双向数据总线的第2位。

10脚(DB3):双向数据总线的第3位。

11脚(DB4):双向数据总线的第4位。

12脚(DB5):双向数据总线的第5位。

13脚(DB6):双向数据总线的第6位。

14脚(DB7):双向数据总线的第7位。

15脚(VDD):背光显示器电源+5V。

16脚(VSS):背光显示器接地。

五、实物效果图

图13 实物效果图

六、心得体会

时间过的真快,为期两周的课设又结束了。这两周感觉过的还是蛮充实的,学到了不少新知识。两周的单片机课程设计使一个学期学到的理论知识得到了一个很好的升华,通过这次课设使所学由虚变实,由浅及深,让我对这门课程有了一个更全面的认识,对以前理解不到位的知识有了一个更深刻的体会。单片机这门课程是一门实践性很强的课程,所以理论学得再好如果不亲自动手设计东西,把他运用在实践中去,感觉很空洞。通过这次课设,我还学到了许多书本上学不到的东西,首先,我认识到实践是检验真理这一理论的精髓,体会到学好知识的同时,还要更好的运用好知识,做到活学活用,这才是做学问的最高境界;其次,我体会到团队精神是很重要的,在一个团队中必须要团结一心,相互鼓励,这样才能相互提升,达到目的;还有就是为人谦虚很重要,自己不会的东西应该谦虚求教,别人不懂的时候要谦虚讲解,这样不管是在一个团队中还是在其他地方才会获得大家的欢迎,才能更好的交流做事。

在这次课设过程中,我们也遇到了不少麻烦。首先是焊电路图时,忽略了器件的连接方向,焊好了调试时才知道有的器件的管教接错了,结果来了个大反工;其次就是程序的编写和调试,这确实让人花了不少时间,但还是通过大家的努力,老师的帮助,成功的做出来了。最后还是要感谢各位老师,感谢你们在我们最困难的时候提供的帮助,学期就要结束了,在这儿祝各位老师身体健康,假期快乐!

七、参考文献

[1] 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998

[2] 李广弟.单片机基础[M].北京:北京航空航天大学出版社,1994

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

[4] 廖常初.现场总线概述[J].电工技术,1999.

[5] 徐仁贵等编著.《单片微型计算机应用技术》.北京:机械工业出版社.20##年2月第1版

[6] 张毅刚等编著.《单片机原理及应用》. 北京:高等教育出版社.20##年1月第1版

八、附录

1.系统程序

#include

#define uchar unsigned char

#define uint unsigned int

sbit rs=P1^0;//1602的数据/指令选择控制线

sbit rw=P1^1;//1602的读写控制线

sbit e=P1^2;//1602的使能控制线

void write_dat(uchar dat);

void write_com(uchar com);

void keyscan();

/**********************

功能说明:

显示编码,加上0x30,因为1602是ASCII显示数据的

分别为'1','2','3','+',

'4','5','6','-',等

**********************/

uchar code table1[]=

{

1,2,3,+,

4,5,6,-,

7,8,9,*,

0,/,=,qing

};

uchar k=0,flag=0,num,fuhao,i;

long a,b,c;

void delay(uint z)

{

uint x,y;

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

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

}

void keyscan()

{

uchar temp;

P2=0xfe;

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P2;

switch(temp)

{

case 0xee:num=0;

break;

case 0xde:num=1;

break;

case 0xbe:num=2;

break;

case 0x7e:num=3;

break;

}

while(temp!=0xf0)

{ temp=P2;

temp=temp&0xf0;

}

}

/*当按下1,2,3,松手后执行下面这段语句*/

if(num==0||num==1||num==2)

{

if(flag==0)

a=a*10+table1[num];//如果没有按符号键,符号前的数值为a

else if(flag==1)

b=b*10+table1[num]; //如果按了符号键,符号后的数值为b

if(k==1) //如果之前按了'='号,再按键时清屏,进行下一次计算

{

k=0;

write_com(0x01);

}

}

else if(num==3) //判断按下'+'

{

flag=1;

fuhao=1;

}

i=table1[num]; //显示按下的键

write_dat(0x30+i);

}

P2=0xfd;

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P2;

switch(temp)

{

case 0xed:num=4;

break;

case 0xdd:num=5;

break;

case 0xbd:num=6;

break;

case 0x7d:num=7;

break;

}

while(temp!=0xf0)

{ temp=P2;

temp=temp&0xf0;

}

}

if(num==4||num==5||num==6) //判断是否按下'4','5','6'

{

if(k==1)

{

k=0;

write_com(0x01);

}

if(flag==0)

a=a*10+table1[num];

else if(flag==1)

b=b*10+table1[num];

}

else if(num==7)

{

flag=1;

fuhao=2;

}

i=table1[num]; //显示按下的键

write_dat(0x30+i);

}

P2=0xfb;

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P2;

switch(temp) //

{

case 0xeb:num=8;

break;

case 0xdb:num=9;

break;

case 0xbb:num=10;

break;

case 0x7b:num=11;

break;

}

while(temp!=0xf0)

{ temp=P2;

temp=temp&0xf0;

}

}

if(num==8||num==9||num==10) //判断是否按下'7','8','9'

{

if(k==1)

{

k=0;

write_com(0x01);

}

if(flag==0)

a=a*10+table1[num];

else if(flag==1)

b=b*10+table1[num];

}

else if(num==11) //判断是否按下'*'

{

flag=1;

fuhao=3;

}

i=table1[num];

write_dat(0x30+i);

}

P2=0xf7;

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P2;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P2;

switch(temp)

{

case 0xe7:num=12; // 0键

break;

case 0xd7:num=13; // '='

break;

case 0xb7:num=14; //清零键

break;

case 0x77:num=15; //'/'

break;

}

while(temp!=0xf0)

{ temp=P2;

temp=temp&0xf0;

}

}

switch(num)

{

case 12:

{

if(k==1)

{

k=0;

write_com(0x01);

}

if(flag==0)

a=a*10;

else if(flag==1)

b=b*10;

write_dat(0x30);

}

break;

case 13: //按=键

{

k=1;

if(fuhao==1) //如果符号键是+,执行+运算

{

write_com(0x80+0x4f);

write_com(0x04);

c=a+b;

while(c!=0)

{

write_dat(0x30+c%10);

c=c/10;

}

write_dat(0x3d);

fuhao=0;

a=0;b=0;flag=0;

}

if(fuhao==2) //如果符号键是-,执行-运算

{

write_com(0x80+0x4f);

write_com(0x04);

if(a>=b)

{

c=a-b;

while(c!=0)

{

write_dat(0x30+c%10);

c=c/10;

}

}

else if(a

{

c=b-a;

while(c!=0)

{

write_dat(0x30+c%10);

c=c/10;

}

write_dat(0x2d);

}

write_dat(0x3d);

a=0;b=0;flag=0;fuhao=0;

}

if(fuhao==3) //如果符号键是*

{

write_com(0x80+0x4f);

write_com(0x04);

c=a*b;

while(c!=0)

{

write_dat(0x30+c%10);

c=c/10;

}

write_dat(0x3d);

a=0;b=0;flag=0;fuhao=0;

}

if(fuhao==4) //如果符号键是/

{

i=0;

write_com(0x80+0x4f);

write_com(0x04);

c=(long)(((float)a/b)*1000000); //结果保留6位小数

while(c!=0)

{

write_dat(0x30+c%10);

c=c/10;

i++;

if(i==6) // 显示完六位小数后,显示·

write_dat(0x2e);

}

if(a/b<=0)

write_dat(0x30);

write_dat(0x3d);

a=0;b=0;flag=0;fuhao=0;

}

}

break;

case 14:

{ write_com(0x01);

a=0;b=0;flag=0;fuhao=0;

}

break;

case 15:

{

flag=1;

fuhao=4;

write_dat(0x30+table1[num]);

}

break;

}

}

}

/*******led1602*******/

void write_com(uchar com)//1602写命令函数

{

rs=0;//选择写指令,指令寄存器

rw=0;//选择写

P3=com;//把命令字送入P3

e=1;//使能线电平变化,命令送入1602的8位数据口

delay(5);//无延时不能正常工作

e=0;

}

void write_dat(uchar dat)//1602写数据函数

{

rs=1;//选择写数据,数据寄存器

rw=0;//选择写

P3=dat;//把要显示的数据送入P3口

e=1;//使能线电平变化,命令送入1602的8位数据口

delay(5);//无延时不能正常工作

e=0;

}

void init() //LCD1602液晶初始化

{

delay(15);

write_com(0x38);//8位数据,双列,5*7字形

delay(6);

write_com(0x38);

delay(6);

write_com(0x38);

write_com(0x38);

write_com(0x0c); //开显示,关光标

write_com(0x06);//显示地址递增,即写一个数据后,显示位置右移一位

write_com(0x01);//清屏

}

void main()

{

init();//液晶初始化

while(1)

{

keyscan();

}

}

2.电路图

3.原器件清单

课程设计成绩评定表

更多相关推荐:
单片机课程设计总结

单片机课程设计心得体会这个学期的单片机课已经早早的上完了但是理论纯属理论没有与实践的结合总让我们学的不踏实感觉没有达到学以致用的效果所庆幸的是在课程介绍考试完之后老师给我们安排了这次单片机课程设计给了我们学以致...

单片机课程设计及个人心得感受

本科课程设计(论文)单片机控制流水灯的正常工作及外部中断控制灯的亮灭学院名称:汽车与交通工程学院专业:汽车服务工程班级:13汽服B学号:*************姓名:*******指导教师姓名:***二?**…

单片机课程设计小结

单片机课程设计小结单片机课程设计小结一做了两周的课程设计有很多的gt心得体会有关于单片机方面的更多的是关于人与人之间关系方面的我们组一共有三个人但其他两个人是真的神龙见首不见尾除了在最后答辩的时候他们一起坐在了...

20xx单片机课程设计心得体会

20xx单片机课程设计心得体会单片机课程设计心得体会课程设计是大学课堂中常见的课堂模式该模式更好的培养学生的综合能力课程模式主要由选题到定稿从理论到实践组成以下由第一公文网整理关于单片机课程设计的心得单片机课程...

单片机课程设计总结

单片机基础知识单片机的外部结构:1、DIP40双列直插;2、P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平)3、电源VCC(PIN40)和地线GND(PIN20);4、高电平…

单片机课程设计报告

JINGCHUUNIVERSITYOFTECHNOLOGY电子信息工程学院单片机原理与应用技术课程设计报告电子秒表系统专业班级11电气三班姓名学号指导教师邓鹏提交日期20xx年6月目录一前言311课程设计的目的...

单片机课程项目设计总结

组员:赵宇,江秋怡,黄迪一、在整个过程中出现的问题及解决方案在整个课程项目的设计过程中,我们遇到了许多困难和问题,但是凭着良好的心态和不放弃的精神,我们最终顺利完成了作品的设计和制作。1、编程基础不扎实。由于大…

单片机课程设计报告

单片机原理与接口技术课程设计报告设计题目基于80C51单片机系统实验板的制作与程序设计专业电子与信息工程技术班级姓名指导教师20xx年4月目录第1节引言3第2节系统主要硬件电路设计5第3节系统软件设计10第4节...

单片机课程设计报告

本科课程设计课程名称实验项目实验地点专业班级学生姓名指导教师单片机原理与应用技术数字电子钟电机馆三层跨越机房学号20xx年月日太原理工大学信息工程学院课程设计任务书的顺序进行装订上交大张图纸不必装订指导教师签名...

单片机课程设计报告模板

韶关学院课程设计说明书论文设计题目基于单片机控制的智能交通灯设计课程名称微机原理与应用实训学生姓名学号院系物理与机电工程学院汽车系专业班级12机械制造及其自动化5班指导教师姓名及职称谢杰讲师陈锦儒助理实验师起止...

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

课题:基于51单片机的数字温度计设计专业:电气工程及其自动化班级:4学号:***设计日期:20XX/6/3成绩:重庆大学城市科技学院电气学院基于51单片机数字温度计设计报告一、设计目的作用本设计是一款简单实用的…

60秒倒计时器-单片机课程设计报告

倒计时器一设计要求由单片机接收小键盘阵列设定倒计时时间倒计时的范围最大为60分钟由LED显示模块显示剩余时间显示格式为XX分XX秒X精确到01s的整数倍倒计时到由蜂鸣器发出报警绘制系统硬件接线图并进行系统仿真和...

单片机课程设计小结(42篇)