



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子表C语言程序#include #include void Init_Device(void) ;typedef unsigned char uchar;enum Clock_SHOW_MODE M_NORMAL = 0, M_ADJUEST_HOUR, M_ADJUST_MIN, M_ADJUST_SECOND;enum CLOCK_SHOW_LEFT_RIGHT SHOW_HOUR_MIN, SHOW_MIN_SECONDS;struct TIMERuchar hour;uchar min;uchar seconds;uchar showDot;uchar leds6;enum Clock_SHOW_MODE showMode;enum CLOCK_SHOW_LEFT_RIGHT showLeftRight;typedef struct TIMER* P_TIMER;void TimerInit(P_TIMER pTimer) pTimer-hour = 1;pTimer-min = 23;pTimer-seconds = 45; uchar i;for( i=0;iledsi= 0;pTimer-showLeftRight = SHOW_HOUR_MIN;/SHOW_MIN_SECONDS;pTimer-showMode = M_NORMAL;void TimerInc(P_TIMER ptimer)ptimer-seconds +;if(ptimer-seconds = 60)ptimer-seconds -= 60;ptimer-min +;if(ptimer-min =60)ptimer-min -= 60;ptimer-hour +;if( ptimer-hour = 24)ptimer-hour -= 24;#define BLACK 10code uchar LED_ARRAY=0 ; /*0,1,2,3,4,5,6,7,8,9,10; */void setLedPos(uchar num, uchar *pLed)pLed0 = num/10 ;pLed1 = num%10 ;void SetLeds(P_TIMER pTimer)setLedPos(pTimer-hour, pTimer-leds);setLedPos(pTimer-min, pTimer-leds+ 2);setLedPos(pTimer-seconds, pTimer-leds + 4);if(pTimer- showDot)switch(pTimer- showMode) case M_ADJUEST_HOUR:pTimer-leds0 = BLACK;pTimer-leds1 = BLACK;break;case M_ADJUST_MIN:pTimer-leds2 = BLACK;pTimer-leds3 = BLACK;break;case M_ADJUST_SECOND:pTimer-leds4 = BLACK;pTimer-leds5 = BLACK;break; code posArray =/*/*0,2,4,0x10; */6,4,2,0;code Charecter = 0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f ,0xff;/ 0x50, 0x5f, 0x38, 0x17, 0x92, 0x90, 0x5b, 0x10, 0x12;void showLED(uchar num, uchar pos, uchar showDot)P2 = Charecternum - showDot*0x80; P1= posArraypos;#define C_TIME 1void showLESD(P_TIMER ptimer)uchar * pbuff;if(ptimer-showLeftRight = SHOW_HOUR_MIN) pbuff = ptimer- leds;else pbuff = ptimer- leds+2;showLED(pbuff0,0,0);os_wait(K_TMO,C_TIME,0);showLED(pbuff1,1,ptimer-showDot); os_wait(K_TMO,C_TIME,0);showLED(pbuff2,2,0);os_wait(K_TMO,C_TIME,0);showLED(pbuff3,3,ptimer-showDot); os_wait(K_TMO,C_TIME,0); enum KEY_CODE KEY_mode=0xfe, KEY_UP= 0xf7, KEY_CHANGE_SHOW_POS= 0xef;struct TIMER timer;#define TASK_TIMER_INC 0#define TASK_SHOW_LEDS 1#define TASK_KEY 2job0() _task_ TASK_TIMER_INC Init_Device() ; TimerInit(&timer); os_create_task(TASK_SHOW_LEDS); os_create_task(TASK_KEY); while(1) if(timer.showMode = M_NORMAL)TimerInc(&timer);timer.showDot =0;os_wait(K_TMO,500,0);timer.showDot =1;os_wait(K_TMO,500,0);job1() _task_ TASK_SHOW_LEDSwhile(1) SetLeds(&timer); showLESD(&timer);#define true 1#define false 0uchar isKeyPressed( enum KEY_CODE *pkey) uchar P2Temp = P2&0xff; uchar ret = true; P2= 0xff; *pkey = P2; switch(*pkey) case KEY_mode: case KEY_UP: case KEY_CHANGE_SHOW_POS: ret = true; break;default:ret = false;P2 = P2Temp;return ret; job2() _task_ TASK_KEYwhile(1) enum KEY_CODE key,key2; if(isKeyPressed( &key) for(;)if( isKeyPressed(&key2) & key = key2);else break;os_wait(K_TMO,20,0); else goto L1; switch(key) case KEY_mode: timer.showMode+;timer.showMode %= 4;switch(timer. showMode) case M_ADJUEST_HOUR: timer.showLeftRight = SHOW_HOUR_MIN; break; case M_ADJUST_SECOND: timer.showLeftRight = SHOW_MIN_SECONDS; break; default: break; break;case KEY_UP:switch( timer.showMode)default:break;case M_ADJUEST_HOUR:timer.hour +;timer.hour %= 24;break;case M_ADJUST_MIN:timer.min+;timer.min %= 60;break;case M_ADJUST_SECOND:timer.sec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林市中石油2025秋招面试半结构化模拟题及答案安全环保与HSE岗
- 中国联通咸阳市2025秋招笔试行测题库及答案计算机类
- 中国移动揭阳市2025秋招写作案例分析万能模板直接套用
- 中国移动莆田市2025秋招企业文化50题速记
- 国家能源咸阳市2025秋招面试典型题目及答案
- 中国移动普洱市2025秋招网申填写模板含开放题范文
- 国家能源黄石市2025秋招笔试模拟题及答案
- 中国联通长沙市2025秋招笔试行测题库及答案计算机类
- 毕节市中石化2025秋招面试半结构化模拟题及答案油田勘探开发岗
- 宿迁市中储粮2025秋招安全环保岗高频笔试题库含答案
- 房屋漏水维修合同书范文
- 超声科医院感染管理:培训与演练
- 《会计政策变更》课件
- 中药草乌课件
- DL-T 892-2021 电站汽轮机技术条件
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- 养牛计划书模板
- 外国经济学说史课件
- 胚胎移植术后的健康教育
- 普通动物学课件
- 《怎样当好班主任》课件
评论
0/150
提交评论