出租车计费仿真原理图如下
单片机源程序如下:
#include #include unsigned code num[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; unsigned char data x_pos, y_pos; sbit rs=P2^0; sbit rw=P2^1; sbit e=P2^2; sbit Control=P3^5; bit swit_flg=0; unsigned char time,minte,second; unsigned char result; void delay_ms(unsigned char ms) { unsigned int i,j; for(i=ms;i>0;i--) { for(j=200;j>0;j--); for(j=102;j>0;j--); } } void busy(void) { unsigned char i; P0=0xff; rs=0; rw=1; e=1; for(i=0;i<20;i++) if((P0&0x80)==0) break; e=0; } void LcdWD(unsigned char d) { busy(); rs=1; rw=0; P0=d; e=1; _nop_(); e=0; } void LcdWC(unsigned char c) { busy(); rs=0; rw=0; P0=c; e=1; _nop_(); e=0; } void LcdInit(void) { LcdWC(0x38); //显示模式设置 delay_ms(3); //延时3ms LcdWC(0x38); delay_ms(3); LcdWC(0x38); delay_ms(3); LcdWC(0x38); delay_ms(3); LcdWC(0x08); //显示关闭 LcdWC(0x01); //清屏 delay_ms(3); LcdWC(0x06); //显示光标移动设置 LcdWC(0x0c); //开显示及 光标设置 } void charlcdpos(unsigned char x,unsigned char y) { x_pos=x; y_pos=y; x_pos&=0x0f; y_pos&=0x01; if(y_pos==0) LcdWC(x_pos|0x80); // 写第一行命令 else LcdWC(x_pos|0xc0); // 写第二行命令 } void putchar(unsigned char x,unsigned char y,unsigned char c) { charlcdpos(x,y); LcdWD(c); } /* void charcursornext(void) { x_pos++; if(x_pos>15) { x_pos=0; y_pos++; y_pos&=0x1; } } */ void displayInit(void) { unsigned char tmp; tmp=time/10;putchar(4,0,num[tmp]); tmp=time%10;putchar(5,0,num[tmp]); putchar(6,0,0x3a); tmp=minte/10;putchar(7,0,num[tmp]); tmp=minte%10;putchar(8,0,num[tmp]); putchar(9,0,0x3a); tmp=second/10;putchar(10,0,num[tmp]); tmp=second%10;putchar(11,0,num[tmp]); tmp=result/10; putchar(7,1,num[tmp]); tmp=result%10;putchar(8,1,num[tmp]); } void IRS_EX0() interrupt 0 using 1 { if(swit_flg==0) { time=0; minte=0; second=0; result=0; swit_flg=1; ET0=1; ET1=1; TR0=1; TR1=1; } else if(swit_flg==1) { result=(minte*60+second)*2; swit_flg=0; ET0=0; ET1=0; } } void IRS_T0() interrupt 1 using 2 { Control=1; TH0=0XD8; TL0=0XF0; Control=0; } void ISR_T1() interrupt 3 using 2 { second++; if(second>=60) { second=0; minte++; } if(minte>=60) { minte=0; time++; } if(time>=24) time=0; } void init_TC() { TMOD=0X61; TH0=0Xd8; // TL0=0Xf0; TL1=0XbC;//TL1=0X9C; TH1=0XbC; //IE=0X8A; Control=0; // TR0=1; // TR1=1; } void init_EX0() { IT0=1; EX0=1; EA=1; } void main() { unsigned char tmp; LcdInit(); displayInit(); delay_ms(100); init_TC(); init_EX0(); while(1) { ……………………
上一篇:51单片机PCF8591 AD DA转换电位器控制舵机旋转的源程序
下一篇:ESP8266的单片机程序,一页版
推荐阅读
史海拾趣
随着公司规模的扩大,Component Research Co面临着管理上的挑战。为了提升运营效率,公司引入了一系列创新管理措施,如引入先进的生产管理系统、优化供应链管理、推行员工激励机制等。这些措施的实施使得公司的运营效率得到了显著提升,产品质量也得到了更好的保障。
近年来,随着数字化转型浪潮的兴起,蜂鸟无线也积极投身于这一进程。公司利用自身在通信和物联网领域的技术优势,为制造业、能源、交通等多个行业提供了一站式智能数据服务平台。通过构建工业互联网大数据使能平台,蜂鸟无线帮助企业实现了生产经营数据的汇聚、分析和可视化,助力企业实现智能化管理运营。这一转型不仅提升了蜂鸟无线的服务能力,还为公司带来了新的增长点,推动了公司的持续健康发展。
为了进一步扩大市场份额,Curtis Industries公司积极拓展市场布局。公司在全球范围内设立了多个生产基地和研发中心,以便更好地满足不同地区客户的需求。同时,公司还加强了与上下游企业的合作,形成了完整的产业链。这些举措不仅提升了公司的产能和研发实力,还为公司带来了更多的商业机会。
CYANLITE公司成立于XXXX年,由一群富有创新精神的电子工程师创立。他们发现当时市场上对于高效能LED照明产品的需求日益增长,于是决定利用自己的技术背景,专注于研发和生产高品质的LED照明产品。起初,公司规模较小,资金有限,但他们凭借对技术的热情和坚持不懈的努力,成功研发出了第一款具有竞争力的LED灯具,并逐渐在市场上获得了认可。随着产品的热销,CYANLITE公司逐渐扩大了生产规模,并增加了研发投入,以保持其在行业中的领先地位。
Anderson Electronics Inc公司成立于电子行业的初期,创始人凭借对电子技术的深厚造诣和对市场需求的敏锐洞察,成功开发出了一款具有划时代意义的电子产品。这款产品以其卓越的性能和稳定的品质迅速占领了市场,为公司赢得了良好的口碑和丰厚的利润。在创业初期,公司注重技术创新和研发投入,不断推出新产品,逐步在电子行业中崭露头角。
Elite公司成立于20世纪90年代末,由一群热衷于电子技术的年轻人创立。在初创阶段,Elite面临着资金短缺、市场竞争激烈的挑战。然而,公司凭借其独特的创新理念和过硬的技术实力,成功研发出一款具有高性价比的智能手机,迅速在市场上获得认可。这款产品不仅帮助Elite实现了初步盈利,更为公司后续发展奠定了坚实基础。
有需要电感、变压器样品的工程师请进来,可能会有您用到的产品。 本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 我工厂位于深圳观澜,是一家专业电感、贴片变压器生产商.在品质、交期、单价各方面都有一定的优势.有需要这方面样品的工程师敬请联络索样,我会尽快免费提供给大家,谢谢! 美登一电子(深圳)有 ...… 查看全部问答∨ |
|
首先,我用的是微芯力科的ws-430评估板,cpu为at91rm9200,要求用wince开发。 评估板附带的资料只有linux以及ucos系统的,没有wince的资料,打电话到微芯力科公司,被告知该板不支持wince,因为wince要求某尺寸的真彩屏幕,而我的板子上是一个128 ...… 查看全部问答∨ |
|
我现在没有芯片,只是在keilc中写的串行通信程序,我想验证一下它能不能实现发送字节,只有一台的情况下该如何做?其中发送字节程序是? void sendbyte(unsigned char word) { SBUF=word; while(TI==0); TI=0; } … 查看全部问答∨ |
|