导航:首页 > 操作系统 > 单片机课程设计pdf

单片机课程设计pdf

发布时间:2023-06-17 22:33:25

Ⅰ 51单片机项目教程 C语言版 高清带书签(吴险峰)pdf,哪里可以下载

《51单片机项目教程C语言版 赠单片机开发板.pdf》(选择普通下载即可!

1、找到这本资料,美中不足就是没有书签,凑合看吧;

2、手机浏览器网页端登 陆 或 PC电脑端登 陆,即可查看、下载;

3、文件有时效性,若失效或下载问题,留言;

Ⅱ 单片机课程设计

刚给一个兄弟做的

KEYVAL EQU30H

KEYTM EQU31H

KEYSCAN EQU32H

DAT EQU33H

SCANLED EQU39H

CLK EQU77H

SEC EQU78H

MIN EQU79H

HOUR EQU7AH

PAUSE BIT00H

DOT BIT01H

ORG0000H

LJMPMAIN

ORG000BH

LJMPT0ISR ;50ms定时

ORG001BH

LJMPT1ISR ;扫描显示

ORG0030H

MAIN:

MOVSP,#5FH

MOVTMOD,#11H

MOVTH0,#03CH

MOVTL0,#0B0H

MOVTH1,#0ECH

MOVTL1,#078H

MOVKEYVAL,#0

MOVSCANLED,#0

MOV33H,#10H

MOV34H,#10H

MOV35H,#10H

MOV36H,#10H

MOV37H,#10H

MOV38H,#10H

MOVSEC,#0

MOVMIN,#0

MOVHOUR,#0

MOVCLK,#0

CLRPAUSE

SETBEA

SETBET1

SETBTR1

LOOP:

LCALLKEYSEL

MOVA,KEYVAL

CJNEA,#0FFH,LOOP1

SJMPLOOP

LOOP1:

CJNEA,#10,LOOP2 ;“ON”启动

SETBTR0

SETBET0

SETBPAUSE

SJMPLOOP

LOOP2:

CJNEA,#11,LOOP3 ;“=”清零

MOVSEC,#0

MOVMIN,#0

MOVHOUR,#0

LCALLDISCHG

SJMPLOOP

LOOP3:

CJNEA,#15,LOOP4 ;“+”暂停

CLRTR0

CLRET0

CLRPAUSE

SJMPLOOP

LOOP4:

CJNEA,#14,LOOP5 ;“-”清显示暂停

MOV33H,#10H

MOV34H,#10H

MOV35H,#10H

MOV36H,#10H

MOV37H,#10H

MOV38H,#10H

CLRTR0

CLRET0

CLRPAUSE

SJMPLOOP

LOOP5:

CJNEA,#10,LOOP6 ;数字键

LOOP6:

JCLOOP7

LJMPLOOP

LOOP7:

JNBPAUSE,LOOP8 ;暂停状态可以输入数字键

LJMPLOOP

LOOP8:

MOV33H,34H

MOV34H,35H

MOV35H,36H

MOV36H,37H

MOV37H,38H

MOV38H,KEYVAL

MOVA,34H

SWAPA

ORLA,33H

LCALLBCDH

MOVHOUR,A

MOVA,36H

SWAPA

ORLA,35H

LCALLBCDH

MOVMIN,A

MOVA,38H

SWAPA

ORLA,37H

LCALLBCDH

MOVSEC,A

LJMPLOOP

;------------------

;BCD转换为十六进制

BCDH:

MOVB,#10H

DIVAB

MOVR7,B

MOVB,#10

MULAB

ADDA,R7

RET

;------------------

;十六进制转换为BCD

HBCD:

MOVB,#10

DIVAB

SWAPA

ORLA,B

RET

;------------------

KEYSEL:

MOV KEYVAL,#0

MOV KEYSCAN,#0EFH

LCALL GETKEY

MOV A,KEYTM

JZ KEYS1

MOV KEYVAL,A

SJMP KEYRTN

KEYS1:

MOV KEYSCAN,#0DFH

LCALL GETKEY

MOV A,KEYTM

JZ KEYS2

CLR C

ADD A,#4

MOV KEYVAL,A

SJMP KEYRTN

KEYS2:

MOV KEYSCAN,#0BFH

LCALL GETKEY

MOV A,KEYTM

JZ KEYS3

CLR C

ADD A,#8

MOV KEYVAL,A

SJMP KEYRTN

KEYS3:

MOV KEYSCAN,#7FH

LCALL GETKEY

MOV A,KEYTM

JZ KEYRTN

CLR C

ADD A,#12

MOV KEYVAL,A

KEYRTN:

LCALLCHGKEY

RET

;--------------------

GETKEY:

MOVKEYTM,#0

MOV A,KEYSCAN

MOV P3,A

NOP

MOV A,P3

ANL A,#0FH

XRL A,#0FH

JZ NOKEY

MOVR2,#10

LCALLDELAY

MOV A,P3

ANL A,#0FH

XRL A,#0FH

JZ NOKEY

MOV A,P3

ANL A,#0FH

MOV R7,A

SF:

MOV A,P3

ANL A,#0FH

XRL A,#0FH

JNZ SF

MOV A,R7

CJNE A,#0EH,NK1

MOV KEYTM,#1

SJMP NOKEY

NK1:

CJNE A,#0DH,NK2

MOV KEYTM,#2

SJMP NOKEY

NK2:

CJNE A,#0BH,NK3

MOV KEYTM,#3

SJMP NOKEY

NK3:

CJNE A,#07H,NOKEY

MOV KEYTM,#4

NOKEY: RET

;--------------------

DELAY:

MOVR3,#50

DELAY1:

MOVR4,#100

DJNZR4,$

DJNZR3,DELAY1

DJNZR2,DELAY

RET

;--------------------

T0ISR:

PUSHACC

CLRTR0

MOVTH0,#3CH

MOVTL0,#0B0H

SETBTR0

INCCLK

MOVA,CLK

CJNEA,#20,T0ISRE

MOVCLK,#0

INCSEC

MOVA,SEC

CJNEA,#60,T0ISRE

MOVSEC,#0

INCMIN

MOVA,MIN

CJNEA,#60,T0ISRE

MOVMIN,#0

INCHOUR

MOVA,HOUR

CJNEA,#24,T0ISRE

MOVSEC,#0

MOVMIN,#0

MOVHOUR,#0

T0ISRE:

LCALLDISCHG

POPACC

RETI

;--------------------

DISCHG:

MOVA,HOUR

LCALLHBCD

PUSHACC

ANLA,#0FH

MOV34H,A

POPACC

ANLA,#0F0H

SWAPA

MOV33H,A

MOVA,MIN

LCALLHBCD

PUSHACC

ANLA,#0FH

MOV36H,A

POPACC

ANLA,#0F0H

SWAPA

MOV35H,A

MOVA,SEC

LCALLHBCD

PUSHACC

ANLA,#0FH

MOV38H,A

POPACC

ANLA,#0F0H

SWAPA

MOV37H,A

RET

;--------------------

T1ISR:

PUSHACC

CLRTR1

MOVTH1,#0ECH

MOVTL1,#78H

SETBTR1

MOVDPTR,#LEDTAB

T100:

MOVR0,#DAT

MOVA,SCANLED

ADDA,R0

MOVR0,A

MOVA,SCANLED

JNZT101

MOVP2,#01H

CLRDOT

SJMPT1DIS

T101:

DECA

JNZT102

MOVP2,#02H

SETBDOT

SJMPT1DIS

T102:

DECA

JNZT103

MOVP2,#04H

CLRDOT

SJMPT1DIS

T103:

DECA

JNZT104

MOVP2,#08H

SETBDOT

SJMPT1DIS

T104:

DECA

JNZT105

MOVP2,#10H

CLRDOT

SJMPT1DIS

T105:

MOVP2,#20H

CLRDOT

T1DIS:

MOVA,@R0

MOVCA,@A+DPTR

JNBDOT,T1DIS1

ORLA,#01H

T1DIS1:

CPLA

MOVP0,A

INCSCANLED

MOVA,SCANLED

CJNEA,#6,T1END

MOVSCANLED,#0

T1END:

POPACC

RETI

;--------------------

CHGKEY:

MOVA,KEYVAL

JZKV16

DECA

JNZKV01

MOVKEYVAL,#7

RET

KV01:

DECA

JNZKV02

MOVKEYVAL,#4

RET

KV02:

DECA

JNZKV03

MOVKEYVAL,#1

RET

KV03:

DECA

JNZKV04

MOVKEYVAL,#10

RET

KV04:

DECA

JNZKV05

MOVKEYVAL,#8

RET

KV05:

DECA

JNZKV06

MOVKEYVAL,#5

RET

KV06:

DECA

JNZKV07

MOVKEYVAL,#2

RET

KV07:

DECA

JNZKV08

MOVKEYVAL,#0

RET

KV08:

DECA

JNZKV09

MOVKEYVAL,#9

RET

KV09:

DECA

JNZKV10

MOVKEYVAL,#6

RET

KV10:

DECA

JNZKV11

MOVKEYVAL,#3

RET

KV11:

DECA

JNZKV12

MOVKEYVAL,#11

RET

KV12:

DECA

JNZKV13

MOVKEYVAL,#12

RET

KV13:

DECA

JNZKV14

MOVKEYVAL,#13

RET

KV14:

DECA

JNZKV15

MOVKEYVAL,#14

RET

KV15:

DECA

JNZKV16

MOVKEYVAL,#15

RET

KV16:

MOVKEYVAL,#0FFH

RET

;--------------------

LEDTAB: DB0FCH ;"0" 00H

DB60H ;"1" 01H

DB0DAH ;"2" 02H

DB0F2H ;"3" 03H

DB66H ;"4" 04H

DB0B6H ;"5" 05H

DB0BEH ;"6" 06H

DB0E0H ;"7" 07H

DB0FEH ;"8" 08H

DB0F6H ;"9" 09H

DB0EEH ;"A" 0AH

DB3EH ;"B" 0BH

DB9CH ;"C" 0CH

DB7AH ;"D" 0DH

DB9EH ;"E" 0EH

DB8EH ;"F" 0FH

DB00H ;"" 10H

;--------------------

Ⅲ 51单片机课程设计

ORG 0000H LJMP START ORG 0040H START: MOV SP,#60H LCALL STATUS0 ;初始状态(都是红灯) CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLE STATUS0: ;南北红灯,东西红灯 MOV DPTR,#8300H MOV A,#0FH MOVX @DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY RET STATUS1: ;南北绿灯,东西红灯 MOV DPTR,#08300H MOV A,#96H ;南北绿灯,东西红灯 MOVX @DPTR,A MOV R2,#200 ;延时20秒 LCALL DELAY RET STATUS2: ;南北绿灯闪转黄灯,东西红灯 MOV DPTR,#8300H MOV R3,#03H ;绿灯闪3次 FLASH: MOV A,#9FH MOVX @DPTR,A MOV R2,#03H LCALL DELAY MOV A,#96H MOVX @DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH MOV A,#06H ;南北黄灯,东西红灯 MOVX @DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY RET STATUS3: ;南北红灯,东西绿灯 MOV DPTR,#8300H MOV A,#69H MOVX @DPTR,A MOV R2,#200 ;延时20秒 LCALL DELAY RET STATUS4: ;南北红灯,东西绿灯闪转黄灯 MOV DPTR,#8300H MOV R3,#03H ;绿灯闪3次 FLASH1: MOV A,#6FH MOVX @DPTR,A MOV R2,#03H LCALL DELAY MOV A,#69H MOVX @DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 MOV A,#09H ;南北红灯,东西黄灯 MOVX @DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY NOP RET DELAY: ;延时子程序 PUSH 2 PUSH 1 PUSH 0 DELAY1: MOV 1,#00H DELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2;延时 100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END 没有问题。

Ⅳ 《从零开始学单片机技术》pdf下载在线阅读,求百度网盘云资源

《从零开始学单片机技术》(刘建清)电子书网盘下载免费在线阅读

资源链接:

链接:

提取码:qw2e

书名:从零开始学单片机技术

作者:刘建清

出版社:国防工业

出版年份:2006-8

页数:356

内容简介:

本书以实战操作为基础,用最简单的方法,将初学者领进单片机世界的大门。本书首先介绍了单片机的基础知识,然后简要阐述了单片机的指令系统、简单程序设计、存储器和I/0接口扩展、中断、定时器以及串行通信技术,最后对单片机常用接口技术(LED显示接口、键盘接口、LCD液晶接口、SPI总线接口和看门狗电路、12C总线接口、红外遥控接口、语音接口、A/D和D/A转换接口)和单片机的应用系统设计进行了精要介绍。

本书附赠光盘一张,光盘中包含有Keil、MedWin中文版软件以及书中所有实验的源程序。书中提供的所有实验均具有较高的实用性和代表性,且全部通过了实验板验证。

本书可供电子技术人员、单片机爱好者、业余电子爱好者阅读,也可作为相关专业的教学用书或教学参考书使用。

Ⅳ 求解单片机课程设计,简易按键操作游戏。原理及其材料

单片机的外部结构:1.DIP40双列直插;52.P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平)3.电源VCC(PIN40)和地线GND(PIN20);4.高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位)5.内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍)6.程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序)7.P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务)1.四个8位通用I/O端口,对应引脚P0、P1、P2和P3;2.两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1)3.一个串行通信接口;(SCON,SBUF)4.一个中断控制器;(IE,IP)针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。C语言编程基础:1.十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。2.如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。3.++var表示对变量var先增一;var—表示对变量后减一。4.x|=0x0f;表示为x=x|0x0f;5.TMOD=(TMOD&0xf0)|0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。6.While(1);表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;}在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)代码1.#include//该头文档中有单片机内部资源的符号化定义,其中包含P1.32.voidmain(void)//void表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.{4.P1_3=1;//给P1_3赋值1,引脚P1.3就能输出高电平VCC5.While(1);//死循环,相当LOOP:gotoLOOP;6.}注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。在某引脚输出低电平的编程方法:(比如P2.7引脚)代码1.#include//该头文档中有单片机内部资源的符号化定义,其中包含P2.72.voidmain(void)//void表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.{4.P2_7=0;//给P2_7赋值0,引脚P2.7就能输出低电平GND5.While(1);//死循环,相当LOOP:gotoLOOP;6.}在某引脚输出方波编程方法:(比如P3.1引脚)代码1.#include//该头文档中有单片机内部资源的符号化定义,其中包含P3.12.voidmain(void)//void表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.{4.While(1)//非零表示真,如果为真则执行下面循环体的语句5.{6.P3_1=1;//给P3_1赋值1,引脚P3.1就能输出高电平VCC7.P3_1=0;//给P3_1赋值0,引脚P3.1就能输出低电平GND8.}//由于一直为真,所以不断输出高、低、高、低……,从而形成方波9.}将某引脚的输入电平取反后,从另一个引脚输出:(比如P0.4=NOT(P1.1))代码1.#include//该头文档中有单片机内部资源的符号化定义,其中包含P0.4和P1.12.voidmain(void)//void表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.{4.P1_1=1;//初始化。P1.1作为输入,必须输出高电平5.While(1)//非零表示真,如果为真则执行下面循环体的语句6.{7.if(P1_1==1)//读取P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC8.{P0_4=0;}//给P0_4赋值0,引脚P0.4就能输出低电平GND2008-11-2110:57回复chen33chen10位粉丝2楼9.else//否则P1.1输入为低电平GND10.//{P0_4=0;}//给P0_4赋值0,引脚P0.4就能输出低电平GND11.{P0_4=1;}//给P0_4赋值1,引脚P0.4就能输出高电平VCC12.}//由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平13.}将某端口8个引脚输入电平,低四位取反后,从另一个端口8个引脚输出:(比如P2=NOT(P3))代码1.#include//该头文档中有单片机内部资源的符号化定义,其中包含P2和P32.voidmain(void)//void表示没有输入参数,也没有函数返值,这入单片机运行的复位入口3.{4.P3=0xff;//初始化。P3作为输入,必须输出高电平,同时给P3口的8个引脚输出高电平5.While(1)//非零表示真,如果为真则执行下面循环体的语句6.{//取反的方法是异或1,而不取反的方法则是异或07.P2=P3^0x0f//读取P3,就是认为P3为输入,低四位异或者1,即取反,然后输出8.}//由于一直为真,所以不断将P3取反输出到P29.}注意:一个字节的8位D7、D6至D0,分别输出到P3.7、P3.6至P3.0,比如P3=0x0f,则P3.7、P3.6、P3.5、P3.4四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0四个引脚都输出高电平。同样,输入一个端口P2,即是将P2.7、P2.6至P2.0,读入到一个字节的8位D7、D6至D0。第一节:单数码管按键显示单片机最小系统的硬件原理接线图:1.接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF2.接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF3.接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理4.接配置:EA(PIN31)。说明原因。发光二极的控制:单片机I/O输出将一发光二极管LED的正极(阳极)接P1.1,LED的负极(阴极)接地GND。只要P1.1输出高电平VCC,LED就正向导通(导通时LED上的压降大于1V),有电流流过LED,至发LED发亮。实际上由于P1.1高电平输出电阻为10K,起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K=0.4mA。只要P1.1输出低电平GND,实际小于0.3V,LED就不能导通,结果LED不亮。开关双键的输入:输入先输出高一个按键KEY_ON接在P1.6与GND之间,另一个按键KEY_OFF接P1.7与GND之间,按KEY_ON后LED亮,按KEY_OFF后LED灭。同时按下LED半亮,LED保持后松开键的状态,即ON亮OFF灭。代码1.#include2.#defineLEDP1^1//用符号LED代替P1_13.#defineKEY_ONP1^6//用符号KEY_ON代替P1_64.#defineKEY_OFFP1^7//用符号KEY_OFF代替P1_75.voidmain(void)//单片机复位后的执行入口,void表示空,无输入参数,无返回值6.{7.KEY_ON=1;//作为输入,首先输出高,接下KEY_ON,P1.6则接地为0,否则输入为18.KEY_OFF=1;//作为输入,首先输出高,接下KEY_OFF,P1.7则接地为0,否则输入为19.While(1)//永远为真,所以永远循环执行如下括号内所有语句10.{11.if(KEY_ON==0)LED=1;//是KEY_ON接下,所示P1.1输出高,LED亮12.if(KEY_OFF==0)LED=0;//是KEY_OFF接下,所示P1.1输出低,LED灭13.}//松开键后,都不给LED赋值,所以LED保持最后按键状态。14.//同时按下时,LED不断亮灭,各占一半时间,交替频率很快,由于人眼惯性,看上去为半亮态15.}数码管的接法和驱动原理一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据

Ⅵ 单片机课程设计

P1口接一个数码管,一个按键可以接在P3.2作外部中断。

Ⅶ 单片机课程设计!不要复制百度!高分悬赏!!

1.单片机控制的60s倒计时
这个太简单了,不用什么提示吧?硬件上只要单片机最小系统加上数码管两个,程序上只要设置好定时器就行.
2. 基于单片机的电子钟设计
这个要复杂一点.大概要单片机+数码管+实时时钟芯片如DS系列(ds1302加要电池)+存储芯片如24C02,当然驱动数码管的如译码器或锁存器也要有.
实在说你第一个设计网上能找到现成的,第二个设计网上也能找到现成的,不过要你自己使用keil、proteus软件综合调试仿真,这两个内容都有,自己动手网络一下吧,不要太依赖别人.毕竟这样才能提高一下你自己.

阅读全文

与单片机课程设计pdf相关的资料

热点内容
华为手机怎么去除app标记未读信息 浏览:852
java监控文件夹 浏览:803
群控服务器主机怎么转变普通电脑 浏览:705
手机怎么调整app大小 浏览:453
加密门禁卡揭秘 浏览:137
词释pdf 浏览:991
安卓手机上如何停止自动续费 浏览:880
加密编码摘要 浏览:785
疫情命令党 浏览:496
java转sql 浏览:705
android获取apn 浏览:74
phpfpm进程池 浏览:793
解压掏耳朵音频 浏览:675
爬香山解压 浏览:952
算法导论回溯 浏览:343
开盘指标源码查询 浏览:528
有道云保存服务器出错 浏览:641
生成360文件夹 浏览:1006
图库的文件夹是哪个 浏览:507
程序员为什么药学日语 浏览:425