文档库 最新最全的文档下载
当前位置:文档库 › 单片机实训报告

单片机实训报告

单片机实训报告
单片机实训报告

实验实训(设计)报告

项目名称:单片机实训

专业:电气自动化

班级:

姓名:

学号:

校内指导老师:

企业指导老师:

地点:

时间:

二〇年12 月31 日

1

附件3-1:

绵阳职业技术学院实验实训(设计)

进度检查及成绩评定表

2

绵阳职业技术学院信息工程系单片机实训项目

任务书

实训标题:简易数字时钟设设计

一、设计一款基于AT89S51单片机,通过6位数码管实现时钟的显示功能。

二、基本要求

用一个6位的数码管实现时钟的时分秒显示。

通过对AT89S51单片机的编程,实现对时钟的整点报时,按键时钟修正及调时。

三、发挥部分

(1)12小时/24小时两种形式可选择,以适应不同的需要。

(2)具有走时误差修正功能。

目录

第一章引言

1.1 数字时钟的发展........................................................

1.2 数字时钟设计目的及背景................................................

1.3 数字时钟的发展意义....................................................

1.4数字时钟设计原理......................................................

1.5数字时钟设计实现功能.................................................. 第二章总体方案论证与设计................................................

2.1 6位数码管显示模块...................................................

2.2键盘扫描模块..........................................................

2.3 总体硬件组成框图..................................................... 第三章系统硬件设计.......................................................

3.1 AT89C51单片机引脚及其功能序.........................................

3.2 数码管显示设计.......................................................

3

3.3键盘扫描的设计 .......................................................

第四章系统软件设计.......................................................

4.1键盘扫描 ..............................................................

4.2整点报时程序 ..........................................................

4.3 主程序...............................................................

4.4 中断程序.............................................................

第五章软件和硬件联合调试及结果测试.......................................

5.1 软件测试............................................................

5.2 硬件测试.............................................................

5.3 软件硬件联合测试....................................................

5.4 测试结果分析.........................................................

第六章心得体会...........................................................

第一章引言

1.1数字时钟的发展

数字时钟的发展时间飞快流逝,当它从你指尖悄悄滑过的时候你可曾感觉到过它的存在?当人们想要抓住时间的时候,便开始探索、寻找并且创造可以表示时间的仪器。从古代发明的日晷到机械钟表的出现,再到数字时钟的发展,都标志着人们不断迈入新的历史发展阶段。由于科技的蓬勃发展,电子技术不断步入新的发展高度,数字时钟也逐步更新,大大提高了计时的准确性,而且还具备了一些其他的功能。随着数字化水平以及人民生活水平的提高,数字时钟所具有基本功能已经远远达不到人们的要求,这就推动着数字时钟逐步向多样化、智能化发展。

1.2数字时钟设计目的及背景

在我们日常生活的各个方面,都需要准确时间的指引。从人们手上戴的电子表到各种公共场合

4

的大型数字显示时钟,再到一些精确的天文测量都是数字时钟的体现。随着电子技术的发展,数字时钟逐步采用更加先进的技术,因而具有了更高的精度,性能也得到很大的提升,比以往更加稳定。众所周知,集成电路具有功能强大、体积小、简单便携、消耗功率少等优点,因此数字时钟也被广泛应用于许多电子设备和一些精密仪器中。上个世纪末,电子技术的发展突飞猛进,在电子技术发展的推动下,各类先进的现代电子产品也登上了时代的舞台,社会生产力取得极大的发展,与此同时社会信息化程度也得到显著提高。数字时钟作为人们日常生活中的计时工具,被广泛应用于各种场合,给人们的工作、学习和生活等方面都带来了很多的方便。

1.3数字时钟的发展的意义、

数字钟是采用数字电路对.时.分,秒.数字品示的计时装置.广泛用于个人家庭,车站,码头办公聿等公共场所.成为人们几常乍活巾不可少的必需品,由于数字集成电路的发展和石英品体振荡器的广泛庵用,使得数字钟的精度,远远超过老式钟表,钟表的放化给人们生产生活带来极大的厅便,而人人地扩展钟表原先的搬功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播,自动起闭路灯、定时开关烘箱、通断动力设备、甚争各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着作常现实的意义。

1.4数字时钟设计原理

一个基本的数字时钟电路主要是由计数电路、校时和报时电路、秒信号发生电路、译码及显示电路构成。译码器及显示器和“时”、“分”、“秒”计数器组合起来共同构成了整个数字时钟电路的计时系统。秒信号发生器发出标准的秒脉冲信号,这些信号将被送入秒计数器,秒计数器的计数方式采用的是六十进制计数,当输入的秒脉冲信号累计达到六十次时,秒计数器的进位位就会产生一个有效的信号,传给分计数器,此时分计数器便开始工作,秒计数器则进行清零,然后从零开始重新计数,每累积六十秒秒计数器就会输出一个有效的信号,使分计数器工作一次即我们所看到的一分钟。同样,分计数器也采用和秒计数器相同的计数方式,当分计数器工作六十次即经过六十分钟后,会向外输出一个有效的控制信号,传给时计数器。时计数器的计数方式与秒、分计数器有所不同,它所采用的是二十四进制,用来对一天中的二十四小时进行递增计数,时脉冲信号每累计到二十四次时将产生一个信号对它进行反馈清零,这就是“时”、“分”、“秒”计数器的运行机制。

1.5数字时钟设计实现功能

本系统的计时方案是利用单片机内部的定时/计数器进行中断定时,配合软件延时实现对时、分、秒的计时。整个系统的控制方案是:上电后系统自动进入时间显示,从 00: 00: 00 开

5

始计时;通过按下时间设定/启动计时键,系统停止计时,进入到时间设定状态,系统保持原有的显示,等待键入当前时间,根据需要按相应的数字键可以顺序设置时、分、秒,并在相应的 LED 上显示设计值,设置完毕后,系统将从设定后的时间开始计时显示;按下闹钟设置/启闹/停闹键,系统继续计时, LED 显示 00: 00: 00,进入闹钟设置状态,等待键入启闹时间。设置完毕后,系统启动定时启闹功能,并恢复时间显示,定时时间一到,蜂鸣器就鸣叫,直到重新按下闹钟设置/启闹/停闹键停闹,并取消闹钟设置 .

第二章总体方案论证与设计

2.1 本系统采用单片机AT89S51为数字时钟显示的控制核心,辅以时钟电路、复位电路、来进行时钟的显示以及整点报时功能,该系统主要包括数码管显示模块、键盘扫描模块以及主要的定时中断程序。下面设计两种方案进行对比。

方案一

可以利用单片机内部的定时器作为秒的计算,再用不同地址单元记录时、分,在用LCD12864显示时间。优点:方便制作,价格低廉。缺点:这种设计误差较大,因为单片机读程序需要时间,且编写复杂。

方案二

采用数字芯片DS1302和AT89S51单片机构成数字时钟装置,它直接输出数字信号,也可直接与计算机连接。优点:采用AT89S51单片机控制,程序编写的自由度大,硬件实现较为简单。缺点:硬件制作过程有一定难度。

2.2数码管驱动方式

LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

2.2.1静态显示

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知

6

道一个89S51单片机可用的I/O 端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。优点:占用cpu 时间少,显示便于检测控制。缺点:硬件电路复杂,成本高。

2.2.2 数码管驱动方式优缺点

LED 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM 增加位选通控制电路,位选通由各自独立的I/O 线控制,当单片机输出字形码时,单片机对位选通COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM 端,就使各个数码管轮流受控显示,这就是动态驱动。

2.2.3led 数码管显示

优点:动态显示的效果和静态显示是一样的,且够节省大量的I/O 端口,而且功耗更低。 缺点:亮度不如静态显示时的亮度高。

综上方案及其数码管的显示,选择方案二及动态显示数码管。

2.3总体硬件设计框图

总体如上图所示,系统主要由五部分组成,即以AT89S51为核心的控制模块,键盘扫描模块、数码管显示模块、复位电路模块以及电源电路模块。

第三章系统硬件设计

为了让时钟电路有更好的显示效果,需要对构建系统的硬件进行合理的设计,让该系统能更精确的运行。该系统包括led数码管显示模块、键盘扫描模块,以及时钟电路。复位电路。

3.1 led数码管显示模块

3.1.1 led数码管的工作原理图

3.1.2Led数码管显示模块内部结构及编码方法

8

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

上图为显示数字对应的二进制电平信号

LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

3.1.3 led数码管功能分析

本次设计的数字时钟显示共需6个数码管,要求显示的内容随时间变化而实时更新。定义一个显示缓存数组变量disp_buf[6]用于存放显示的数据内容。程序运行时,先对应位选信号从dis_buf[6]中提取显示内容,再从段选数组中查表提取相应显示内容的显示编码送到段选I/O口的p0口。另外需注意的是,时钟显示时,通常应在时、分、秒之间加小数点。

3.2键盘扫描模块设计

9

3.2.1键盘扫描概述

键盘是最为常用的输入设备之一,操作人员可以向单片机系统输入数据、指令、地址等信息,从而实现对系统的灵活控制。本次设计中键盘模块主要用于时钟显示时的消抖以及键盘释放判断,从而实现时钟的报时,整点判断,

3.2.2键盘扫描模块工作原理图

在上述时钟显示电路的基础上设计4个独立按键,分别定义为时间修改、闹铃设定、加1和减1键。键盘输入口为p1.0-p1.3.

3.2.3键盘程序流程图

10

3.3整点及闹铃报时模块设计

本模块设计利用蜂鸣器发声实现时钟的整点和闹铃提示,发声提示期间可以利用键盘模块关闭发生程序。

3.3.1整点及闹铃报时电路原理图

3.3.2开启整点提示程序流程图

开启整点提示程序仅当整点到时由定时器0实现时钟计时中断程序调用。主要完成整点提示发声

11

的初始化程序。

3.3.3开启闹铃提示程序流程图

12

第四章系统的软件设计

软件部分是本项目设计的核心,为了让硬件的主要部分发挥出来,需要更为准确的编写程序,使得本次设计的显示系统能够更加的精确。本次软件编写主要包括初始化程序、1ms延时程序、键盘扫描程序以及整点报时、闹铃报时和主程序、1s中断处理程序、蜂鸣器发声中断程序。

4.1时钟电路整点及闹铃提示发声中断程序流程图

13

4.2整点及闹铃提示发声中断程序原理图

14

4.3本次软件所编写的系统程序:

#include

#define uchar unsigned char

#define uint unsignedint

data uchar timer[6]={0x5,0x5,0x9,0x5,0x2,0x00};

data uchar clock[6]={0x00,0x00,0x1,0x00,0x3,0x00};

datauchardis_buf[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00}; codeuchardisp_buf[12]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,

0x07,0x7F,0x6F,0x00,0x40}; code uchardis_loc[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

sbit DP=P0^7;

sbit beep=P3^7;

datauchar to_50ms=0x00;

data uintspeak_cont,beep_delay,pulse_cont;

bitclock_on=0,disp_clock=0,time_beep=0,clock_beep=0;

***************初始化程序**********************

void int()

{

TMOD=0X11;

TH0=0x3C;L0=0xB0;

ET0=1,TR0=1;EA=1;PT0=1;

}

*************1ms延时程序**************

void delay1ms(uint t)

{

uinti,j:

for(i=0;i

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

}

***************扫描程序*****************

15

voiddisp_scan()

{

uchar k;

for(k=0;k<6;k++);

{

p2=dis_loc[k];

p0=dis_seg[disp_buf[k]];

if(k==2||k==4)DP=1;

delay1ms(1)

}

}

*************整点报时******************

voidspeak_time()

{

TH1=(65536-800)/256;

TL1=(65536-800)%256 ;

TR=1;

ET=1;

time_beeep=1;

pulse_cont=1000;

speak_cont=5;

beep_delay=30;

}

*************闹铃报时***************

voidspeak_clock()

{

uchar q;

if(clock[2]==timer[2]&&clock[3]==timer[3]&&clock[4]==timer[4]&&clock[5]==timer[5]) {

16

TH1=(65536-100)256;

TL1=(65536-100)%256;

TR=1;

ET=1;

disp_clock=1;

{for(q=0;q<6;q++)disp_buf[q]=clock[q];}

time_beep=0;

clock_beep=1;

pulse_cont=500;

beep_delay=10;

speak_cont=200;

}

}

*************主程序******************

main()

{

uchar q;

int();

while(1)

{

disp_scan();

if((p1&0x0F)==0x0D)

{

clock_on=~clock_on;

disp_clock=1;

for(q=2;q<6;q++)disp_buf[q]=clock[q];

disp_buf[1]=11;

if(clock_on)disp_buf[0]=1;

elsedisp_buf[0]=0;

for(q=0;q<200;q++)disp_scan();

17

disp_clock=0;

while(p1&0x0F==0x0D)disp_scan();

}

}

}

*****************1ms中断处理程序*****************

void time_intt0(void) interrupt 1

{

char q;

TH0=0X3C;TL0+=0xB0;

t0_50ms++;

if(t0_50ms==20)

{

t0_50ms=0x00;

timer[0]++;

if(timer[0]>=10)

{

timer[0]=0;timer[1]++;

if(timer[1]>=6)

{

timer[1]=0;timer[2]++;if(clock_on)speak_clock();

if(timer[2]>=10)

{

timer[2]=0;timer[3]++;

if(timer[3]>=6)

timer[3]=0;timer[4]++;speak time();

if(timer[4]>=10)

{

timer[4]=0;timer[5]++

}

18

if(timer[5]==2)

{

if(timer[4]==4)

{

timer[4]=0;timer[5]=0;

}

}

}

}

if(!disp_clock)

{for(q=0;q<6;q++)disp_buf[q]=timer[q];}

}

}

}

*************蜂鸣器发声中断程序*****************

void time_intt1(void) interrupt 3 using 1

{

if(time_beep==1)

{

if(speak_cont!=0)

{

if(pulse_cont!=0)

{

beep=~beep;

if(speak_cont>1)

{TH1=(65536-800)/256;TL1=(65536-800)%256 ;}

else

{TH1=(65536-400)/256;TL1=(65536-400)%256;}

pulse_cont--;

if(pulse_cont==0)beep_delay=30;

19

}

else

{

TH1=0X3C;TL1=0XB0;TR1=1;

beep_delay--;

if(speak_cont==1)pulse_cont=2000;

else pulse_cont=1000;

}

}

}

else {ET1=0;TR1=0;time_beep=0; }

}

else if{clock_on==1&&speak_cont!=0}

{

If(clock_on==1&&speak_cont!=0)

{

If(pulse_cont!=0)

{

beep=~beep;

TH1=(65536-100)/256;

TL1=(65536-100)%256 ;

pulse_cont--;

if(pulse_cont==0)beep_delay=10;

}

else

{

TH1=0X3C;TL1=0xB0;

beep_delay--;

if(beep_delay==0)

{pulse_cont=500;speak_cont--;}

20

单片机实训报告

单片机原理及应用 实训报告 班级: 学号: 姓名: 指导教师: 实训总成绩:

一、节日彩灯设计 题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按键1开始,按键2结束。 原理图 程序代码: #include #define uchar unsigned char uchar tab[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; sbit S1=P1^4; sbit S2=P1^7; unsigned char i,j; delay(unsigned int x) { for(j=0;j

for(i=0;i<10;i++); } void main() { uchar i,b,d; while(1) {if (S1==0) {delay(50); if(S1==0); S1=b; b=0; {for(i=0;i<8;i++) { P2=tab[i]; delay(50); {if (S2==0) {delay(50); if(S2==0); S1=d; d=1; P2=0xff; }} } } } } } 设计思想总结 用C语言程序控制单片机最小系统,使IO口输出高低电平控制彩灯电路的闪烁。节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出、I/O接口电路集成在一块集成电路芯片上的特点。通过其与发光二极

管及驱动电路的连接,从而构成一个完整的硬件电路。然后通过对单片机的ROM 进行编程,实现对彩灯闪烁的控制。 二、定时器实现流水灯 题目:利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯点亮,依次循环点亮。 原理图 程序代码 #include #include int lamp = 0xfe ; int cnt = 0; main() {P2 = 0xfe; TMOD = 0x01; TL0 = (65536 - 50000) % 256; TH0 = (65536 - 50000) / 256; TR0 = 1 ; ET0 = 1;

单片机实训报告范文精选5篇

单片机实训报告范文精选5篇 实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。 单片机课程设计心得体会 在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会: 第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。 第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。 第三:程序不要只是看别人得,一定要自己写过才是自己的。开始

不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。 第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。 第五:在学习初期看别人的代码,学习别人的思路这个很有用。通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。但是切记将学习变成抄袭,不能认为抄袭别人的你就学会了,这样只能使你退步。第六:面对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。有的人看到新项目时就去找别人的然后抄一小段,自己在写几句,放在一起完成任务,虽然省时间但不利你的学习。当你遇到一新项目时你应该先想一下程序的构架,想想如何来完成。然后自己动手去写,当你遇到实在是没办法解决的问题时再去请教别人,看他是怎么处理的,学习他的方法。这样起码你自己想过了,有自己的思路不会受到别人的影响,这样更容易提高自己。 在单片机的学习开始时感觉很吃力,在不断的学习过程中慢慢的对

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

单片机原理及应用实验报告

单片机原理实验报告 专业:计算机科学与技术 学号: :

实验1 计数显示器 【实验目的】 熟悉Proteus仿真软件,掌握单片机原理图的绘图方法 【实验容】 (1)熟悉Proteus仿真软件,了解软件的结构组成与功能 (2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作 (3)学会可执行文件加载及程序仿真运行方法 (4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】 (1)观察Proteus软件的菜单、工具栏、对话框等基本结构 (2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性 表A.1

Switches&Relays BUT BUTTON 【实验原理图】 【实验源程序】 #include sbit P3_7=P3^7; unsigned char x1=0;x2=0 ; unsigned char count=0; unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time) { int k,j;

for(;time<0;time--) for(k=200;k>0;k--) for(j=500;j<0;j--); } void init() { P0=buf[x1]; delay(10); P2=buf[x2]; delay(10); } void main() { init(); while(1) { x1=count/10; x2=count%10; P0=buf[x1]; delay(10);

单片机实训的心得体会

单片机实训报告 一周的实训,让我们从另一个角度去发现单片机。期间我学会了很多宝贵的知识和经验,在这次单片机实训中我们巩固了我们平时所学的内容;加深了对各种调试和仿真软件的使用技能;掌握了单片机应用电路的设计和调试方法。 首先,我们要从所给定的元器件中设计出6个不同的电路,并编写程序实现相关任务要求。我们小组设计出的电路主有: (1)数码管轮流显示百十个位的数。要求:数据来源于拨码开关;个位显示完毕停留的时间稍微长些。 (2)定时计数器实现对外部脉冲计数5次后,流水灯的状态由亮点左流动转化成闪烁5次,然后回到初始状态。 (3)单键改变流水灯状态。按键一旦按下,流水灯状态由暗点右流动转化成闪烁8次,然后回到初始状态。 (4)双键改变流水灯状态。按键K0(连接INT0)按下,流水灯状态由亮点左流动,转化成闪烁5次,然后回到初始状态;按键K1(连接INT1)按下,流水灯状态由亮点左流动,转化成暗点右流动至最右端,然后回到初始状态;并且按键K1级别高于K0。 (5)串口输出数据,实现在2个数码管上显示60秒计数器。 (6)在集成的8位数码管上动态显示出:1——8的效果。

其次,我们要对我们所设计的电路进行电路布局、连线,检查电路是否出现错误或者遗漏。 然后,学会用KEIL软件调试程序,并用该软件菜单的各项调试工具和窗口。再结合硬件和软件,进行整体调试。 最后,当我们根据相关要求从所给定的元器件中设计出6个不同的电路、编写程序、线路布局,调试成功,我们的设计就完成了。 在这实训期间我深刻的认识到了理论知识和实践操作必须是相结合的,也许在实训时会有很多各种软、硬件等故障。 在编程时我们就出现了很大的障碍, 本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手, 最后不得不求出其他小组,原来本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱。 我们在做双键改变流水灯状态的电路时又发现了一个头痛的问题,发光二极管不亮、开关不管用,刚开始的时候,我们检查了好几遍就是没有发现问题,快要失去耐心是发现少两连接了两根线,这是个好现象让我们有了继续往下的勇气,终于在反复的检查研究中,我们发现发光二极管不亮的正负方向反了,开关接错了位置,这才导致连接线路期间的错误不断。结果是可喜的,在我们小组竭尽全力,同学老师的帮忙下,我们的电路很成功。

实验一 单片机数据区传送程序设计

实验一单片机数据区传送程序设计 一、实验目的 1.进一步掌握汇编语言程序设计和调试方法。 2.了解单片机RAM中的数据操作 二、实验说明 要求:编写程序把R2、R3源RAM区首地址内的R6、R7字节数据传送到R4、R5目的地址的RAM区。 三、实验仪器 计算机 伟福软件(lab2000P ) 四、实验内容 在R0、R1中输入源地址(例如:3000H),R2、R3中输入目的地址(例如4000H),R6、R7中输入字节数(例如:1FFFH)。 查看RAM 区3000~30FFH和4000~40FFH内容,也可自己重新赋值。 运行程序,首先单步,然后用执行到指定位置,最后用连续运行方式。 记录下运行结果,检查3000~30FFH中内容是否和4000~40FFH内容完全一致。 五、思考题 1、改变源地址,例如00FFH; 2、改变目的地址,例如2000H; 3、改变传输的个数,小于256个和大于256个的情况。 4、把程序改为对某一数据存储区RAM赋都相同一个数值。 六、源程序及其修改原理 org 0000H Block equ 2000h mov dptr, #Block ; 起始地址 mov r0,#12h mov a,#20h ;修改2000h开始的地址所存放的内容为20h Loop: mov r1,#14h ;增加r1计数,用循环方式实现大于256的数据传输(思 考题3) Loop1: movx @dptr,a inc dptr ; 指向下一个地址 djnz r1,Loop1 djnz r0, Loop ; 双循环实现r0,r1计数相乘 (以上程序实现对某一数据存储区2000h~2168hRAM赋都相同一个数值20h,思考题4) mov r0, #20h ;改变源地址为2000h(思考题1) mov r1, #00h mov r2, #50h;改变目的地址为5000h(思考题2) mov r3, #00h

51单片机实训报告

“51单片机”精简开发板的组装及调试实训报告

为期一周的单片机实习已经结束了。通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。 此次实训主要有以下几个方面: 一、实训目的 1.了解“51”精简开发板的工作原理及其结构。 2.了解复杂电子产品生产制造的全过程。 3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。4.能运用51单片机进行简单的单片机应用系统的硬件设计。 5.掌握单片机应用系统的硬件、软件调试方法 二、实验原理 流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 它的电气性能指标:输入电压:DC4.5~6V,典型值为5V。可用干电池组供电,也可用直流稳压电源供电。 如图所示: 本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 三、硬件组成 1、晶振电路部分 单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。 2、复位端、复位电路 给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各

单片机实验报告

本科生实验报告 实验课程单片机原理及应用 学院名称核技术与自动化工程学院 专业名称电气工程及其自动化 学生姓名 学生学号 指导教师任家富 实验地点6C902 实验成绩 二〇一五年三月二〇一五年六月 单片机最小系统设计及应用 摘要 目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用STC89C52单片机和ADC0804,LED显示,键盘,RS232等设计一个单片机开发板系统。进行了LED显示程序设计,键盘程序设计,RS232通信程序设计等。实现了单片机的各个程序的各个功能。对仿真软件keil的应用提升了一个新的高度。单片机体积小、成本低、使用方便,所以被广

泛地应用于仪器仪表、现场数据的采集和控制。通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 关键词:单片机;智能;最小系统;ADC;RS232;显示;STC89C52 第1章概述 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。 第2章实验内容 2.1单片机集成开发环境应用

单片机实训心得

沧州职业技术学院单片机实训报告 心得体会 为期一周的单片机实训结束了,真是让我受益匪浅啊!学到了很多东西,不管怎么样,先感谢学校给我的这么多机会,真正的学到了东西。 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,我们就学习了单片机这门课程,感觉是有点难。也不知道整个学习过程是怎么过来得,可是时间不等人。不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费我我们学到了很多知识,也让我们对单片机有了更深一步的了解,虽然最后结果是出来了,可这与老师的精心指导是分不开的她引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以老师是功不可没的。 总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。

单片机实训报告_数字时钟

单片机实训报告 ——数字时钟 成员: 金龙:2 王利伟:6 许林鹏: 9 春波:0 袁增莘:1 指导老师:翡 12电气自动化一班 2013.12.23—12.29

目录 一、设计目的 (2) 二、设计要求 (2) 2.1显示要求 (2) 2.2校准要求 (2) 2.3选型要求 (2) 三、硬件设计 (3) 3.1L E D电路图 (3) 3.2电路图分析 (4) 3.3键盘功能 (4) 四、程序设计 (5) 4.1程序流程图 (5) 4.2程序 (6)

课题:数字时钟 一、设计目的: 通过实训周学会制作数码管显示时、分、秒的数字可调时钟,近一步熟练掌握编程语言的应用。 二、设计要求: 2.1显示要求: 时钟要求用8位数码管显示,以数字形式显示时、分、秒的时间。且从右端始八位数码管依次显示①秒个位②秒十位③横杠“—”④分个位⑤分十位⑥横杠“—”⑦时个位⑧时十位 2.2校准要求: 时钟要求计时准确,同时要求有校准时间的电路,且以按键校准。 2.3选型要求: 设计单片机选型以STC89C51RC-RD+系列为基础 三、硬件设计: 3.1、LED电路图

3.2电路图分析 本次课题是利用51单片机进行设计。 Led灯是由低电平点亮的,led位的选择是由单片机中的p2口控制的。 *键盘是采用独立式按键: K1是p3.0;K2是p3.1; K3是p3.2:K4是p3.3; 3.3键盘功能 K1, 是对时钟调整或调整后进行确定的选择键。 K2,是对选中位置后对其进行加。 K3,是对选中位置后对其进行减。 K4,是进行时分秒的选择位的操作。 四、程序设计 4.1程序流程图

单片机C语言程序方案实训例——+Proteus仿真(前题)

单片机C语言程序设计实训100例 ——基于8051+Proteus仿真01 闪烁的LED /*名称:闪烁的LED 说明:LED按设定的时间间隔闪烁*/ #include #define uchar unsigned char #define uint unsigned int sbit LED=P10。 //延时 void DelayMS(uint x> { uchar i。 while(x--> { for(i=0。i<120。i++>。 } } //主程序 void main(> { while(1> { LED=~LED。 DelayMS(150>。 } } 02从左到右的流水灯 /*名称:从左到右的流水灯 说明:接在P0口的8个LED 从左到右循环依次点亮,产生走 马灯效果*/ #include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x> { uchar i。 while(x--> {

for(i=0。i<120。i++>。 } } //主程序 void main(> { P0=0xfe。 while(1> { P0=_crol_(P0,1>。 //P0的值向左循环移动 DelayMS(150>。 } } 038只LED左右来回点亮 /*名称:8只LED左右来回点亮 说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/ #include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x> { uchar i。 while(x--> { for(i=0。i<120。i++>。 } } //主程序 void main(> { uchar i。 P2=0x01。 while(1> { for(i=0。i<7。i++> { P2=_crol_(P2,1>。 //P2的值向左循环移动 DelayMS(150>。 } for(i=0。i<7。i++> { P2=_cror_(P2,1>。 //P2的值向右循环移动

单片机实验报告

实 验 报 告 实验课程:单片机原理及应用 班级: 12自动化2班 学号: 姓名: 教师:张玲 成绩: 实验日期:年月日 实验名称:实验1——计数显示器 一、实验目的: 学习Proteus 软件的使用,掌握单片机原理图的绘图方法。 二、实验内容: 1、绘制“计数显示器”电路原理图; 2、利用提供的hex文件验证此电路的运行效果。 三、实验要求: 提交的实验报告中应包括:1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图; 3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验

1体会等。 参考电路原理图如下: 元件类别电路符号元件名称 Microproces sor ICs “U1”80C51 Miscellaneo us “X1”/12MHz CRYSTAL Capacitors“C1”~“C2” /1nF CAP Capacitors“C3”/22μF CAP-ELEC Resistors Packs “RP1”/7-100ΩRESPACK-7 Resistors“R1”/100ΩRES Optoelectro nics “LED1”~ “LED2” 7SEG-COM-CAT-G RN Switches & Relays “BUT”BUTTON 1、编程思路及C51源程序:

2、电路原理图: 3、仿真运行效果展示:

4、实验小结: 熟悉Proteus软件,了解软件的结构组成与功能;学习ISIS模块的使用方法, 学会设置图纸、选元件、线画总线、修改属性等基本操作;学会可执行文件 加载及程序仿法;理解Proteus在单片机开发中的作用,完成单片机电路原 理图的绘制。

单片机实验心得体会3篇

单片机实验心得体会一:单片机实验心得体会 时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。 在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。 这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。将所学知识运用到实践中,在实践中发现问题,强化理论知识。 现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。 第一次是借点亮led灯来熟悉keil软件的使用和试验箱上器材。第一次实验体现了一个人对新事物的接受能力和敏感度。虽然之前做过许多种实验。但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。所以第一次试验相对失败。鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。 在做实验中,第二个问题应该是准备不充分吧。一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。于是我便在上机之前把程序编好,拷到u盘,这样上机时只需调试,解决出现的问题。这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。 三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。但是编程是一件很严肃的事情,容不得半点错误。于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。这也能激发了学习的兴趣。 还有一次实验是调出电脑里的程序,让它在试验箱上实现其功,让我们去体会别人编程的技巧和程序逻辑美感。看了之后,不得不说我目前的水平简直太小儿科了。还有连线也是个问题,

大学生单片机实习总结

大学生单片机实习总结 ,我们将为大家提供关于20XX年实习报告的信息,敬请期待! :xx :实习报告范文| 实习报告模板| 会计实习报告 | 大学生实习报告 | 顶岗实习报告 | 金工实习报告 | 毕业实习报告 | 土木工程实习报告 | 生产实习报告 |实习周记 | 3000字范文 大学生单片机实习总结 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。本学期我们就学习了单片机这门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机实习课题也在一周内完成了。俗话说“好的开始是成功的一半”。说这次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。其次,老师对实验的讲解要一丝

不苟的去听去想,因为只有都明白了,做起产品就会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 虽然这次的实习算起来在实验室的时间只有几天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。 当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

单片机C语言程序设计实训100例--基于8051+PROTEUS仿真

《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例 第01 篇基础程序设计 01 闪烁的LED /* 名称:闪烁的LED 说明:LED按设定的时间间隔闪烁 */ #include<> #define uchar unsigned char #define uint unsigned int sbit LED=P1^0; .\r\n"); Puts_to_SerialPort("-------------------------------\r\n"); DelayMS(50); while(1) { Putc_to_SerialPort(c+'A'); DelayMS(100); Putc_to_SerialPort(' '); DelayMS(100); if(c==25) With PCB layout now offering automation of both component ", "can often be the most time consuming element of the exercise.", "And if you use circuit simulation to develop your ideas, ", "you are going to spend even more time working on the schematic." }; //显示缓冲(2行) uchar Disp_Buffer[32]; //垂直滚动显示 void V_Scroll_Display() { uchar i,j,k=0; uchar *p=Msg[0]; uchar *q=Msg[Line_Count]+strlen(Msg[Line_Count]); //以下仅使用显示缓冲的前16字节空间 while(p

单片机实训报告心得

广东轻工职业技术学院 实训报告 实训项目单片机实训 系别:电子通信工程系 专业:应用电子技术 班级:嵌入式091班 姓名:11222 学号:2009080202316 指导老师:丁向荣、赵慧 实训地点:第三实训楼C309 实训时间:2011年1月10日至1月14日

前言 单片机应用技术是现代电子设计的核心技术,学习单片机只是就是要将单片机应用到电子产品中,以单片机为控制核心实现电子系统所需实现的功能。单片机的应用能力很多程度上决定了电子类专业学生电子设计与电子应用的水平与能力,尤其是高职学生更是如此。 本项目要求设计一个简单的电子时钟,用六位LED数码管实现电子时钟的功能,显示方式为时、分、秒,采用24h(小时)计时方式,使用按键开关可实现时分调整。 通过电子闹钟项目的课题设计,让同学

们体验项目设计的要点,了解项目设计的流程,加深对单片机应用知识的学习,体会团队协作的力量所在。为日后的嵌入式专业学习巩固基础。 目录 1.概述………………………………………………………… 1.1 系统的作用……………………………………………………………… 1.2 系统的功能要求……………………………………………………………2.系统硬件设计……………………………………………….. 2.1系统的电路原理…………………………………………………………… 2.2 电路原理图……………………………………………………………… 2.3 各控制按钮控制功能说明………………………………………………. 3.系统软件设计………………………………………………. 4.系统调试……………………………………………………. 5. 总结…………………………………………………………

51单片机实训报告完整版

51 单片机实训报告完整版 一、设计目标 1. 完成温度显示系统的设计,即以单片机位核心微处理器,完成接收处理温度信号和 控制八段数码管显示两部分功能电路的设计; 2. 使用Protel绘制电路原理图和PCB版图 3. 通过使用凌阳单片机开发系统掌握单片机系统的基本开发方法,系统配置方法,IO 口的读写方式以及数据处理方法。 4. 掌握基于C语言编程的单片机控制技术,完成实现温度采集、显示系统功能的控制 程序设计(信号的接收、信息的处理及八段数码管显示控制程序); 5. 软硬件联调,完成系统的最终功能。 二、设计任务 1. 完成基于单片机的温度检测显示系统设计,利用自己设计的温度传感电路输出模拟 信号,选用相应的A/D 转换芯片将模拟信号转换成数字信号送入单片机,单片机对 接收的信号进行处理; 单片机输出经译码电路连接至八段数码管显示温度值。 2. 具体要求完成内容: 1)传感器模块学习及信号输入设计 2) LED数码管显示部分设计 3)绘制电路原理图和PCB版图

3)数据处理转换(使用C语言进行) 4)软硬件联调实现完整系统设计要求; 5)撰写实训报告。 第一部分:原理图及PBC版图制作 制作原理图,我们选用的软件是proteldxp2004 ,我们选用这个软件是因为Protel DXP 在前版本的基础上增加了许多新的功能。新的可定制设计环境功能包括双显示器支持,可固定、浮动以及弹出面板,强大的过滤和对象定位功能及增强的用户界面等。Protel DXP 是第一个将所有设计工具集于一身的板级设计系统,电子设计者从最初的项目模块规划到最终形成生产数据都可以按照自己的设计方式实现。Protel DXP 运行在优化的设计浏览器平台上,并且具备当今所有先进的设计特点,能够处理各种复杂的PCB设计过程。通过设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,Protel DXP 提供了全面的设计解决方案。与较早的版本——Protel99 相比,Protel DXP 2004 不仅在外观上显得更加豪华、人性化,而且极大地强化了电路设计的同步化,同时整合了 VHDL和FPGA设计系统,其功能大大加强 了。 首先是设计出系统整体框图,系统采用凌阳单片机61 板及相关模组构成,系统整体分三部分设计,分别为信号采集部分、单片机系统部分和显示部分。(如图所示) 温度传A/D(数模)八段数码单片机系统译码器感器电转换电路管显示路系统整体框图信号采集部分: 本设计采用图1的惠斯登电桥电路,该电路采用4块电阻搭建组成,其中3块为普通电阻,另外一块为热敏电阻。这四块电阻在正常室温(25?)的情况下,电阻

单片机实验程序设计

实验一LED流水灯 一、实验目的 制作一个流水灯,编写程序来控制发光二极管由上至下的反复循环流水点亮,每次点亮一个发光二极管。 二、程序设计 #include #include sbit LED = P1^0; void delay() { unsigned int i,j; for(i=120;i>0;i++) for(j=120;j>0;j++); } void main() { unsigned char i; LED = 0; while(1) { for(i=0;i<8;i++) { LED=0xfe; delay( ); LED = _crol_(LED,1); P1 = LED; } LED=0X01; for(i=0;i<8;i++) { delay( ); LED = _cror_(LED,1); P1 = LED; } } }

实验二按键扫描 一、实验目的 使用单片机片内的I/O口来进行开关状态的检测。当开关打开时,I/O引脚为高电平,当开关闭合时,I/O引脚为低电平。编写一个程序,控制流水灯,开关闭合,对应的发光二极管点亮。 二、程序设计 #include #include #define GPIO_LED P1 sbit K1=P3^5; sbit K2=P3^4; void Delay10ms( ); void main(void) { unsigned int i,j,l; j=0xfe; while(1) { GPIO_LED=j; if (K1==0) { Delay10ms( ); if (K1==0) { j=_cror_(j,1); while((i<50)&&(K1==0)) { Delay10ms( ); i++; } i=0; } } if (K2==0) { Delay10ms( ); if (K2==0) { l=0xff; GPIO_LED=~l;

单片机实训报告范本精选5篇

Record the situation and lessons learned, find out the existing problems and form future countermeasures. 姓名:___________________ 单位:___________________ 时间:___________________ 单片机实训报告精选5篇

编号:FS-DY-20685 单片机实训报告精选5篇 单片机课程设计心得体会 在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会: 第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。 第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到

中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。 第三:程序不要只是看别人得,一定要自己写过才是自己的。开始不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。 第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。 第五:在学习初期看别人的代码,学习别人的思路这个很有用。通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。但是切记将

单片机应用系统设计工程实践报告

2016-2017学年第1学期 单片机应用系统设计/工程实践 (课号:103G06B/D/E) 实验报告 项目名称:基于AT89C51单片机温度报警系统 学号 姓名 班级 学院信息科学与工程学院 完成时间

目录 一、项目功能及要求 (3) 1.1、课程设计的性质和目的 (3) 1.3、项目设计要求 (3) 二、系统方案设计及原理 (3) 2.1、设计主要内容 (3) 2.2 、AT89C51单片机简介 (3) 2.3 、DS18B20简介 (4) 2.4 、数码管显示 (5) 2.5、报警电路 (6) 三、系统结构及硬件实现 (7) 3.1、总电路图 (7) 3.2、单片机控制流程图 (8) 四、软件设计过程 (8) 五、实验结果及分析 (8) 5.1 、Proteus 仿真 (8) 5.2 、C程序调试 (9) 六、收获及自我评价 (14) 七、参考文献 (15)

一、项目功能及要求 1.1、课程设计的性质和目的 本温度报警器以A T89C51单片机为控制核心,由一数字温度传感器DS18B20测量被控温度,结合7段LED以及驱动LED的74LS245组合而成。当被测量值超出预设范围则发出警报,且精度高。 利用现代虚拟仿真技术可对设计进行仿真实验,与单片机仿真联系紧密的为proteus仿真,利用keil软件设计单片机控制系统,然后与proteus进行联合调试,可对设计的正确性进行检验。 1.2、课程设计的要求 1、遵循硬件设计模块化。 2、要求程序设计结构化。 3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。 4、要求程序结构合理,语句使用得当。 5、适当追求编程技巧和程序运行效率。 1.3、项目设计要求 1、基于AT89C51单片机温度报警系统; 2、设计3个按键分别为:设置按钮、温度加、温度减; 3、DS18B20温度传感器采集温度,并在数码管上显示按键的区别; 二、系统方案设计及原理 2.1、设计主要内容 本设计以AT89C51单片机为核心,从而建立一个控制系统,实现通过3个按键控制温度,以达到设置温度上下限的功能,并在数码管上显示三个数字当前的温度上下限设置值和DS18B20温度采集值的显示(精确到小数点后一位),当温度高于上限或者低于下限蜂鸣器报警。 2.2 、AT89C51单片机简介 AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用A TMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案.A T89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器,32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。 此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。AT89C51单片机的基本结构和外部引脚如下图所示。

相关文档