单片机源码如下:
#include #include #include #include #include #include #include /*********************************************************************************************************/ #include "IO.h" #include "uart.h" #include "lcd.h" #include "key.h" #include "sht.h" /*********************************************************************************************************/ #pragma data:data unsigned char temp_flag=0; unsigned char wd_shang; unsigned char wd_xia; unsigned char sd_shang; unsigned char sd_xia; unsigned char pf_shang; unsigned char pf_xia; unsigned char Body_Flag; //人体靠近带电标志位 unsigned char rt_gy; // 人体感应非投入,1:投入,2:非投入 unsigned char db_du; unsigned char InIt_Para[]={0x0a,0x05,0x5D,0x55,0x37,0x32,0x01,0x01}; /*********************************************************************************************************/ unsigned char wd_bz; unsigned char sd_bz; unsigned char pf_bz; unsigned char wendu1_biaozhi; unsigned char wendu2_biaozhi; unsigned char mima; /*********************************************************************************************************/ unsigned int R_ms_Timer,mincount1; unsigned int timer_count; unsigned char timer_count1; unsigned char timer_count2; unsigned char timer_count3; unsigned char Cls_Lcd_Flag; unsigned char GPIOSamp_counter_Flag; unsigned char GPIOSamp_counter; /*********************************************************************************************************/ extern unsigned char bz; //位标志 extern unsigned char bz1; //位标志,判断是地址还是数据 extern unsigned char di_zhi; extern unsigned char Receiver_Flag; // 接受数据标志 extern unsigned char Back_Light_Flag; extern unsigned char rx0_buf[16]; // 接收数据缓存器 extern unsigned char rx0_index; // 接收数据计数器 extern unsigned char Tx0_buf[16]; // 发送数据缓存器 extern unsigned char R_KeyValue1; /*********************************************************************************************************/ //todao[0]:湿度测量 1; todao[1]: 温度测量 1; todao[2]:湿度测量 2; todao[3]:温度测量 2 extern float todao[4]; //{temp,rh}; 模拟量寄存器从1到2 extern unsigned char rx0_index; extern unsigned char Q,n,TT1,T,TT2; extern unsigned char ch,cl; extern unsigned char Up_Counter; extern unsigned char Page_Flag; extern unsigned char Page_Flag1; /********************************************************************************************************** ** 函数名称:init_para() ** 函数功能:开机时取得、设定各项参数 ** 入口参数: ** 出口参数:无 ** 说 明: *********************************************************************************************************/ void init_para(void) { EEPROMReadBytes(0x0010,&wd_shang,1); delay_nms(10); EEPROMReadBytes(0x0011,&wd_xia,1); delay_nms(10); EEPROMReadBytes(0x0012,&sd_shang,1); EEPROMReadBytes(0x0013,&sd_xia,1); delay_nms(10); EEPROMReadBytes(0x0014,&pf_shang,1); EEPROMReadBytes(0x0015,&pf_xia,1); EEPROMReadBytes(0x0016,&rt_gy,1); EEPROMReadBytes(0x0017,&di_zhi,1); } /********************************************************************************************************** * 函数名称:EEprom_init() * 函数功能:开机时取得、设定各项参数 * 入口参数: * 出口参数:无 * 说 明: ********************************************************************************************************/ void EEprom_init(void) { unsigned char EEP_Read=0,Eep_Write=0; EEPROMReadBytes(0x03,&EEP_Read,1); if( EEP_Read != 0x55) { Eep_Write = 0x55; EEPROMWriteBytes(0x0003,&Eep_Write,1); EEPROMWriteBytes(0x0010,InIt_Para,8); init_para(); } else { init_para(); } } /********************************************************************************************************** ** 函数名称:timer0_init() ** 函数功能:初始化定时器0,10ms定时器 ** 入口参数:无 ** 出口参数:无 ** 说明: 8位定时器,和8051相似,只是注意定时器时钟是晶振分频以后 *********************************************************************************************************/ void Timer0_init(void) { TCCR0 = 0x00; ASSR = 0x00; TCNT0 = 0xB1; // 定时初值 8Mhz //TCNT0 = 0x93; // 定时初值 11Mhz OCR0 = 0x00; TCCR0 = 0x07; // 时钟1024分频 ,启动定时器 TIMSK |= 0x01; // timer0中断使能 } /********************************************************************************************************** ** 函数名称:timer0_ovf_isr() ** 函数功能:定时器0溢出中断服务程序 ** 入口参数:无 ** 出口参数:无 ** 说明: *********************************************************************************************************/ #pragma interrupt_handler Timer0_ovf_isr:iv_TIMER0_OVF void Timer0_ovf_isr(void) { TCNT0 = 0xB1; R_ms_Timer++; timer_count1++; if(timer_count1>=4) { KeyValue_Pro(); timer_count1=0; } if(GPIOSamp_counter_Flag) GPIOSamp_counter++; if((Back_Light_Flag==1)&&((Body_Flag == 0)||(Body_Flag == 2))) // 液晶背光 { mincount1++; if(mincount1 >= Ldc_Timer ) // 30秒 { mincount1 = 0; DI_jdq5_ZHMIN_OUT1; LCD_LED_OUT1; } } if(Back_Light_Flag==0) { LCD_LED_OUT0; DI_jdq5_ZHMIN_OUT0; mincount1 = 0; } } /**********************************************************************************************************
上一篇:单片机全场定位系统程序
下一篇:AVR单片机汇编指令的小合集
推荐阅读
史海拾趣
E-T-A公司自1948年由Jakob Ellenberger和Harald A. Poensgen创立以来,一直由该家族掌管。尽管公司已经发展成为一个国际性的企业,但家族第二代和第三代领导人仍然保持着对公司的掌控和管理。他们秉承了家族的创业精神和价值观,坚持以客户为中心,以技术创新为驱动,不断推动公司向前发展。在家族传承的推动下,E-T-A公司得以保持其独特的企业文化和核心竞争力,在电子行业中持续领跑。
在电子行业竞争日益激烈的背景下,BB公司深知技术创新是企业发展的核心动力。因此,公司投入大量研发资金,积极引进和培养人才,不断推动技术创新。经过多年的努力,BB公司在模拟集成电路领域取得了多项重大突破,推出了一系列具有自主知识产权的创新产品。这些产品不仅提升了BB公司的市场竞争力,也为整个电子行业的发展做出了贡献。
随着科技的不断进步,超音意识到技术创新对于公司发展的重要性。因此,公司加大了研发投入,积极引进高端人才,不断推出具有创新性和竞争力的产品。其中,超音的一款高端音响产品凭借其卓越的音质和精美的外观设计,在市场上获得了广泛的好评。此外,超音还积极与其他科技公司合作,共同研发新产品,不断拓宽产品线。
面对国内市场的饱和竞争,AMRI Enterprise Co Ltd积极实施国际化战略,拓展海外市场。公司通过参加国际电子展会、建立海外销售渠道等方式,不断提升品牌知名度和产品影响力。同时,AMRI还针对不同国家和地区的市场需求,调整产品策略,提供定制化的解决方案。这一战略的实施,使得AMRI的产品成功打入多个国际市场,实现了业务的快速增长。
为了进一步拓展市场份额,达方电子开始在全球范围内布局生产基地和研发中心。同时,公司加强了对供应链的管理,确保原材料的稳定供应和产品质量的持续提升。这一阶段的努力,使达方电子在全球电子行业中的地位得到了进一步提升。
DSMI Electronics SA公司非常重视企业文化的建设和团队建设。公司倡导开放、协作、创新、务实的企业文化,鼓励员工积极参与技术创新和市场竞争。同时,DSMI还注重人才培养和引进,通过内部培训、外部招聘等方式,不断提升员工的素质和能力。这些努力为公司的持续发展提供了有力的人才保障。
我是软件工程专业嵌入式方向的,但我们学校是个不太响的2批学校,这方向的毕业生都没几个做嵌入式的。但我想通过自己的努力往嵌入式方向发展。 最近想买一款板子,不知道买什么的好,在网上看了一下S3C2440的,发现有mini2440,OK2440,TQ2440,GT ...… 查看全部问答∨ |
|
linux 的驱动层中的互斥机制和应用层互斥机制有什么不同? 有人研究过这个嘛? 我觉得有些奇怪 似乎二者没有什么区别 那是不是在使用时我二选一就可以了? 比如,如果在驱动中我没有做互斥,那在应用层做多进程互斥就好了 同样,如果在驱动中作了,是不是就可以在应用层多进程随意访问该驱动都没有关系? 2: ...… 查看全部问答∨ |
|
我刚配的电脑,不知道是什么原因,我每次一编译NIOS工程,电脑就自动的从新启动 重装了系统也不行,问问,到底是什么原因啊。。。 谁遇到过类似问题的,谢谢给我答案.......… 查看全部问答∨ |
|
小弟快要毕业了 毕设是MSP430电容触摸按键的实现 我选用的是MSP430G2553单片机 单片机说多达24个支持触摸感应IO 像知道这IO是怎么使用的谢谢了 … 查看全部问答∨ |
|