2020-03-03 21:03:11 来源:范文大全收藏下载本文
单片机程序设计
班级:08 机电一班姓名:王猛学号:04040801012 指导教师:刘兆卫
(一)、单片机简介
单片机也被称为微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端[1]的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
(二)、简单程序设计
一、简易秒表的制作
1、系统总体功能
用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。有一个按键来启动秒表的开始和结束。增加一个清零按钮,计时结束后可以清零。
2、实验目的
(1)、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
(2)、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
(3)、通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。
(4)、通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。
3、系统设计方案
本实验利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位!
其中有两个数码管用来显示数据,一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。计秒数码管采用两位的数码管,当计数超过范围是所有数码管全部清零重新计数。
4、实验程序清单
#include
sbit sta_end=P3^4;
sbit reset=P3^7;
unsigned char code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay()
{
unsigned char i,j;
for(i=90;i>0;i--)
for(j=200;j>0;j--);
}
}
voidsetTime()
{
second10++;
if(second10==10)
{
second10=0;second1++; if(second1==10){} second1=0; second2++;if(second2==6)second2=0;
}
}
{
second1++; if(second1==10){} second1=0; second2++;if(second2==6)second2=0;
}
}
}second2=0;
}
}
P2=table0[second10];
}
Timer0 () interrupt 1 using 1{
TH0 = (6553550000)%256;if(flag)
setTime();
dispact();
}
void main(void){
TMOD = 0x01;
TH0 = (6553550000)%256;flag = 0;
EA = 1;TR0 = 1;ET0 = 1;do
{ if(!sta_end)
{if(flag == 0)flag = 1;else flag = 0;}
if(!reset)
{flag = 0;second10 = 0;second1 = 0;second2 = 0; }
}while(1);
}
二、电脑钟的程序设计与制作
人人范文网 m.inrrp.com.cn 手机版