单片机高手们谁会用汇编语言实现0~99间的计数、暂停、清零程序。对初学者实在是太难了。大神帮帮忙吧! 实现0到99之间的加数和减数功能的代码,谁会,帮解决下,谢谢...

2\u4e2a\u6570\u7801\u7ba1\u7528\u6309\u952e\u63a7\u5236\u5355\u7247\u673a\u5b9e\u73b0\u81ea\u52a8\u52a0\u51cf,\u6e05\u96f6\u57280\u201399\u4e4b\u95f4\u663e\u793a\uff0c\u7684\u7a0b\u5e8f

\u4e0b\u9762\u8fd9\u4e2a\u521a\u597d\u53ef\u4ee5\uff0c\u53ea\u5c11\u4e00\u4e2a\u51cf\u8ba1\u6570\uff1a
http://zhidao.baidu.com/question/1798279664316263987

\u8fd9\u662f0-99\u7684\u52a01\u663e\u793a\uff0c\u51cf\u6cd5\u53ef\u4ee5\u6548\u4eff\u3002
#include "reg51.h"
#define uchar unsigned char
uchar display_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar display_data[8]={0,0,0,0,0,0,0,0};
void delay(void)
{
uchar i;
for(i=250;i>0;i--);
}
void display()
{
uchar i,k;
k=0x80;
for(i=0;i<8;i++)
{
P2=0;
P0=display_code[display_data[i]];
P0=~P0;
P2=k;
k=k>>1;
delay();
}
P2=0;
}
void calc()
{
display_data[7]++;
if(display_data[7]>9)
{
display_data[7]=0;
display_data[6]++;
if(display_data[6]>9)
{
display_data[6]=0;
}
}
}
void main(void)
{
uchar i;
while(1)
{
for(i=0;i<250;i++)
{
display();
}
calc();
}
}

;---------------------------------------
;http://zhidao.baidu.com/question/485975186.html
;0.0 ~ 9.9
;P0, P2静态显示
;设系统晶振为12MHz。
;按键连接在P3.5,
;按一下,计时,再按一下,停止,再按一下,清零。
;---------------------------------------
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
;---------------------------------------
ORG 0100H
INIT: ;初始化
MOV P0, #3FH
MOV P2, #3FH
MOV R1, #0
MOV R2, #0
MOV R3, #20
MOV DPTR, #TAB ;表首址送DPTR
MOV TMOD, #01H
MOV TL0, #(65536 - 5000) MOD 256
MOV TH0, #(55536 - 5000) / 256
CLR TR0
CLR P3.6
RET
;---------------------------------------
MAIN:
CALL INIT
MOV R4, #255
SETB ET0
SETB EA
;---------------------------------------
M_LOOP:
JB P3.5, M_LOOP
CALL DLY
JB P3.5, M_LOOP
JNB P3.5, $
INC R4
CJNE R4, #3, M1
MOV R4, #0
M1: CJNE R4, #2, M2
CALL INIT
SJMP M_LOOP
M2: CPL TR0
SJMP M_LOOP
;---------------------------------------
T0_INT:
MOV TL0, #(65536 - 5000) MOD 256
MOV TH0, #(55536 - 5000) / 256
DJNZ R3, T0_E
MOV R3, #20
INC R1
CJNE R1, #10, T0_1
MOV R1, #0
INC R2
CJNE R2, #10, T0_2
MOV R2, #0
MOV P0, #06H
MOV P2, #3FH
SETB P3.6
CLR TR0
MOV R4, #1
RETI
T0_2:
MOV A, R2 ;显示十位
MOVC A, @A + DPTR
SETB ACC.7
MOV P0, A
T0_1:
MOV A, R1 ;显示个位
MOVC A, @A + DPTR
MOV P2, A
T0_E:
RETI
;---------------------------------------
TAB: DB 3FH, 06H, 5BH, 4FH, 66H;0~4
DB 6DH, 7DH, 07H, 7FH, 6FH;5~9
;---------------------------------------
DLY:
MOV R6, #20 ;10ms延时.
D1: MOV R7, #248
DJNZ R7, $
DJNZ R6, D1
RET
;---------------------------------------
END

参考:
http://hi.baidu.com/do_sermon/item/4f921002214f03dbdde5b0c3

ORG 0000H

LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
ABLE: ; 共阴极数码管显示代码表
DB 3FH,06H,5BH,4FH,66H ;12345
DB 6DH,7DH,07H,7FH ;6789
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
MOV TH0,#HIGH (65536-50000)
MOV TL0,#LOW (65536-50000)
SETB EA
SETB ET0
MOV R2,#0
LOOP:
JB P3.5,$
LCALL DELAY
JB P3.5,LOOP
JNB P3.5,$
INC R2
LOOP1:
MOV A,R2
JNZ LOOP2
SETB TR0
SJMP LOOP
LOOP2:
DEC A
JNZ LOOP3
CLR TR0
SJMP LOOP
LOOP3:
MOV R2,#0
MOV R3,#0
MOV R4,#0
CLR TR0
SJMP LOOP
DELAY:
MOV R6,#20
DELAY1:
MOV R7,#250
DJNZ R7,$
DJNZ R6,DELAY1
RET
T0ISR:
CLR TR0
MOV TH0,#HIGH (65536-50000)
MOV TL0,#LOW (65536-50000)
SETB TR0

INC R0
MOV A,R0
CJNE A,#20,T0E
MOV R0,#0
INC R1
MOV A,R1
CJNE A,#100,T0ISR1
T0ISR1:
JC,T0ISR2
MOV A,#0
T0ISR2:
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
T0E:
RETI
END

  • 鍗曠墖鏈洪珮鎵嬩滑璋佷細鐢ㄦ眹缂栬瑷瀹炵幇0~99闂寸殑璁℃暟銆佹殏鍋溿佹竻闆剁▼搴忋傚鍒濆...
    绛旓細;http://zhidao.baidu.com/question/485975186.html ;0.0 ~ 9.9 ;P0, P2闈欐佹樉绀 ;璁剧郴缁熸櫠鎸负12MHz銆;鎸夐敭杩炴帴鍦≒3.5锛;鎸変竴涓嬶紝璁℃椂锛屽啀鎸変竴涓嬶紝鍋滄锛屽啀鎸変竴涓嬶紝娓呴浂銆;--- ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ;--- ORG 0100H INIT: ;鍒濆鍖 MOV ...
  • 鍝綅楂樻墜鑳戒笉鑳藉府鎴鐢ㄦ眹缂栬瑷缂栧啓涓涓▼搴,灏辨槸琛ㄧず鍑烘枑娉㈤偅濂戞暟鍒楃殑鍓...
    绛旓細MOV SI,DI ;涓哄悗闈㈠垽鏂緭鍏ョ殑鏄笉鏄彧杈撳叆涓涓暟鏈夌敤 MOV CX,DI L2: PUSH AX SUB BYTE PTR DS:[DI+1],30H MUL BYTE PTR DS:[DI+1]ADD RESULT,AX POP AX MUL BL DEC DI LOOP L2 ;鍒嗕袱绉嶆儏鍐碉細1.杈撳叆鐨勬槸1锛2.杈撳叆鐨勪笉鏄1 CMP SI,1 JNZ L7 CMP BYTE PTR RESULT,1 JNZ L7 ...
  • 鍗曠墖鏈洪珮鎵甯繖涓涓
    绛旓細姹囩紪锛氭渶鎺ヨ繎纭欢锛岀敤瀹冪紪绋嬪簭锛屽彲浠ュ湪缂栫▼鐨勬椂鍊欙紝鏇村姞娣卞鍗曠墖鏈鍐呴儴缁撴瀯鐨勪簡瑙o紝鑰屼笖姹囩紪鐨勫疄鏃舵уソ锛屼絾鏄彲璇绘у樊锛岀▼搴忛暱锛屽缂栫▼鑰鐨勬眹缂栬瑷鐨勬按骞虫湁杈冮珮鐨勮姹 C璇█:缂栫▼杈冨鏄擄紝绋嬪簭鐭紝鍙鎬у己锛岀湅瀹炴椂鎬ф病鏈夋眹缂栧ソ锛屾帶鍒剁‖浠朵篃涓嶆兂姹囩紪閭d箞鎺ヨ繎纭欢 鏈汉璁や负锛氫簩鑰呯殕鏈夊ソ鐨勪竴鏂归潰锛屾垜寤鸿...
  • AT89C51鍗曠墖鏈烘眹缂栬瑷鍐欎釜鎺у埗鐢靛姩鏈烘鍙嶈浆鐨绋嬪簭
    绛旓細涓嶇敤涓柇锛屽氨琛屻;ORG 0000H
  • PIC鍗曠墖鏈烘眹缂栫殑瀛︿範鏂规硶
    绛旓細鍙槸鍐呴儴鐨勫瘎瀛樺櫒涓嶄竴鏍凤紝瀛︿細閫氳繃datasheet璧勬枡鏉ヨ嚜鎴戝涔狅紝閭f槸鏈閲嶈鐨勶紝姣曠珶鍗曠墖鏈涓昏鎶撲綇鐨勬槸涓浜涚畝鍗曠殑鎺у埗绯荤粺锛屾眹缂栨寚浠や篃鏄渶瑕佺湅鐨勶紝涓嶈繃瀵逛簬鐢ㄦ眹缂栬瑷缂栧啓鐨勮瘽锛屽浜庝唬鐮佺殑绉绘鎬ф瘮杈冧綆锛屽缓璁瓑姹囩紪绋嬪簭鐪嬫噦浜嗕箣鍚庯紝閲囩敤C璇█缂栧啓锛屾瘯绔熶富娴佽繕鏄疌璇█鍢涳紝鑰屼笖鏂逛究澶у鐨勪氦娴侊紝...
  • 鎬庝箞鎴愪负璁$畻鏈楂樻墜
    绛旓細1銆姹囩紪璇█鍜孋璇█鍦鍗曠墖鏈鍙婂伐鎺ч鍩熺敤杈冨銆傚彟澶朇璇█涔熸槸涓绉嶉氱敤璇█,鏄C++/c#鐨勮捣鐐广 2銆丆++绯荤粺缂栫▼绛夊涓柟闈,鏈甯哥敤鐨勭紪璇戝櫒鏄疺C銆 3銆丆#/java缃戠粶缂栫▼鏂归潰鏂板叴鐨勩 4銆乂B閫氱敤銆 5銆佽繕鏈塂elphi绛夈傘傘 涓汉寤鸿:浠庢湭缂栬繃绋嬬殑,灏变粠瀛b寮濮嬨傛湁鍩虹鐨勫彲鐩存帴瀛++/VC銆 === 鍥涖佹湁...
  • 鎯虫繁鍏ュ涔姹囩紪
    绛旓細鈥︹︹﹀弽姝f眹缂栨湁鐢ㄧ殑鍦版柟寰堝銆傚鏋滄兂鏇村鐨勭煡閬姹囩紪鐨鐢ㄥ鐨勮瘽锛屽缓璁綘鍘粀ww.pediy.com鐨勮鍧涢噷浜嗚В浜嗚В锛岀湅鐪嬮偅閲鐨勯珮鎵嬩滑鏄庝箞杩愮敤姹囩紪鐨勩傚鏋滄兂鎼炵‖浠剁殑璇濓紝姹囩紪涔熸槸绂讳笉寮鐨勩傝姹囩紪杩囨椂鐨勪汉锛屾槸閭d簺浜烘湰韬姹囩紪涓嶄簡瑙g殑鍘熷洜銆傚ソ涔呮病涓婄煡閬撲簡锛岃鐨勬湁鐐瑰浜嗐傚懙鍛点
  • 姹囩紪璇█鐨勯珮鎵杩泘!
    绛旓細lodsb ;璇诲叆瀹為檯杈撳叆鐨勫瓧绗︿釜鏁 test al,0ffh jz Exit_Proc ;鑻ョ洿鎺ュ洖杞︼紝鏈緭鍏ヤ换浣曞瓧绗︼紝鍒欑粨鏉绋嬪簭锛岃繑鍥炴搷浣滅郴缁 xor ah,ah ;绱姞鍣ㄩ珮浣嶅瓧鑺傛竻闆 mov cx,ax Encoding: lodsb ;璇诲叆涓涓瓧绗 mov ah,al and ah,0dfh ;鍋囧畾杩欎釜瀛楃涓哄瓧姣嶏紝灏嗗皬鍐欏彉涓哄ぇ鍐 cmp ah,'A'jb @@Next...
  • 姹囩紪澶т緺楂樻墜浠杩涘憪~~
    绛旓細int 21h ;鏈鍚庝細灏嗚緭鍏ュ瓧绗︾殑ascii杩斿洖缁檃l cmp al,31h ;31h涓烘暟瀛1鐨刟scii jz exit ;濡傛灉鏄1,閫鍑绋嬪簭 mov dl,al ;mov ah,2 ;21h鐨02鍙峰姛鑳 鍦ㄥ睆骞曡緭鍑篸l涓殑瀛楃 int 21 exit: mov ah,4ch ;璋冪敤21h鐨4ch 閫鍑虹▼搴 int 21h main endp code ends end main --- ...
  • 缂栫▼楂樻墜杩涘惂 璋簡
    绛旓細C璇█鏄疍ennis Ritchie鍦ㄤ竷鍗佸勾浠e垱寤虹殑锛屽畠鍔熻兘鏇村己澶т笖涓嶢LGOL淇濇寔鏇磋繛缁殑缁ф壙鎬э紝鑰孉LGOL鍒欐槸COBOL鍜孎ORTRAN鐨勭粨鏋勫寲缁ф壙鑰呫侰璇█琚璁℃垚涓涓瘮瀹冪殑鍓嶈緢鏇寸簿宸с佹洿绠鍗曠殑鐗堟湰锛屽畠閫備簬缂栧啓绯荤粺绾х殑绋嬪簭锛屾瘮濡傛搷浣滅郴缁熴傚湪姝や箣鍓嶏紝鎿嶄綔绯荤粺鏄浣跨敤姹囩紪璇█缂栧啓鐨勶紝鑰屼笖涓嶅彲绉绘銆侰璇█鏄涓涓娇寰楃郴缁...
  • 扩展阅读:十大编程语言排名 ... 万用表编码器判断好坏 ... 国产十大编码器 ... 电机编码器坏了表现 ... 为什么不建议孩子学编程 ... 8一3优先编码器真值表 ... 编程语言排名2024 ... 指令大全可复制免费 ... 编码器坏了电机还转吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网