程序.docx

上传人:b****5 文档编号:6716158 上传时间:2023-01-09 格式:DOCX 页数:46 大小:24.97KB
下载 相关 举报
程序.docx_第1页
第1页 / 共46页
程序.docx_第2页
第2页 / 共46页
程序.docx_第3页
第3页 / 共46页
程序.docx_第4页
第4页 / 共46页
程序.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

程序.docx

《程序.docx》由会员分享,可在线阅读,更多相关《程序.docx(46页珍藏版)》请在冰豆网上搜索。

程序.docx

程序

*0-7动态显示*/

#include//头文件

#include//头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint//宏定义

uintaa,temp,bai,shi,ge,bb;//定义变量

/*数码管显示0-9*/

uintcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*子函数声明*/

voiddelay(uintz);

/*主函数*/

voidmain()

{

uinti;//定义变量

while

(1)//进入死循环

{

temp=0x7f;//定义初值

for(i=0;i<4;i++)

{

P0=temp;

temp=(temp>>1)|0x80;

P2=table[i+1];

delay(6);

}

}

}

/*延时子函数延时1us*/

voiddelay(uintz)

{

uinti,j;

for(i=0;i

for(j=0;j<110;j++);

}

/*0-7动态显示*/

#include//头文件

#include//头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint//宏定义

uintaa,temp,bai,shi,ge,bb;//定义变量

/*数码管显示0-9*/

uintcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*子函数声明*/

voiddelay(uintz);

/*主函数*/

voidmain()

{

uinti;//定义变量

while

(1)//进入死循环

{

temp=0x7f;//定义初值

for(i=0;i<4;i++)//循环

{

P0=temp;//P0位选赋初值

temp=_cror_(temp,1);//位选右移

P2=table[i+1];//段选显示数字

delay(6);//延时

}

}

}

/*延时子函数延时1us*/

voiddelay(uintz)

{

uinti,j;

for(i=0;i

for(j=0;j<110;j++);

}

共阴:

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

共阳:

ucharcodetable[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

#include//头文件

#include//头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint//宏定义

uchartemp;

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

voiddelay(uintz);

voidmain()

{

uinti,j;

P0=0xff;//初始化P0口

P2=0xff;//初始化P2口

while

(1)

{

P0=0x7f;

for(i=0;i<15;i++)

{

for(j=0;j<50;j++)

{

P0=0x7f;

P2=table[i];//第一个数码管滚动

delay(5);

P0=0xbf;

P2=table[i+1];//第二个数码管滚动

delay(5);

P0=0xdf;

P2=table[i+2];//第三个数码管滚动

delay(5);

P0=0xef;

P2=table[i+3];//第三个数码管滚动

delay(5);

}

}

}

}

voiddelay(uintz)

{

uinti,j;

for(i=0;i

for(j=0;j<100;j++);

}

#include//头文件

#include//头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint//宏定义

sbitclk=P1^0;

sfr16DPTR=0x82;

bitstatus_F=1;

uintaa,temp,qian,bai,shi,ge,bb,wan,shiwan;//定义变量

/*数码管显示0-9*/

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/*子函数声明*/

voiddelay(uintz);

voidinit();

voiddisplay(uintshiwan,uintwan,uintqian,uintbai,uintshi,uintge);

voidxtimer0();

voidxint0();

voidclok();

/*主函数*/

voidmain()

{

P0=0XFF;

init();//定时器初始化

while

(1)

{

//clok();

if(aa==20)//定时20*50MS=1S

{

aa=0;//定时完成一次后清0

status_F=1;

TR0=0;TR1=0;//关闭T0,T1

DPL=TL1;//计数量的低8位

DPH=TH1;//计数量的高8位

temp=DPTR;//计数值放入变量SHU

if(temp==65535)

{

display(1,1,1,0,0,0);

}

shiwan=temp%1000000/100000;

wan=temp%100000/10000;

qian=temp%10000/1000;//显示千位

bai=temp%1000/100;//显示百位

shi=temp%100/10;//显示十位

ge=temp%10;//显示个位

}

display(shiwan,wan,qian,bai,shi,ge);

}

}

/*定时器0初始化*/

voidinit()

{

temp=0;//变量赋初值

aa=0;

IE=0X8A;

TMOD=0x51;//T0为定时器工作于方式1,T1为计数器工作于方式1

TH0=0x4c;//定时器赋高8初值,11.0952M晶振

TL0=0x00;//定时器赋低8初值,11.0952M晶振

TR0=1;//开定时器0

TH1=0;

TL1=0;

TR1=1;

}

/*显示子函数*/

voiddisplay(uintshiwan,uintwan,uintqian,uintbai,uintshi,uintge)

{

P0=0xfe;

P2=table[shiwan];//显示shiwan位

delay(5);

P0=0xfd;

P2=table[wan];//显示wan位

delay(5);

P0=0xfb;

P2=table[qian];//显示千位

delay(5);

P0=0xf7;

P2=table[bai];//显示百位

delay(5);

P0=0xef;

P2=table[shi];//显示十位

delay(5);

P0=0xdf;

P2=table[ge];//显示个位

delay(5);

}

/*定时中断子函数*/

voidxtimer0()interrupt1

{

TH0=0x4c;//定时器赋高8初值

TL0=0x00;//定时器赋低8初值

aa++;

}

/*延时子函数*/

voiddelay(uintz)

{

uinti,j;

for(i=0;i

for(j=0;j<110;j++);

}

voidclok()

{

clk=0;

delay(10);

clk=1;

delay(10);

}

#include//头文件

#include//头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint//宏定义

uchartt,num;//定义变量

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

voiddelay(uintz);//子函数声明

voidexter0();//子函数声明

voidmain()

{

tt=0;//赋初值

num=0;//赋初值

TMOD=0x01;//定时器0为工作方式1

TH0=0x3c;//低8位赋初值,定时50MS

TL0=0x06;//高8位赋初值,定时50MS

EA=1;//开启总中断

ET0=1;//开启定时器0中断模式

TR0=1;//启动定时器0

P0=0x0f;//位选

P2=0x3f;//位选

while

(1)

{

if(tt==20)//满20次计数一次,20*50MS=1S

{

tt=0;//如满20次清0重新计数

num++;//num累加,

if(num==9)num=0;//计数次数.

P2=table[num];//显示

}

}

}

/*中断子函数*/

voidexter0()interrupt1

{

TH0=0x3c;//低8位赋初值,定时50MS

TL0=0x06;//高8位赋初值,定时50MS

tt++;//累加

}

/*延时子函数*/

voiddelay(uintz)

{

uinti,j;

for(i=0;i

for(j=0;j<150;j++);

51独立按键

#include//头文件

#include//头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint//宏定义

sbitK1=P3^2;

sbitK2=P3^3;

sbitK3=P3^4;

sbitK4=P3^5;

sbitK5=P3^6;

sbitK6=P3^7;

voiddelayms(ucharms);

ucharscan_key();

voidproc_key(ucharkey_v);

/*********************************************************

延时子程序

*********************************************************/

voiddelayms(unsignedcharms)

{

unsignedchari;

while(ms--)

{

for(i=0;i<120;i++);

}

}

/********************************************************

扫描健盘函数

********************************************************/

ucharscan_key()

{

ucharkey_s;

key_s=0x00;

key_s|=K6;

key_s<<=1;

key_s|=K5;

key_s<<=1;

key_s|=K4;

key_s<<=1;

key_s|=K3;

key_s<<=1;

key_s|=K2;

key_s<<=1;

key_s|=K1;

returnkey_s;

}

/********************************************************

健功能函数

********************************************************/

voidproc_key(ucharkey_s)

{

if((key_s&0x01)==0)

{

P0=0X00;

P2=0X06;

}

elseif((key_s&0x02)==0)

{

P0=0X00;

P2=0X5B;

}

elseif((key_s&0x04)==0)

{

P0=0X00;

P2=0X4F;

}

elseif((key_s&0x08)==0)

{

P0=0X00;

P2=0X66;

}

elseif((key_s&0x10)==0)

{

P0=0X00;

P2=0X6d;

}

elseif((key_s&0x20)==0)

{

P0=0X00;

P2=0X7D;

}

}

/*********************************************************

主函数

*********************************************************/

main()

{

ucharkey_s,key_v;

key_v=0x0f;

P0=0xfe;

P2=0xfe;

while

(1)

{

key_s=scan_key();

if(key_s!

=key_v)

{

delayms(10);//延时去抖动

key_s=scan_key();//再次判健是否按下

if(key_s!

=key_v)

{

key_v=key_s;

proc_key(key_s);

}

}

}

}

/*

*******************************************************/

51独立按键显示0-9

/*按键显示累加*/

#include//头文件

#include//头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint//宏定义

/*数码管显示0-f*/

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

sbitkey1=P3^4;//初始化按键

ucharnum;//定义变量

voiddelay(uintz);

voidmain()

{

P0=0xfe;//P0口赋初值

P2=0x3f;

P3=0xff;//P3口赋初值

while

(1)

{

if(key1==0)//判断按键是否被按下

{

delay(5);//消抖

if(key1==0)//再次判断按键是否被按下

{

while(!

key1);//判断按键是否被按下

delay(10);//延时

while(!

key1);//判断按键是否被按下

num++;//按下一次加1

if(num==16)//判断是否按满10

{

num=0;//如按满10,清0

}

P2=table[num];//显示数字

}

}

}

}

/*延时子函数延时1MS*/

voiddelay(uintz)

{

uinti,j;

for(i=0;i

for(j=0;j<120;j++);

}

1602液晶显示

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitlcden=P1^2;//使能端E为P1^2口

sbitlcdrw=P1^1;//读/写选择端RW为P1^1口

sbitlcdrs=P1^0;//数据/指令选择端RS为P1^0口

ucharconsttable[]="Ilikedanpianji";

ucharconsttable1[]="";

voiddelay(uintz);//延时子函数声明

voidwrite_com(ucharcom);//写指令子函数声明

voidwrite_date(uchardate);//写数据子函数声明

voidinit();//LCD初始化子函数声明

voidmain()

{

uinti;

init();

write_com(0x80+0x10);

delay(3);

for(i=0;i<16;i++)

{

write_date(table[i]);

delay(3);

}

write_com(0x80+0x51);

delay(3);

for(i=0;i<14;i++)

{

write_date(table1[i]);

delay(3);

}

for(i=0;i<24;i++)

{

write_com(0x1c);

delay(300);

}

delay(3000);

write_com(0x01);

write_com(0x80+0x10);

delay(3);

for(i=0;i<16;i++)

{

write_date(table[i]);

delay(3);

}

write_com(0x80+0x51);

delay(3);

for(i=0;i<14;i++)

{

write_date(table1[i]);

delay(3);

}

for(i=0;i<16;i++)

{

write_com(0x18);

delay(300);

}

delay(3000);

}

/*初始化子程序*/

voidinit()

{

write_com(0X38);//显示光标//

delay(3);

write_com(0X01);//清屏//

delay(3);

write_com(0X0c);//显示光标闪动

delay(3);

write_com(0X06);//显示字符加1

delay(3);

}

/*写指令*/

voidwrite_com(ucharcom)

{

lcdrs=0;//RS为0时进行指令模块

lcdrw=0;//RW为0时进行写操作

P0=com;//输入指令

lcden=1;//E为使能端

delay(5);//延时

lcden=0;//E为使能端

}

/*写数据*/

voidwrite_date(uchardate)

{

lcdrs=1;//RS为0时进行数据模块

lcdrw=0;//RW为0时进行写操作

P0=date;//输入数据

lcden=1;//E为使能端

delay(5);//延时

lcden=0;//E为使能端

}

/*延时子函数*/

voiddelay(uintz)

{

uinti,j;

for(i=0;i

for(j=0;j<110;j++);

}

1602显示光标

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitlcden=P1^2;//使能端E为P1^2口

sbitlcdrw=P1^1;//读/写选择端RW为P1^1口

sbitlcdrs=P1^0;//数据/指令选择端RS为P1^0口

voiddelay(uintz);//延时子函数声明

voidwrite_com(ucharcom);//写指令子函数声明

voidwrite_date(uchardate);//写数据子函数声明

voidinit();//LCD初始化子函数声明

voidmain()

{

init();//LCD初始化

write_date('1');//显示1

delay(3);

write_date('2');//显示2

while

(1);

}

/*初始化子程序*/

voidinit()

{

write_com(0X38);//显示光标//

delay(3);

write_com(0X01);//清屏//

delay(3);

write_com(0X0f);//显示光标闪动

delay(3);

write_com(0X06);//显示字符加1

delay(3);

write_com(0X80);//显示字符的位置

delay(3);

}

/*写指令*/

voidwrite_com(ucharcom)

{

lcdrs=0;//RS为0时进行指令模块

lcdrw=0;//RW为0时进行写操

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

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1