其他答案
一、#include<reg52.h>//52单片机头文件#include <intrins.h>//包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsignedchar //宏定义sbit dula=P2^6;//数码管段选锁存端sbit wela=P2^7;////数码管位选锁存端ucha 展开
一、#include<reg52.h>//52单片机头文件#include <intrins.h>//包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsignedchar //宏定义sbit dula=P2^6;//数码管段选锁存端sbit wela=P2^7;////数码管位选锁存端uchar code table[]={ //数码管显示编码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar code point[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};uchar ct1,ct2,ct3,ct4,ct5,ct6;void display(uchar,uchar,uchar,uchar,uchar,uchar);//函数声明void delay(uint);void main(){ EA=1;TMOD=0x01;ET0=1;P0=0xff;TH0=(65536-10)/256;TL0=(65536-10)%256;TR0=1;ct1=ct2=ct3=ct4=ct5=ct6=0;while(1);}void stop() interrupt 1{ TH0=(65536-10)/256;TL0=(65536-10)%256;ct1++;display(ct6,ct5,ct4,ct3,ct2,ct1);if(ct1==10){ ct1=0;ct2++;}if(ct2==10){ ct2=0;ct3++;}if(ct3==10){ ct3=0;ct4++;}if(ct4==10){ ct4=0;ct5++;}if(ct5==10){ ct5=0;ct6++;}if(ct6==10){ ct6=0;}}void display(uchar one,uchar two,uchar three,uchar four,uchar five,uchar six){wela=1;P0=0xfe;wela=0;dula=1;P0=table[one];dula=0;delay(1);P0=0xff;wela=1;P0=0xfd;wela=0;dula=1;P0=table[two];dula=0;delay(1);P0=0xff;wela=1;P0=0xfb;wela=0;dula=1;P0=table[three];dula=0;delay(1);P0=0xff;wela=1;P0=0xf7;wela=0;dula=1;P0=point[four];dula=0;delay(1);P0=0xff;wela=1;P0=0xef;wela=0;dula=1;P0=table[five];dula=0;delay(1);P0=0xff;wela=1;P0=0xdf;wela=0;dula=1;P0=table[six];dula=0;delay(1);P0=0xff;}void delay(uint z) //延时子函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}自己改时间 -----------------------------------------------------------------二、有时钟功能,可以显示并不断刷新当前时间;并可以预先设置好响铃时间,在到达响铃时间就会响铃data segment hour dw ? ;响铃时的小时数 minute dw ? ;响铃时的分钟数 ten dw 10 s1 db 'please set the time when the clock will ring(set it as Hour:Minite): $' s2 db 'the ringing time is: $' s3 db 'current time is: $' s4 db 'Ring Ring Ring Ring Ring Ring Ring !!!!!!! $' error db 'set time error!$'data endscode segment assume cs:code,ds:data;用于清除一行的字符cleanLine proc push ax push bx push cx push dx mov cx,85 mov ah,2h mov dl,0dh int 21hclean: mov dl,' ' int 21h loop clean mov dl,0dh int 21h pop dx pop cx pop bx pop ax retcleanLine endp;用于显示一个回车换行changeline proc push ax push bx push cx push dx mov ah,2h mov dl,0dh int 21h mov dl,0ah int 21h pop dx pop cx pop bx pop ax retchangeline endpinputNegativeNumber proc;用于从键盘中接受一个十进制数,存到bx中 push ax push cx push dx mov bx,0 mov cl,0 mov ah,1 int 21h cmp al,'-' je k4k0: cmp al,30h jb k3 cmp al,39h ja k3 sub al,30h mov ah,0 xchg ax,bx push cx mov cx,10 mul cx ;考虑溢出 pop cx add bx,ax ;考虑溢出k1: mov ah,1 int 21h jmp k0 k4: mov cl,1 jmp k1k3: cmp cl,1 jne over neg bx over: pop dx pop cx pop ax retinputNegativeNumber endp outputNumber proc;输出ax中的一个数字 push ax push bx push cx push dx mov cx,0 mov bx,10 cmp ax,0 jge p0 push ax mov ah,2h mov dl,'-' int 21h pop ax neg axp0: mov dx,0 div bx push dx inc cx cmp ax,0 jnz p0 mov ah,2 cmp cx,2 jae p1 mov dx,0 push dx inc cxp1: pop dx add dx,30h int 21h loop p1 pop dx pop cx pop bx pop ax retoutputNumber endp setRingTime proc;用于设置响铃时间 push ax push bx push cx push dx mov bx,0h: mov ah,1h int 21h cmp al,30h jb wrong cmp al,32h ja wrong sub al,30h mov ah,0 xchg ax,bx mul ten add bx,ax mov ah,1h int 21h cmp al,30h jb wrong cmp al,39h ja wrong sub al,30h mov ah,0 xchg ax,bx mul ten add bx,ax mov hour,bx mov ah,1h int 21h cmp al,':' jnz wrong mov bx,0m: mov ah,1h int 21h cmp al,30h jb wrong cmp al,36h jae wrong sub al,30h mov ah,0 xchg ax,bx mul ten add bx,ax mov ah,1h int 21h cmp al,30h jb wrong cmp al,39h ja wrong sub al,30h mov ah,0 xchg ax,bx mul ten add bx,ax mov minute,bx jmp o wrong: call changeline call changeline mov ah,9h lea dx,error int 21h mov ah,4ch int 21ho: pop dx pop cx pop bx pop ax retsetRingTime endpshowRingTime proc;用于显示响铃时间 push ax push bx push cx push dx lea bx,hour mov ax,[bx] call outputNumber mov ah,2h mov dl,':' int 21h add bx,2 mov ax,[bx] call outputNumber pop dx pop cx pop bx pop ax retshowRingTime endpgetTime proc;用于截取系统时间 push ax mov bx,0 mov ah,2ch int 21h mov al,ch mov ah,0 cmp ax,hour je e1g1: call outputNumber mov ah,2h mov dl,':' int 21h mov ah,0 mov al,cl cbw cmp minute,ax je e2g2: call outputNumber mov ah,2h mov dl,':' int 21h mov ah,0 mov al,dh cbw call outputNumber jmp ed e1: inc bx jmp g1e2: inc bx jmp g2 ed: pop ax ret getTime endpdelay proc;用于延时0.5秒 push ax waiting: in al,61h and al,10h cmp al,ah je waiting mov ah,al loop waiting pop ax retdelay endpaSecond proc;用于延时1秒 push ax push bx push cx push dx mov bl,2back: mov cx,33144 call delay dec bl jnz back pop dx pop cx pop bx pop ax retaSecond endpmain proc far push ds sub ax,ax push ax mov ax,data mov ds,ax ;输出设置响铃时间的提示 mov ah,9h lea dx,s1 int 21h call setRingTime call cleanLine;清除屏幕上光标所在这一行上的字符串,并把光标移动到行首 mov ah,9h lea dx,s2 int 21h call showRingTime ;输出设置好的响铃时间 call changeline call changeline time: ;用于每过一秒种刷新一次显示的时间 mov ah,9h lea dx,s3 int 21h call getTime cmp bx,2 ;如果bx=2则已经到了设定的响铃时间 je ring call aSecond mov ah,2h mov dl,0dh int 21h jmp time ring: ;响铃 call changeline call changeline call changeline mov ah,9h lea dx,s4 int 21h mov cx,40last: mov ah,2h mov dl,07h int 21h call aSecond call aSecond call aSecond loop last finish: retmain endpcode ends end main 收起
2010-09-19 06:54
来自北京市
赞(0)点赞赞(0)举报
发布评论
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。
相关问题
- 1回答 自动修改系统时间的软件有哪些?
- 2回答 能不能修改自动还款的扣款日期?
- 3回答 能不能修改自动还款的扣款日期?
- 2回答 全自动洗衣机怎么改时间?全自动洗衣机修改时间技巧?
- 1回答 我在售楼处出现的视频被开发商截图并修改日期和时间。
- 1回答 开发商要求修改合同延迟交付房屋交付日期5个月,是否可以申请退房?退回首付款+这段时间利息;
- 1回答 开发商要求修改合同延迟交付房屋交付日期5个月,是否可以申请退房?退回首付款+这段时间利息;
- 1回答 开发商要求修改合同延迟交付房屋交付日期5个月,是否可以申请退房?退回首付款+这段时间利息;
- 1回答 全境封锁1.6套装修改需要多少钱呢?全境封锁1.6套装修改你有没有知道的网友可以回答我一下呢?最近一段时间我的一个朋友家里边他们想做一个套装,但是不知道这个具体的价格。
- 1回答 熟悉公积金提取的仁兄请进。本人父母2011年5月利用住房公积金贷款购买了一套55万商品房,并凭购房合同提取了住房公积金帐户里面的余额,现在正常还贷中,每***供接近5千(其中住房公积金每月自动划账4千)。现本人一次性付款购买了一套商品房(本人住房公积金之前从未使用过),如果我凭商品房买卖合同提取了合同备案日期当月的住房公积金余额后,能否再以父母所购买的商品房买卖合同办理每半年提取一次公积金帮父母还贷呢?如果可以每半年提取一次的话,每次提取的是我帐户里面的所有余额,直至父母贷款的本息结清,还是只能补差额提取每月1000元呢?
相关知识
- 揭秘土地使用年限:如何实现自动续期的可能性?
- 楼市政策还会放松吗?房产市场新旧模式转换怎样?
- 房屋买卖合同签订后可否修改?内行告诉你细节!
- 土地闲置两年自动作废,开发商如何应对?
- 违规装修改结构要小心:严重者或面临百万罚款!
- 哪些房贷利率可以在1月1日调整?房贷利率下调是自动调整吗?
- 抵押贷款还清后解押流程有哪些?房贷还清房子会自动解押吗?
- 房产证有电子版吗?房产证还完贷款才能拿到吗?
- 银行解除抵押流程是怎样的?贷款还清后会自动解除抵押吗?
- 熊猫电线是中国一线品牌吗?装修改水电要注意什么?
- 业主房产证到手发现土地剩8年到期,房屋产权到期后自动续期吗?
- 房产七十年产权到期后怎么办?房屋产权到期是自动续签吗?
- 房屋产权年限期满可自动续期吗?买没有房产证的房子有什么风险?
- 点军区电子信息产业园白马路东侧怎么样 点军区电子信息产业园白马路东侧二手房出售
- 川北电子城怎么样 川北电子城是哪个开发商
- 家居风水,这个位置千万不要挂时钟,会造成不吉利
- 征信有贷款逾期会影响买房贷款吗?看完不敢忘记日期了
- 中国电子西部智谷1期怎么样 中国电子西部智谷1期房价走势
- 时钟摆设催旺客厅风水
回答成功




