51单片机有必要用操作系统吗?
本帖最后由 jianhong_wu 于 2015-3-3 11:13 编辑坚鸿解答:大部分的单片机项目,如果没有复杂的彩屏界面,如果没有复杂的文件系统,我觉得最好的程序框架就是switch状态机裸奔框架,也就是我在《从业将近十年!手把手教你单片机程序框架》中分享的程序框架,这种框架简单高效,条理清晰,我这些年来所做的单片机项目都是基于这种程序框架。
鸿哥在51上有用过操作系统吗 鸿哥在51上有用过操作系统吗 又一个暑假 发表于 2014-8-28 09:17
鸿哥在51上有用过操作系统吗
我从来没有用过。 鸿哥,学习了你的编程思维,一直在用,但昨天做电子钟的时候,发现就有点故障了,请鸿哥帮忙考虑下解决方案,谢谢!程序大概如下:
while(1){//主循环
1 miao = ds1302_read(0x81); //ds1302读取函数
2 fen = ds1302_read(0x83); //ds1302读取函数
3 shi = ds1302_read(0x85); //ds1302读取函数
4 zhou = ds1302_read(0x8b); //ds1302读取函数
5 shi_10 = (shi>>4)*10 + shi%16;//BCD转换成10进制
6 fen_10 = (fen>>4)*10 + fen%16;//BCD转换成10进制
7 miao_10 = (miao>>4)*10 + miao%16; //BCD转换成10进制
8 lcd19264_draw_hand(31,32,24,miao_10,6,1);//液晶模拟时钟的 秒针点亮
9 lcd19264_draw_hand(31,32,18,fen_10,6,1);//液晶模拟时钟的 分针点亮
10 lcd19264_draw_hand(31,32,10,shi_10,12,1);//液晶模拟时钟的 时针点亮
11 temperature_process();//ds18b20读取函数,并且将数据处理成百位,个位,十位,小数位
lcd19264_display_number_16x32(2,11,miao/16);//液晶对应位置上显示时分秒
lcd19264_display_number_16x32(2,12,miao%16);//液晶对应位置上显示时分秒
lcd19264_display_number_16x32(2,8,fen/16);//液晶对应位置上显示时分秒
lcd19264_display_number_16x32(2,9,fen%16);//液晶对应位置上显示时分秒
lcd19264_display_number_16x32(2,5,shi/16);//液晶对应位置上显示时分秒
lcd19264_display_number_16x32(2,6,shi%16);//液晶对应位置上显示时分秒
lcd19264_display_number_8x16(4,11,zhou%16);////液晶对应位置上显示周
12 lcd19264_draw_hand(31,32,24,miao_10,6,0); ////液晶模拟时钟 秒针熄灭
13 lcd19264_draw_hand(31,32,18,fen_10,6,0);///液晶模拟时钟 分针熄灭
14 lcd19264_draw_hand(31,32,10,shi_10,12,0);////液晶模拟时钟 时针熄灭
}
程序执行时均能工作,但发现液晶模拟时钟上的时、分、秒的指针很明显的闪动。个人分析是因为1-7行程序执行时间太长,导致12--14执行完指针熄灭后没有及时点亮指针所致,之前按照鸿哥思想将1--7条读取程序放到定时器中断中,根据switch切换,每次进中断分别读取1--7条,也就是说进7次中断,可以读完1--7条的数据,定时时间2ms--50ms均试过,均发现液晶显示乱码,个人估计是中断干扰了液晶的驱动程序,本人实在不知如何改动,请鸿哥指教,谢谢……
101MHz 发表于 2014-8-29 12:18
鸿哥,学习了你的编程思维,一直在用,但昨天做电子钟的时候,发现就有点故障了,请鸿哥帮忙考虑下解决方案 ...
液晶屏不要时刻处于刷新显示的状态中,当有数据要更新的时候再刷新,平时没数据刷新的时候不要更新。
你添加一个变量ucUpdate,平时有数据需要更新显示的时候,就把ucUpdate=1;
if(ucUpdate==1)//更新
{
ucUpdate=0; //及时清零标志,让它只能更新显示一次。
以下添加你的显示代码。
lcd19264_display_number_16x32
} jianhong_wu 发表于 2014-8-29 12:46
液晶屏不要时刻处于刷新显示的状态中,当有数据要更新的时候再刷新,平时没数据刷新的时候不要更新。
你 ...
鸿哥V5!!!!多谢多谢~~~
页:
[1]