历史上的今天
今天是:2024年10月28日(星期一)
2019年10月28日 | 出租车计费仿真原理图+单片机源程序
2019-10-28 来源:51hei
出租车计费仿真原理图如下



单片机源程序如下:
#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) { ……………………
史海拾趣
|
各位大侠是否也搞过在线系统升级没有?比如在做个软件运行,如果发现u盘或sd卡里面有nk的同名文件,就提示可以系统升级,然后直接升级~我看到英贝德的某个产品也能实现这样的操作。我现在还不是很明白如果以上方案可行,到底是不是把新的nk镜像直接 ...… 查看全部问答> |
|
大家好,用立宇泰的摄像头应用程序和驱动程序平台是WINCE5。0,在拍照时拍到第四张时出现异常,DNW窗口出现这样的信息 RaiseException: Thread=839e05e8 Proc=81c76ac0 \'Cameratest.exe\' AKY=00000401 PC=03fb44d8(coredll.dll+0x000444d8) RA= ...… 查看全部问答> |
|
vc2005智能设备的CButton与vc2005非智能设备的Cbutton的主要区别在哪儿?高手指点 vc2005智能设备的CButton与vc2005非智能设备的Cbutton的主要区别在哪儿?高手指点… 查看全部问答> |
|
帮忙解决vhdl:quartus7.2 在运行if..genarate遇到的问题 本人在quartus7.2运行如下vhdl代码: library ieee; use ieee.std_logic_1164.all; entity shift is generic (len:integer); port(a,clk:in std_logic; &n ...… 查看全部问答> |
|
求购一块TI的EK-LM3S8962,要求带小板,我主要是拿回来学习CAN总线,希望已经将这块板子放在角落里的朋友能转给我学习一下。 不过喊天价吓唬我的就算了,我胆子小,呵呵 我这里还有C2000开发套件,和几块PIC的板子,如果感兴趣,交换也行 C2000&nb ...… 查看全部问答> |
|
布线(Layout)是PCB设计工程师最基本的工作技能之一。走线的好坏将直接影响到整个系统的性能,大多数高速的设计理论也要最终经过 Layout 得以实现并验证,由此可见,布线在高速 PCB 设计中是至关重 ...… 查看全部问答> |
|
PAD中邦定IC的画法及注意事项Bonding PCB Layout注意事項 PADS中邦定IC的画法及注意事项Bonding PCB Layout注意事項 QQ: 520122524Skype:xcq185388740msn: xcq185388740@live.cn邮箱:xcq185388740@163.com… 查看全部问答> |
|
我想用单片机的USB口和信号发生器的USB口接起来,然后通过单片机程序来控制信号发生器发生正弦信号(频率和复制用程序设定),这样可以的吗?因为我在控制信号发生器的时候还得用单片机来控制其他的MOS管,信号的频率和MOS管同步起来,很着急的求解 ...… 查看全部问答> |




