12
返回列表 发新帖

[STC单片机] 基于单片机12864单片机简易示波器

[复制链接]
楼主: 一路向北lm
 楼主 | 2018-6-19 11:04 | 显示全部楼层
xyz549040622 发表于 2018-6-19 07:33
放个图片,看看你的效果如何?

我录的有视频,传到优酷给大家分享哈
| 2018-6-19 11:38 | 显示全部楼层
一路向北lm 发表于 2018-6-18 14:32
你参考下程序,应该不是很难,单片机部分好改就是OLED部分不太好改,成功了分享下经验。 ...

可能要写个OLED驱动
| 2018-6-19 13:30 | 显示全部楼层
坐等看效果
| 2018-7-9 11:26 | 显示全部楼层
为什么代码里面RS、RW、E和P0口定义的引脚和原理图的不一样?还有为什么用keil编译的时候要用到xdata才行而用data,就是内部的就会显示144B,超过了内部RAM的存储容量,最后,我亲测了,LCD上并不能显示任何东西,求助
 楼主 | 2018-7-9 12:44 | 显示全部楼层
三木禾 发表于 2018-7-9 11:26
为什么代码里面RS、RW、E和P0口定义的引脚和原理图的不一样?还有为什么用keil编译的时候要用到xdata才行而 ...

你的keil需要破解,网上有教程,文件大了也可以编译,百度一下,毕竟keil不是完全免费,而且这个是 12的单片机。
| 2018-7-9 15:27 | 显示全部楼层
C:\Users\KL-CP\Desktop
我这个是已破解的吧
但是编译的时候是这样的C:\Users\KL-CP\Desktop
要把这个C:\Users\KL-CP\Desktop改成这个C:\Users\KL-CP\Desktop
才行C:\Users\KL-CP\Desktop
| 2018-7-9 15:30 | 显示全部楼层
这些依次是上次发的图,之前以为那样可以上传,弄错了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
| 2018-7-9 15:32 | 显示全部楼层
用了Large的那个之后就能编译成功了,但是烧录进芯片的时候什么东西都没有显示,我这也是12的单片机
| 2018-7-9 15:38 | 显示全部楼层
还有,程序里的关于P1.0、P1.1、P1.2、P0的定义和原理图怎么不一样的?我觉得应该是P0.5、P0.6、P0.7和P2吧?求赐教,在线等

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主 | 2018-7-9 21:08 | 显示全部楼层
三木禾 发表于 2018-7-9 15:38
还有,程序里的关于P1.0、P1.1、P1.2、P0的定义和原理图怎么不一样的?我觉得应该是P0.5、P0.6、P0.7和P2吧 ...

改下程序或者引脚都可以啊,这个问题不大,没问题的我已经测试过了。
| 2018-7-9 23:43 | 显示全部楼层
dukecheng 发表于 2018-6-18 14:30
不知道好不好改在STC15w4k32的的学习板上,上面正好有个12864的OLED显示器? ...

oled,天哪,那玩意好小,真是玩玩了
| 2018-7-10 16:20 | 显示全部楼层
可以显示了,程序没问题,谢谢。不过我现在要做一个双通道的示波器,想重复借用ADC_RES寄存器,但是当一个口显示正常时,另一个会不正常,我想请教一下,这个ADC的中断是不是不能重复使用的
 楼主 | 2018-7-10 17:34 | 显示全部楼层
三木禾 发表于 2018-7-10 16:20
可以显示了,程序没问题,谢谢。不过我现在要做一个双通道的示波器,想重复借用ADC_RES寄存器,但是当一个 ...

具体怎么实现的我也不太懂,自己慢慢研究吧。
| 2018-8-2 20:14 | 显示全部楼层
[STC单片机] 基于单片机12864单片机简易示波器,学习下
| 2018-8-4 13:25 | 显示全部楼层
放个图片,看看效果
| 2018-8-4 17:25 | 显示全部楼层
楼主给力
 楼主 | 2018-8-5 20:51 | 显示全部楼层
 楼主 | 2018-8-5 20:51 | 显示全部楼层
电技 发表于 2018-8-4 13:25
放个图片,看看效果

我有视频
| 2018-8-29 15:58 | 显示全部楼层
  1. #include <STC12c5a.H>
  2. #include<intrins.h>
  3. #include<math.h>
  4. sbit RS=P1^0; //并行的指令/数据选择信号, H数据, L命令
  5. sbit RW=P1^1; //并行读写选择信号, H读, L写
  6. sbit E=P1^2; //并行使能端, H有效, L无效
  7. sbit jiakey=P3^0;
  8. sbit jiankey=P3^1;
  9. #define  LcdData P0
  10. unsigned char dati=0;
  11. unsigned char dat[100];
  12. unsigned char over=0;
  13. unsigned int temp=0;
  14. unsigned char mode=0;
  15. unsigned int delnop=0;
  16. //////////////////////////////////////
  17. unsigned char Lcd_CheckBusy(void)
  18. {
  19.     unsigned char Busy;
  20.           LcdData=0xff;
  21.     RS=0;
  22.     RW=1;
  23.     E=1;
  24.     _nop_();
  25.     Busy=LcdData&0x80;
  26.     E=0;
  27.     return Busy;
  28. }
  29. /*********************************
  30. 向LCD写入字节数据
  31. **********************************/
  32. void Lcd_WriteData(unsigned char Data)
  33. {  
  34.         while(Lcd_CheckBusy());
  35.         RS=1;
  36.         RW=0;
  37.         E=0;
  38.         _nop_();  
  39.         _nop_();
  40.         LcdData=Data;
  41.         E=1;
  42.         _nop_();
  43.         _nop_();
  44.         E=0;
  45. }
  46. /***********************************
  47. 从LCD中读出数据
  48. ************************************/
  49. unsigned char Lcd_ReadData(void)
  50. {
  51.         unsigned char Temp;
  52.         while(Lcd_CheckBusy());
  53.         LcdData=0xff;
  54.         RS=1;
  55.         RW=1;
  56.         E=1;
  57.         _nop_();
  58.            Temp=LcdData;
  59.            E=0;
  60.            return Temp;
  61. }
  62. /*************************************
  63. 想LCD中写入指令代码
  64. **************************************/
  65. void Lcd_WriteCmd(unsigned char CmdCode)
  66. {  
  67.         while(Lcd_CheckBusy());
  68.            RS=0;
  69.            RW=0;
  70.            E=0;
  71.            _nop_();  
  72.         _nop_();
  73.            LcdData=CmdCode;
  74.            _nop_();
  75.         _nop_();
  76.            E=1;
  77.            _nop_();  
  78.         _nop_();
  79.            E=0;
  80. }
  81. /**************************************
  82. 为加速逻辑运算而设置的掩码表,这是以牺牲空间而换取时间的办法
  83. ***************************************/
  84. code unsigned int LcdMaskTab[]={0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000};
  85. /***************************************
  86. 向LCD指定坐标写入一个象素,象素颜色有两种,0代表白(无显示),1代表黑(有显示)
  87. ****************************************/
  88. void Lcd_PutPixel(unsigned char x,unsigned char y,unsigned char Color)
  89. {
  90.         unsigned char z,w;
  91.         unsigned int Temp;
  92.         if(x>=128||y>=64)
  93.                 return;
  94.         Color=Color%2;
  95.         w=15-x%16;//确定对这个字的第多少位进行操作
  96.         x=x/16;//确定为一行上的第几字

  97.         if(y<32) //如果为上页
  98.                 z=0x80;
  99.         else     //否则如果为下页
  100.                 z=0x88;

  101.         y=y%32;
  102.         //EA=0;
  103.         Lcd_WriteCmd(0x36);
  104.         Lcd_WriteCmd(y+0x80);        //行地址
  105.         Lcd_WriteCmd(x+z);     //列地址
  106.         Temp=Lcd_ReadData();//先空读一次
  107.         Temp=(unsigned int)Lcd_ReadData()<<8;//再读出高8位
  108.         Temp|=(unsigned int)Lcd_ReadData();//再读出低8位
  109.         //EA=1;
  110.         if(Color==1) //如果写入颜色为1
  111.                 Temp|=LcdMaskTab[w];//在此处查表实现加速
  112.         else         //如果写入颜色为0
  113.                 Temp&=~LcdMaskTab[w];//在此处查表实现加速
  114.         //EA=0;
  115.         Lcd_WriteCmd(y+0x80);        //行地址
  116.         Lcd_WriteCmd(x+z);     //列地址
  117.    Lcd_WriteData(Temp>>8);//先写入高8位,再写入低8位
  118.    Lcd_WriteData(Temp&0x00ff);
  119.         Lcd_WriteCmd(0x30);
  120.         //EA=1;
  121. }
  122. /*****************************************
  123. 清除Lcd全屏,如果清除模式Mode为0,则为全屏清除为颜色0(无任何显示)
  124. 否则为全屏清除为颜色1(全屏填充显示)
  125. ******************************************/
  126. void Lcd_Clear(unsigned char Mode)
  127. {
  128.         unsigned char x,y,ii;
  129.         unsigned char Temp;
  130.         if(Mode%2==0)
  131.                 Temp=0x00;
  132.         else
  133.                 Temp=0xff;
  134.         Lcd_WriteCmd(0x36);//扩充指令 绘图显示
  135.         for(ii=0;ii<9;ii+=8)   
  136.                 for(y=0;y<0x20;y++)     
  137.                         for(x=0;x<8;x++)
  138.                         {         
  139.                                 //EA=0;
  140.                                 Lcd_WriteCmd(y+0x80);        //行地址
  141.                                 Lcd_WriteCmd(x+0x80+ii);     //列地址     
  142.                                 Lcd_WriteData(Temp); //写数据 D15-D8
  143.                                 Lcd_WriteData(Temp); //写数据 D7-D0
  144.                                 //EA=1;
  145.                         }
  146.         Lcd_WriteCmd(0x30);
  147. }
  148. /****************************************
  149. LCD初始化
  150. *****************************************/
  151. void Lcd_Reset()
  152. {  
  153.         Lcd_WriteCmd(0x30);       //选择基本指令集
  154.         Lcd_WriteCmd(0x0c);       //开显示(无游标、不反白)
  155.         Lcd_WriteCmd(0x01);       //清除显示,并且设定地址指针为00H
  156.         Lcd_WriteCmd(0x06);       //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
  157. }
  158. //////////////////////////////////////
  159. void InitADC()
  160. {
  161. P1ASF=0X80;
  162. ADC_RES=0;
  163. ADC_CONTR=0xef;
  164. EADC=1;
  165. }
  166. void adc_isr() interrupt 5 using 1
  167. {
  168. ADC_CONTR=0xef;
  169. if(over==0)
  170. {
  171.         temp=delnop;
  172.         while(temp)
  173.         {
  174.         temp--;
  175.         }
  176.         dat[dati]=ADC_RES;
  177.         dati++;
  178.         if(dati>100)
  179.         {
  180.         dati=0;
  181.         over=1;
  182.         }
  183. }
  184. }
  185. //////////////////////////////////////
  186. void disp_0(unsigned char x,unsigned char y)
  187. {
  188. Lcd_PutPixel(x+1,y+1,1);
  189. Lcd_PutPixel(x+1,y+2,1);
  190. Lcd_PutPixel(x+1,y+3,1);
  191. Lcd_PutPixel(x+2,y+0,1);
  192. Lcd_PutPixel(x+2,y+4,1);
  193. Lcd_PutPixel(x+3,y+1,1);
  194. Lcd_PutPixel(x+3,y+2,1);
  195. Lcd_PutPixel(x+3,y+3,1);
  196. }
  197. void disp_1(unsigned char x,unsigned char y)
  198. {
  199. Lcd_PutPixel(x+1,y+1,1);
  200. Lcd_PutPixel(x+1,y+4,1);
  201. Lcd_PutPixel(x+2,y+0,1);
  202. Lcd_PutPixel(x+2,y+1,1);
  203. Lcd_PutPixel(x+2,y+2,1);
  204. Lcd_PutPixel(x+2,y+3,1);
  205. Lcd_PutPixel(x+2,y+4,1);
  206. Lcd_PutPixel(x+3,y+4,1);
  207. }
  208. void disp_2(unsigned char x,unsigned char y)
  209. {
  210. Lcd_PutPixel(x+1,y+0,1);
  211. Lcd_PutPixel(x+1,y+2,1);
  212. Lcd_PutPixel(x+1,y+3,1);
  213. Lcd_PutPixel(x+1,y+4,1);
  214. Lcd_PutPixel(x+2,y+0,1);
  215. Lcd_PutPixel(x+2,y+2,1);
  216. Lcd_PutPixel(x+2,y+4,1);
  217. Lcd_PutPixel(x+3,y+0,1);
  218. Lcd_PutPixel(x+3,y+1,1);
  219. Lcd_PutPixel(x+3,y+2,1);
  220. Lcd_PutPixel(x+3,y+4,1);
  221. }
  222. void disp_3(unsigned char x,unsigned char y)
  223. {
  224. Lcd_PutPixel(x+1,y+0,1);
  225. Lcd_PutPixel(x+1,y+2,1);
  226. Lcd_PutPixel(x+1,y+4,1);
  227. Lcd_PutPixel(x+2,y+0,1);
  228. Lcd_PutPixel(x+2,y+2,1);
  229. Lcd_PutPixel(x+2,y+4,1);
  230. Lcd_PutPixel(x+3,y+0,1);
  231. Lcd_PutPixel(x+3,y+1,1);
  232. Lcd_PutPixel(x+3,y+2,1);
  233. Lcd_PutPixel(x+3,y+3,1);
  234. Lcd_PutPixel(x+3,y+4,1);
  235. }
  236. void disp_4(unsigned char x,unsigned char y)
  237. {
  238. Lcd_PutPixel(x+1,y+0,1);
  239. Lcd_PutPixel(x+1,y+1,1);
  240. Lcd_PutPixel(x+1,y+2,1);
  241. Lcd_PutPixel(x+2,y+2,1);
  242. Lcd_PutPixel(x+3,y+0,1);
  243. Lcd_PutPixel(x+3,y+1,1);
  244. Lcd_PutPixel(x+3,y+2,1);
  245. Lcd_PutPixel(x+3,y+3,1);
  246. Lcd_PutPixel(x+3,y+4,1);
  247. }
  248. void disp_5(unsigned char x,unsigned char y)
  249. {
  250. Lcd_PutPixel(x+1,y+0,1);
  251. Lcd_PutPixel(x+1,y+1,1);
  252. Lcd_PutPixel(x+1,y+2,1);
  253. Lcd_PutPixel(x+1,y+4,1);
  254. Lcd_PutPixel(x+2,y+0,1);
  255. Lcd_PutPixel(x+2,y+2,1);
  256. Lcd_PutPixel(x+2,y+4,1);
  257. Lcd_PutPixel(x+3,y+0,1);
  258. Lcd_PutPixel(x+3,y+2,1);
  259. Lcd_PutPixel(x+3,y+3,1);
  260. Lcd_PutPixel(x+3,y+4,1);
  261. }
  262. void disp_p(unsigned char x,unsigned char y)
  263. {
  264. Lcd_PutPixel(x+0,y+0,1);
  265. Lcd_PutPixel(x+1,y+0,1);
  266. Lcd_PutPixel(x+1,y+1,1);
  267. Lcd_PutPixel(x+2,y+0,1);
  268. Lcd_PutPixel(x+2,y+1,1);
  269. Lcd_PutPixel(x+2,y+2,1);
  270. Lcd_PutPixel(x+3,y+0,1);
  271. Lcd_PutPixel(x+3,y+1,1);
  272. Lcd_PutPixel(x+4,y+0,1);
  273. }
  274. void disp_k(unsigned char x,unsigned char y)
  275. {
  276. Lcd_PutPixel(x+0,y+0,1);
  277. Lcd_PutPixel(x+0,y+1,1);
  278. Lcd_PutPixel(x+0,y+2,1);
  279. Lcd_PutPixel(x+0,y+3,1);
  280. Lcd_PutPixel(x+0,y+4,1);
  281. Lcd_PutPixel(x+1,y+2,1);
  282. Lcd_PutPixel(x+2,y+1,1);
  283. Lcd_PutPixel(x+2,y+3,1);
  284. Lcd_PutPixel(x+3,y+0,1);
  285. Lcd_PutPixel(x+3,y+4,1);
  286. }
  287. void disp_hz(unsigned char x,unsigned char y)
  288. {
  289. Lcd_PutPixel(x+0,y+0,1);
  290. Lcd_PutPixel(x+0,y+1,1);
  291. Lcd_PutPixel(x+0,y+2,1);
  292. Lcd_PutPixel(x+0,y+3,1);
  293. Lcd_PutPixel(x+0,y+4,1);
  294. Lcd_PutPixel(x+1,y+2,1);
  295. Lcd_PutPixel(x+2,y+0,1);
  296. Lcd_PutPixel(x+2,y+1,1);
  297. Lcd_PutPixel(x+2,y+2,1);
  298. Lcd_PutPixel(x+2,y+3,1);
  299. Lcd_PutPixel(x+2,y+4,1);
  300. Lcd_PutPixel(x+4,y+1,1);
  301. Lcd_PutPixel(x+4,y+3,1);
  302. Lcd_PutPixel(x+4,y+4,1);
  303. Lcd_PutPixel(x+5,y+1,1);
  304. Lcd_PutPixel(x+5,y+2,1);
  305. Lcd_PutPixel(x+5,y+4,1);
  306. }

  307. void clr(unsigned char starx,unsigned char stary,unsigned char endx,unsigned char endy)
  308. {
  309. char x=0;
  310. char y=0;
  311. for(x=starx;x<endx;x++)
  312. {
  313.         for(y=stary;y<endy;y++)
  314.         {
  315.                 Lcd_PutPixel(x,y,0);
  316.         }
  317. }
  318. }
  319. void disp_bj(void)
  320. {
  321. unsigned char x=0;
  322. unsigned char y=0;
  323. for(x=13;x<114;x++)
  324. {
  325. Lcd_PutPixel(x,52,1);
  326. }
  327. for(y=0;y<52;y++)
  328. {
  329. Lcd_PutPixel(13,y,1);
  330. }
  331. for(y=0;y<52;y++)
  332. {
  333. Lcd_PutPixel(114,y,1);
  334. }
  335. Lcd_PutPixel(13,51,0);
  336. Lcd_PutPixel(13,41,0);
  337. Lcd_PutPixel(13,31,0);
  338. Lcd_PutPixel(13,21,0);
  339. Lcd_PutPixel(13,11,0);
  340. Lcd_PutPixel(13,1,0);
  341. Lcd_PutPixel(114,51,0);
  342. Lcd_PutPixel(114,41,0);
  343. Lcd_PutPixel(114,31,0);
  344. Lcd_PutPixel(114,21,0);
  345. Lcd_PutPixel(114,11,0);
  346. Lcd_PutPixel(114,1,0);

  347. disp_0(5,50);
  348. disp_1(5,40);
  349. disp_2(5,30);
  350. disp_3(5,20);
  351. disp_4(5,10);
  352. disp_5(5,0);
  353. disp_0(117,50);
  354. disp_1(117,40);
  355. disp_2(117,30);
  356. disp_3(117,20);
  357. disp_4(117,10);
  358. disp_5(117,0);

  359. disp_2(13,58);
  360. disp_hz(18,58);
  361. disp_2(38,58);
  362. disp_0(43,58);
  363. disp_hz(48,58);
  364. disp_2(63,58);
  365. disp_0(68,58);
  366. disp_0(73,58);
  367. disp_hz(78,58);
  368. disp_2(88,58);
  369. disp_k(93,58);
  370. disp_hz(98,58);

  371. }
  372. void line(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1)
  373. {
  374. int i,dx,dy,e,x,y;
  375. Lcd_PutPixel(x0,y0,1);
  376. Lcd_PutPixel(x1,y1,1);
  377. dx=x1-x0;
  378. dy=y1-y0;
  379. x=x0;
  380. y=y0;
  381. if(dx>0&&dy>0)
  382. {
  383. if(dx>dy)
  384. {
  385. e=-dx;
  386. for(i=0;i<dx;i++)
  387.         {
  388.         Lcd_PutPixel(x,y,1);
  389.         x++;
  390.         e=e+2*dy;
  391.         if(e>=0)
  392.                 {
  393.                 y++;
  394.                 e=e-2*dx;
  395.                 }
  396.         }
  397. }
  398. else
  399. {
  400. e=-dy;
  401. x=x0;
  402. y=y0;
  403. for(i=0;i<dy;i++)
  404.         {
  405.         Lcd_PutPixel(x,y,1);
  406.         y++;
  407.         e=e+2*dx;
  408.         if(e>=0)
  409.                 {
  410.                 x++;
  411.                 e=e-2*dy;
  412.                 }
  413.         }
  414. }
  415. }
  416. if(dx<0&&dy<0)
  417. {
  418. dx=x0-x1;
  419. dy=y0-y1;
  420. if(dx>dy)
  421. {
  422. e=-dx;
  423. for(i=0;i<dx;i++)
  424.         {
  425.         Lcd_PutPixel(x,y,1);
  426.         x--;
  427.         e=e+2*dy;
  428.         if(e>=0)
  429.                 {
  430.                 y--;
  431.                 e=e-2*dx;
  432.                 }
  433.         }
  434. }
  435. else
  436. {
  437. e=-dy;
  438. for(i=0;i<dy;i++)
  439.         {
  440.         Lcd_PutPixel(x,y,1);
  441.         y--;
  442.         e=e+2*dx;
  443.         if(e>=0)
  444.                 {
  445.                 x--;
  446.                 e=e-2*dy;
  447.                 }
  448.         }
  449. }
  450. }
  451. if(dx>0&&dy<0)
  452. {
  453. dy=y0-y1;
  454. if(dx>dy)
  455. {
  456. e=-dx;
  457. for(i=0;i<dx;i++)
  458.         {
  459.         Lcd_PutPixel(x,y,1);
  460.         x++;
  461.         e=e+2*dy;
  462.         if(e>=0)
  463.                 {
  464.                 y--;
  465.                 e=e-2*dx;
  466.                 }
  467.         }
  468. }
  469. else
  470. {
  471. e=-dy;
  472. for(i=0;i<dy;i++)
  473.         {
  474.         Lcd_PutPixel(x,y,1);
  475.         y--;
  476.         e=e+2*dx;
  477.         if(e>=0)
  478.                 {
  479.                 x++;
  480.                 e=e-2*dy;
  481.                 }
  482.         }
  483. }
  484. }
  485. if(dx<0&&dy>0)
  486. {
  487. dx=x0-x1;
  488. if(dx>dy)
  489. {
  490. e=-dx;
  491. for(i=0;i<dx;i++)
  492.         {
  493.         Lcd_PutPixel(x,y,1);
  494.         x--;
  495.         e=e+2*dy;
  496.         if(e>=0)
  497.                 {
  498.                 y++;
  499.                 e=e-2*dx;
  500.                 }
  501.         }
  502. }
  503. else
  504. {
  505. e=-dy;
  506. for(i=0;i<dy;i++)
  507.         {
  508.         Lcd_PutPixel(x,y,1);
  509.         y++;
  510.         e=e+2*dx;
  511.         if(e>=0)
  512.                 {
  513.                 x--;
  514.                 e=e-2*dy;
  515.                 }
  516.         }
  517. }
  518. }
  519. if(dx!=0&&dy==0)
  520. {
  521. if(dx>0)
  522. {
  523. for(i=0;i<dx;i++)
  524.         {
  525.         Lcd_PutPixel(x,y,1);
  526.         x++;
  527.         }
  528. }
  529. else
  530. {
  531. dx=x0-x1;
  532. for(i=0;i<dx;i++)
  533.         {
  534.         Lcd_PutPixel(x,y,1);
  535.         x--;
  536.         }
  537. }
  538. }
  539. if(dx==0&&dy!=0)
  540. {
  541. if(dy>0)
  542. {
  543. for(i=0;i<dy;i++)
  544.         {
  545.         Lcd_PutPixel(x,y,1);
  546.         y++;
  547.         }
  548. }
  549. else
  550. {
  551. dy=y0-y1;
  552. for(i=0;i<dy;i++)
  553.         {
  554.         Lcd_PutPixel(x,y,1);
  555.         y--;
  556.         }
  557. }
  558. }
  559. }
  560. void disp_ware()
  561. {
  562. unsigned char x=0;
  563. unsigned char y=0;
  564.                 clr(14,0,15,52);
  565.                 for(x=1;x<100;x++)
  566.                 {
  567.                         clr(x+14,0,x+15,52);
  568.                         line(x+13,51-(dat[x-1]/5),x+14,51-(dat[x]/5));
  569.                 }
  570. }
  571. //////////////////////////////////////
  572. main()
  573. {
  574. Lcd_Reset();
  575. Lcd_Clear(0);
  576. InitADC();
  577. disp_bj();
  578. EA=1;
  579. while(1)
  580. {
  581. if(over)
  582.         {
  583.                 disp_ware();
  584.                 if(jiakey==0)
  585.                 {
  586.                   if(mode<3)
  587.                          {
  588.                           mode++;
  589.                          }
  590. //                        while(!jiakey);
  591.                 }
  592.                 if(jiankey==0)
  593.                 {
  594.                 if(mode>0)
  595.                         {
  596.                         mode--;
  597.                         }
  598. //                        while(!jiankey);
  599.                 }
  600.         switch(mode)
  601.         {
  602.         case 0:
  603.                 delnop=1;
  604.                 disp_p(91,54);
  605.                 clr(66,54,71,57);
  606.                 clr(41,54,46,57);
  607.                 clr(16,54,21,57);
  608.         break;
  609.         case 1:
  610.                 delnop=40;
  611.                 disp_p(66,54);
  612.                 clr(91,54,96,57);
  613.                 clr(41,54,46,57);
  614.                 clr(16,54,21,57);
  615.         break;
  616.         case 2:
  617.                 delnop=440;
  618.                 disp_p(41,54);
  619.                 clr(91,54,96,57);
  620.                 clr(66,54,71,57);
  621.                 clr(16,54,21,57);
  622.         break;
  623.         case 3:
  624.                 delnop=4440;
  625.                 disp_p(16,54);
  626.                 clr(91,54,96,57);
  627.                 clr(41,54,46,57);
  628.                 clr(66,54,71,57);
  629.         break;
  630.         default:
  631.         break;
  632.         }
  633.         over=0;
  634.         }
  635. }
  636. }
复制代码
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /4 下一条

快速回复 返回顶部 返回列表