第一篇:单片机数字钟实训报告
单片机数字钟实训报告
学院:电子工程学院
专业:机电一体化
班级: 姓名: 手机号:
一、任务及要求
用51单片机设计时、分、秒计时器,具体要求如下。
1、具有时、分、秒计时功能和8位数码管显示功能,显示格式为:“时-分-秒”;
2、用Proteus设计仿真电路进行结果仿真; 3、4人组成设计小组完成,小组成员有明确分工,1人负责总体方案设计及报告撰写,2人负责功能模块函数设计,1人负责仿真电路设计及调试。
4、完成程序设计、仿真电路设计、结果仿真。
5、本实验要求设计一个数字计时器,可以完成0分00秒~23小时59分59秒的计时功能,并在控制电路的作用下有开机清零。
6、指标要求: ①.显示时、分、秒。② 采用24小时制,小时计数器按“23翻00”规律计数。.③ 为了保证计时准确、稳定,由单片机的定时器来计时。
7、设计要求:
①
画出电路原理图(或仿真电路图);
②
元器件及参数选择; ③
电路仿真与调试; ④
连接实物图,并调试; ⑤
写出报告,并做总结;
二、设计方案
1、总体设计方案(李文负责完成)
(说明总体设计方案构思、程序模块构成、仿真电路构成等内容,不少于300字))。
构思:实现时钟的设计,如果采用软件延时的方法来实现时钟,太耗cpu了,因此采用51单片机的内部硬件资源来实现时钟,因此采用定时器来定时,由于单片机的最大定时的时间为65.536ms;但是我们要定时1s,为了方便,我们则选用定时器0工作方式1且定时50ms,然后在中断20次则有了1s,有了1s就好办了,分,时就好办了,只要在1秒的基础上加就可以实现时钟了,有了时,分,秒就要显示了,由于时,分,秒都是两位,因此要把个位与十位分离,然后在分别在数码管上显示,这样就实现时钟的设计。
程序模块:
1、主函数:(调用初始化函数,调用显示函数)
2、显示函数:(延时函数,数码管显示代码)
3、中断服务函数:(时,分,秒的实现)
仿真电路构成:数字钟的结构组成:
电1)晶体振荡器电路
2)复位电路
3)数码管使用非门驱动及数码管
具体:52单片机的最小系统(52单片机,晶振电路(12MHz晶振,和30pF的无极性容),复位电路(10k电阻,10uf极性电容,开关)),外加八位一体的数码管,数码管驱动电路;
2、显示模块程序流程图
3、中断服务函数模块程序流程图
4、主函数模块的设计
5、仿真电路图
三、程序代码:
/* 功能:用共阴的八位一体的数码管显示时间“小时-分钟-秒”
位码接P2口;段码接P0口;使用定时器0定时1s,*/ #include
#define uchar unsigned char //宏定义 #define uint unsigned int // uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴七段编码
uchar sec,min,hour,count;// 定义变量 void delay(uchar x)//延时1ms的函数
{
uchar z ,y;
for(y=x;y>0;y--)
for(z=124;z>0;z--);} void init(void)//初始化函数 {
TMOD=0X01;//定时器0工作在方式1
TH0=0X3C;//装初值
TL0=0XB0;
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
sec=0;//秒设初值
min=0;//分设初值
hour=0;//时设初值
count=0;//计数设初值
P0=0xff;//
P2=0xff;//
} void display()//显示函数
{
uchar sec1,sec2,min1,min2,hour1,hour2;//定义变量
sec1= sec/10;
//秒的十位
sec2= sec%10;
//秒的个位
min1= min/10;//分的十位
min2= min%10;//分的个位
hour1= hour/10;//时的十位
hour2= hour%10;//时的个位
P2= 0x80;
//秒个位的位码
P0= table[sec2];//秒个位的段码
delay(5);
P2= 0x40;
//秒十位的位码
P0= table[sec1];//秒十位的段码
delay(5);
P2= 0x20;
//“-”的位码
P0= 0x40;
//“-”的段码
delay(5);
P2= 0x10;
//分十位的位码
P0= table[min1];//分十位的段码
delay(5);
P2= 0x08;
//分个位的位码
P0= table[min2];//分个位的段码
delay(5);
P2= 0x04;
//“-”的位码
P0= 0x40;
//“-”的段码
delay(5);
P2= 0x02;
//时个位的位码
P0= table[hour2];//时个位的段码
delay(5);
P2= 0x01;
//时的十位的段码
P0= table[hour1];//时的十位的段码
delay(5);
} void main(){
init();
//初始化函数
while(1)
{
display();//时间显示函数
} } void time()interrupt 1 //中断服务函数 {
TH0=0X3C;
//重装初值
TL0=0XB0;
if(count==20)//定时一秒
{
count=0;
//计数清零
if(sec==59)
//秒计时到60秒
{
sec=0;
//秒清零
if(min==59)//分计时到60秒
{
min=0;//分清零
if(hour==23)//小时计数到24
{
hour=0;//小时清零
}
else hour++;//小时加一
}
else min++;
//分加一
}
else sec++;//秒加一
}
count++;
//计数加一 }
五、设计总结
单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。在做的过程中能够发现很多的问题,只有自己亲身去做了就会遇到你在书上所没有的,并且你要一个又一个的解决,这个有点难,要找到自己的错误在哪里,这还真的难,有时候自己的错误自己很难的看出来,我就一个main写错了,我找了半天还没找问题在哪里,表面看是看不出的,因为我只是a与i对调了一下,害的我搞了半天才查出来,这个无形的,编译是不会出错,只是一个警告,但是下载单片机里就是不出现结果,改了之后就ok了,在写程序的时候大小写特别要注意的,还有程序的结构清楚明了,最后还是完成任务。
在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的一大收获。另外,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,在我们遇到问题时,我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题自己能解决了。发现、提出、分析、解决问题都会受益于我在以后的学习、工作和生活中。常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力。
第二篇:单片机实训报告范文
四川电子机械职业技术学院
单片机原理及应用
实 训报告1
班级:应电14.2班 姓名:刘华利 学号:140302058 指导教师:向兵
四川电子机械职业技术学院
摘要:
《单片机应用系统设计项目化教程》这本书根据教育部新的教学改革要求和企业岗位技能需求,以高技能应用型人才专业能力培养为目标,结合作者多年的教学经验与课程改革成果进行编写。全书通过6个典型项目任务,着重介绍单片机基本原理及应用系统的设计方法与技巧,包括流水灯控制系统设计、简易数字时钟设计、数字电压表设计、低频信号发生器设计、数据存储及回放系统设计和窗帘智能控制系统设计等。本书采用“理实一体、项目化教学”模式进行内容编排,将单片机原理及应用系统设计的相关知识点融入项目中进行讲解,易教易学,效果良好。
目录
摘要········································ 2 目录········································ 2 实训名称···································· 3 实训地点···································· 3 实训时间···································· 3 实训目的···································· 3 实训项目···································· 3 项目1·······································3 项目2·······································4 项目3·······································5 项目4·······································6 实训总结····································· 7
四川电子机械职业技术学院
实训名称:单片机原理及应用 实训地点:行政楼523 实训时间:2016.6.27—6.30 实训目的:1、2、3、4、5、6、7、掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。
掌握C的基本概念和基础知识。
通过训练能够读懂较为复杂的C语言源程序并具备基本C语言程序设计的能力。
熟练掌握各种常用类的定义继承文件的应用,为更好的理解面向对象打下更好的基础。
掌握面向对象的基本原理,提高学生综合程序设计的能力。
培养自己独立解决问题,找资料的能力。同学之间相互帮助、相互交流、相互合作的团队精神。
通过实训检查自己学习上的不足,达到熟练掌握C语言的基本知识和技能。
实训项目: 项目1 点亮一个LED,每隔一定时间循环熄灭、点亮…
设计思路:端口送高电平,led熄灭,延时1s,端口送低电平,led点亮,延时1s,就这样一直循环。
程序
#include
L2 = 1;
while(Ms--)
DelayMs(1000);
{
L2 = 0;
for(i = 0;i < 114;i+
DelayMs(1000);+);} } }
四川电子机械职业技术学院
原理图
项目2 点亮一个LED,让它每隔一定时间循环左移(课使用delay函数进行延时)
设计思路:在项目1的的基础上,用dalay函数进行延时,用<<来表示左移,添加一个左移的函数。通俗一点的讲的话,就如天天天同一些人排队领东西,领完了返回队位继续排(当然一只是这几个人排)。
程序
#include } while(1){ for(i=0;i<7;i++){ delay(100); LED=(LED<<1)|0x01;P3=LED;} } 四川电子机械职业技术学院 原理图 项目3 将任务二中delay延时改用定时器延时,且延时一秒 设计思路:在项目2的的基础上,用定时器来进行延时,首先设置定时器工作方式 也就是TMOD,在设置TH0/1,TL0/1的初值,也就是定时时间的设置,然后设置中断允许,并开中断。用中断来控制。 程序 #include { TH0=(65536-50000)/256;TL0=(65536-50000)%256;j++;if(j==5){ j=0; P1=~(0x01< if(++i==8)i=0; } } 四川电子机械职业技术学院 原理图 项目4 四位数码管并排显示,从左到右依次为分、秒十位、秒各位、0.1秒,相当于移动可计时9分59.9秒,使用一个按键,当按键第一次按下,启动秒表,第二次按下,停止,第三次按下,清零。(数码管可选共阴极、共阳极,至于对应数字的段选可参考教材) 设计思路:用delay函数来进行延时,用内部中断来控制T1,用外部中断来实现计数、暂停、清零这三个功能。 程序 #include uintx,y; for(x=100;x>0;x--) for(y=z;y>0;y--);} void dihplay(){ P1=0xfd; 四川电子机械职业技术学院 P0=Tab[xiao%10]; delay(1); } void display(){ P1=0xfb;P0=Tab[miao/10];delay(1); P1=0xfe;P0=Tab[miao%10];dp=0;delay(1);} void dimplay(){ P1=0xf7;P0=Tab[fen%10];dp=0;delay(1);} void main(){ EA = 1;EX0 = 1;IT0 = 1; ET0=1;TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=0;xiao=0;miao=0;fen=0; while(1) { display();delay(1);dimplay();delay(1);dihplay();delay(1); } } void timer0()interrupt 1 { xiao++; if(xiao==10) { xiao=0;miao++; if(miao==59) { miao=0; fen++; if(fen==10) { fen=0; } } } } void ex0_int0()interrupt 0 { swnum++;if(swnum == 1){ TR0= 1;} if(swnum == 2){ TR0 = 0;} if(swnum == 3){ xiao = 0; miao = 0; fen = 0; swnum=0;} } 四川电子机械职业技术学院 原理图 实训总结: 通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用C语言编程,通过对led灯控制到用数码管实现秒表功能、中断控制功能,能实现本设计题目的基本要求和发挥部分。由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。 踉踉跄跄地忙碌了一周,我的程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。 但在这次实训中同时使我对C语言有了更深的认识。当我第一次接触C语言就感觉很难,特别是今次实训要用到C语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。 这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。 单片机原理及应用 实训报告 班级: 学号: 姓名: 指导教师: 实训总成绩: 一、节日彩灯设计 题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按键1开始,按键2结束。 原理图 程序代码: #include 单片机原理及应用实训报告 管及驱动电路的连接,从而构成一个完整的硬件电路。然后通过对单片机的ROM进行编程,实现对彩灯闪烁的控制。 二、定时器实现流水灯 题目:利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯点亮,依次循环点亮。 原理图 程序代码 #include 50000)% 256;TH0 =(65536 单片机原理及应用实训报告 程序代码 #include 单片机原理及应用实训报告 实训总结 通过本次单片机实训使得我更深层次的学习单片机原理与应用技术这门专业课程,同时对KEIL软件进行复习。这次实训是我看到了我最薄弱的一点那就是编程,对于编程有很大的困难。对以往学习过的编程知识没有好好掌握,特别是编程这方便的知识很薄弱。学习过的知识在实际应用中仿佛是冰山一角,完全不够用,需要通过查阅很多资料才能解决到碰到的相关问题。而且实训中出现的问题都是实际应用出比较典型的问题。这次实训还让我深刻的体会了结构化程序设计的优势,让我懂得当我们要进行一个复杂的程序设计时应该先将其分解为多个不同的功能模块再分别编程实现,这样做不仅降低了编程的难度,也容易让编程者思路更加清晰,避免出现不必要的错误。在做仿真时,仿真图正确也不一定就是说明一定正确。 目录 一 方案设计说明:............................................................................................2 二 硬件设计说明:............................................................................................4 (一)电路图:..........................................................................................4(二)单片机AT89S51的I/O口分配使用情况........................................4 (三)元器件的参数及规格:....................................................................5 三 软件设计说明:............................................................................................6 (一)软件设计思路及流程图:................................................................6 (二)程序的总体框架结构说明:............................................................8 (三)重要程序段的功能,作用及思路简介:........................................8 四 制作调试说明:..........................................................................................13 (一)程序调试过程:..............................................................................13 (二)硬件调试:......................................................................................13 五 电路实拍:.....................................................................................................14 六 总结心得体会:..........................................................................................15 七 参考文献:.....................................................................................................16 一 方案设计说明: 设计方案之前,得先分解设计任务。本次的设计任务是篮球记分牌,据常识,篮球记分牌应有分别给两队加分,减分,能交换显示分数。在进行设计之前,应自己提出几个问题,待问题回答之后。基本功、的设计方案就出来了。在设计之前我提出了一下几个问题: a:硬件部分如何控制给A对B对加分,场地交换的时候又是如何实现分数显示交换的?应该如何连接硬件,在硬件上设置控制端,控制端与单片机各引脚之间的连。 b:单片机只有一个CPU,如何实现即要扫描按键,又要显示比分。数码管工作的本质是将要显示的数据的字型码送给他,如何采集到变化的分数送给数码管。用查表吗? c:加分与倒计时在程序中最本质的东西是什么,如何用程序来说明这样的事件,各事件之间又是如何联系的。 虽然这些问题看似很普通,似乎在设计过程中都要面对这样的问题,何不事先就解决这些问题呢,在逐一回答这些问题的同时,该任务的设计方案已见雏形。以下就是该方案的详细内容以及我问题的答案。 系统原理图如下图一所示: LED数码显示管外部按键AT89S51驱动电路 3 二 硬件设计说明: (一)电路图: (二)单片机AT89S51的I/O口分配使用情况 图中P3.0,P3.1,P3.2,P3.3分别是加一分、加两分、加三分、减一分。P3.4与P3.5口是外部中断,其中断服务程序的功能是实现比分交换的切换显示和加分减分切换。电路中选择共阳极的数码管,可以省去输入端的驱动电路,使电路更简洁。P0口作为字形码的输出口,与数码管的八只管教相连。 (三)元器件的参数及规格: 主要元器件有单片机芯片AT89S51,共阳极数码管,9012PNP三极管。其中单片机承载程序,实现电路功能,三极管起开关及驱动数码管显示作用。数码管显示比分。 三 软件设计说明: 程序的总体思路是主程序一直在扫描按键,比分显示,比分交换,加减分队伍切换都在中断服务程序中完成。其具体内容如下所示。 (一)软件设计思路及流程图: 中断程序流程图(如:图一) 程序初始化,给存储器赋初值按键扫描程序,扫描到由按键控制的中断就执行其对应程序外部中断1,加减外部中断0,A、B分队伍切换中断程序两队比分切换图一 按键扫描程序流程图(如:图二)按键扫描入口,检测软件标志位F0,为1调用分数显示程序程序,为0调用加减分切换程序,同时扫描按键是扫描P3.0,并去抖,是否有键按下加一分否是扫描P3.1,并去抖,是否有键按下加两分否是扫描P3.2,并去抖,是否有键按下加三分否是扫描P3.3,并去抖,是否有按键按下减一分否按键扫描程序结束图二 分数显示程序流程图(如:图三) 将A对B对的分数首先进行BCD码转换,再保存到相对应的寄存器中把各分数分别赋给寄存器A,查表送往要显示的数码管由P2口的位状态控制子程序调用结束,返回主程序,RET 图三 其中时间显示的子程序流程图与分数的大同小异,此处就不再一一列出。 (二)程序的总体框架结构说明: 程序包含按键扫描程序,不断地扫描按键,一旦有控制中断的按键按下,就执行中断程序,交换比分。中断服务程序,INT_0交换A对与B对的总分,INT_1改变软件标志位就可以切换加减分队伍,同时扫描按键。 (三)重要程序段的功能,作用及思路简介: 按键扫描程序是本程序中最重要的程序段,其连接了所有的子程序,子程序的调用都是在其中完成。下面就对该程序段的功能,作用及编写思路做详细说明。各部分关键程序 按键控制程序 org 0060h ajcx: jnb p3.0,s0 jnb p3.1,s1 jnb p3.2,s2 jnb p3.3,s3 jnb p3.4,s4 jnb p3.5,sz5 ljmp ajcx sz5: ljmp s5 s0: lcall del jb p3.0,s01 ljmp ajcx s01: jnb p1.0,s02 mov a,30h inc a mov 30h,a ljmp tzcx s02: mov a,31h inc a mov 31h,a ljmp tzcx s1: lcall del jb p3.1,s11 ljmp ajcx s11: jnb p1.0,s12 mov a,30h add a,#02h mov 30h,a ljmp tzcx s12: mov a,31h add a,#02h mov 31h,a ljmp tzcx s2: lcall del jb p3.2,s21 ljmp ajcx s21: jnb p1.0,s22 mov a,30h add a,#03h mov 30h,a ljmp tzcx s22: mov a,31h add a,#03h mov 31h,a ljmp tzcx s3: lcall del jb p3.3,s31 ljmp ajcx s31: jnb p1.0,s32 mov a,30h dec a mov 30h,a ljmp tzcx s32: mov a,31h dec a mov 31h,a ljmp tzcx s4: lcall del jb p3.4,s41 ljmp ajcx s41: push 30h push 31h pop 30h pop 31h lcall jscx ljmp ajcx s5: lcall del jb p3.5,s51 ljmp ajcx s51: cpl p1.0 cpl p1.1 ljmp ajcx 加分程序: org 0120h tzcx: lcall jscx ljmp ajcx org 0130h del: mov tl1,#00h mov th1,#0bh setb tr1 jnb tf1,$ mov tl1,#00h mov th1,#0bh clr tf1 ret 加减分队伍切换程序: org 0150h dscx: mov th0,#0fch mov tl0,#18h mov a,r2 rl a mov r2,a cjne r2,#11h,d1 mov r1,#32h lcall jscx reti d1: cjne r2,#22h,d2 mov r1,#33h lcall jscx reti d2: cjne r2,#44h,d3 mov r1,#34h lcall jscx reti d3: mov r1,#35h lcall jscx reti 比分切换程序: org 0190h jscx: mov a,30h mov b,#0ah div ab mov 33h,b mov 32h,a mov a,31h mov b,#0ah div ab mov 35h,b mov 34h,a mov p2,r2 mov dptr,#tab mov a,@r1 movc a,@a+dptr mov p0,a ret org 0220h tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h db 80h,90h end 12 四 制作调试说明: (一)程序调试过程: 程序调试我花了两天的时间,此程序虽然不复杂,由于我平时学习的不够深入,也没用心学。对于我这样的基础来说调试过程真的很痛苦。刚开始调试时程序有两处让我感觉很乱,按键扫描程序中的中断程序如何调用。当寄存A对或B对的分数累加到99的时候,就清零,但还没有累加到99的时候,程序应该跳往何处执行,我最初的是跳了继续累加。在仿真中的现象就是分数一直显示99,加不了。我真的是太大意了,调试的时候不踏实。 (二)硬件调试: 此次的硬件焊接很成功,电路布局很清晰,虽然在调试时也发现错误,但用万用表很容易就检测出来了,其中有几根线的皮包线熔了,肉眼看不到。重新整理电路后,功能明显成功。至此,本次的单片机课程设计圆满结束。 五 电路实拍: 电路板正面: 电路板背面: 六 总结心得体会: 通过这一次的单片机实训,让我对单片机这一门知识有了更深的认识,更锻炼了我独立解决问题独立思考的能力,在电路设计和程序设计的过程中我们遇到了很多问题和困难,但通过大家的讨论和老师的指点之后,一切的问题都一一被解决,但单片机的学习并不是那么的简单,在最后也是最关键的程序调试的过程中,我们又遇到了很多更难的更棘手的问题,电路焊接完好也会出现诸多类似于不实现功能或是出现混乱显示的情况,真的很让人头疼,但,大家都还是咬牙坚持了下来,最后很多电路虽然依旧还是没能实现功能,但我们努力顽强克服重重困难的精神,是大家有目共睹的,就算是失败了,也依旧是很值得的一次经历.,与此同时,也有很多同学试验成功,看着大家脸上洋溢的笑容,大家无论失败成功都从这次的实训中学到了很多很多的东西 七 参考文献: 胡健 主编 《单片机原理及接口技术》 张大明 主编 《单片机控制实训指导及综合应用实例》李勋、林广艳《单片机微型计算机大学读本》 机械工程出版社 机械工业出版社 北京航空航天大学出版社16 沧州职业技术学院单片机实训报告 原理图 沧州职业技术学院单片机实训报告 双位数码管显示控制程序及说明 START: MOV R0,#0;清零 MOV DPTR,#TABLE;指定查表起始地址 LOOP: ACALL DISPLAY;调用子程序DISPLAY INC R0;R0加1 CJNE R0,#100,LOOP JMP START DISPLAY: MOV A,R0 MOV B,#10 DIV AB MOV 20H,A MOV 21H,B MOV R3,#50;LOOP1: MOV A,21H ACALL CHANG CLR P2.4;ACALL DLY SETB P2.4 MOV A,20H ACALL CHANG CLR P2.5;ACALL DLY SETB p2.5 DJNZ R3,LOOP1 RET CHANG: MOVC A,@A+DPTR MOV P0,A;RET;R0未到100则转换;跳转 ;把R0里的数据送入A;把10送入B;a b相除;十位送入20H;个位送入21H 把50送入R3;取个位数 ;调用子程序CHANG 开个位显示;调用子程序DLY;关闭个位显示;取十位数 ;调用子程序CHANG 开十位显示;调用子程序DLY;关闭十位显示;循环50次;子程序返回;查表 查表结果送入P0;子程序返回 沧州职业技术学院单片机实训报告 DLY: MOV R6,#20;典型延时子程序延时 D1: MOV R7,#248;10ms DJNZ R7,$ DJNZ R6,D1 RET TABLE: DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H,82H DB 0F8H,80H,90H END ;表数据共阳极数码管显示代码 沧州职业技术学院单片机实训报告 心得体会 为期一周的单片机实训结束了,真是让我受益匪浅啊!学到了很多东西,不管怎么样,先感谢学校给我的这么多机会,真正的学到了东西。 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,我们就学习了单片机这门课程,感觉是有点难。也不知道整个学习过程是怎么过来得,可是时间不等人。不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 沧州职业技术学院单片机实训报告 在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费我我们学到了很多知识,也让我们对单片机有了更深一步的了解,虽然最后结果是出来了,可这与老师的精心指导是分不开的她引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以老师是功不可没的。 总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。 参考文献 [1]李广弟等 单片机基础[M] 北京航空航天出版社,2001.[2]王东峰等 单片机C语言应用100例[M] 电子工业出版社,2009.[3]陈海宴 51单片机原理及应用[M] 北京航空航天大学出版社,2010.[4]刘守义等 单片机技术基础[M] 西安电子科技大学出版社,2007.[5]钟富昭等 8051单片机典型模块设计与应用[M] 人民邮电出版社,2007.[6]李平等 单片机入门与开发[M] 机械工业出版社,2008.[7]李全利 迟荣强编著 单片机原理及接口技术 高等教育出版社,2004 [8] 楼然苗等 51系列单片机设计实例 北京航空航天出版社,2003 [9]唐俊翟等 单片机原理及应用 冶金工业出版社,2003 5 沧州职业技术学院单片机实训报告 [10]刘瑞新等 单片机原理及应用教程 机械工业出版社,2003第三篇:单片机实训报告
第四篇:单片机实训报告
第五篇:单片机实训报告