电子技术与单片机的发展应用 毕业论文.doc_第1页
电子技术与单片机的发展应用 毕业论文.doc_第2页
电子技术与单片机的发展应用 毕业论文.doc_第3页
电子技术与单片机的发展应用 毕业论文.doc_第4页
电子技术与单片机的发展应用 毕业论文.doc_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子技术与单片机的发展应用 目录绪论4一、数字电子技术51数字信号52数字电路5l 数制与代码5l 逻辑代数的基本运算5l 逻辑代数的基本定律63数字电路的特点、分类64数字电路的发展6二、单片机技术61什么是单片机72单片机的基本结构及特性7三、数字电子技术与单片机的结合应用实例数字电子钟71数字电子钟的简介7l 背景8l 意义8l 应用82数字电子钟的硬件组成8l led显示电路8l 单片机的选择83软件设计l 系统软件设计流程图94程序设计10四、总结21数字电子技术与单片机的发展应用绪论二十世纪四十年代,在先进武器的研制过程中,比如导弹的弹道轨迹计算需要进行大量高速,复杂,精确的计算,原有的计算工具已满足不了要求;另一方面,当时的自动控制技术和电子器件等使新型计算工具的发明成为可能。一是需要而使可能,世界上地一台电子计算机于1946年诞生于美国宾夕法尼亚,取名eniac,电子计算机的诞生与数字电子技术等技术的发展是离不开。而时至今日,数值电子技术也已经广泛应用各个领域了,无论是现代高精尖电子设备,还是大家熟悉的计算机,手机,数字电视,数码相机等现代电子装置,其核心构成都是数字电子系统而数字电子系统的发展又促进了单片机技术的发展应用,所以数字电子技术是与单片机技术紧紧相连的,如图所示是数字钟电路,它就是运用数字电子技术与单片机技术所制成的。日日译码显示器十二/二十四进制六十进制六十进制计数脉冲日日日日一数字电子技术1数字信号电子电路所处理的电信号可分为数字信号和模拟信号。数字信号是在时间和数值上都是离散的信号。计算机传递的信号往往就都是数字信号,而模拟信号是在时间和数值上都是连续变化的信号,如电流电压等。2数字电路数字电路是用于传递和处理数字信号的电子电路。它可以完成信号的产生,放大,整形,传递,控制,存储计算等。数字电路分析及设计的基本工具是逻辑代数,组成数字电路的基本单元电路是逻辑门电路。数制与代码数字电路的基础主要是研究输出和输入信号之间的对应逻辑关系其分析的主要工具是逻辑代数。在现实生活中各种数字设备只能对二进制代码进行运算和处理,人们熟悉的十进制数对机器来说实现起来很困难。所以对于电子技术来说二进制数十很重要的,而根据单片机的定义:单片机就是将计算机的基本部件集成到一块芯片内的微型计算机。就像上面所说数字电子技术对于单片机的发展来说有很重要的意义,所以了解二进制数及其各进制数间的转换也是很重要的二进制数的基数是二,采用两个数码零和一,技术规律是“逢二进一”。二进制数的各位的位位权为20、21、22任何一个二进制数都可以表示成以其数2为底的冥的求和数。在计算机系统中,除了二进制,还有八进制、十进制 、十六进制。二进制主要用于机器内部数据处理。八进制和十六进制主要用于书写程序,十进制主要用于运算结果的输出。逻辑代数的基本运算逻辑代数有三种基本运算:与运算,或运算和非运算与运算的逻辑表达式为y=ab他的运算规律为输入有0得0全1得1。或运算的逻辑表达式为y=a+b或逻辑得运算规律为有1得1,全0得0非运算也称反运算,其表达式为y=a 非逻辑运算的规律为0变2,1变0,即始终相反。逻辑代数的基本定律与普通代数一样,逻辑代数也有相应的规律,其基本定律有0-1律、交换律、结合律、分配律、互补律、重叠律、还原律、反演律(摩根定律)、吸收率、隐含律。这些我们都记、应该要了解,在这里就不多说了。1数字电路的特点及分类与模拟电路相比数字电路具有显著地有点结构简单,便于集成化系列化生产,成本低廉使用方便抗干扰性强,可靠性高,精确度高,稳定性好处理功能强,不仅能实现数值运算,还可以实现逻辑运算和判断。可编程数字电路便于实现各种运算具有很大的灵活性。数字信号更易于存储、加密、压缩、传输数字信号是不连续的 ,反映在电路上只有高电位和低电位两种状态,因此数字电路采用二进制数来传输和处理数字信号,在数字电路中,通常采用开关的接通与开断来实现电路的高低电位两种状态,将高电位称为高电平,用“1”表示,低电位称为低电平,用“0”表示。数字电路的开关状态时二极管,三极管的导通和截止来实现的。分类:数字集成电路按不同划分方法有各种不同的类型它可按集成度分、按应用范围分、按所用器件分、按逻辑功能分。数字电路的发展目前数字集成带你路正向着大规模,低功耗,高速度,可编程可测试和多值化方向发展。二单片机技术1什么是单片机单片机就是将计算机的基本部件集成到一块芯片内的微型计算机。由于单片机通常是为控制应用而设计制造的,现国际上逐渐统一称为mcu(micro-controller unit 微控制器)2单片机的基本结构及特点单片机芯片内通常包括cpu、rom、ram并行i/o、串行i/o、定时器计数器、中断控制系统时钟、a/d(模数转换器)和d/a(数模转换器)、wdt(监视定时器)等。与通常所说的微型计算机相比单片机具有以下显著特点:1多功能。2多品种。3占用空间少。4系统所需外围器件少。5低价格。6低电压。7地功耗。8性价比高。高灵活性。10高可靠性鉴于上述特点单片机在工业测量和控制家用电器,商业应用等领域都得到了广泛的应用。可分为两大分支:(1)通用计算机系统,如我们日常使用的pc机。(2)嵌入式计算机系统,可理解为嵌入到其他装置中的计算机系统,大多数嵌入式计算机系统已单片机为核心。单片机的应用大致可分为以下4大类(1) 智能仪器仪表(2)工业测控(3)民用智能电子产品(4)计算机外设及通信设备。日常生活核工业系统中以及其他领域都离不开单片机,它在智能电子产品中起着核心作用,如信息家电,掌上电脑,可视电话在电力系统中也有广泛的应用,如远程测控终端rtu,智能电表,智能抄表器,无功补偿控制器都有广泛的应用。三数字电子技术与单片机的结合应用实例数字电子钟1数字电子钟的简介背景:20世纪末电子技术获得了飞速的发展在其推动下现代电子产品几乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品的性能进一步提高,产品跟新换代的节奏也越来越快,时间对人们来说总是那么的宝贵。目前单片机正朝着高性能和多品种方向发展,将进一步向cmos化,低功率,小体积,大容量,高性能,低价格,和外围电路内装片等几个方面发展。从前必须由模拟电路或数字电路实现的功能现在已能用单片机通过软件方法来实现。这种技术可成为微控技术。单片机模块中最常见的是数字钟。数字钟是一种用数字电子技术实现的分秒即使得装置,与机械式时钟相比具有更高的准确性和直观性。且无机械装置具有更长的使用使用寿命因此得到广泛的使用。意义:电子钟是采用数字电路实现时分秒数字显示的计时装置,广泛用于个人家庭,车站,码头等公共场所。成为人们日常生活中不可缺少的必须品。由于数字集成电路的发展和石英晶体振荡器的广泛应用使得数字钟的精度远远的超过老式钟表,钟表的数字化给人们生产生产生活带来了极大的方便,而且大大的扩发了钟表的原来的报时功能,如定时自动报警,按时自动打铃,时间程序自动控制所有这些都顶以钟表数字化为基础,因此研究数字钟及其扩大应用有着非常现实的意义。应用:数字钟一成为人们日常生活中必不可少的必需品,广泛用于各个私人与公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便,由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有定时,准确,性能稳定,携带方便等优点,他还用于记时,自动报时及自动控制等各个领域。数字电子钟的硬件组成l led显示电路led显示电路采用动态显示方式显示,由74ls248 bcd译码芯片和74ls138译码器组成。采用74ls248的目的是为了节省i/o口资源,以便控制更多的外围芯片。led的段选数据由通过 74ls248译码过来的段选码决定,位选数据由74ls138译码产生。工作的时候首先把按键的值转换为bcd码,再送入p0口的第4位,但是对p0口时整体复制会破坏位选口的数据。此时需进行p0口数据的修正,通过或逻辑运算把位选数据也送入p0口的第4位和第5位,再把修正好的数据送给p0口,此时既有段选数据又有位选数据。要使显示的数据不闪,则需要利用人眼的视觉暂留性,将每个数据显示之间的时间延时控制在10 ms以内,这样显示的数字才不闪。单片机的选择对于在电子时钟里单片机的选择我选择的是at89c52作为电子时钟的硬件核心。因为at89c52片内全部采用flash rom 能以3v的超低压工作。,其有8kb rom的存储空间,且具有在线编程可擦除技术,如果对电路进行调试时由于程序的错误修改或对程序的新增功能需要烧入程序时不需要对芯片多次插拔,所以不会对芯片造成伤害。而at89c51作为硬件核心的话,其内部是4kb rom的存储空间错误修改或对程序的新增功能需要烧入程序时要多次插拔,所以会对芯片造成伤害。所以综合以上几点我选择at89c52作为电子时钟的硬件核心,其虽也能工作在3v的超低压状态,但如果对电路进行调试时由于程序的。开始定时器及中断,定时器初始化执行时钟秒表是否设定参数执行显示程序ny3软件设计流程图4程序设计20sec equ 32h ;秒 即时时间 伪指令min equ 31h ;分hour equ 30h ;时day equ 35h ;日mon equ 34h ;月year equ 33h ;年min_1 equ 41h ;分 定时器1 路、开存储单元hour_1 equ 42h ;时day_1 equ 43h ;mon_1 equ 44h ;year_1 equ 45h ;min_11 equ 40h ;分 定时器1 路、关存储单元hour_11 equ 46h ;时day_11 equ 47h ;日mon_11 equ 48h ;月year_11 equ 49h ;年;*org 0000hljmp mainorg 0003h ;中断转换显示年月日、int0(sb4 键)ljmp showorg 000bh ;计数中断 t0、方式1ljmp timeorg 0013hljmp change; 调整时间、定时、int1(sb0 键);-主程序org 0030hmain:;-初始化赋值mov year , #02mov mon , #05mov day , #01mov hour , #00mov min , #00mov sec , #00clr 40h ;定时单元1 路清零clr 41hclr 42hclr 43hclr 44hclr 45hclr 46hclr 47hclr 48hclr 49h;-开中断mov tmod , #01h ;计数、模式1、t0mov tl0, #0b0h ;100sm 计数定时mov th0, #3ch ;clr p3.0mov 20h, #0ah ;10 次*100smsetb pt0 ;t0 为最高级setb tr0 ;允许计数setb et0 ;允许t0 中断setb ex0 ;允许int0 中断setb ex1 ;允许int1 中断setb ea ;开总中断;-显示、定时器启动判断loop:mov r1, #30h; 存储单元mov r4, #01h; 位选通mov r3, #03h; 三组显示next:mov a , r1 ;mov b , #10 ;将存储单元转换成两高低两组的bcd 码div abswap aorl a, bmov p0, a;输出mov p2, r4inc r1 ;下一单元mov a, r4 ;rl a ;位移mov r4, alcall de5sm ;延时0.5smdjnz r3, next ;全扫描显示一偏;-判断定时输出(只编写了一路)cjne r7, #88h,loop ;是8 则开,否则、定时已关、转;-开mov a, yearcjne a, year_1, loop_1;年比较,不等转关mov a, moncjne a, mon_1, loop_1mov a, daycjne a , day_1,loop_1mov a, hourcjne a, hour_1,loop_1mov a, mincjne a, min_1, loop_1cpl p3.0;-关loop_1:mov a, yearcjne a, year_11, loop;年比较mov a, moncjne a, mon_11, loopmov a, daycjne a , day_11,loopmov a, hourcjne a, hour_11,loopmov a, mincjne a, min_11, loopcpl p3.0ljmp loop;-年月日显示中断子程序show:push pswpush accpush bpush 01hpush 02hpush 03hpush 04hmov r2, #0ffh ;中断扫描次数turn: mov r1 , #33hmov r4 , #01hmov r3 , #03hnext_1:mov a, r1mov b , #10div abswap aorl a, bmov p0, amov p2, r4inc r1rl amov r4 ,alcall de5smdjnz r3, next_1djnz r2, turn ;反复显示一定时间后返回pop 04hpop 03hpop 02hpop 01hpop bpop accpop pswreti;-计数中断服务子程序time:push pswpush accpush bpush 06hmov th0 , #3ch;重装计数mov tl0 , #0bh;djnz 20h, out ;转到中断跳出pop 程序mov 20h, #0ah ; 重装:100*10=1000;-进位程序inc secmov r6, sec ;cjne r6, #60, out;比较mov sec , #00 ;inc minmov r6, mincjne r6, #60, outmov min , #00inc hourmov r6 , hourcjne r6 , #25 , outmov hour ,#00inc daymov r5, moncjne r5, #1, mon_22;是否1 月、不是转2 月mov r5, daycjne r5, #32, out ; 本月是否益出inc monmov day,#1ljmp outout:pop 06hpop bpop accpop pswretimon_22:mov r5, moncjne r5 , #2 , mon_33;是否2 月、不是转3 月mov a, year ;判断是否瑞年mov b, #4div abmov a , bjnz out_1;不是则转(a 不为零则转)mov r5 ,daycjne r5,#30, out;如是瑞年、判断是否到29 天inc monmov day ,#1ljmp outout_1:mov r5, daycjne r5, #29, out ;平年二月判断inc monmov day , #1ljmp outmon_33:mov r5, moncjne r5, #3 , mon_44mov r5, daycjne r5 , #32, outinc monmov day , #1ljmp outmon_44:mov r5, moncjne r5,#4, mon_55mov r5, daycjne r5 ,#31,outinc monmov day , #1ljmp outmon_55:mov r5,moncjne r5,#5, mon_66mov r5,daycjne r5,#32,outinc monmov day,#1ljmp outmon_66:mov r5, moncjne r5,#6, mon_77mov r5, daycjne r5 ,#31,outinc monmov day , #1ljmp outmon_77:mov r5, moncjne r5,#7, mon_88mov r5, daycjne r5,#32,l1inc monmov day , #1l1: ljmp outmon_88:mov r5, moncjne r5,#8, mon_99mov r5, daycjne r5 ,#32,l2inc monmov day , #1l2: ljmp outmon_99:mov r5, moncjne r5,#9, mon_00mov r5,daycjne r5 ,#31,l3inc monmov day , #1l3: ljmp outmon_00:mov r5, moncjne r5,#10, mon_aamov r5, daycjne r5 ,#32,l4inc monmov day , #1l4: ljmp outmon_aa:mov r5, moncjne r5,#11, mon_bbmov r5,daycjne r5,#31,l5inc monmov day , #1l5: ljmp outmon_bb:mov r5, daycjne r5 ,#32,l6inc yearmov mon, #1mov day , #1l6:ljmp out;-按sb2定时器年单元加1 子程序sb3_2: ljmp show_2 ;二路没编返回sb3_3: ljmp show_3 ;三路没编返回sb3_1:mov a , year_1 ; 调时年单元mov b ,#10div abswap aorl a,bmov p0, amov p2, #01hlcall readlcall de250smcjne a, 01h, sb3_1cjne a, #0fbh, key2_7 ;按sb2 转年调整ljmp mon_111 ;按sb1 往下调月单元key2_7:cjne a, #0fdh, sb3_1inc year_1 ; 1 路年单元加1mov r5,year_1cjne r5,#09,sb3_1 ;益出mov year_1, #00hajmp sb3_1 ;-月单元加1 子程序mon_111:mov a , mon_1 ; 调时月单元显示mov b ,#10div abswap aorl a,bmov p0, amov p2, #02hlcall readlcall de250smcjne a, 01h, mon_111cjne a, #0fbh, key2_8 ;按sb2 转月调整ljmp day_111key2_8:cjne a,#0fdh,mon_111inc mon_1 ;1 路月单元加1mov r5,mon_1cjne r5,#13,mon_111;益出mov mon_1, #01hajmp mon_111 ; 转到月显;_-日单元加1 子程序day_111:mov a , day_1 ; 调时日单元显示提示mov b ,#10div abswap aorl a,bmov p0, amov p2, #04hlcall readlcall de250smcjne a, 01h,day_111cjne a, #0fbh, key2_9 ;按sb2 转日调整ljmp hour_111key2_9: cjne a,#0fdh,day_111inc day_1 ;1 组日单元加1mov r5, day_1cjne r5,#32,day_111;益出mov day_1, #01hajmp day_111 ; 转到日显;-按sb2 时单元加1 子程序hour_111:mov a , hour_1 ; 调时时单元显示提示mov b ,#10div abswap aorl a,bmov p0, amov p2, #01hlcall readlcall de250smcjne a, 01h,hour_111cjne a, #0fbh, key2_10 ; 按sb2 转时调整ljmp min_111key2_10:cjne a,#0fdh,hour_111inc hour_1mov r5,hour_1cjne r5,#24,hour_111;益出mov hour_1, #00hajmp hour_111 ; 转到时显;-分单元加1 子程序min_111:mov a , min_1 ; 调时分单元、并显示提示mov b ,#10div abswap aorl a,bmov p0, amov p2, #02hlcall readlcall de250smcjne a, 01h,min_111cjne a, #0fbh, key2_11 ;按sb2 转分调整ajmp off_ch ;按sb3 往下调定时:关单元key2_11: cjne a, #0fdh, min_111inc min_1 ;1 路分单元加1mov r5, min_1cjne r5,#60,min_111;益处mov min_1, #00hajmp min_111 ; 转到分显年单元调整off_ch: mov a , year_11 ; 调时年单元mov b ,#10div abswap aorl a,bmov p0, amov p2, #01hlcall readlcall de250smcjne a, 01h, off_chcjne a, #0fbh, key2_f7 ;按sb2 转年调整ljmp mon_off ;按sb1 往下调月单元key2_f7:cjne a, #0fdh, off_chinc year_11 ; 1 路年单元加1mov r5,year_11cjne r5,#09,off_ch ;益出mov year_11, #00hajmp off_ch ;-月单元加1 子程序mon_off:mov a , mon_11 ; 调时月单元显示mov b ,#10div abswap aorl a,bmov p0, amov p2, #02hlcall readlcall de250smcjne a, 01h, mon_offcjne a, #0fbh, key2_f8 ;按sb2 转月调整ljmp day_offkey2_f8:cjne a,#0fdh,mon_offinc mon_11 ;1 路月单元加1mov r5,mon_11cjne r5,#13,mon_off;益出mov mon_11, #01hajmp mon_off ; 转到月显;_-日单元加1 子程序day_off:mov a , day_11 ; 调时日单元显示提示mov b ,#10div abswap aorl a,bmov p0, amov p2, #04hlcall readlcall de250smcjne a, 01h,day_offcjne a, #0fbh, key2_f9 ;按sb2 转日调整ljmp hour_offkey2_f9: cjne a,#0fdh,day_offinc day_11 ;1 组日单元加1mov r5, day_11cjne r5,#32,day_off;益出mov day_11, #01hajmp day_off ; 转到日显;-按sb2 时单元加1 子程序hour_off:mov a , hour_11 ; 调时时单元显示提示mov b ,#10div abswap aorl a,bmov p0, amov p2, #01hlcall readlcall de250smcjne a, 01h,hour_offcjne a, #0fbh, key2_f10 ; 按sb2 转时调整ljmp min_offkey2_f10:cjne a,#0fdh,hour_offinc hour_11mov r5,hour_11cjne r5,#24,hour_off;益出mov hour_11, #00hajmp hour_off ; 转到时显;-分单元加1 子程序min_off:mov a , min_11 ; 调时分单元、并显示提示mov b ,#10div abswap aorl a,bmov p0, amov p2, #02hlcall readlcall de250smcjne a, 01h,min_offcjne a, #0fbh, key2_f11 ;按sb2 转分调整ljmp on_1 ;按sb3 往下调定时:开与关key2_f11: cjne a, #0fdh, min_offinc min_11 ;1 路分单元加1mov r5, min_11cjne r5,#60,min_off;益处mov min_11, #00hljmp min_off ; 转到分显;-开、关定时on_1:cjne a, #0fbh, min_offk1: mov a, #88hmov r7, amov p0, amov p2, #0ffh;三组都显示开lcall readlcall de250smcjne a, 01h, on_1;去抖后比较cjne a, #0fbh,key2_12 ;按sb2 转关ljmp out_a ;按sb3 调出、处于开状态key2_12: cjne a, #0fdh, k1k2: mov a, #00h; 显示0 关mov r7, amov p0, amov p2, #0ffh;lcall readlcall de250smcjne a, 01h, k2;去抖后比较cjne a, #0fbh,key2_13 ;按sb2 转开ljmp out_a ;sb3 调出、处关状态key2_13:cjne a, #0fdh, k2 ; 比较按了没ljmp k1 ; 按了sb2、转开out_a:pop 00hpop bpop accpop pswreti;_-读取按键程序read:mov a , p1;读取按键mov r1, alcall de10msmov a, p1ret;_-延时程序de5sm:push 01hmov r1, #0ffhdjnz r1,$pop 01hretde10ms: push 04hpush 05hmov r4, #0ahdl1: mov r5, #

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论