版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于at89c51单片机的最小系统设计 组员:田竹、王维、袁倍明摘要:本次实验课题为设计一个基于at89c51单片机的最小系统。用p1口设计流水灯,用p2口和p0口分别作段选和位选设计了六位数码管的静动态显示和简易的电子钟,用p3口设计了一个4*4的矩阵键盘,并用蜂鸣器实现了唱歌功能和键盘按下的声响,用62256扩展内部ram,还扩展并实现了lcd1602的静动态显示,最后通过adc0809和 dac0832分别实现了a/d、d/a转换功能。 一、系统电源用mc7805集成稳压器将输入电压转为+5v稳压给系统供电。二、晶振(12mhz)及复位电路采用12mhz的外部晶振,给系统提供时钟信号。并
2、采用了按键复位电路。三、流水灯功能描述:让8个led灯循环闪烁源程序:流水灯org 0000h ljmp main org 0100h main:mov a,#11111110b loop:mov p1,a;给p1口送值lcall dly rl a ;循环左移 ljmp loop dly:mov r7,#250 ;延时子程序 dly1: mov r6,#200 djnz r6,$ djnz r7,dly1 ret end四、 数码管功能描述:数码管动态显示16源程序:org 0000hljmp startorg 0100hstart: mov p0,#0 mov p2,#0f9h setb p
3、0.0 lcall delay clr p0.0 mov p2,#0c4h setb p0.1 lcall delay clr p0.1 mov p2,#0d0h setb p0.2 lcall delay clr p0.2 mov p2,#99h setb p0.3 lcall delay clr p0.3 mov p2,#92h setb p0.4 lcall delay clr p0.4 mov p2,#82h setb p0.5 lcall delay clr p0.5ljmp start delay: mov r5,#10 d1: mov r6,#20 d2: mov r7,#248
4、 djnz r7,$ djnz r6,d2 djnz r5,d1 retend五、 4*4矩阵键盘和蜂鸣器功能描述:通过按键让数码管显示0-f,按键按下时,蜂鸣器响一下。源程序:org 0000hljmp mainorg 0100hmain: mov p0,#0ffhmov b,#4 mov p3,#0f0h;列置0,看行电平 jnb p3.4,l1 jnb p3.5,l2 jnb p3.6,l3 jnb p3.7,l4 ajmp mainl1: mov r1,#0ajmp ll1l2: mov r1,#1ajmp ll1l3: mov r1,#2ajmp ll1l4: mov r1,#3aj
5、mp ll1ll1: acall dl10ms;消抖 mov a,p3 xrl a,#0f0h jz main mov p3,#0fh;行置0,看列电平 jnb p3.0,l5 jnb p3.1,l6 jnb p3.2,l7 jnb p3.3,l8l5: mov 20h,#0ajmp keyl6: mov 20h,#1ajmp keyl7: mov 20h,#2ajmp keyl8: mov 20h,#3ajmp keykey:mov a,r1;计算键值并查表赋值 mul ab add a,20h mov r2,amov dptr,#tablemov a,r2movc a,a+dptrmov
6、p2,acall beep_bllcall delayljmp mainbeep_bl: clr p2.7;蜂鸣器子程序 acall delay setb p2.7 retdelay: mov r5,#50;延时 d1: mov r6,#20 d2: mov r7,#50 djnz r7,$ djnz r6,d2 djnz r5,d1 retdl10ms:mov r7,#05hloop1: mov r6,#0f9hloop2:nop nop djnz r6,loop2 djnz r7,loop1 rettable:db 0a0h,0f9h,0c4h,0d0h,99h db 92h,82h,0f
7、8h,80h,90h db 88h,83h,0a6h,0c1h,86h db 8ehend六、 时钟功能描述:在数码管上实现时钟功能,并通过矩阵键盘的3个键实现复位,调时,调分。源程序:org 0000h ljmp 1000h org 001bh ajmp 0100h org 0100h mov th1,#0d8h mov tl1,#0f0h djnz 69h,tt1 mov 69h,#100 setb 4fh tt1:reti;中断延时org 1000h mov 30h,#1 mov 31h,#2 mov 32h,#0 mov 33h,#0 mov 34h,#0 mov 35h,#0 mov
8、 tmod,#10h mov th1,#0d8h mov tl1,#0f0h mov ie,#88hxs0: setb tr1 mov 69h,#100 clr 4fhxs00:ljmp keykey;判断按键有无按下lx1: cjne a,#0a0h,lx2ljmp p100lx2: cjne a,#0f9h,lx3ljmp p1000lx3: cjne a,#0c4h,xsljmp p10000xs: mov 40h,#01h mov dptr,#tab mov p0,40h mov a,30h movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh
9、 mov a,#42h mov 40h,a mov p0,40h mov a,31h add a,#10 movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a,#44h mov 40h,a mov p0,40h mov a,32h movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a,#48h mov 40h,a mov p0,40h mov a,33h add a,#10 movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a,#50
10、h mov 40h,a mov p0,40h mov a,34h movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a,#60h mov 40h,a mov p0,40h mov a,35h movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a, #40h mov 40h,a jnb 4fh,llll1 clr 4fhljmp jia llll1:ljmp xs00p100: mov 30h,#0 mov 31h,#0 mov 32h,#0 mov 33h,#0 mov 34h,#0 m
11、ov 35h,#0jia: mov r1,#14h mov a,35h cjne a,#9,jia1 mov 35h,#0 mov a,34h cjne a,#5,jia10 mov 34h,#0p10000: mov a,33h cjne a,#9,jia100 mov 33h,#0 mov a,32h cjne a,#5,jia1000 mov 32h,#0p1000: mov a,31h cjne a,#9,jia10000 mov 31h,#0mov a,30h cjne a,#2,jia100000 mov 30h,#0 ajmp xsjia100000: inc 30h ajmp
12、xs0jia10000: cjne a,#3,jiajia mov a,30h cjne a,#02,jiajia mov 30h,#0 mov 31h,#0 ajmp xs0jiajia: inc 31h ajmp xs0jia1000:inc 32h ajmp xs0jia100: inc 33h ajmp xs0jia10: inc 34h ajmp xs0jia1: inc 35h ajmp xs0 ret ys1ms: mov r6,#9hyl1: mov r7,#19h djnz r7,$ djnz r6,yl1 retdl10ms:mov r7,#05hloop1: mov r6
13、,#0f9hloop2:nop nop djnz r6,loop2 djnz r7,loop1 retdelay: mov r5,#50 d1: mov r6,#20 d2: mov r7,#248 djnz r7,$ djnz r6,d2 djnz r5,d1 ret ;-矩阵键盘-keykey: mov b,#4 mov p3,#0f0h;列置0,看行电平 jnb p3.4,l1 jnb p3.5,l2 jnb p3.6,l3 jnb p3.7,l4 ajmp xsl1: mov r1,#0ajmp ll1l2: mov r1,#1ajmp ll1l3: mov r1,#2ajmp ll1
14、l4: mov r1,#3ajmp ll1ll1: acall dl10ms;消抖 mov a,p3 xrl a,#0f0h jz lll2 mov p3,#0fh;行置0,看列电平 jnb p3.0,l5 jnb p3.1,l6 jnb p3.2,l7 jnb p3.3,l8l5:jnb p3.0,l5mov 20h,#0ajmp keyl6: jnb p3.1,l6mov 20h,#1ajmp keyl7:jnb p3.2,l7mov 20h,#2ajmp keyl8: jnb p3.3,l8mov 20h,#3ajmp keylll2:ljmp xskey:mov a,r1;计算键值并查
15、表赋值 mul ab add a,20h mov r2,amov dptr,#tablemov a,r2movc a,a+dptr;lcall delayljmp lx1tab:db 0a0h,0f9h,0c4h,0d0h,099h,092h,082h,0f8h,080h,090hdb 020h,079h,044h,050h,019h,012h,002h,078h,000h,010htable:db 0a0h,0f9h,0c4h,0d0h,99h db 92h,82h,0f8h,80h,90h db 88h,83h,0a6h,0c1h,86h db 8ehend七、1602液晶显示功能描述:在
16、lcd上动态逐字显示两行字符串。源程序:rs equ p2.7rw equ p2.6e equ p2.5org 0000hljmp mainorg 0100hmain: acall del5ms acall del5ms acall del5ms mov p1,#38h acall enable1 acall del5ms mov p1,#38h acall enable1 acall del5ms mov p1,38h acall enable1 mov p1,#00000001b acall enable mov p1,#00111000b acall enable mov p1,#000
17、01111b acall enable mov p1,#00000100b acall enable mov p1,#8fh acall enable mov dptr,#table1 acall l1 mov p1,#0cfh acall enable mov dptr,#table2 acall l2 sjmp $l1:mov r1,#00hll1:mov a,r1 movc a,a+dptr mov p1,a acall delxxms acall write_lcd inc r1 cjne a,#00h,ll1 retl2:mov r1,#00hll2:mov a,r1 movc a,
18、a+dptr mov p1,a acall delxxms acall write_lcd inc r1 cjne a,#00h,ll1 retwrite_lcd: setb rs clr rw clr e acall delay setb e retenable1:clr rs clr rw clr e setb e retenable:clr rs clr rw clr e acall delay setb e retdelay:mov p1,#0ffh clr rs setb rw clr e nop setb e jb p1.7,delay retdel5ms:mov r7,#125d
19、el1:mov r6,#18 nopdel2:djnz r6,del2 djnz r7,del1 retdelxxms:mov r7,#250 del3:mov r6,#250 nop del4:djnz r6,del4 djnz r7,del3 rettable1: dbuhz nait table2: db*:qq end八、外部ram扩展功能描述:将片内数据送到片外ram储存,再送回片内,在数码管中显示。源程序:org 0000hljmp mainorg 0100hmain:mov p0,#0ffh mov a,#0f9h mov dptr,#0001h movx dptr,a clr
20、a movx a,dptr mov p2,a sjmp $end九、ad转换功能描述:向adc0809输入模拟信号电压,经转换后在数码管上显示电压值。源程序:led_0equ30hled_1equ31hled_2equ32hadcequ35hclockbitp3.1stbitp3.0;aleoebitp3.2eoc bit p3.3org0000hljmpstartorg 000bhcpl clock;给0809时钟retiorg 0100hstart: movled_0,#00hmovled_1,#00hmovled_2,#00hmovtmod,#02hmovth0,#0fehmovtl0,
21、#0fehmovie,#82hsetbtr0wait:clrst setbst clrst jnbeoc,$ setboe movadc,p1 clroe mova,adcmovb,#51 divab movled_2,a mova,b movb,#5 divab movled_1,a mov a,b mov b,#2 mul ab mov led_0,a lcalldisp sjmp waitdisp:mov p0,#00h movdptr,#table mova,led_0 movca,a+dptr setbp0.2 movp2,a lcall delay clrp0.2 mova,led
22、_1 movca,a+dptr setb p0.1 movp2,a lcall delay clr p0.1 mova,led_2 movca,a+dptr setb p0.0 adda,#80h movp2,a lcalldelay clr p0.0 retdelay:movr6,#50d1:movr7,#15 djnzr7,$ djnzr6,d1 rettable:db 0a0h,0f9h,0c4h,0d0h,99h db 92h,82h,0f8h,80h,90h end十、da转换功能描述:实现输出方波、三角波、梯形波。源程序:1.方波程序org 0000hljmp loop1org 0
23、100h;通过高低电平地的变化来输出方波loop1:clr p3.6mov p2,#00h;向选通地址送低电平地acall delaymov p2,#0ffh;向选通地址送高电平acall delayljmp loop1delay:mov r1,#06h d2:mov r2,#0ffh d1:djnz r2,d1 djnz r1,d2ret;延时,通过改变它的大小可以改变占空比end2.三角波:org 0000hljmp str1org 0100h str1: clr p3.6 ;通过上升和下降来产生三角波mov r6,#00h ;电压随时间上升 str2: mov a,r6 mov p2,ainc r6 cjne r6,#0ffh,str2 ;电压随时间下降str3: acall delaydec r6 mov a,r6 mov p2,a cjne r6,#00h,str3 ajmp str1end 总结一、流水灯 流水灯使用接口最好使用p1口,p1口没有第二功能也不用作为地址总线,容易控制。最好加一跳针,以便与其他功能区分开。二、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 芯诗珀莉护理考核测试卷及答案
- 2026电容器考试题库及答案
- 2026电气符号考试题及答案解析
- 2026电镜分析笔试题目及答案
- 市政工程质量监督工作方案
- 室内装饰装修专项施工方案
- 2026年外贸样品管理员考试题库及答案
- 室外管网回填砂砾铺设规范
- 中小学教师体育教育试题及答案
- 抗高血压药物考试试卷(附答案)
- 信用卡部培训大纲
- 代建公司代建管理制度
- T/CSWSL 007-2019饲料原料酵母水解物
- 滚针美容治疗技术解析
- 儿童自闭症康复中心项目商业计划书
- 莱州市月季产业发展规划(2018-2022年)
- 2025黑龙江七台河辰能生物质发电有限公司招聘笔试参考题库附带答案详解
- 《毛泽东思想和中国特色社会主义理论体系概论》附有答案
- 兰州市文职辅警招聘考试真题
- 田英章毛笔楷书2500字(简体版)
- 柴油机发电作业岗位职业危害告知卡
评论
0/150
提交评论