掉电记忆程序.doc
上传人:天马****23 上传时间:2024-09-14 格式:DOC 页数:16 大小:426KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

掉电记忆程序.doc

掉电记忆程序.doc

预览

免费试读已结束,剩余 6 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

.精选范本三:功能//基于mcs51-u的按键计数器(产品计数器,含掉电记忆)//功能:s1用于加计数,s2用于计数归零;s3用于减计数#include<reg51.h>unsignedintCount;//*************键盘子程序*************sbitpl=P3^6;//165锁存sbitclk_j=P3^7;//165时钟sbitDo=P3^5;//165串口数据unsignedcharbdatakey;sbits1=key^0;sbits2=key^1;sbits3=key^2;sbits4=key^3;sbits5=key^4;sbits6=key^5;sbits7=key^6;sbits8=key^7;Readkey(){unsignedchari;clk_j=0;pl=0;pl=1;for(i=0;i<8;i++){key<<=1;key|=(bit)Do;clk_j=1;clk_j=0;}}//*************以上键盘子程序***************//*************以下数码管显示子程序*********sbitdat=P1^0;//定义驱动74595的数据脚为p1.0sbitclk=P1^1;//74595的时钟sbitlat=P1^2;//栓锁sbitgw=P1^3;//个位显示控制脚sbitsw=P1^4;//十位sbitbw=P3^3;//百位sbitqw=P3^4;//千位//------字表------------------------------unsignedcharcodetab[]={0x3F,0x06,0x5B,0x4F,//"0","1","2","3"0x66,0x6D,0x7D,0x07,//"4","5","6","7"0x7F,0x6F,0x77,0x7c,//"8","9","A","B"0x39,0x5e,0x79,0x71,//"C","D","E","F"};//------显示延时--------------------------ds1ms(){unsignedchard;for(d=0;d<250;d++);}//------74HC595段输出循环-------------------------dsout(unsignedcharj){unsignedchari;for(i=0;i<8;i++){dat=j&0x80;//提取高位clk=1;clk=0;j<<=1;}lat=1;lat=0;//锁存}//----74HC595位输出循环--------------------display(unsignedcharsjqw,sjbw,sjsw,sjgw){dsout(tab[sjgw]);//查表得到数据段码送显示gw=0;ds1ms();gw=1;dsout(tab[sjsw]);sw=0;ds1ms();sw=1;dsout(tab[sjbw]);bw=0;ds1ms();bw=1;dsout(tab[sjqw]);qw=0;ds1ms();qw=1;}//********************以上数码管显示子程序*******/**********以下2402读写子程序**************/sbitWP=P2^1;//写保护sbitSCL=P2^2;//2402IO口定义sbitSDA=P2^3;#defineW_cmd0xa0//写指令#defineR_cmd0xa1//读指令voidDely24(void){unsignedchari;for(i=0;i<6;i++);}//*************************************voidDely24_10ms(void){unsignedinti;for(i=0;i<500;i++);}//***************24x02开始程序**********************voidstar24(void){Dely24();SDA=0;Dely24();SCL=0;Dely24();}//***************24停止程序***********************voidstop24(void){Dely24();SCL=1;Dely24();SDA=1;Dely24();}//********************************unsignedcharReadByte(void){unsignedchari,j;for(i=0;i<8;i++)//循环读8位{SDA=1;//置高,不影响后续读取Dely24();SCL=1;