51单片机C语言小程序源代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
uchar i,j; for(i=n;i>0;i--)
for(j=110;j>0;j--); }
void write_com(uchar com) {
rs=0; rw=0; ep=0; P0=com; delay(5); ep=1; delay(5); ep=0; }
void write_data(uchar dat) {
delay(5); while(!k2); month++; if(month==13)month=1; change(addmonth,month); } if(k3==0) { delay(5); while(!k3); month--; if(month==0)month=12; change(addmonth,month); } } if(loop==6) { write_com(addyear+1); write_com(0x0f); if(k2==0) { delay(5); while(!k2); year++; change(addyear,year); } if(k3==0) { delay(5); while(!k3); year--; if(year==0)year=99; change(addyear,year); } }
{ if(++a1==800){l1=~l1;a1=0;} if(++a2==700){l2=~l2;a2=0;} if(++a3==600){l3=~l3;a3=0;} if(++a4==500){l4=~l4;a4=0;} if(++a5==400){l5=~l5;a5=0;} if(++a6==300){l6=~l6;a6=0;} if(++a7==200){l7=~l7;a7=0;} if(++a8==100){l8=~l8;a8=0;} } }
rs=1; ep=0; rw=0; P0=dat; delay(5); ep=1; delay(5); ep=0; }
void first() {
write_com(0x38);//设置双行显示,八位数据口,5X7 点阵字符 write_com(0x0f);//开显示,开光标,开光标闪烁 write_com(0x06);//读写操作后 AC 即指针自动加一 write_com(0x01);//清屏 }
time=0; miao++; if(miao==60){miao=0;fen++;} change(addmiao,miao); if(fen==60){fen=0;xiaoshi++;} change(addfen,fen); if(xiaoshi==24){xiaoshi=0;dates++;} change(addshi,xiaoshi); if(dates==32){dates=1;month++;} change(adddates,dates); if(month==13){month=1;year++;} change(addmonth,month); change(addyear,year); } }
if(k1 == 0) {
delay(5); while(!k1); TR0=0; loop=loop+1; } if(loop==1) {
write_com(addmiao+1); write_com(0x0f); if(k2==0) {
delay(5); while(!k2); miao++; if(miao==60)
CLD 液晶显示器 #include<reg52.h> #include<string.h> #define uchar unsigned char #define uint unsigned int
sbit rs = P2^6; sbit rw = P2^5; sbit ep = P2^7;
uchar char1[]="I Love "; uchar char2[]="Jiong Xisong"; uchar num=0; void delay(uchar n) {
//初始化函数 void frist() {
TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; TMOD= 0X01;
ET0=1; EA=1; TR0=1; P1=0XFF; a0 = 0; write_com(0x38); write_com(0x01); write_com(0x0c); write_com(0x80); for(num=0;num<strlen(date);num++) {
//变量区 uchar num=0; uchar time=0; uchar xiaoshi=12;fen=0;miao=0; uchar year=12,month=07,dates=14; uchar loop=0;
//延时函数 void delay(uchar n) {
uchar z,x; for(z=n;z>0;z--)
uchar code date[]=" 2012-07-13"; uchar code time1[]=" 12:00:00"; uchar code shu[]="0123456789";
sbit rs = P2^6; sbit rw = P2^5; sbit ep = P2^7;
sbit a0 = P1^1; sbit k1 = P1^4; sbit k2 = P1^5; sbit k3 = P1^6;
miao=0;
change(addmiao,miao); } if(k3==0) {
delay(5); while(!k3); miao--; if(miao==-1)
miao=59; change(addmiao,miao); }
} if(loop==2)
{ write_com(addfen+1); write_com(0x0f); if(k2==0) { delay(5); while(!k2); fen++; if(fen==60) fen=0; change(addfen,fen); } if(k3==0) { delay(5); while(!k3); fen--; if(fen==-1) fen=59; change(addfen,fen); }
} if(loop==3)
{ write_com(addshi+1); write_com(0x0f); if(k2==0) { delay(5);
while(!k2); xiaoshi++; if(xiaoshi==24)
xiaoshi=0; change(addshi,xiaoshi); } if(k3==0) { delay(5); while(!k3); xiaoshi--; if(xiaoshi==-1)
rs=1; rw=0; P0=date; ep=0; delay(3); ep=1; delay(5); ep=0; }
//修改函数 void change(uchar add,uchar dat) {
uchar shi,ge; shi=dat/10; ge=dat%10; write_com(add); write_data(shu[shi]); write_data(shu[ge]); write_com(0x80); }
步进马达 #include<reg52.h> #include<intrins.h> #define speed 2 #define uchar unsigned char sbit PH1=P1^0; sbit PH2=P1^1; sbit I10=P1^2; sbit I11=P1^3; sbit I20=P1^4; sbit I21=P1^5;
void main() {
frist(); while(1) {
scan(); } }
led 花样流水灯 #include<reg52.h> #include<hanshu.h> sbit l1=P2^0;
sbit l2=P2^1; sbit l3=P2^2; sbit l4=P2^3; sbit l5=P2^4; sbit l6=P2^5; sbit l7=P2^6; sbit l8=P2^7; unsigned int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0; void main() { while(1)
{write_data(char2[num]);delay(20);} write_com(0x0c);
//a: for(num=0;num<2;num++) //
{write_com(0x18);delay(200);delay(200);delay(200);delay(200);delay(200);delay(200);delay (200);delay(200);delay(200);delay(200);} // for(num=0;num<2;num++) //
for(x=110;x>0;x--); }
//写代码函数 void write_com(uchar com)
{
rs=0; rw=0; ep=0; P0=com; delay(3); ep=1; delay(5); ep=0; }
//写数据函数 void write_data(uchar date) {
lcd 时钟显示 #include <reg52.h> #include <string.h>
#define uchar unsigned char #define uint unsigned int #define addshi (0x80+0x40+4) #define addfen (0x80+0x40+7) #define addmiao (0x80+0x40+10) #define addyear (0x80+5) #define addmonth (0x80+8) #define adddates (0x80+11)
if(loop==7) { TR0=1; write_com(0x0c); loop=0; }
ቤተ መጻሕፍቲ ባይዱ }
//定时中断 void TT_0(void) interrupt 1 {
TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; if((++time)==20) {
write_data(date[num]); delay(3); } write_com(0x80+0x40); for(num=0;num<strlen(time1);num++) { write_data(time1[num]); delay(3); } }
//键盘扫描 void scan() {
xiaoshi=23; change(addshi,xiaoshi); }
} if(loop==4) {
write_com(adddates+1); write_com(0x0f); if(k2==0) {
delay(5); while(!k2); dates++; if(dates==32)dates=1; change(adddates,dates); } if(k3==0) { delay(5); while(!k3); dates--; if(dates==0)dates=31; change(adddates,dates); } } if(loop==5) { write_com(addmonth+1); write_com(0x0f); if(k2==0) {
{write_com(0x1c);delay(200);delay(200);delay(200);delay(200);delay(200);delay(200);delay (200);delay(200);delay(200);delay(200);} // goto a;
while(1);
}
void main() {
first(); write_com(0x80+3); for(num=0;num<strlen(char1);num++)
{write_data(char1[num]);delay(20);} write_com(0x80+0x40+3); for(num=0;num<strlen(char2);num++)
相关文档
最新文档