keil C程序

keil C程序,第1张

project->new uvision project

选择你所使用的51芯片就是select device for target 'xxxx'

file->new 新建文件 保存为.c文件

双机source group 1 把刚才建的文件添加进去

flash----configure flash tools-----output选项卡勾上great hex files

然后仿真 ok

#include"reg51.h"

#define uchar unsigned char

delayMs( unsigned a ) {}

writeData(unsigned a){

}

uchar keyscan(void)//0向下,2向上,1Enter,3返回//去了“;”

{

uchar numb,clik

P2=0xf0

do{

numb=P2

numb=numb&0xf0

while(numb!=0xf0)

{

delayMs(10)

numb=P2

switch(numb)//num》》numb

{

case 0xe0:clik=1

break

case 0xd0:clik=2

break

case 0xb0:clik=3

break

case 0x70:clik=4

break

}

}

}while(!clik)

return(clik)

}

void main()

{

uchar clik2

init()

clik2=keyscan()

writeData(47+clik2)

}

程序不全,改完后还是有warning,自己再改改吧! 第一建议多看书,第二建议养成良好的编程习惯,多边边,多调试,调试多了这根本不算个问题!

按键效果没要求么,那我随便给你写个吧,功能效果:S1按下,8个LED全亮;S2按下,全灭,S3按下,1357亮2468灭,低电平灯亮,以下是程序

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit key1=P3^2

sbit key2=P3^3

sbit key3=P3^4

void delay(uint n) //延迟程序,外接12Mhz晶振的话 大约延迟n毫秒

{

uchar i

while(n--)

{

for(i=0i<125i++)

}

}

void main()

{

P1=0XFF

while(1)

{

if(key1==0) //按键1按下

{

delay(10) //消抖

if(key1==0) //延迟10ms后再次判断,有则说明按键确1实按下

P1=0x00 //点亮所有LED灯

while(!key1) //等待按键1d起

}

else if(key2==0) //按键2按下

{

delay(10) //消抖

if(key2==0) //延迟10ms后再次判断,有则说明按键2确实按下

P1=0xff //熄灭所有LED灯

while(!key2) //等待按键d起

}

else if(key3==0) //按键3按下

{

delay(10) //消抖

if(key3==0) //延迟10ms后再次判断,有则说明按键3确实按下

P1=0xaa //1357亮

while(!key3) //等待按键3d起

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11839415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存