基于st89c52单片机的自动往返小车含程序(编辑修改稿)内容摘要:

/P1_0 设置为电机控制一 sbit dianji2=P1^1。 //P1_1 设置为电机控制 二 sbit hdjc=P3^2。 //P3_2 设置为黑带检测位 uchar code duma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}。 //段编码 uchar code dianduma[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}。 //带小数点段编码 uchar code wema[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0xff}。 //位编码 uchar num,ge,shi,bai,qian。 //定义几个字符型变量 uint miao,lc,heidai=0。 //定义几个整形变量 long int qs。 //定义一个长整形变量用来记录小车所转的圈数 void fenwei(uint)。 //声明一个分位函数用来把要显示的数分位 void shuma(uchar,uchar)。 //声明一个数码上显示函数用来在数码管上显示数据 void shumadian(uchar,uchar)。 //声明另一个数码显示函数用来显示带小数点的数据 void miaoxianshi(uint)。 //声明一个显示时间的函数 void lcxs(uint)。 //声明一个显示路程的函数 void djkz()。 //声明一个电机控制函数 void delay(uchar)。 //声明一个延时函数 void delay10s()。 //声明另一个延时函数用来延时十秒钟 /*———————————————— 主函数 ——————————————————— */ void main() { EA=1。 //打开总中断 ET0=1。 //打开定时器中断 0 EX0=1。 //打开外部中断 1 IT0=1。 //外部中断 0 设置为跳变沿触发方式 EX1=1。 //打开外部中断 1 IT1=1。 //外部中断 1 设置为跳变沿触发方式 TMOD=0x01。 //设置定时器 0 为方式 1 TH0=(65536500)/256。 //定时器 0 高八位装初值 TL0=(65536500)%256。 //定时器 0 低八位装初值 TR0=1。 //打开定时器 0 while(1) //进入主循环 { djkz()。 //进入电机控制函数 } } /*———————————————— 显示分位 ——————————————————— */ //函数功能: 把需要在数码管上显示的数据分位, // 即把数据的个、十、百、千位分别分 // 离出来 //函数入口参数:整形 x,储存需要分位的数据 //函数返回值: 无 void fenwei(uint x) { ge=x%10。 shi=(x%100)/10。 bai=(x%1000)/100。 qian=x/1000。 } /*———————————————— 数码显示 ——————————————————— */ //函数功能: 将需要显示的数据显示在数码管上 //函数入口参数:字符型 x,储存显示数据 // 字符型 y,储存要显示的位置 //函数返回值: 无 void shuma(uchar x,uchar y) { P0=wema[8]。 P2=。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。