黑客24小时在线接单网站

诚信黑客,黑客接单平台,专业黑客在线接单,信誉黑客接单,黑客高手

51单片机在线接单网站(个人接单的单片机网站)

本文导读目录:

单片机怎样能接单

做做大学生期末作品之类的,会51单片机就行了。常用的一些传感器和模块会用就行,比如什么温湿度啊,超声波测距啊,心率检测啊之类的。

做一些毕业设计基本都要上stm32,或者esp32之类32位的单片机。51的也可以,只不过做不出什么比较高级的东西。stm32要会摄像头识别啊,rtos啊之类的。这样什么智能手环,车牌识别都可以做了。

如果是接公司的单,基本都要用上linux了。linux我还没学,下个月有生活费要买个板子开始学了。

51单片机学习网站6个以上 要求:网站页面广告要少

电子发烧友 http://bbs.elecfans.com/

单片机教程网http://www.51hei.com/

再针对性要求,请XXXXX百度一下

我想学习51单片机该去什么网站

学习单片机光看书是不行的,要与实物相结合,可以到淘宝上买一块开发版,也就几十到一百,配套的光盘里面都有视频讲解的。遇到不懂的问题可以在一些单片机Q群里面询问,也可以在论坛上查找问题。这类的论坛一抓一大把

求好的51单片机学习网站

强烈推荐之一: 小刚之家:bes.8u8.com

(这是一个非常不错的网站,从廉价的编程器,到KILE的汉化版,再到种类齐全的免费学习和应用软件和资料,可见站长的良苦用心。我的编程器就是在这里买的,非常不错!)

强烈推荐之二: 单片机爱好者://www.mcufan.com

强烈推荐之三: 单片机学习网:www.mcustudy.com

(以上这两个有不少学习资料供浏览和下载。)

强烈推荐之四: 电子制作实验室:www.xie-gang.com

(这里有单片机学习的网上教程,连载哟!)

强烈推荐之五: 51单片机://www.mcu51.com

(这可是大名鼎鼎的哟!她的论坛在单片机世界的影响就象HELLOCQ在HAM中的影响一样。)

强烈推荐之六: 哦,没有了! :D :D :D

衷心祝愿单片机爱好者及学习者们马到成功!!!(我也是正在学习中的菜鸟哟! ;) )

哪位高手可以指点给小可一个学习51单片机的网站啊?

单片机学习站:http://www.c51.cn/Article/index.html

51单片机学习资料区:http://www.c51.cn/Article/mcuwljc/Index.html

各类单片机编程仿真软件:http://www.c51.cn/soft/ShowClass.asp?ClassID=43

51单片机网站

这是我根据自己的单片机设计的程序。请根据自己的需要修改各个参数。

org 0000H

ajmp begin

org 000BH;时钟中断0入口

mov tl0,#00000B;每次中断设初值

mov th0,#110B

ajmp time0;转跳到定时器0子程序

org 0040H

begin:;初始化部分

;设置变量RAM位置

x equ 50H

y equ 51H

z equ 52H

times equ 53H;此变量是中断次数,只有中断250次,才能积累2M个机器周期,即1秒钟,

rtimes equ 54H

wtimes1 equ 55H

wtimes2 equ 56H

;设置字型码

mov 60H,#005H;0

mov 61H,#0DDH;1

mov 62H,#046H;2

mov 63H,#054H;3

mov 64H,#09CH;4

mov 65H,#034H;5

mov 66H,#024H;6

mov 67H,#05DH;7

mov 68H,#004H;8

mov 69H,#014H;9

mov 5FH,#0FEH;-

;设置各LED位数字的RAM单元

n8 equ 71H

n7 equ 72H

n6 equ 73H

n5 equ 74H

n4 equ 75H

n3 equ 76H

n2 equ 77H

n1 equ 78H

;设置数位选线的位置

l8 bit p3.0

l7 bit p3.6

l6 bit p3.5

l5 bit p3.7

l4 bit p3.1

l3 bit p3.2

l2 bit p3.3

l1 bit p3.4

;设置定时器

setb ea

setb et0

mov th0,#11111111B

mov tl0,#11111B

clr tr0

mov p3,#00H

start:;r2-小时/r3-分钟/r4-秒/r1是按键的值,无按键时为10H

mov r2,#00

mov r3,#00

mov r4,#00

;第3、6位显示横线“-”

mov n6,5FH

mov n3,5FH

main:;主程序

mov r1,#10H;r1赋10H,没按键

acall chcut;调用r2-r4值转换为字型码并存入n1-n8的子程序

acall show;扫描一遍LED

acall key;调用键盘扫描子程序(此程序在51dz提供的程序上略加修改,保留注释)

jb tr0,walkstop;若在走时,不允许调时,跳到walkstop

cjne r1,#4,s2;若r1不是4则跳到下一个计时部分s2(下同)

acall hinc;调用小时加1子程序

acall chcut

acall longdelay;调用长延时子程序

ajmp main;此次设置完成,跳到主程序

s2:

cjne r1,#5,s3

acall minc;调用分钟加1子程序

acall chcut

acall longdelay

ajmp main;此次设置完成,跳到主程序

s3:

cjne r1,#6,s4

acall sinc;调用秒加1子程序

acall chcut

acall longdelay

ajmp main;此次设置完成,跳到主程序

s4:

cjne r1,#7,s5

acall hdec;调用小时减1子程序

acall chcut

acall longdelay

ajmp main;此次设置完成,跳到主程序

s5:

cjne r1,#8,s6

acall mdec;调用分钟减1子程序

acall chcut

acall longdelay

ajmp main;此次设置完成,跳到主程序

s6:

cjne r1,#9,s7

acall sdec;调用秒减1子程序

acall chcut

acall longdelay

ajmp main;此次设置完成,跳到主程序

s7:

cjne r1,#0,walkstop

mov r2,#0;时分秒清0

mov r3,#0H

mov r4,#0H

acall chcut

acall longdelay

ajmp main;此次设置完成,跳到主程序

walkstop:

cjne r1,#11,s0

acall stop;调用停止走时子程序

ajmp main;此次设置完成,跳到主程序

s0:

cjne r1,#12,main

acall walk;调用开始走时子程序

ajmp main;此次设置完成,跳到主程序

;以下是子程序

show:;扫描子程序

mov p1,n8;将第8位数字型码送上P1(下同)

setb l8;使第8位LED亮

acall delay;调用扫描延时子程序

clr l8;使第8位LED灭

mov p1,n7

setb l7

acall delay

clr l7

mov p1,n6

setb l6

acall delay

clr l6

mov p1,n5

setb l5

acall delay

clr l5

mov p1,n4

setb l4

acall delay

clr l4

mov p1,n3

setb l3

acall delay

clr l3

mov p1,n2

setb l2

acall delay

clr l2

mov p1,n1

setb l1

acall delay

clr l1

ret

hdec:

cjne r2,#0,hdnext;如果小时不是0就到hdnext

jnb tr0,hskip;小时是0且tr0是0即不在计时,到hskip

acall warning;小时是0且tr0是1即在计时,就调用报警子程序

clr tr0;停止计时

ret;返回

hskip:mov r2,#100;小时是0又不在计时,就让r2赋100,到下一些条减1后就是59

hdnext:dec r2;如果小时不是0就到这里减1

ret

mdec:;分钟减1子程序

cjne r3,#00,mdnext;如果分钟不是0就到minext

mov r3,#60;如果分钟是0就到变为60,到下一些条减1后就是59

acall hdec;从小时退位

mdnext:dec r3;如果分钟不是0就到这里减1

ret

sdec:;秒减1子程序

cjne r4,#00,sdnext;如果秒不是0就到sdnext

mov r4,#60;如果秒是0就到变为60,到下一些条减1后就是59

acall mdec;从分钟退位

sdnext:dec r4;如果秒不是0就到这里减1

ret

hinc:;小时加1子程序

cjne r2,#99,hinext;如果小时不是99就到hinext

mov r2,#255;如果小时是23就到变为255,到下一些条加1后就是0

hinext:inc r2;如果小时不是99就到这里加1

ret

minc:

cjne r3,#59,minext;如果分钟不是23就到minext

mov r3,#255;如果分钟是59就到变为255,到下一些条加1后就是0

acall hinc;分钟满,向小时进位

minext:inc r3;如果分钟不是59就到这里加1

ret

sinc:

cjne r4,#59,sinext;如果秒不是23就到sinext

mov r4,#255;如果是秒是59就到变为255,到下一些条加1后就是0

acall minc;秒满,向分钟进位

sinext:inc r4;如果秒不是59就到这里加1

ret

chcut:;将r2-r4值转换为字型码并存入n1-n8的子程序

mov a,r2;小时值送Acc(下同)

mov b,#10;B赋10

div ab;AB相除,此时A是小时的十位,B是小时的个位

mov n7,b;小时的个位B送第七位数

mov n8,a;小时的十位A送第八位数

mov a,r3;分解分钟到第四、五位数

mov b,#10

div ab

mov n4,b

mov n5,a

mov a,r4;分解秒到第一、二位数

mov b,#10

div ab

mov n1,b

mov n2,a

;以下开始转换各数位的二进制数到字型码(第6、3位是横线,由定时器控制有无)

mov a,n8;第8位数送Acc(下同)

add a,#60H;Acc加60H,此时Acc中值所指的RAM地址中为第8位数的字型码

mov r0,a;Acc送r0

mov n8,@r0;r0间接地址送回n8

mov a,n7;转换第7位数

add a,#60H

mov r0,a

mov n7,@r0

mov a,n5;转换第5位数

add a,#60H

mov r0,a

mov n5,@r0

mov a,n4;转换第4位数

add a,#60H

mov r0,a

mov n4,@r0

mov a,n2;转换第2位数

add a,#60H

mov r0,a

mov n2,@r0

mov a,n1;转换第1位数

add a,#60H

mov r0,a

mov n1,@r0

ret

longdelay:;长延时子程序

mov r6,#0FFH

reshow1:acall show

djnz r6,reshow1

mov r6,#0FFH

reshow2:acall show

djnz r6,reshow2

ret

delay:;扫描延时子程序

mov r5,#40H

djnz r5,$

ret

ringdelay:mov r5,#0FFH

djnz r5,$

ret

time0:;定时器0子程序

push Acc;Acc压栈

mov a,times;已中断次数送Acc

inc a;次数加1

mov times,a;加1后送回次数变量

cjne a,#250,gotoend;如果Acc不是250说明不到1秒,跳过加秒操作

mov times,#0;是250说明到1秒了,次数变量清0

mov n6,#0FFH;第3、6位清除横线“-”

mov n3,#0FFH

acall sdec;调用秒减1子程序

ajmp next;退出

gotoend:cjne a,#125,next;若Acc不是125就退出

mov n6,5FH;若是125就给第3、6位显示5FH中的字型码横线“-”

mov n3,5FH

next:pop Acc;退出时,从栈中弹出Acc

reti;此程序中次数在0-124就不显示横线,在125-250就显示横线

walk:;开始走时子程序

setb tr0

ret

stop:;停止走时子程序

clr tr0

ret

warning:;报警子程序

;放入-FINISH-字型码

mov n8,#0FEH;-

mov n7,#02EH;F

mov n6,#0DDH;I

mov n5,#00DH;N

mov n4,#0DDH;I

mov n3,#034H;S

mov n2,#08CH;H

mov n1,#0FEH;-

mov wtimes1,#50;设置蜂鸣次数50次

res1:mov wtimes2,#08FH;一次蜂鸣开始

res2:clr p2.0;从此句开始蜂鸣器发声

mov p3,#0H;LED熄灭

mov r6,#5;扫描延时子程序延时太短,要重复5次

redelay:acall delay;此2句重复5次

djnz r6,redelay

setb p2.0

djnz wtimes2,res2;转到RES2让蜂鸣器发声,转wtimes2次,即8FH次

mov p3,#0H;从此句开始蜂鸣器不发声

mov r7,#08FH;LED扫描次数

reshow:acall show

djnz r7,reshow;LED扫描08FH次,即不发声延时

djnz wtimes1,res1;到RES1开始一次蜂鸣

finish:acall show;这两句使LED显示,并进入死循环

ajmp finish

key:mov p0,#00001111b;上四位和下四位分别为行和列,所以送出高低电压检查有没有按键按下

jmp k10;跳到K10处开始扫描,这里可以改成其它条件转移指令来决定本次扫描是否要继续,例如减1为0转移或者位为1或0才转移,这主要用来增加功能,确认上一按键功能是否完成?是否相当于经过了延时?是否要封锁键盘?

goend:jmp kend;如果上面判断本次不执行键盘扫描程序,则立即转到程序尾部,不要浪费CPU的时间

k10:jb p0.0,k20;扫描正式开始,先检查列1四个键是否有键按下,如果没有,则跳到K20检查列2

k11:mov p0,#11101111b;列1有键按下时,P0.0变低,到底是那一个键按下?现在分别输出各行低电平

jb p0.0,k12;该行的键不按下时,p0.0为高电平,跳到到K12,检查其它的行

mov r1,#13;如果正好是这行的键按下,将寄存器R0写下1,表示1号键按下了

k12:mov p0,#11011111b

jb p0.0,k13

mov r1,#15;如果正好是这行的键按下,将寄存器R0写下2,表示2号键按下了

k13:mov p0,#10111111b

jb p0.0,k14

mov r1,#0;如果正好是这行的键按下,将寄存器R0写下3,表示3号键按下了

k14:mov p0,#01111111b

jb p0.0,kend;如果现在四个键都没有按下,可能按键松开或干扰,退出扫描(以后相同)

mov r1,#14;如果正好是这行的键按下,将寄存器R0写下4,表示4号键按下了

jmp kend;已经找到按下的键,跳到结尾吧

k20:jb p0.1,k30;列2检查为高电平再检查列3、4

k21:mov p0,#11101111b;列2有健按下时,P0.0会变低,到底是那一行的键按下呢?分别输出行的低电平

jb p0.1,k22;该行的键不按下时p0.0为高电平,跳到到K22,检查另外三行

mov r1,#12;如果正好是这行的键按下,将寄存器R0写下5,表示5号键按下了(以后相同,不再重复了)

k22:mov p0,#11011111b

jb p0.1,k23

mov r1,#9

k23:mov p0,#10111111b

jb p0.1,k24

mov r1,#8

k24:mov p0,#01111111b

jb p0.1,kend

mov r1,#7

jmp kend;已经找到按下的键,跳到结尾吧(以后相同,不要重复了)

k30:jb p0.2,k40

k31:mov p0,#11101111b

jb p0.2,k32

mov r1,#11

k32:mov p0,#11011111b

jb p0.2,k33

mov r1,#6

k33:mov p0,#10111111b

jb p0.2,k34

mov r1,#5

k34:mov p0,#01111111b

jb p0.2,kend

mov r1,#4

jmp kend

k40:jb p0.3,kend

k41:mov p0,#11101111b

jb p0.3,k42

mov r1,#10

k42:mov p0,#11011111b

jb p0.3,k43

mov r1,#3

k43:mov p0,#10111111b

jb p0.3,k44

mov r1,#2

k44:mov p0,#01111111b

jb p0.3,kend

mov r1,#1

kend: ret

end

51单片机STM8/32项目发布在

我是一个很差的二本学校毕业的,合肥师范学院的,全国700多名,可以讲倒数了,而且在师范类学的还是电子,可想有多差了,当时同学,都在为找工作犯愁。我于是耐下心跟着吴鉴鹰的教程学,刚开始很痛苦,但是后来慢慢的学会了不少知识。

要不是看了吴鉴鹰老师的教程,现在估计在干操作工了 。

我毕业前,跟这吴鉴鹰的教程学习了三个月,后来找了一个研发的工作,当时我们系100人,找到研发工作的也就三个,大部分都是在一线干操作工,干那种小学生就能干的

活。

当时吴鉴鹰的板子名气不是很大,我也是一个学长给我讲的,说用他的板子很好,可以学习到很多的项目经验,对找工作帮助很大。我用了,收获确实蛮大的。

回答这么多,不是为了积分,只是希望我也帮助几个人。

  • 评论列表:
  •  黑客技术
     发布于 2022-06-01 21:04:56  回复该评论
  • 本次不执行键盘扫描程序,则立即转到程序尾部,不要浪费CPU的时间k10:jb p0.0,k20;扫描正式开始,先检查列1四个键是否有键按下,如果没有,则跳到K20检查列2k11:mov p0,#11101111b;列1有键按下时,P0.0
  •  黑客技术
     发布于 2022-06-01 15:09:10  回复该评论
  • 56H;设置字型码mov 60H,#005H;0mov 61H,#0DDH;1mov 62H,#046H;2mov 63H,#054H;3mov 64H,#09CH;4mov 65H,#034H;5mov 66H,#024H;6mov 67H,#05DH;7mov 68H,#004H
  •  黑客技术
     发布于 2022-06-01 14:21:44  回复该评论
  • lkstopcjne r1,#4,s2;若r1不是4则跳到下一个计时部分s2(下同)acall hinc;调用小时加1子程序acall chcutacall longdelay;调用长延时子程序ajmp main;此次设置完成,跳到主程序s2:cjn
  •  黑客技术
     发布于 2022-06-01 21:27:10  回复该评论
  • v abmov n4,bmov n5,amov a,r4;分解秒到第一、二位数mov b,#10div abmov n1,bmov n2,a;以下开始转换各数位的二进制数到字型码(第6、3位是横线,由定时器

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.