历史上的今天
今天是:2025年07月22日(星期二)
2020年07月22日 | 中国码电波机芯源码(仅供参考)MSP430单片机程序
2020-07-22 来源:51hei
电波钟源码:中国码机型的,有兴趣可以拿去参考吧。改下硬件引脚就可以了
不详细解说了,能看懂得应该都懂
单片机源程序如下:
#include typedef unsigned char uchar; typedef unsigned int uint; #define XTOFF 0x40 #define DataDir P4DIR #define DataPort P4OUT #define Busy 0x80 #define CtrlDir P3DIR #define CLR_RS P3OUT&=~BIT0; //RS = P3.0 #define SET_RS P3OUT|=BIT0; #define CLR_RW P3OUT&=~BIT1; //RW = P3.1 #define SET_RW P3OUT|=BIT1; #define CLR_EN P3OUT&=~BIT2; //EN = P3.2 #define SET_EN P3OUT|=BIT2; #define keyin (P2IN&0x0f) uint high_level[19],dattmp[19]; uint low_level; uchar month,day,year,hour,min,sec,weekday; uchar tmp_month,tmp_day,tmp_year,tmp_hour,tmp_min,tmp_sec,tmp_weekday; uchar flag; uchar i; uchar PP=0; uchar cflag=0; void main_test(void); void Init_TimerA(void); void Init_TimerB(void); void Decode(void); void Display(void); void Delay10ms(void); uchar Key4Scan(void); void DispStr(uchar x,uchar y,uchar *ptr); void DispNChar(uchar x,uchar y,uchar n,uchar *ptr); void LocateXY(uchar x,uchar y); void Disp1Char(uchar x,uchar y,uchar data); void LcdReset(void); void LcdWriteCommand(uchar cmd,uchar chk); void LcdWriteData(uchar data); void WaitForEnable(void); void Delay5ms(void); void main(void) { main_test(); } void main_test(void) { WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 P2DIR = 0x80; P2OUT = 0x00; LcdReset(); Init_TimerA(); Init_TimerB(); while(i<19) ; while(19<=i) Decode(); Display(); while(1) { if(!cflag) { Display(); } switch(Key4Scan()) { case 0x01: switch(PP++) //确定游标地址 { case 0: LocateXY(4,0); break; case 1: LocateXY(7,0); break; case 2: LocateXY(10,0); break; case 3: LocateXY(14,0); break; case 4: LocateXY(4,1); break; case 5: LocateXY(7,1); break; case 6: LocateXY(10,1); break; default: break; } LcdWriteCommand(0x0f,1); if(7==PP) PP=0; cflag=1; //标志置位 break; case 0x02: if(cflag) { tmp_year=year; tmp_month=month; tmp_day=day; tmp_hour=hour; tmp_min=min; tmp_sec=sec; tmp_weekday=weekday; switch(PP) { case 0: //年 year++; if(99 Disp1Char(3,0,year/10+48); Disp1Char(4,0,year%10+48); LocateXY(4,0); break; case 1: //月 month++; if(12 Disp1Char(6,0,month/10+48); Disp1Char(7,0,month%10+48); LocateXY(7,0); break; case 2: //日 day++; switch(month) { case 2: if(0==year%4) { if(29 } else if(28 break; case 4: case 6: case 9: case 11: if(30 break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(31 default: break; } Disp1Char(9,0,day/10+48); Disp1Char(10,0,day%10+48); LocateXY(10,0); break; case 3: //weekday weekday++; if(7 switch(weekday) { case 1: Disp1Char(12,1,'M'); Disp1Char(13,1,'o'); Disp1Char(14,1,'n'); break; case 2: Disp1Char(12,1,'T'); Disp1Char(13,1,'u'); Disp1Char(14,1,'e'); break; case 3: Disp1Char(12,1,'W'); Disp1Char(13,1,'e'); Disp1Char(14,1,'d'); break; case 4: Disp1Char(12,1,'T'); Disp1Char(13,1,'h'); Disp1Char(14,1,'u'); break;
史海拾趣
|
本地振荡器(LO)的设计和性能对手机能否达到或超过最初的设计目标有很大影响,大多数为北美市场设计的CDMA手机也包括AMPS,以便为那些尚未安装数字基础设施的地区提供服务,针对这些应用的手机可能需要8个不同的LO信号。本文讨论影响CDMA手机LO的设 ...… 查看全部问答> |
|
一台主机怎么才能控制多台光端机的球机转动?我试过一台主机控制一台光端机的球机能转动,但是并联另外一台光端机 球机都不能转动了,这是怎么回事?单独能控制转动,并联就不能控制转动了????请高手指点…………… 查看全部问答> |
|
行线高电平且列线低电平时控制灯亮 如何在逐行显示中使不同行的灯亮之间没有干扰啊 逐行显示 第二行的代码实现时是否会覆盖第一行的啊 (使用8255控制8X8LED) 汇编语言!!!! … 查看全部问答> |
|
vxworks中向任务发送消息,有没有类似windows中的"PostThreadMessage"机制? vxworks中向任务发送消息,有没有类似windows中的\"PostThreadMessage\"机制? 不需要自己创建消息队列,直接使用vxwork任务的消息队列,该消息队列由vxworks来维护,创建,并提供保护机制,我们只需要postmessage,然后getmessage 对消息进行处理… 查看全部问答> |
|
使用同步链处理亚稳态后,仍然可能会出现输入逻辑与输出逻辑不一致的情况吧??? 在处理亚稳态时,很多资料都是说用同步链(多个D触发器)可以大大降低亚稳态问题,我觉得其作用也就是使得下一级的输入是一个确定状态,但并不一定能保证输入信号与同步链后输出信号逻辑是一致的吧?这样的话,后一级输入仍然是错误的逻辑状态,那 ...… 查看全部问答> |
|
关于用FPGA语言实现VGA显示彩条仿真老是出不来..求助.内有源程序和仿真截图 library ieee;use ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity vga is port( reset &n ...… 查看全部问答> |
|
《ARM Cortex-M0从这里开始》 对于初学者来说,单片机的选型恐怕是个头疼的问题。从8位到32位,单片机的种类繁多。比较常见的内核有8051、AVR、PIC、ARM等等,但是选择哪一种比较容易入门,而且在今后的工作中能够用的 ...… 查看全部问答> |
|
W90P950开发板采用一板式设计,6层PCB板结构,尺寸仅为80×90mm,方便客户携带、调试和测量。设计严格按照CCC、CE等国内外电子产品认证标准,充分考虑高速信号完整性、电磁兼容性、静电保护等产品实际使用细节,确保W90P950核心板在各种环境下稳定 ...… 查看全部问答> |




