单片机可预设电压的数控电源程序.docx
- 文档编号:10218971
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:16
- 大小:20.33KB
单片机可预设电压的数控电源程序.docx
《单片机可预设电压的数控电源程序.docx》由会员分享,可在线阅读,更多相关《单片机可预设电压的数控电源程序.docx(16页珍藏版)》请在冰豆网上搜索。
单片机可预设电压的数控电源程序
#ifndef_PWLOCK_H//防止PWLock.h被重复引用
#define_PWLOCK_H
#include
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharpx;
uinta;
uintb;
uintc;//为0XFF
uinti;
uchardigbit;//字位
uchardy;
ucharwordbuf[2];//字型码缓冲区
ucharcount;//位计数
ucharpwbuf[2];//输入数字存储区
bitenterflag;//确认键按下与否标志
bitlh;
bitpwflag;//密码正确与否标志
bitshowflag;//数码管显示与否标志
sbitP20=P2^0;
sbitP21=P2^1;
voiddisplay(void);//显示函数
#endif
//#include"PWLock.h"
/*键消抖延时函数*/
voiddelay(void)
{
uinti;
for(i=4000;i>0;i--);
}
/*键扫描函数*/
ucharkeyscan(void)
{
ucharscancode,tmpcode;
P1=0xf0;//发全0行扫描码
if((P1&0xf0)!
=0xf0)//若有键按下
{
delay();//延时去抖动
if((P1&0xf0)!
=0xf0)//延时后再判断一次,去除抖动影响
{
scancode=0xfe;
while((scancode&0x10)!
=0)//逐行扫描
{
P1=scancode;//输出行扫描码
if((P1&0xf0)!
=0xf0)//本行有键按下
{
tmpcode=(P1&0xf0)|0x0f;
/*返回特征字节码,为1的位即对应于行和列*/
return((~scancode)+(~tmpcode));
}
elsescancode=(scancode<<1)|0x01;//行扫描码左移一位
}
}
}
return(0);//无键按下,返回值为0
}
/*定时器0中断服务子程序,2ms定时动态扫描显示*/
voidtime0_int(void)interrupt1
{
/*重置2ms定时*/
TH0=-2000/256;
TL0=-2000%256;
px++;//片选
if(showflag==1)
display();//调用显示函数
}
/*根据共阴极字型编码表获取0~9,A~B字型代码*/
uchargetcode(uchari)
{
ucharp;
switch(i)
{
case0:
p=0x3f;break;/*0*/
case1:
p=0x06;break;/*1*/
case2:
p=0x5B;break;/*2*/
case3:
p=0x4F;break;/*3*/
case4:
p=0x66;break;/*4*/
case5:
p=0x6D;break;/*5*/
case6:
p=0x7D;break;/*6*/
case7:
p=0x07;break;/*7*/
case8:
p=0x7F;break;/*8*/
case9:
p=0x67;break;/*9*/
default:
break;
}
return(p);
}
voidDisplay(void)//LED数值显示
{
switch(px%2)
{
case0:
P20=1;P21=0;P0=getcode(wordbuf[0]);break;
case1:
P21=1;P20=0;P0=getcode(wordbuf[1]);break;
default:
return;
}
}
/*显示函数*/
/*voiddisplay(void)
{
uchari;
switch(digbit)
{
case1:
i=0;break;
case2:
i=1;break;
default:
break;
}
P2=0x0;//关闭显示
//P20=0;
//P21=0;
P0=getcode(wordbuf[i]);//送字型码
P2=digbit;//送字位码
digbit=1;
if(digbit==1)
{
digbit=2;
P20=1;
P21=0;
}
digbit=2;
P21=1;
P20=0;
if(digbit<0x02)//共2位
digbit=digbit*2;//左移一位
else
digbit=0x01;
}
*/
/*主程序*/
voidmain()
{
ucharj,key;
uinttemp;
P20=1;
P21=1;//关闭数码管显示
TMOD=0x11;//T0,T1工作方式1
/*2ms定时设置*/
TH0=-2000/256;
TL0=2000%256;
/*启动计数器0,关闭计数器1*/
TR0=1;
ET0=1;
TR1=0;
ET1=1;
EA=1;
count=0;//初始计数器设为0
enterflag=0;//没有按下确认键
lh=0;
pwflag=0;//标志先置为0
digbit=0x01;//从第一位数码管开始动态扫描
/*刚加电时,bu显示*/
for(j=0;j<2;j++)
wordbuf[j]=17;
showflag=1;//打开数码管显
while
(1)
{
key=keyscan();//调用键盘扫描函数
switch(key)
{
case0x11:
//1行1列,数字1
if(count<2)
{
wordbuf[count]=1;//对应位上显示“1”
pwbuf[count]=1;
if(count==0)
{a=1;
}
if(count==1)
{b=1;
}
count++;
}
break;
case0x21:
//1行2列,数字3
if(count<2)
{
wordbuf[count]=2;//对应位上显示“2"
pwbuf[count]=2;
if(count==0)
{a=2;
}
if(count==1)
{b=2;
}
count++;
}
break;
case0x41:
//1行3列,数字3
if(count<2)
{
wordbuf[count]=3;//对应位上显示“3"
pwbuf[count]=3;
if(count==0)
{a=3;
}
if(count==1)
{b=3;
}
count++;
}
break;
case0x12:
//2行1列,数字4
if(count<2)
{
wordbuf[count]=4;//对应位上显示“4"
pwbuf[count]=4;
if(count==0)
{a=4;
}
if(count==1)
{b=4;
}
count++;
}
break;
case0x22:
//2行2列,数字5
if(count<2)
{
wordbuf[count]=5;//对应位上显示“5"
pwbuf[count]=5;
if(count==0)
{a=5;
}
if(count==1)
{b=5;
}
count++;
}
break;
case0x42:
//2行3列,数字6
if(count<2)
{
wordbuf[count]=6;//对应位上显示“6"
pwbuf[count]=6;
if(count==0)
{a=6;
}
if(count==1)
{b=6;
}
count++;
}
break;
case0x14:
//3行1列,数字7
if(count<2)
{
wordbuf[count]=7;//对应位上显示“7"
pwbuf[count]=7;
if(count==0)
{a=7;
}
if(count==1)
{b=7;
}
count++;
}
break;
case0x24:
//3行2列,数字8
if(count<2)
{
wordbuf[count]=8;//对应位上显示“8"
pwbuf[count]=8;
if(count==0)
{a=8;
}
if(count==1)
{b=8;
}
count++;
}
break;
case0x44:
//3行3列,数字9
if(count<2)
{
wordbuf[count]=9;//对应位上显示“9"
pwbuf[count]=9;
if(count==0)
{a=9;
}
if(count==1)
{b=9;
}
count++;
}
break;
case0x18:
//4行1列,数字*
count=0;
P3=0;
px=0;//显示清零
for(j=0;j<2;j++)
{
wordbuf[j]=17;//数码管不显示
pwbuf[j]=0;//用FFFFFF清除已经输入的密码
}
break;
case0x28:
//4行2列,数字0
if(count<2)
{
wordbuf[count]=0;//对应位上显示“0"
pwbuf[count]=0;
if(count==0)
{a=0;
}
if(count==1)
{b=0;
}
count++;
}
break;
case0x48:
//4行3列,数字#
enterflag=1;//确认键按下
if(count==2)//只有输入2个数后按确认键才有效输出
pwflag=1;
break;
default:
break;
}
if(enterflag==1)//如果按下确认键
{
enterflag=0;//标志位置回0
count=0;//计数器清零
c=0xff/6;
if(pwflag==1)
{
P3=a*c+b*c/10+12*c/100;
temp=a*c+b*c/10+12*c/100;
if(temp>=0xff)
{
P3=0xff;
}
}
}
}
}
当我被上帝造出来时,上帝问我想在人间当一个怎样的人,我不假思索的说,我要做一个伟大的世人皆知的人。
于是,我降临在了人间。
我出生在一个官僚知识分子之家,父亲在朝中做官,精读诗书,母亲知书答礼,温柔体贴,父母给我去了一个好听的名字:
李清照。
小时侯,受父母影响的我饱读诗书,聪明伶俐,在朝中享有“神童”的称号。
小时候的我天真活泼,才思敏捷,小河畔,花丛边撒满了我的诗我的笑,无可置疑,小时侯的我快乐无虑。
“兴尽晚回舟,误入藕花深处。
争渡,争渡,惊起一滩鸥鹭。
”青春的我如同一只小鸟,自由自在,没有约束,少女纯净的心灵常在朝阳小,流水也被自然洗礼,纤细的手指拈一束花,轻抛入水,随波荡漾,发髻上沾着晶莹的露水,双脚任水流轻抚。
身影轻飘而过,留下一阵清风。
可是晚年的我却生活在一片黑暗之中,家庭的衰败,社会的改变,消磨着我那柔弱的心。
我几乎对生活绝望,每天在痛苦中消磨时光,一切都好象是灰暗的。
“寻寻觅觅冷冷清清凄凄惨惨戚戚”这千古叠词句就是我当时心情的写照。
最后,香消玉殒,我在痛苦和哀怨中凄凉的死去。
在天堂里,我又见到了上帝。
上帝问我过的怎么样,我摇摇头又点点头,我的一生有欢乐也有坎坷,有笑声也有泪水,有鼎盛也有衰落。
我始终无法客观的评价我的一生。
我原以为做一个着名的人,一生应该是被欢乐荣誉所包围,可我发现我错了。
于是在下一轮回中,我选择做一个平凡的人。
我来到人间,我是一个平凡的人,我既不着名也不出众,但我拥有一切的幸福:
我有温馨的家,我有可亲可爱的同学和老师,我每天平凡而快乐的活着,这就够了。
天儿蓝蓝风儿轻轻,暖和的春风带着春的气息吹进明亮的教室,我坐在教室的窗前,望着我拥有的一切,我甜甜的笑了。
我拿起手中的笔,不禁想起曾经作诗的李清照,我虽然没有横溢的才华,但我还是拿起手中的笔,用最朴实的语言,写下了一时的感受:
人生并不总是完美的,每个人都会有不如意的地方。
这就需要我们静下心来阅读自己的人生,体会其中无尽的快乐和与众不同。
“富不读书富不久,穷不读书终究穷。
”为什么从古到今都那么看重有学识之人?
那是因为有学识之人可以为社会做出更大的贡献。
那时因为读书能给人带来快乐。
自从看了《丑小鸭》这篇童话之后,我变了,变得开朗起来,变得乐意同别人交往,变得自信了……因为我知道:
即使现在我是只“丑小鸭”,但只要有自信,总有一天我会变成“白天鹅”的,而且会是一只世界上最美丽的“白天鹅”……
我读完了这篇美丽的童话故事,深深被丑小鸭的自信和乐观所折服,并把故事讲给了外婆听,外婆也对童话带给我们的深刻道理而惊讶不已。
还吵着闹着多看几本名着。
于是我给外婆又买了几本名着故事,她起先自己读,读到不认识的字我就告诉她,如果这一面生字较多,我就读给她听整个一面。
渐渐的,自己的语文阅读能力也提高了不少,与此同时我也发现一个人读书的乐趣远不及两个人读的乐趣大,而两个人读书的乐趣远不及全家一起读的乐趣大。
于是,我便发展“业务”带动全家一起读书……现在,每每遇到好书大家也不分男女老少都一拥而上,争先恐后“抢书”,当我说起我最小应该让我的时候,却没有人搭理我。
最后还把书给撕坏了,我生气地哭了,妈妈一边安慰我一边对外婆说:
“孩子小,应该让着点。
”外婆却不服气的说:
“我这一把年纪的了,怎么没人让我呀?
”大家人你一言我一语,谁也不肯相让……读书让我明白了善恶美丑、悲欢离合,读一本好书,犹如同智者谈心、谈理想,教你辨别善恶,教你弘扬正义。
读一本好书,如品一杯香茶,余香缭绕。
读一本好书,能使人心灵得到净化。
书是我的老师,把知识传递给了我;书是我的伙伴,跟我诉说心里话;书是一把钥匙,给我敞开了知识的大门;书更是一艘不会沉的船,引领我航行在人生的长河中。
其实读书的真真乐趣也就在于此处,不是一个人闷头苦读书;也不是读到好处不与他人分享,独自品位;更不是一个人如痴如醉地沉浸在书的海洋中不能自拔。
而是懂得与朋友,家人一起分享其中的乐趣。
这才是读书真正之乐趣呢!
这所有的一切,不正是我从书中受到的教益吗?
我阅读,故我美丽;我思考,故我存在。
我从内心深处真切地感到:
我从读书中受到了教益。
当看见有些同学宁可买玩具亦不肯买书时,我便想到培根所说的话:
“世界上最庸俗的人是不读书的人,最吝啬的人是不买书的人,最可怜的人是与书无缘的人。
”许许多多的作家、伟人都十分喜欢看书,例如毛泽东主席,他半边床上都是书,一读起书来便进入忘我的境界。
书是我生活中的好朋友,是我人生道路上的航标,读书,读好书,是我无怨无悔的追求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 预设 电压 数控 电源 程序