单片机数字钟设计毕业设计论文

单片机数字钟设计毕业设计论文,第1张

单片机是典型的嵌入式微控制器(Microcontroller Unit),由运算器,控制器,存储器,输入输出设备等构成,相当于一个微型的计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;已经从上世纪80年代的4位、8位单片机,发展到现在的32位甚至64位的高速单片机。[1]

中文名

单片机

外文名

Microcontroller Unit

性质

嵌入式微控制器

优点

体积小、质量轻、价格便宜

组成

运算器、控制器、存储器、输入输出设备

种类

3种

类别

电路芯片

相关概述

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit), 常用英文字母的缩写MCU表示单片机。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。

单片机

由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

INTEL的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到现在基于8051的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。

现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。 汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作。

应用分类

单片机作为计算机发展的一个重要分支领域,根据发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。

通用/专用型

这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

总线型/非总线型

这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

工控型/家用型

这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

相关历史

单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。

起初模型

单片机

SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。

MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。

Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。

SoC即嵌入式系统(System on Chip)寻求应用系统在芯片上的最大化解决使得专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有越来越大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。

单片机发展史

1971年intel公司研制出世界上第一个4位的微处理器;Intel公司的霍夫研制成功世界上第一块4位微处理器芯片Intel 4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。因发明微处理器,霍夫被英国《经济学家》杂志列为“二战以来最有影响力的7位科学家”之一 。

  1971年11月,Intel推出MCS-4微型计算机系统(包括4001 ROM芯片、4002 RAM芯片、4003移位寄存器芯片和4004微处理器 )其中4004包含2300个晶体管,尺寸规格为3mm×4mm,计算性能远远超过当年的ENIAC,最初售价为200美元。

  1972年4月,霍夫等人开发出第一个8位微处理器Intel 8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。

  1973年intel公司研制出8位的微处理器8080;1973年8月,霍夫等人研制出8位微处理器Intel 8080,以N沟道MOS电路取代了P沟道,第二代微处理器就此诞生。

主频2MHz的8080芯片运算速度比8008快10倍,可存取64KB存储器,使用了基于6微米技术的6000个晶体管,处理速度为064MIPS(Million Instructions Per Second )。

  1975年4月,MITS发布第一个通用型Altair 8800,售价375美元,带有1KB存储器。这是世界上第一台微型计算机。

1976年intel公司研制出MCS-48系列8位的单片机,这也是单片机的问世。Zilog公司于1976年开发的Z80微处理器,广泛用于微型计算机和工业自动控制设备。当时,Zilog、Motorola和Intel在微处理器领域三足鼎立。

20世纪80年代初,Intel公司在MCS-48系列单片机的基础上,推出了MCS-51系列8位高档单片机。MCS-51系列单片机无论是片内RAM容量,I/O口功能,系统扩展方面都有了很大的提高。

正好我最近一直在搞C51方面的,或许能给些补充,希望有帮助。

#include<reg52h>

sbit ksec=P3^0; //定义端口,秒的调整按键对应p30

sbit kmin=P3^1; //分的调整按键对应p31

sbit khour=P3^2; //时的调整按键对应p32

unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;

unsigned int num=0,sec=0,min=0,hour=0;

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

//定义数码管显示的0-9的代码

void delay(unsigned int z)

{ //延时程序

unsigned int x,y;

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

for(y=110;y>0;y--);//如果是12MHz晶振,就是110us对应z=1

}

void keyscan();

void display();

void main()

{TMOD=0x01;//T0定时器,模式1定时,13位定时

TH0=(65536-50000)/256; //定时1S的数据设置,定时50000个机器周期后中断一次

TL0=(65536-50000)%256;

EA=1;ET0=1;TR0=1;//开启总中断,允许T0中断,开启T0中断

while(1)

{display();//显示

keyscan();//读取按键

}

}

void time0() interrupt 1

{num++;//T0中断服务程序,定时中断一次后num加一

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;//重装计数值,因为模式1是非自动重装的

}

void display()

{if(num==20)

{num=0; //定时20次后sec加一,那应该是6MHz的晶振,机器周期为2us,500002us20=1s

sec++;

if(sec==60)

{sec=0;

min++;//到60s,min加一,sec清零

if(min==60)

{min=0;

hour++;//到60分,hour加一,分清零

if(hour==24)

{hour=0;

min=0;//到24小时则所有时间清零,新的一天从零时开始计时

sec=0;

}

}

}

}

secge=sec%10;//秒的个位,秒除以10的余数

secshi=sec/10;//十位,秒整除10的商

minge=min%10;

minshi=min/10;

hourge=hour%10;

hourshi=hour/10;

P2=0xfe;//1111 1110,0选通一位数码管,

P0=table[secge];//送秒的各位显示

delay(5);//延时一会儿

P2=0xfd;//选通下一位数码管,1111 1101

P0=table[secshi];//送秒的十位显示

delay(5);

P2=0xfb;//1111 1011,选通再下一位

P0=0x40;//显示分与秒之间的那个点

delay(5);

P2=0xf7;//1111 0111,再下一位

P0=table[minge];//分的个位

delay(5);

P2=0xef;//1110 1111

P0=table[minshi];//分的十位

delay(5);

P2=0xdf;//1101 1111

P0=0x40;//分与时间的点

delay(5);

P2=0xbf;//1011 1111

P0=table[hourge];//小时的个位

delay(5);

P2=0x7f;//0111 1111

P0=table[hourshi];//小时的十位

delay(5);

}

void keyscan()

{if(ksec==0)

{delay(10);//延时防抖动

if(ksec==0)//这里应该按键上接地的,有按键按下就是0

{sec++;//有秒对应的按键按下,则秒加一

if(sec>=60)//秒数到60则清零

sec=0;

}

while(ksec==0)//等待按键释放,

display();}//不做别的 *** 作,就一直显示,等待按键释放,防止一次按键多次 *** 作

if(kmin==0)

{delay(10);//分对应的按键

if(kmin==0)

{min++;

if(min>=60)

min=0;

}

while(kmin==0)

display();

}

if(khour==0)

{delay(10);//小时对应的按键

if(khour==0)

{hour++;

if(hour>=60)

hour=0;

}

while(khour==0)

display();

}

}

这是你们毕业设计的课题吗?我现在大三了,也快面临毕业设计了,比较担心的,不知道怎么做,你们具体怎么 *** 作?就是自己做也该设计吗?

0xdf 是单片机C语言编程中的16进制, d 代表的是高四位, f 代表的是低四位,总共控制八个字节位,可以控制任意一个p口的输出。 从你的问题来看,这个应该是共阴时钟数码管选择位选的。 希望能帮到你!

以上就是关于单片机数字钟设计毕业设计论文全部的内容,包括:单片机数字钟设计毕业设计论文、急求一个89c51设计的电子时钟,有原理图和C程序、单片机解释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9651802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存