单片机课程设计

发布 2022-10-04 20:56:28 阅读 5050

一、4x4矩阵键盘p1

二、单片机和pc的串口通信………p5

三、a/d转换p8

四、d/a转换p13

五、串行lcd显示p16

六、电机控制p19

七、温湿度检测p26

八、心得体会p35

一、项目名称。

4x4矩阵键盘。

二、 项目要求。

通过单片机编程来实现对4x4矩阵键盘中各个按键位置的确认,即按下某个按键后要在数码管上显示出此键对应的编号(编号依次为0——9,a——f)。

三、 硬件线路图。

四、 部分程序。

org 0000h

mov p3,#00h

l5: mov r3,#00h

mov r1,#0feh

l0: mov p1,r1

l6: jb p2.0,l1

acall delay

jb p2.0,l1

jnb p2.0,$

acall delay

mov r2,#

ajmp l7

l1: jb p2.1,l2

acall delay

jb p2.1,l2

jnb p2.1,$

acall delay

mov r2,#

ajmp l7

l2: jb p2.2,l3

acall delay

jb p2.2,l3

jnb p2.2,$

acall delay

mov r2,#

ajmp l7

l3: jb p2.3,l4

acall delay

jb p2.3,l4

jnb p2.3,$

acall delay

mov r2,#

ajmp l7

l4: inc r3

mov a,r1

jnb acc.3,l5

rl amov r1,a

ajmp l0

l7: mov a,r2

add a,r3

mov dptr,#tab

movc a,@a+dptr

mov p0,a

ajmp l6

delay: mov r7,#

mov r6,#0ffh

djnz r6,$

djnz r7,$-4

rettab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h, 83h,0c6h,0a1h,86h,8eh

end一、 项目名称。

单片机和pc的串口通信。

二、 项目要求。

单片机发送0——9,a——f对应的ascii码,pc机接收后显示(单片机只发送一次,不循环)。

三、 硬件线路图。

四、 部分程序。

org 0000h

ajmp main

org 0023h

ajmp sbr1

org 0100h

main: mov sp,#60h

mov tmod,#20h

mov th1,#0e8h

mov tl1,#0e8h

setb ea

setb es

setb tr1

mov scon,#50h

mov dptr,#tab

mov r7,#00h

mov a,r7

movc a,@a+dptr

acall st

sjmp $

sbr1: clr ti

inc r7

mov a,r7

movc a,@a+dptr

acall st

cjne r7,#15,l0

clr es

clr ea

l0: reti

st: mov c,p

cpl cmov acc.7,c

mov sbuf,a

rettab: db 48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70

end附:运行结果。

一、 项目名称。

a/d转换

二、 项目要求。

单片机控制adc0809进行模数转换,外接发光二极管用来观察数据的变动,同时将数据发送给pc显示(模拟量电压为0v——5v)。

三、硬件线路图。

四、部分程序。

#include<>

#define uchar unsigned char

#define voldata p0

uchar dat;

sbit adr_a=p2^0;

sbit adr_b=p2^1;

sbit adr_c=p2^2;

sbit adr_ale=p2^3;

sbit oe=p2^4;

sbit eoc=p2^5;

sbit st=p2^6;

/初始化子程序。

void init_com(void)

tmod=0x21;

pcon=0x00;

scon=0x50;

th1=0xfd;

tl1=0xfd;

tr1=1;

ea=1;es=1;

/ad转换子程序,返回转换得到的 8 位数字量。

uchar getvol(uchar adr)

uchar volnumber=0;

unsigned int i,n=1000;

voldata=1p0置为1,为读入数据做准备。

oe=0;adr_ale=0;

adr_a=!(adr&0x01));

adr_b=!(adr&0x02));

adr_c=!(adr&0x04));

adr_ale=1;

st=0;for(i;i<20;i延时,给硬件反应时间。

st=1start上升沿清除ad内部寄存器。

for(i;i<20;i延时,给硬件反应时间。

st=0start下降沿启动adc开始转换。

while(n延时,给硬件转换时间。

while(!eoc);

oe=1;volnumber=voldata;

/ oe=0;

return(volnumber);

/主函数。void main()

init_com();

while(1)

一、 项目名称。

d/a转换。

二、 项目要求。

单片机控制dac0832进行数模转换,产生方波、锯齿波和三角波输出(三种波形可通过按键进行切换)。

三、硬件线路图。

四、部分程序。

org 0100h

mov dptr,#7fffh

mov r7,#

l5: jb p1.5,l6方波

clr aloop: movx @dptr,a

l0: acall del1s

djnz r7,l0

cpl ajnb p1.4,l5p1.4 复位。

ajmp loop

l6: jb p1.6,l7锯齿波。

mov a,#00h

lp: movx @dptr,a

inc aacall del1s

jnb p1.4,l5

ajmp lp

l7: jb p1.7,l5三角波。

clr a

l1: movx @dptr,a

acall del1s

inc ajnb p1.4,l5

cjne a,#0ffh,l1

l2: movx @dptr,a

acall del1s

dec ajnb p1.4,l5

jnz l2

jnb p1.4,l5

ajmp l1

del1s: mov r3,#

d1: mov r4,#

d2: mov r5,#

d3: djnz r5,d3

nopdjnz r4,d2

djnz r3,d1

retend

附:运行结果。

一、项目名称。

串行lcd显示。

二、项目要求。

单片机控制mzlh04-12864型串行lcd花样显示字样,整个字样组合整体从液晶屏最上方移到最下方,而后从最下方移到最上方时变更字样为显示,如此循环。

三、 硬件线路图。

四、 部分程序。

#include "lcd_"

int main(void)

unsigned char y;

lcd_init();

setbacklight(0设置背光的亮度等级为0

clrscreen();

setbacklight(100设置背光打开

while(1) /死循环。

for(y=0;y<15;y++)

for(y=15;y>0;y--)

一、 项目名称。

电机控制。二、项目要求。

1、通过pwm方式改变占空比从而达到直流电动机调速的目的。有两个按键:一个用于增大占空比使直流电动机转速变快,另一个用于减小占空比使直流电动机转速变慢。

2、要求用单片机对四相步进电机进行四相单四拍、四相八拍的步进控制(即四相通电的顺序为a—b—c—d与a—ab—b—bc—c—cd—d—da)。

三、 硬件线路图。

1、直流电动机调速。

2、异步电动机。

四、 部分程序。

1、直流电动机调速程序清单。

org 0000h

ajmp main

org 0013h

ajmp int_1

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

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