当前位置: 首页 > news >正文

美团网站建设建设银行公积金预约网站

美团网站建设,建设银行公积金预约网站,上海网站空间租用,怎么用wordpress建微博/* 程序名#xff1a;    LCD1602#xff0c;4位数据总线液晶屏时钟#xff0c;STC12C5A60S2的10位ADC功能程序 编写时间#xff1a;  2015年10月4日 硬件支持#xff1a;  LCD1602液晶屏 STC12C5A60S2 外部12MHZ晶振 接线定义#xff1a; DB7 -- P1^7DB6… /* 程序名    LCD16024位数据总线液晶屏时钟STC12C5A60S2的10位ADC功能程序 编写时间  2015年10月4日 硬件支持  LCD1602液晶屏  STC12C5A60S2 外部12MHZ晶振  接线定义   DB7 -- P1^7DB6 -- P1^6DB5 -- P1^5DB4 -- P1^5RS  -- P3^2;RW  -- P3^3;E   -- P3^4;ADC -- P1^0; 给0--5V的电位器调电压*/#include STC12C5A60S2.H //单片机头文件 #include intrins.h //51基本运算包括_nop_空函数 typedef unsigned char      uint8;          // 无符号8位整型变量 // #define LCM2402_DB0_DB7 P1  // 定义LCM2402的数据总线 sbit LCM2402_RS    P3 ^ 2;   // 定义LCM2402的RS控制线 sbit LCM2402_RW    P3 ^ 3;   // 定义LCM2402的RW控制线 sbit LCM2402_E     P3 ^ 4;   // 定义LCM2402的E控制线 sbit LCM2402_Busy  P1 ^ 7;   // 定义LCM2402的测忙线与LCM2402_DB0_DB7关联 data unsigned char TIME_DD,TIME_MO,TIME_YY,TIME_WW,TIME_HH,TIME_MM,TIME_SS;//设置日、月、年、周、时、分、秒和温度存放区 data bit DAY_BIT  0;//天数增加标志位用于日期进位的启动 data unsigned char DIS_BIT  0; //多种信息的切换显示 data unsigned char cou   0;     // 软计数器,对10ms时基信号累加到1s // 定义LCM2402指令集 // 详细请见技术手册 #define  CMD_clear 0x01            // 清除屏幕 #define  CMD_back 0x02             // DDRAM回零位 #define  CMD_dec1 0x04             // 读入后AC指针减1向左写 #define  CMD_add1 0x06             // 读入后AC指针加1向右写 #define  CMD_dis_gb1 0x0f          // 开显示_开光标_开光标闪烁 #define  CMD_dis_gb2 0x0e          // 开显示_开光标_关光标闪烁 #define  CMD_dis_gb3 0x0c          // 开显示_关光标_关光标闪烁 #define  CMD_OFF_dis 0x08          // 关显示_关光标_关光标闪烁 #define  CMD_set82 0x38            // 8位总线_2行显示 #define  CMD_set81 0x30            // 8位总线_1行显示上边行 #define  CMD_set42 0x28            // 4位总线_2行显示 #define  CMD_set41 0x20            // 4位总线_1行显示上边行 #define  lin_1  0x80               // 4位总线_1行显示上边行 #define  lin_2  0xc0               // 4位总线_1行显示上边行 #define  ct   2                    // 写入命令写入数据 E能端 持续的毫秒void DELAY_MS (unsigned int a){unsigned int i;while( --a ! 0){for(i  0; i  600; i);} }// LCM2402测忙若LCM2402处于忙状态本函数将等待至非忙状态 // void LCM2402_TestBusy(void){LCM2402_DB0_DB7  0xff; //设备读状态LCM2402_RS  0;LCM2402_RW  1;LCM2402_E  1;while(LCM2402_Busy); //等待LCM不忙LCM2402_E  0;  // }// 写指令程序 // // 向LCM2402写命令 本函数需要1个指令集的入口参数 // void LCM2402_WriteCMD(uint8 LCM2402_command) { LCM2402_TestBusy();LCM2402_RS  0;LCM2402_RW  0;LCM2402_DB0_DB7  (LCM2402_command/16)4;//0x45 0x40  LCM2402_E  1;DELAY_MS(ct); LCM2402_E  0;LCM2402_DB0_DB7  (LCM2402_command%16)4;//0x45 0x50LCM2402_E  1;DELAY_MS(ct); LCM2402_E  0; }// 向LCM2402写数据 // void LCM2402_WriteData(uint8 LCM2402_data){ LCM2402_TestBusy();LCM2402_RS  1;LCM2402_RW  0;LCM2402_DB0_DB7  (LCM2402_data/16)4;LCM2402_E  1;DELAY_MS(ct); LCM2402_E  0;LCM2402_DB0_DB7  (LCM2402_data%16)4;LCM2402_E  1;DELAY_MS(ct); LCM2402_E  0; } // 向LCM发送一个字符串,长度48字符之内  void print(uint8 a,uint8 *str){LCM2402_WriteCMD(a | 0x80);while(*str ! \0){LCM2402_WriteData(*str);}*str  0; }// 打印单字符程序 //  void print2(uint8 a,uint8 t){LCM2402_WriteCMD(a | 0x80);LCM2402_WriteData(t); }// 定义小汉字  可写入16个自字义字符写入后可用其CGRAM代码直接提取显示。 uint8 code Xword[]{0x18,0x18,0x07,0x08,0x08,0x08,0x07,0x00,        //℃代码 0x000x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,        //一代码 0x010x00,0x00,0x00,0x0e,0x00,0xff,0x00,0x00,        //二代码 0x020x00,0x00,0xff,0x00,0x0e,0x00,0xff,0x00,        //三代码 0x030x00,0x00,0xff,0xf5,0xfb,0xf1,0xff,0x00,        //四代码 0x040x00,0xfe,0x08,0xfe,0x0a,0x0a,0xff,0x00,        //五代码 0x050x00,0x04,0x00,0xff,0x00,0x0a,0x11,0x00,        //六代码 0x060x00,0x1f,0x11,0x1f,0x11,0x11,0x1f,0x00,        //日代码 0x07 }; void CgramWrite(void) { // 装入CGRAM //uint8 i;LCM2402_WriteCMD(0x06);  // CGRAM地址自动加1LCM2402_WriteCMD(0x40);  // CGRAM地址设为00处for(i0;i64;i) {LCM2402_WriteData(Xword[i]);// 按数组写入数据} }// LCM2402初始化 //使用者可自定义加 * 号程序行必须保留但可修改 void LCM2402_Init(void){LCM2402_WriteCMD(CMD_set42); //* 显示模式设置显示2行每个字符为5*7个像素LCM2402_WriteCMD(CMD_set42); //* 显示模式设置显示2行每个字符为5*7个像素LCM2402_WriteCMD(CMD_clear); //  显示清屏LCM2402_WriteCMD(CMD_back); //* 数据指针指向第1行第1个字符位置LCM2402_WriteCMD(CMD_add1); //  显示光标移动设置文字不动光标右移LCM2402_WriteCMD(CMD_dis_gb3);  //  显示开及光标设置显示开光标开闪烁开CgramWrite();   //  向CGRAM写入自定义字符 }bit IsLeapYear(void){    //计算本年是否是润年 unsigned int a;a  2000TIME_YY;//加2000表示成完整的年if((a%40  a%100!0)||(a%4000)){ //润年的计算公式return 1;//是润年返回1 }else{ return 0;//不是润年返回0 } } void month_day(void){  unsigned char mon_day[]{31,28,31,30,31,30,31,31,30,31,30,31};TIME_DD;//天加1TIME_WW;//星期值加1if(TIME_WW  7){TIME_WW  1;//时期值限定}if(TIME_DD  mon_day[TIME_MO-1]){//检查天是否大于当月的最大值if(IsLeapYear()TIME_MO2){ //计算本月是否是润年的2月份 TIME_DD  29;//如果是润年又是2月则天为29}else{TIME_DD  1; //否则就等于1TIME_MO;//月加1if(TIME_MO  12){TIME_MO  1; //如果月大于12则月等于1TIME_YY;//年加1 公历年无限积加}}} } void init (void){ //上电初始化TMOD  0x11;         // 定时/计数器0,1工作于方式1   TH0  0x3c;          // 预置产生50ms时基信号   TL0  0xb0;   EA  1;              // 开总中断   ET0  1;             // 定时/计数器0允许中断   TR0  1;             // 开闭定时/计数器0   TIME_DD  4; //时间在首次使用的值之后会在EEPROM自动记录上一天的值TIME_MO  10; //初始时间2009年5月18日周一20时13分40秒TIME_YY  15;TIME_WW  1;TIME_HH  0;TIME_MM  35;TIME_SS  0; }//显示项目 时间部分 在第一行全行显示时间 void RealTime_Display(void){print(0x80,20);print2(0x82,TIME_YY/100x30);print2(0x83,TIME_YY%100x30);print(0x84,/);            // 显示年print2(0x85,TIME_MO/100x30);print2(0x86,TIME_MO%100x30);print(0x87,/);            // 显示月print2(0x88,TIME_DD/100x30);print2(0x89,TIME_DD%100x30);print(0x8b,[);            // 显示[print2(0x8c,TIME_WW%10); //星期print(0x8d,]);            // 显示]print2(0x40,TIME_HH/100x30);//小时print2(0x41,TIME_HH%100x30);print(0x42,:);            // 显示cgram第一个字模print2(0x43,TIME_MM/100x30);//分钟print2(0x44,TIME_MM%100x30);print(0x45,.);            // 显示cgram第一个字模.print2(0x46,TIME_SS/100x30);//秒print2(0x47,TIME_SS%100x30); }/*** 函数名10位A/D转换初始化函数 调  用Read_init (?); 参  数输入的端口0000 0XXX 其中XXX是设置输入端口号可用十进制0~7表示0表示P1.07表示P1.7 返回值无 结  果开启ADC功能并设置ADC的输入端口 备  注使用ADC功能时需要将对应的IO接口设置为高阻输入方式例如P1M1  0x01; ***/ void Read_init (unsigned char CHA){unsigned char AD_FIN0; //存储A/D转换标志CHA  0x07;            //选择ADC的8个接口中的一个0000 0111 清0高5位ADC_CONTR  0x40; //ADC转换的速度0XX0 0000 其中XX控制速度请根据数据手册设置_nop_();ADC_CONTR | CHA;       //选择A/D当前通道_nop_();ADC_CONTR | 0x80;      //启动A/D电源DELAY_MS(1);            //使输入电压达到稳定1ms即可 }/*** 函数名10位A/D转换函数 调  用?  ADC_Read(); 参  数无 返回值10位ADC数据高(从0到1023十进制 结  果读出指定ADC接口的A/D转换值并返回数值 备  注适用于STC12C5A60S2系列单片机必须使用STC12C5A60S2.h头文件 ***/ unsigned int ADC_Read (void){ // int 2个字节16位unsigned char AD_FIN0; //存储A/D转换标志ADC_CONTR | 0x08;      //启动A/D转换0000 1000 令ADCS  1_nop_();_nop_();_nop_();_nop_();while (AD_FIN 0){     //等待A/D转换结束AD_FIN  (ADC_CONTR  0x10); //0001 0000测试A/D转换结束否}ADC_CONTR  0xE7;      //1111 0111 清ADC_FLAG位, 关闭A/D转换,  return (ADC_RES*4ADC_RESL);//返回A/D转换结果10位ADC数据高8位在ADC_RES中低2位在ADC_RESL中//内部寄存器ADC_RES返回的值在反给int时左移两位空两位出来给低两位ADC_RESL }void main (void){ unsigned int m;  // m必须是16位的数据类型init();//初始化                           LCM2402_Init();//LCM2402初始化P1M1  0x01;//  高阻会有感应,用哪一个就开启哪一个                           Read_init (0);  // 选取P1^0引脚while(1){  RealTime_Display();  m  ADC_Read ();//m必须是16位的数据类型 print2(0x4A,m/10000x30); print2(0x4B,(m%1000)/1000x30); print2(0x4C,(m%100)/100x30); print2(0x4D,m%100x30);if(DAY_BIT  1){ //检查天数是否更新是则计算公历month_day();//计算公历日期 DAY_BIT  0;//计算完成后将日期变更标志位置0}} }void tiem0(void) interrupt 1{   // T/C0中断服务程序(产生50ms时基信号)   cou;                      // 软计数器加1   if(cou  19){                 // 计数值到100(1s)   cou  0;               // 软计数器清零   TIME_SS;                 // 秒计数器加1(进位10ms*1001s)   if(TIME_SS  59){          // 秒计数值到60   TIME_SS  0;           // 秒计数器清零   TIME_MM;             // 分计数器加1(进位60s1m)  if(TIME_MM  59){      // 分计数到60   TIME_MM  0;       // 分计数器清零   TIME_HH;         // 时计数器加1(进位60m1h)   if(TIME_HH  23){  // 时计数到23   TIME_HH  0;   // 时计数器清零DAY_BIT  1; //天增加标志位 }  }   }   }   TH0  0x3c;                // 重置定时常数   TL0  0xb0;    } 转载于:https://blog.51cto.com/990487026/1700168
http://www.huolong8.cn/news/304500/

相关文章:

  • 南阳网站公司sae wordpress 安装插件
  • 网站建设一般用什么语言网站建设教程数据库
  • 上饶市住房和城乡建设局网站企查查免费下载安装
  • 做家装的网站有哪些重庆网站建设选卓光
  • 北京建设信息网站云主机免费
  • 五莲县城乡建设局网站首页淘宝联盟怎么做自己的网站
  • seo企业网站源码产品设计个人作品集
  • 旅游公司网站开发与实现互联网公司的排名
  • 企业标准建站响应式网站模板下载
  • 做任务赚话费的网站域名生成器
  • 创新的微商城网站建设移动网站设计方案
  • 郑州网站建设模板优设网剪辑教程
  • 网站备案要花钱吗网页设计制作基础
  • 微服务网站开发学生WordPress博客
  • 做网站图片多大兰州论坛网站建设
  • 电子商务网站开发设计案例—易趣网电子商务网站网站百度显示绿色官网字如何做的
  • 做网站是什么课插件wordpress
  • 西工网站建设设计国外网页加速器
  • 伍佰亿网站怎么做如何制作企业官网
  • 什么编程语言做网站安全视频网站后台管理
  • 永兴网站建设报价深圳龙岗区邮编
  • 上饶有哪些做网站的店刷赞网站推广ks
  • 公司网站建设计入什么科目qq电脑版网页登录
  • 深圳网站建设 设计微擎wordpress
  • 外贸网站建设推广公司前景如何云服务器可以做网站
  • 山西省建设银行网站免费 网站点击
  • 成都企业品牌网站建设51一起做网站
  • 珠海电商网站建设我的世界做图的网站
  • 网站建设都有什么工作要做怎样设置一个属于自己的网站
  • 上海专业的网站建设公司哪家好商城网站建设需求