1.设计主要内容及要求;
编写直流数字电压表程序。
要求:1)能够测量直流电压并显示。
2)能够进行量程选择。
2.对设计**撰写内容、格式、字数的要求;
1).课程设计**是体现和总结课程设计成果的载体,一般不应少于。
2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。
课程设计**的结构及各部分内容要求可参照《沈阳工程学院毕业设计(**)撰写规范》执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。
3).**要求打印,打印时按《沈阳工程学院毕业设计(**)撰写规范》的要求进行打印。
4). 课程设计**装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。
3.时间进度安排;
沈阳工程学院。
直流数字电压表课程设计成绩评定表。
系(部): 班级: 学生姓名:
中文摘要。1.设计任务要求。
1.1设计题目:直流数字电压表。
1.2设计目的:1)掌握51单片机中电压的采集,处理。
2)掌握a/d转换,中断的使用。
3)能够熟练使用液晶显示测量的电压。
1.3设计要求
1.3.1基本要求:1)能够测量直流电压并显示。
2)能够进行量程选择。
1.3.2设计拓展:1)能够循环测电压。
2)超出量程能够报警。
3)显示电压时能够使对应的led灯亮。
2.设计思路。
这次我课程设计的课题是直流数字电压表,通过单片机c8051f020来实现测量电压,并且在液晶显示器上显示测量结果,同时可以选择量程。
单片机c8051f020内本身有基准电压,但是基准电压为模拟信号,通过单片机内a/d转换为数字信号,将采集到的12位数字电压量放入指定的地址。经过数据处理,将16进制数转换成10进制数,然后转化为ascall,从lcd液晶显示中输出。测量电压时增加了量程的选择,我采用的方法是利用外部中断6,7切换量程(量程0:
0-2.5v,量程1:0-5v)。
另外增加了报警,测量电压时对应的led灯亮,可以知道目前电压的范围,以及循环测量的功能。报警功能是通过比较模块,若超量程则蜂鸣器响;测量电压时增加了与led的连接。
3.程序框图。
超量程。循环测量
图1 总体流程图。
4.各部分程序设计。
4.1主程序及初始化程序。
main: mov wdtcn,#0deh ;关开门狗。
mov wdtcn,#0adh
mov oscxcn,#67h ;
lop: mov a,oscxcn
jnb acc.7,lop
mov oscicn,#08h系统时钟片外。
mov xbr0,#00h
mov p74out,#0f0h通用i/o口及交叉开关初始化。
orl eie2,#30h
mov xbr2,#40h
mov p1mdout,#0ffh
mov p3if,#00h中断初始化。
mov r0,#
setb ea允许总中断。
mov amx0cf,#00h
mov amx0sl,#00h
mov adc0cf,#28h
mov ref0cn,#03h
mov adc0cn,#80h ;初始化a/d
cc: lcall lcd_initlcd初始化。
lcd_init: lcall delay ;lcd初始化,写命令操作。
mov p7,#38h
mov p6,#01h
mov p6,#00h
lcall delay
mov p7,#0eh
mov p6,#01h
mov p6,#00h
lcall delay
mov p7,#
mov p6,#
mov p6,#
lcall delay
mov p7,#
mov p6,#
mov p6,#
lcall delay
ret这部分是主程序,关看门狗,选择外部振荡器作为系统时钟,晶体振荡频率大于6.7mhz。同时进行i/o口,交叉开关的初始化,由于用到外部中断来控制量程的选择,所以也对中断6.
7进行初始化,p3if=00h,中断清零,ea置一,允许总中断。然后是lcd的初始化,p6,p7在内部连接,p6产生下降沿,p7读取数据。
4.2 16进制数转化bcd数的程序。
loop1: mov r5,30h
hex2bcd:mov a,r5
anl a,#0fh
mov r1,a
mov a,r5
anl a,#0f0h
swap a
mov r6,a
mov r2,#00h
mov r3,#00h
mov r4,#00h
mov a,r1
lcall sub
mov a,r6
mov r5,a
start_1: cjne r5,#00h,dec_1
ajmp nret_1
dec_1: dec r5
mov a,#10h
lcall sub
ajmp start_1
nret_1: mov 7fh,r4
mov 7eh,r3
mov 7dh,r2
retsub: add a,r4 ;子函数开始
mov b,#0ah
div ab
mov r4,b
add a,r3
mov r3,a
mov b,#0ah
div ab
mov r3,b
add a,r2
mov r2,a
ret子函数结束
这部分程序是将在处理16进制数转化为bcd码,将近似处理的数据高4位放到r6中,低4位放r1中,将r1中的数用单片机的除法div除以10,得到的商放入r3中,余数放入r4中,再将r3中的数除以10,得到的商放入r2中,余数留在r3。每次结束后用r1+10h,r6控制加的次数。循环到r6中数据的次数时,结束加10h,得到的r2,r3,r4中的数据即为bcd码的百位,十位,个位的数。
4.3电压采集以及a/d转换。
1部分:setb ad0busy
jnb ad0int,$
clr ad0int
mov a,adc0h
mov 30h,a
mov a,adc0l
mov 31h,a
mov a,31h
anl a,#0f0h
swap a
mov 31h,a
mov a,30h
swap a
mov 30h,a
addc a,31h
mov 30h,a
lcall loop1
cjne r0,#00,m1
mov a,7dh
cjne a,#00h,lop12
mov p1,#0feh
lop12: cjne a,#01h,lop13 ;
mov p1,#0fdh
lop13: cjne a,#02h,lop14
mov p1,#0fbh
lop14: cjne a,#03h,lop15
mov p1,#0f7h
lop15: cjne a,#04h,lop16
mov p1,#0efh
lop16: cjne a,#05h,lop17
mov p1,#0dfh
lop17: clr c
subb a,#02h
jnc lop11
jc hylop11: mov a,7eh
clr csubb a,#05h
jnc bj
jc hy2部分。
m1: clr c
mov r7,#00h
mov a,7fh
l1: add a,7fh
inc r7
cjne r7,#01,l1
mov 7fh,a
mov a,7fh
mov b,#0ah
div ab
mov 5fh,b
mov 6fh,a
mov r7,#00h
单片机课程设计
可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...
单片机课程设计
目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...
单片机课程设计
1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...