单片机课程设计

发布 2022-10-05 00:22:28 阅读 1406

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 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...