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