运用51单片机来实现时间跟闹钟的作用

本文展示了如何使用51单片机设计一个时间显示和闹钟功能的系统,通过初始化LCD显示屏,设置定时器中断,以及处理按键输入来调整时间和设置闹钟。
摘要由CSDN通过智能技术生成
#include <reg52.h>
#include "delay.h"







sbit RS = P2^4;//Êý¾Ý/Ö¸Áî
sbit RW = P2^5;//¶Á/д
sbit E = P2^6;//ʹÄÜ




#define DATAPORT P0
#define KEYPORT  P3




void lcd_write(unsigned char com,unsigned char dat)
{
if(1 == com)//ÃüÁî
{
RS = 0;
}
else if(0 == com)//Êý¾Ý
{
RS = 1;
}
RW = 0;//дÈë
DATAPORT = dat; 
E = 1;//ʹÄÜ
delay_us(10);
E = 0;//ʧÄÜ
}


void lcd_init()
{
delay_ms(15);
lcd_write(1,0x38);//8λÊý¾Ý½Ó¿Ú£¬Á½ÐÐÏÔʾ£¬5*8µãÕó×Ö·û
delay_ms(5);
lcd_write(1,0x38);
delay_ms(5);
lcd_write(1,0x38);
delay_ms(5);

lcd_write(1,0x08);//ÏÔʾ¹Ø£¬¹â±ê¹Ø£¬ÉÁ˸¹Ø
delay_ms(5);

lcd_write(1,0x01);//ÏÔʾÇåÆÁ
delay_ms(5);

lcd_write(1,0x06);//¹â±ê×Ô¶¯¼Ó1£¬»­Ãæ²»¶¯
delay_ms(5);

lcd_write(1,0x0c);//ÏÔʾ¿ª£¬¹â±ê¹Ø£¬ÉÁ˸¹Ø
delay_ms(5);
}




void display_lcd_char(unsigned char x,unsigned char y,unsigned char ch)
{
if(y>1 ||y<0 || x>39)
return ;

if(0 == y)
{
lcd_write(1,0x80+x);
}
else if(1 == y)
{
lcd_write(1,0xc0+x);
}


lcd_write(0,ch);


}








unsigned char key_scan()
{
unsigned char keyvalue;
KEYPORT = 0xf0;
if(KEYPORT !=0xf0)
{
delay_ms(10);
if(KEYPORT !=0xf0)
{
KEYPORT = 0xfe;
if(KEYPORT != 0xfe)
{
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值