网上有关“智能电子钟单片机设计方案”话题很是火热,小编也是针对智能电子钟单片机设计方案寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
您好:手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,咨询加微信【】很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的
1.手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,通过添加客服微信
2.咨询软件加微信【】在"设置DD功能DD微信手麻工具"里.点击"开启".
3.打开工具.在"设置DD新消息提醒"里.前两个选项"设置"和"连接软件"均勾选"开启"(好多人就是这一步忘记做了)
4.打开某一个微信组.点击右上角.往下拉."消息免打扰"选项.勾选"关闭"(也就是要把"群消息的提示保持在开启"的状态.这样才能触系统发底层接口)
给你个电路和程序,//前几天帮一个网友写,单片机定时时钟在调节功能,可以参考一下我程序
/***************************************************
* 6位数码管显示电子钟
*
* 功能: 按键加,按键减, 按键,启动和停止。
*
*
***************************************************/
#include "REG52.H"
sbit SHUG_01 = P2^0; //数码管1
sbit SHUG_02 = P2^1; //数码管2
sbit SHUG_03 = P2^2; //数码管3
sbit SHUG_04 = P2^3; //数码管4
sbit SHUG_05 = P2^4; //数码管5
sbit SHUG_06 = P2^5; //数码管6
sbit KEY0_01 = P0^0; //按键 启动或停止sbit KEY0_02 = P0^1; //按键 加
sbit KEY0_03 = P0^2; //按键减
sbit KEY0_04 = P0^3; //按键菜单
#define LED_DATA P1 //P1数据端口
unsigned char value_temp = 0;unsigned char value_Outk = 0;
unsigned char value_shio = 8;
unsigned char value_feno = 40;
unsigned char value_miao = 0;
unsigned char code value_tab0[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; //共阳极unsigned char code value_tab1[]={0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10}; //共阳极带点
/*
* 延时1ms延时子函数
**/
void Delay_1ms(unsigned int Time)
{
unsigned int x, y;
for(x = Time; x > 0; x--)
for(y = 120; y > 0; y--);
}
/* * 程序运行启动和停止子函数
**/
void Disp_layledketCmd(void)
{
/***小时***/
SHUG_01 = 1;
LED_DATA = value_tab0[value_shio / 10]; /*******小时的十位数显示***************/
Delay_1ms(5);
SHUG_01 = 0;
SHUG_02 = 1;
LED_DATA = value_tab1[value_shio % 10]; /*******小时的个位数显示***************/
Delay_1ms(5);
SHUG_02 = 0;
/***分钟***/ SHUG_03 = 1;
LED_DATA = value_tab0[value_feno / 10]; /*******分钟的十位数显示***************/
Delay_1ms(5);
SHUG_03 = 0;
SHUG_04 = 1;
LED_DATA = value_tab1[value_feno % 10]; /*******分钟的个位数显示***************/
Delay_1ms(5);
SHUG_04 = 0;
/***秒钟***/ SHUG_05 = 1;
LED_DATA = value_tab0[value_miao / 10]; /*******秒钟的十位数显示***************/
Delay_1ms(5);
SHUG_05 = 0;
SHUG_06 = 1;
LED_DATA = value_tab0[value_miao % 10]; /*******秒钟的个位数显示***************/
Delay_1ms(5);
SHUG_06 = 0;
}
/* * 定时器初始化定时50ms
**/
void Tero_Init(void)
{
TMOD = 0x01;
TH0 = 0x4C;
TL0 = 0x00;
ET0 = 1;
TR0 = 1;
EA = 1;
}
/* * 按键开关启动和停止子函数
**/
void Scan_keyoutCmd(void)
{
if(KEY0_01 == 0)
{
Delay_1ms(10);
if(KEY0_01 == 0)
{
TR0 = ~ TR0;
}
while(KEY0_01 == 0);
}
if(KEY0_02 == 0) {
Delay_1ms(10);
if(KEY0_02 == 0)
{
value_miao--;
if(value_miao == -1)
{
value_feno--;
value_miao = 59;
if(value_feno == -1)
{
value_shio--;
value_feno = 59;
if(value_shio == -1)
{
value_shio = 23;
}
}
}
while(KEY0_02 == 0);
}
}
if(KEY0_03 == 0) {
Delay_1ms(10);
if(KEY0_03 == 0)
{
value_miao++;
if(value_miao == 60)
{
value_miao = 0;
value_feno++;
if(value_feno == 60)
{
value_feno = 0;
value_shio++;
if(value_shio == 24)
{
value_shio = 0;
}
}
}
while(KEY0_03 == 0); //检测松手
}
}
}
/* * 函数主体
**/
int main(void)
{
P1 = P2 = P3 = 0x00;
Tero_Init();
while(1)
{
Scan_keyoutCmd();
Disp_layledketCmd(); //执行应运程序
}
}
/* * 定时器中断服务程序
**/
void Tmero()interrupt 1
{
TH0 = 0x4C;
TL0 = 0x00;
value_temp++;
if(value_temp == 20)
{
value_temp = 0;
value_miao++;
if(value_miao == 60)
{
value_feno++;
value_miao = 0;
if(value_feno == 60)
{
value_shio++;
value_feno = 0;
if(value_shio == 24)
{
value_shio = 0;
}
}
} }
}
以AT89C51单片机为核心,制作一个LCD显示的智能电子钟
#include"lcd.h"
/*******************************************************************************
* 函 数 名 : Lcd1602_Delay1ms
* 函数功能 : 延时函数,延时1ms
* 输 入 : c
* 输 出 : 无
* 说 名 : 该函数是在12MHZ晶振下,12分频单片机的延时。
*******************************************************************************/
void Lcd1602_Delay1ms(uint c) //误差 0us
{
uchar a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}
}
/*******************************************************************************
* 函 数 名 : LcdWriteCom
* 函数功能 : 向LCD写入一个字节的命令
* 输 入 : com
* 输 出 : 无
*******************************************************************************/
#ifndef LCD1602_4PINS //当没有定义这个LCD1602_4PINS时
void LcdWriteCom(uchar com) //写入命令
{
LCD1602_E = 0; //使能
LCD1602_RS = 0; //选择发送命令
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = com; //放入命令
Lcd1602_Delay1ms(1); //等待数据稳定
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5); //保持时间
LCD1602_E = 0;
}
#else
void LcdWriteCom(uchar com) //写入命令
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 0; //选择写入命令
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = com; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
// Lcd1602_Delay1ms(1);
LCD1602_DATAPINS = com << 4; //发送低四位
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
}
#endif
/*******************************************************************************
* 函 数 名 : LcdWriteData
* 函数功能 : 向LCD写入一个字节的数据
* 输 入 : dat
* 输 出 : 无
*******************************************************************************/
#ifndef LCD1602_4PINS
void LcdWriteData(uchar dat) //写入数据
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 1; //选择输入数据
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = dat; //写入数据
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5); //保持时间
LCD1602_E = 0;
}
#else
void LcdWriteData(uchar dat) //写入数据
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 1; //选择写入数据
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = dat; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
LCD1602_DATAPINS = dat << 4; //写入低四位
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
}
#endif
/*******************************************************************************
* 函 数 名 : LcdInit()
* 函数功能 : 初始化LCD屏
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
#ifndef LCD1602_4PINS
void LcdInit() //LCD初始化子程序
{
LcdWriteCom(0x38); //开显示
LcdWriteCom(0x0c); //开显示不显示光标
LcdWriteCom(0x06); //写一个指针加1
LcdWriteCom(0x01); //清屏
LcdWriteCom(0x80); //设置数据指针起点
}
#else
void LcdInit() //LCD初始化子程序
{
LcdWriteCom(0x32); //将8位总线转为4位总线
LcdWriteCom(0x28); //在四位线下的初始化
LcdWriteCom(0x0c); //开显示不显示光标
LcdWriteCom(0x06); //写一个指针加1
LcdWriteCom(0x01); //清屏
LcdWriteCom(0x80); //设置数据指针起点
}
#endif
给你一个例子供你参考下,我对STM8S稍微熟悉一点,我也是初学者。
/*?MAIN.C?file *? *?Copyright?(c)?2002-2005?STMicroelectronics */#include?"lcd12864.h"
#include?"stm8s207r.h"
#include?"stm8s207rb.h"
#define?sbi(io,bit)(io|=(1<<bit))//1
#define?cbi(io,bit)(io&=~(1<<bit))//0
#define?gbi(pin,bit)(pin&(1<<bit))//读
#define?enableInterrupts()?{_asm("rim\n");}?/*?enable?interrupts?使能中断*/
#define?disableInterrupts()?{_asm("sim\n");}?/*?disable?interrupts?不能中断*/
u8?year,month,day,hour,minute,seconds;//定义全局变量
void?IO_Init(void)//定义IO口
{
sbi(PG_DDR,3);sbi(PG_CR1,3);cbi(PG_CR2,3);//RS
sbi(PG_DDR,4);sbi(PG_CR1,4);cbi(PG_CR2,4);//R/W
sbi(PI_DDR,0);sbi(PI_CR1,0);cbi(PI_CR2,0);//E
sbi(PG_DDR,5);sbi(PG_CR1,5);cbi(PG_CR2,5);//RST
}
void?timer1_init(void)//?然后初始化定时器4?
{
TIM1_IER?=?0x00;?//?禁止中断
TIM1_EGR?=?0x01;?//?允许产生更新事件
TIM1_PSCRH?=?0x13;?//?8M系统时钟经预分频f=fck/(PSCR+1)
TIM1_PSCRL?=?0x88;?//?PSCR=0x1F3F,f=8M/(0x1F3F+1)=1000Hz,每个计数周期1ms
//?相当于计数器周期为100uS
//?设定重装载时的寄存器值
//?注意必须保证先写入高8位,再写入低8位
TIM1_ARRH?=?0x09;?//?设定重装载时的寄存器的高8位
TIM1_ARRL?=?0xc4;
TIM1_CNTRH?=?0;?//?设定计数器的初值
TIM1_CNTRL?=?0;?
TIM1_IER?=?0x01;//?允许更新中断
TIM1_CR1?=?0x01;?//?计数器使能,开始计数
}
void?CLK_Init(void)//时钟
{
CLK_SWCR|=0x02;//开启切换?
CLK_ICKR|=0x01;//开启内部HSI while(!(CLK_ICKR&0x02));//等待HSI准备就绪 CLK_SWR=0xe1;//设定HSI为主时钟源? while((CLK_SWCR?&?0x01)==0x01);//等待切换完成? CLK_CKDIVR=0x00;?//设置分频,此处为HSI不分频 CLK_SWCR&=(~0x02);?//关闭切换//CLK_ECKR?|=0x01;//开启外部时钟
//while(!(CLK_ECKR&0x2));?//等待外部时钟//CLK_CKDIVR=0x00;
//CLK_CKDIVR?&=?0xF8; //CPU无分频?11.0592M?//CLK_CKDIVR?=?0x01;
//CLK_SWR?=?0xB4;//选择外部时钟 //while(!(CLK_SWCR&0x08)); //CLK_SWCR?|=0x02;//使能外部时钟;//CLK_PCKENR1=0x04;?//enble?UART1?and?ADC?clock
//CLK_PCKENR2=0x08;
}
void?deal_time(void)
{
if(seconds>59)
{
seconds=0;minute++;
}
if(minute>59)
{
minute=0;hour++;
}
if(hour>23){
hour=0;day++;
}
if(day>29)
{
day=0;month++;
}?
if(month>12){
?month=0;year++;
?}
}?
void?LCD_display_time(void)
{
LCD12864_SetPos(2,0);
LCD12864_WriteDate(year/10+0x30);
LCD12864_WriteDate(year%10+0x30);
LCD12864_DisplayString("年");LCD12864_SetPos(2,2);
LCD12864_WriteDate(month/10+0x30);
LCD12864_WriteDate(month%10+0x30);
LCD12864_DisplayString("月");LCD12864_SetPos(2,4);
LCD12864_WriteDate(day/10+0x30);
LCD12864_WriteDate(day%10+0x30);
LCD12864_DisplayString("日");LCD12864_SetPos(3,0);
LCD12864_WriteDate(hour/10+0x30);
LCD12864_WriteDate(hour%10+0x30);
LCD12864_DisplayString("时");LCD12864_SetPos(3,2);
LCD12864_WriteDate(minute/10+0x30);
LCD12864_WriteDate(minute%10+0x30);
LCD12864_DisplayString("分");LCD12864_SetPos(3,4);
LCD12864_WriteDate(seconds/10+0x30);
LCD12864_WriteDate(seconds%10+0x30);
LCD12864_DisplayString("秒");}
main()
{?
CLK_Init();IO_Init();
timer1_init();
LCD12864_Init();//初始化LCD
year=16;month=10;day=11;hour=12;minute=12;seconds=0;
_asm("rim\n");
while?(1); {??deal_time();
?LCD_display_time();
}
}
希望例子能给你帮助。听说聪明的人能举一反三。
关于“智能电子钟单片机设计方案”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!