C51单片机程序.doc

上传人:scccc 文档编号:12099419 上传时间:2021-12-01 格式:DOC 页数:4 大小:31.50KB
返回 下载 相关 举报
C51单片机程序.doc_第1页
第1页 / 共4页
C51单片机程序.doc_第2页
第2页 / 共4页
C51单片机程序.doc_第3页
第3页 / 共4页
C51单片机程序.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《C51单片机程序.doc》由会员分享,可在线阅读,更多相关《C51单片机程序.doc(4页珍藏版)》请在三一文库上搜索。

1、.1. 定时器实验程序:#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar temp,bai,shi,ge,aa,cnt;uchar code table=0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60;void delay(uint z);void init();void display(uchar bai,uchar shi,uchar ge);void main()init();

2、while(1)if(aa=20) aa=0; temp+; if(temp=1001) temp=0; bai=temp/100; shi=temp%100/10; ge=temp%10;display(bai,shi,ge); void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void display(uchar bai,uchar shi,uchar ge)P0=tablebai;P2=0xfe;delay(1);P0=tableshi;P2=0xfd;delay(1);P0=tablege;P2=0xfb

3、;delay(1);void init()aa=0;cnt=0;temp=0;P1=0xfe;TMOD=0X11; /T1、T0工作方式均为1TH0=(65536-50000)/256;TL0=(65536-50000)%256; /计时50msTH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;TR0=1; /使能T1,T0ET1=1;TR1=1;void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;void timer1() interrup

4、t 3TH1=(65536-50000)/256;TL1=(65536-50000)%256; cnt+;if(cnt >= 20)cnt = 0;P1=_crol_(P1,1); /流水灯2.矩阵键盘试验程序:#include <reg52.h>#include <intrins.h> #define uchar unsigned char#define uint unsigned intchar code SST5163 _at_ 0x003b;char table17= 0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20

5、,0x60,0x30,0x25,0xa9,0x26,0xa1,0xb1;uchar dis_buf,buf; uchar temp;uchar key; void delay(uchar x) /延时函数 uchar j; while(x-)!=0) for(j=0;j<125;j+); /*键扫描子程序*/void keyscan(void) P1=0x0F; delay(1);temp=P1; temp=temp&0x0F; temp=(temp|0xF0); if(temp=1) key=0; else if(temp=2) key=1; else if(temp=4) k

6、ey=2; else if(temp=8) key=3; else key=16; P1=0xF0; delay(1);temp=P1; temp=temp&0xF0; temp=(temp>>4)|0xF0); if(temp=1) key=key+0; else if(temp=2) key=key+4; else if(temp=4) key=key+8; else if(temp=8) key=key+12; else key=16; dis_buf=tablekey; /改变后键值赋给dis_bufvoid keydown(void) P1=0xF0;if(P1!=0xF0) /P1状态改变说明有键按下 keyscan(); while(P1!=0xF0); main() P0=0xFF; P2=0x7F; dis_buf=0xBF;buf = 0xBF; /备份dis_buf while(1) keydown(); P0 = dis_buf; /键值送显示 if(dis_buf!=buf) /当dis_buf改变时,说明键值改变 dis_buf=buf; P2 = _crol_(P2,1); /数码管移位显示 delay(2); ;.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1