找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2033|回復(fù): 22
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機(jī)數(shù)碼管消隱問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
應(yīng)該是關(guān)于消隱的內(nèi)容沒(méi)有弄好,第七位數(shù)碼管的數(shù)字看不到了,各位大佬能幫忙看看到底應(yīng)該怎么改代碼才能得到穩(wěn)定的顯示呢?

數(shù)碼管第七位不顯示


單片機(jī)源程序如下:
  1. #include<stc15.h>
  2. #define uChar unsigned char
  3. #define uInt unsigned int
  4. uChar a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共陰0.1.2.3.4.5.6.7.8.9
  5. uChar b[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //不斷進(jìn)1位
  6. uChar second=46,minute=59,hour=12,year=24,month=9,day=17,count;

  7. sbit Key1 = P2^0; //計(jì)時(shí)停止
  8. sbit Key2 = P2^1; //調(diào)位
  9. sbit Key3 = P2^2; //加一
  10. sbit Key4 = P2^3; //切換  
  11. sbit Buzzer=P5^4;
  12. /*********************延遲函數(shù)********************/
  13. void Delay(uInt t)
  14. {
  15. while(t)
  16. {
  17. t--;
  18. }
  19. }
  20. /*********************時(shí)分秒顯示函數(shù)*******************/
  21. void Dispaly1(uChar second,uChar minute,uChar hour)
  22. {
  23. /*********************第一位數(shù)碼管*********************/
  24. P1=b[0];
  25. P0=a[hour/10];
  26. Delay(10);
  27. /*********************第二位數(shù)碼管*********************/
  28. P1=b[1];
  29. P0=a[hour%10];
  30. Delay(10);
  31. /*********************第三位數(shù)碼管*********************/
  32. P1=b[2];
  33. P0=0x40;
  34. Delay(10);
  35. /*********************第四位數(shù)碼管*********************/
  36. P1=b[3];
  37. P0=a[minute/10];
  38. Delay(10);
  39. /*********************第五位數(shù)碼管*********************/
  40. P1=b[4];
  41. P0=a[minute%10];
  42. Delay(10);
  43. /*********************第六位數(shù)碼管*********************/
  44. P1=b[5];
  45. P0=0x40;
  46. Delay(10);
  47. /*********************第七位數(shù)碼管*********************/
  48. P1=b[6];
  49. P0=a[second/10];
  50. Delay(10);
  51. /*********************第八位數(shù)碼管*********************/
  52. P1=b[7];
  53. P0=a[second%10];
  54. Delay(10);
  55. }
  56. /*********************年月日顯示函數(shù)********************/
  57. void Dispaly2(uChar day,uChar month,uChar year)
  58. {
  59. P1=b[0];
  60. P0=a[day/10];
  61. Delay(10);

  62. P1=b[1];
  63. P0=a[day%10];
  64. Delay(10);

  65. P1=b[2];
  66. P0=0x40;
  67. Delay(10);

  68. P1=b[3];
  69. P0=a[month/10];
  70. Delay(10);

  71. P1=b[4];
  72. P0=a[month%10];
  73. Delay(10);

  74. P1=b[5];
  75. P0=0x40;
  76. Delay(10);

  77. P1=b[6];
  78. P0=a[year/10];
  79. Delay(10);

  80. P1=b[7];
  81. P0=a[year%10];
  82. Delay(10);
  83. }


  84. /*********************時(shí)鐘按鍵掃描函數(shù)*********************/
  85. void Keyscan1()
  86. {
  87. static uChar i=0,j=0;
  88. if(Key1==0)
  89. {
  90. Delay(10); //消抖
  91. if(Key1==0)
  92. while(!Key1); //等待按鍵彈
  93. i++;
  94. }
  95. /*時(shí)鐘暫停功能*/
  96. if(i%2==1)
  97. {
  98. TR0=0;/*如果是奇數(shù)次按鍵自然關(guān)閉定時(shí)器0*/
  99. }
  100. if(i%2==0)
  101. {
  102. TR0=1;/*如果是偶數(shù)次按鍵則打開(kāi)定時(shí)器0*/
  103. }
  104. /*時(shí)鐘調(diào)位和數(shù)值加一功能*/
  105. if(Key2==0)
  106. {
  107. Delay(10);
  108. if(Key2==0)
  109. while(!Key2);
  110. j++;
  111. }
  112. if(j%4==1)  //調(diào)秒的時(shí)間
  113. {
  114. if(Key3==0)
  115. {
  116. Delay(10);
  117. if(Key3==0)
  118. while(!Key3);
  119. second++;
  120. if(second==60)
  121. second=0;
  122. }
  123. }
  124. if(j%4==2)  //調(diào)分的時(shí)間
  125. {
  126. if(Key3==0)
  127. {
  128. Delay(10);
  129. if(Key3==0)
  130. while(!Key3);
  131. minute++;
  132. if(minute==60)
  133. minute=0;
  134. }
  135. }
  136. if(j%4==3) //調(diào)時(shí)的時(shí)間
  137. {
  138. if(Key3==0)
  139. {
  140. Delay(10);
  141. if(Key3==0)
  142. while(!Key3);
  143. hour++;
  144. if(hour==24)
  145. hour=0;
  146. }
  147. }
  148. }
  149. /*********************日期按鍵掃描函數(shù)*********************/
  150. void Keyscan2()
  151. {
  152. static uChar m=0,n=0;
  153. if(Key1==0)
  154. {
  155. Delay(10);
  156. if(Key1==0)
  157. while(!Key3);
  158. m++;
  159. }
  160. if(m%2==1)
  161. {
  162. TR0=0;/*奇數(shù)次按鍵則關(guān)閉定時(shí)器0*/
  163. }

  164. if(m%2==0)
  165. {
  166. TR0=1;/*偶數(shù)次按鍵則打開(kāi)定時(shí)器0*/
  167. }
  168. if(Key2==0)
  169. {
  170. Delay(10);
  171. if(Key2==0)
  172. while(!Key2);
  173. n++;
  174. }
  175. /*日期調(diào)位和日期加一功能*/
  176. if(n%4==1)
  177. {
  178. if(Key3==0)
  179. {
  180. Delay(10);
  181. if(Key3==0)
  182. while(!Key3);
  183. day++;
  184. if(day==30)
  185. day=0;
  186. }
  187. }
  188. if(n%4==2)
  189. {
  190. if(Key3==0)
  191. {
  192. Delay(10);
  193. if(Key3==0)
  194. while(!Key3);
  195. month++;
  196. if(month==12)
  197. month=0;
  198. }
  199. }
  200. if(n%4==3)
  201. {
  202. if(Key3==0)
  203. {
  204. Delay(10);
  205. if(Key3==0)
  206. while(!Key3);
  207. year++;
  208. if(year==99)
  209. year=0;
  210. }
  211. }
  212. }

  213. /************************************************/
  214. /***************主函數(shù)***************************/
  215. /************************************************/
  216. void main()
  217. {                                                
  218. TMOD=0x01;          /*定時(shí)器以方式一工作*/
  219. TH0=(65536-10000)/256;
  220. TL0=(65536-10000)%256;/*10ms計(jì)時(shí)*/
  221. ET0=1;/*允許定時(shí)器0中斷*/
  222. EA=1;
  223. TR0=1;/*打開(kāi)定時(shí)器0*/
  224. while(1)
  225. {
  226. static uChar h=0;
  227. /*時(shí)鐘和日期切換功能*/
  228. if(Key4==0)
  229. {
  230. Delay(10);
  231. if(Key4==0)
  232. while(!Key4);
  233. h++;
  234. }
  235. if(h%2==0)/*如果按鍵偶數(shù)次則顯示時(shí)鐘*/
  236. {
  237. Dispaly1(second,minute,hour);
  238. Keyscan1();
  239. }

  240. if(h%2==1)/*如果按鍵奇數(shù)次則顯示日期*/
  241. {
  242. Dispaly2(year,month,day);
  243. Keyscan2();
  244. }
  245. }
  246. }

  247. /**********************中斷函數(shù)**************************/
  248. void time0_int(void) interrupt 1
  249. {
  250. TH0=(65536-10000)/256;
  251. TL0=(65536-10000)%256;
  252. count++;
  253. if(count==100)
  254. {
  255. count=0;
  256. second++;
  257. if(second==60)
  258. {
  259. second=0;
  260. minute++;
  261. if(minute==60)
  262. {
  263. minute=0;
  264. hour++;
  265. if(hour==24)
  266. {
  267. hour=0;
  268. day++;
  269. if(day==30)
  270. {
  271. day=0;
  272. month++;
  273. if(month==12)
  274. {
  275. month=0;
  276. year++;
  277. if(year==99)
  278. {
  279. year=0;
  280. }
  281. }
  282. }                  
  283. }
  284. }
  285. }
  286. }
  287. /*判斷整點(diǎn)提醒*/
  288. if(second==00&&minute==00)                                                                  
  289. Buzzer=0;
  290. else
  291. Buzzer=1;
  292. }
復(fù)制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1131511 發(fā)表于 2024-9-10 11:49 | 只看該作者
我后面發(fā)現(xiàn)應(yīng)該是延時(shí)的問(wèn)題,但是當(dāng)我把延時(shí)增加到10000后,屏幕閃爍,這樣它的頻率在肉眼上就不夠快且看著很難受,各位大佬有沒(méi)有其他更加好的辦法呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:1109793 發(fā)表于 2024-9-10 19:11 | 只看該作者
在delay(10)之后要換下一位顯示之前要先消隱,比如在移位前先把段驅(qū)動(dòng)P0=0;
要么delay(10)要么delay(10000),搞代碼不要這極端。你還可以試試比如delay(100);
又或者使用定時(shí)器獲得更好的效果。
回復(fù)

使用道具 舉報(bào)

地板
ID:468209 發(fā)表于 2024-9-10 19:38 來(lái)自手機(jī) | 只看該作者
數(shù)碼管應(yīng)該用for循環(huán)顯示 如:  for(i=0;i<8;i++) {      
回復(fù)

使用道具 舉報(bào)

5#
ID:468209 發(fā)表于 2024-9-10 19:38 來(lái)自手機(jī) | 只看該作者
數(shù)碼管應(yīng)該用for循環(huán)顯示 如:  for(i=0;i<8;i++) {      
回復(fù)

使用道具 舉報(bào)

6#
ID:344848 發(fā)表于 2024-9-10 21:02 | 只看該作者
qiuqiubuyao 發(fā)表于 2024-9-10 11:49
我后面發(fā)現(xiàn)應(yīng)該是延時(shí)的問(wèn)題,但是當(dāng)我把延時(shí)增加到10000后,屏幕閃爍,這樣它的頻率在肉眼上就不夠快且看 ...

視覺(jué)暫留時(shí)間,它的長(zhǎng)短因人而異,一般在50~200ms。
若數(shù)碼管為N位,驅(qū)動(dòng)位選的信號(hào)頻率應(yīng)大于N*50Hz。
回復(fù)

使用道具 舉報(bào)

7#
ID:462827 發(fā)表于 2024-9-10 23:34 | 只看該作者
你的數(shù)碼管顯示代碼里根本就沒(méi)有消影,還有,掃描的間隔/延時(shí)太短了
回復(fù)

使用道具 舉報(bào)

8#
ID:1131511 發(fā)表于 2024-9-11 08:13 | 只看該作者
xiaobendan001 發(fā)表于 2024-9-10 19:11
在delay(10)之后要換下一位顯示之前要先消隱,比如在移位前先把段驅(qū)動(dòng)P0=0;
要么delay(10)要么delay(10000 ...

感謝回復(fù),我按照您的修改之后顯示確實(shí)好了,之后秒數(shù)的時(shí)間又延長(zhǎng)了,之后在定時(shí)器那里修改之后,時(shí)間問(wèn)題也基本沒(méi)有了,又或者有沒(méi)有更好確定時(shí)間精度的辦法呢
回復(fù)

使用道具 舉報(bào)

9#
ID:1131511 發(fā)表于 2024-9-11 08:18 | 只看該作者
1860774xxxx 發(fā)表于 2024-9-10 19:38
數(shù)碼管應(yīng)該用for循環(huán)顯示 如:  for(i=0;i

感謝回復(fù),雖然剛開(kāi)始我也覺(jué)得用for會(huì)更加好,但是因?yàn)槲业臄?shù)據(jù)是分時(shí)分秒來(lái)著的,如果單單用for來(lái)表示b【i】的位置的話,代碼長(zhǎng)度也沒(méi)有辦法變短,反而看起來(lái)也不夠直觀,所以就直接這樣顯示了,或者您會(huì)有更好的使用方法。
回復(fù)

使用道具 舉報(bào)

10#
ID:1131713 發(fā)表于 2024-9-11 09:51 | 只看該作者
數(shù)碼管的顯示,要遵循先關(guān)閉,然后驅(qū)動(dòng)segment,然后驅(qū)動(dòng)com,所有共享segment的管都要先關(guān)閉,比如4個(gè)數(shù)字的,6個(gè)數(shù)字一起的,全部都先關(guān)閉com,最后所有數(shù)字配完再開(kāi)com
回復(fù)

使用道具 舉報(bào)

11#
ID:1109793 發(fā)表于 2024-9-11 11:46 | 只看該作者
qiuqiubuyao 發(fā)表于 2024-9-11 08:13
感謝回復(fù),我按照您的修改之后顯示確實(shí)好了,之后秒數(shù)的時(shí)間又延長(zhǎng)了,之后在定時(shí)器那里修改之后,時(shí)間問(wèn) ...

時(shí)間的操作還有用定時(shí)器吧,顯示方面還好一些,建議使用專用的顯示芯片
回復(fù)

使用道具 舉報(bào)

12#
ID:619259 發(fā)表于 2024-9-11 15:56 | 只看該作者
數(shù)碼管動(dòng)態(tài)顯示程序中沒(méi)有消隱程序行,在proteus仿真中會(huì)出現(xiàn)一些無(wú)序的亂碼或意想不到的顯示錯(cuò)誤。
程序中8個(gè)數(shù)碼管的程序段最后都要加上消隱,以第一個(gè)數(shù)碼管為例:
原程序?yàn)椋?br /> P1=b[0];
P0=a[hour/10];
Delay(10);
加上消隱后程序應(yīng)為(增加一行):
P1=b[0];
P0=a[hour/10];
Delay(10);
P0=0x00;

另外8個(gè)數(shù)碼管的總延時(shí)時(shí)間不要超過(guò)20ms,所以每一個(gè)數(shù)碼管的延時(shí)建議選用1ms-2ms為宜。
回復(fù)

使用道具 舉報(bào)

13#
ID:57657 發(fā)表于 2024-9-11 18:27 | 只看該作者
是否需要消隱看IO口并行位寬,51單片機(jī)為8位并行IO,段碼和位碼做不到并行發(fā)送,所以需要消影處理(先關(guān)閉前一位再打開(kāi)下一位),是否顯示正常以實(shí)物驗(yàn)證為準(zhǔn)。
用74HC595或273并行鎖存發(fā)送、FPGA、16位并行IO的單片機(jī)驅(qū)動(dòng) 8位8段數(shù)碼管或8*8點(diǎn)陣不需要消影。
回復(fù)

使用道具 舉報(bào)

14#
ID:468209 發(fā)表于 2024-9-11 19:19 | 只看該作者
qiuqiubuyao 發(fā)表于 2024-9-11 08:18
感謝回復(fù),雖然剛開(kāi)始我也覺(jué)得用for會(huì)更加好,但是因?yàn)槲业臄?shù)據(jù)是分時(shí)分秒來(lái)著的,如果單單用for來(lái)表示b ...

#include <STC89C5xRC.H>//此文件中定義了單片機(jī)的一些特殊功能寄存器


typedef unsigned char u8;   //無(wú)符號(hào)字符形數(shù)據(jù)類型進(jìn)行聲明定義 定義名稱u8 所占位數(shù)8位 范圍0~255
typedef unsigned int u16;   //無(wú)符號(hào)整形數(shù)據(jù)類型進(jìn)行聲明定義 定義名稱u16 所占位數(shù)16位 范圍0~65535

u8 code ma[11]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //數(shù)字"0123456789-" 共陰
u8 code wei[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //位 第一位開(kāi)始點(diǎn)亮 0x7f  0111 1111 .........
u8 wei_num[8]; //存儲(chǔ)記錄數(shù)碼管8個(gè)段碼位的值 要發(fā)送數(shù)字到哪一位的暫存區(qū)

u8 shi,fen,miao; //時(shí) 分 秒 變量


/*12T 12M晶振 延時(shí)函數(shù) Delay_ms(1)時(shí)大約1ms*/
void Delay_ms(u16 ms)
{
    u8 t;
    while(ms--)
    {
        for(t = 0; t < 98; t ++);
    }
}

/*主函數(shù)*/
void main()
{
        u8 i;
    while(1)
    {
                  /*數(shù)碼管顯示處理*/
        wei_num[7]=ma[shi%100/10];  //顯示 時(shí)
        wei_num[6]=ma[shi%10];      //
        wei_num[5]=ma[10];          //顯示"-"
        wei_num[4]=ma[fen%100/10];  //顯示 分
        wei_num[3]=ma[fen%10];      //
        wei_num[2]=ma[10];          //顯示"-"
        wei_num[1]=ma[miao%100/10]; //顯示 秒
        wei_num[0]=ma[miao%10];     //
               
                 for(i=0; i<8; i++)
        {
            P0=wei_num; //發(fā)送段碼
                        P2=wei;     //位
            Delay_ms(1); //間隔一段時(shí)間掃描
            P0=0x00;//消隱
        }
    }
}

難道這樣還不夠明朗嗎 加上定時(shí)器加上按鍵就可以了  再說(shuō)你那按鍵用while(!xx); 按鍵按下是會(huì)卡死 數(shù)碼管消滅
回復(fù)

使用道具 舉報(bào)

15#
ID:468209 發(fā)表于 2024-9-11 19:45 來(lái)自手機(jī) | 只看該作者
1860774xxxx 發(fā)表于 2024-9-11 19:19
#include //此文件中定義了單片機(jī)的一些特殊功能寄存器



P0=wei_num; //發(fā)送段碼
P2=wei;// 位
這里寫(xiě)漏了
回復(fù)

使用道具 舉報(bào)

16#
ID:1109793 發(fā)表于 2024-9-11 19:49 | 只看該作者
1860774xxxx 發(fā)表于 2024-9-11 19:19
#include //此文件中定義了單片機(jī)的一些特殊功能寄存器

P0=wei_num; //發(fā)送段碼
P0=wei_num; //發(fā)送段碼
回復(fù)

使用道具 舉報(bào)

17#
ID:468209 發(fā)表于 2024-9-11 22:20 來(lái)自手機(jī) | 只看該作者
xiaobendan001 發(fā)表于 2024-9-11 19:49
P0=wei_num; //發(fā)送段碼
P0=wei_num; //發(fā)送段碼

我也不知道為什么 后面的i看不到

IMG_20240911_221824.jpg (643.84 KB, 下載次數(shù): 11)

IMG_20240911_221824.jpg
回復(fù)

使用道具 舉報(bào)

18#
ID:1109793 發(fā)表于 2024-9-12 07:22 | 只看該作者
1860774xxxx 發(fā)表于 2024-9-11 22:20
我也不知道為什么 后面的i看不到

可能需要使用代碼功能吧
我發(fā)的第二行也有括弧的,實(shí)際上是沒(méi)有的
回復(fù)

使用道具 舉報(bào)

19#
ID:1109793 發(fā)表于 2024-9-12 07:35 | 只看該作者
  1. #include <STC89C5xRC.H>//此文件中定義了單片機(jī)的一些特殊功能寄存器


  2. typedef unsigned char u8;   //無(wú)符號(hào)字符形數(shù)據(jù)類型進(jìn)行聲明定義 定義名稱u8 所占位數(shù)8位 范圍0~255
  3. typedef unsigned int u16;   //無(wú)符號(hào)整形數(shù)據(jù)類型進(jìn)行聲明定義 定義名稱u16 所占位數(shù)16位 范圍0~65535

  4. u8 code ma[11]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //數(shù)字"0123456789-" 共陰
  5. u8 code wei[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //位 第一位開(kāi)始點(diǎn)亮 0x7f  0111 1111 .........
  6. u8 wei_num[8]; //存儲(chǔ)記錄數(shù)碼管8個(gè)段碼位的值 要發(fā)送數(shù)字到哪一位的暫存區(qū)

  7. u8 shi,fen,miao; //時(shí) 分 秒 變量


  8. /*12T 12M晶振 延時(shí)函數(shù) Delay_ms(1)時(shí)大約1ms*/
  9. void Delay_ms(u16 ms)
  10. {
  11.     u8 t;
  12.     while(ms--)
  13.     {
  14.         for(t = 0; t < 98; t ++);
  15.     }
  16. }

  17. /*主函數(shù)*/
  18. void main()
  19. {
  20.         u8 i;
  21.     while(1)
  22.     {
  23.                   /*數(shù)碼管顯示處理*/
  24.         wei_num[7]=ma[shi%100/10];  //顯示 時(shí)
  25.         wei_num[6]=ma[shi%10];      //
  26.         wei_num[5]=ma[10];          //顯示"-"
  27.         wei_num[4]=ma[fen%100/10];  //顯示 分
  28.         wei_num[3]=ma[fen%10];      //
  29.         wei_num[2]=ma[10];          //顯示"-"
  30.         wei_num[1]=ma[miao%100/10]; //顯示 秒
  31.         wei_num[0]=ma[miao%10];     //
  32.                
  33.                  for(i=0; i<8; i++)
  34.         {
  35.             P0=wei_num; //發(fā)送段碼
  36.                         P2=wei;     //位
  37.             Delay_ms(1); //間隔一段時(shí)間掃描
  38.             P0=0x00;//消隱
  39.         }
  40.     }
  41. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

20#
ID:1109793 發(fā)表于 2024-9-12 13:05 | 只看該作者

開(kāi)來(lái)就是被系統(tǒng)刪除了
  1. #include <STC89C5xRC.H>//此文件中定義了單片機(jī)的一些特殊功能寄存器


  2. typedef unsigned char u8;   //無(wú)符號(hào)字符形數(shù)據(jù)類型進(jìn)行聲明定義 定義名稱u8 所占位數(shù)8位 范圍0~255
  3. typedef unsigned int u16;   //無(wú)符號(hào)整形數(shù)據(jù)類型進(jìn)行聲明定義 定義名稱u16 所占位數(shù)16位 范圍0~65535

  4. u8 code ma[11]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //數(shù)字"0123456789-" 共陰
  5. u8 code wei[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //位 第一位開(kāi)始點(diǎn)亮 0x7f  0111 1111 .........
  6. u8 wei_num[8]; //存儲(chǔ)記錄數(shù)碼管8個(gè)段碼位的值 要發(fā)送數(shù)字到哪一位的暫存區(qū)

  7. u8 shi,fen,miao; //時(shí) 分 秒 變量


  8. /*12T 12M晶振 延時(shí)函數(shù) Delay_ms(1)時(shí)大約1ms*/
  9. void Delay_ms(u16 ms)
  10. {
  11.     u8 t;
  12.     while(ms--)
  13.     {
  14.         for(t = 0; t < 98; t ++);
  15.     }
  16. }

  17. /*主函數(shù)*/
  18. void main()
  19. {
  20.         u8 i;
  21.     while(1)
  22.     {
  23.                   /*數(shù)碼管顯示處理*/
  24.         wei_num[7]=ma[shi%100/10];  //顯示 時(shí)
  25.         wei_num[6]=ma[shi%10];      //
  26.         wei_num[5]=ma[10];          //顯示"-"
  27.         wei_num[4]=ma[fen%100/10];  //顯示 分
  28.         wei_num[3]=ma[fen%10];      //
  29.         wei_num[2]=ma[10];          //顯示"-"
  30.         wei_num[1]=ma[miao%100/10]; //顯示 秒
  31.         wei_num[0]=ma[miao%10];     //
  32.                
  33.                  for(i=0; i<8; i++)
  34.         {
  35.             P0=wei_num[i]; //發(fā)送段碼
  36.                         P2=wei[i];     //位
  37.             Delay_ms(1); //間隔一段時(shí)間掃描
  38.             P0=0x00;//消隱
  39.         }
  40.     }
  41. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

21#
ID:849913 發(fā)表于 2024-9-15 20:20 | 只看該作者

        P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
   設(shè)置有關(guān)系吧
回復(fù)

使用道具 舉報(bào)

22#
ID:849913 發(fā)表于 2024-9-17 23:27 | 只看該作者
想請(qǐng)教一下你的stc單片機(jī)是怎么加到軟件里的 我的軟件里沒(méi)有這個(gè)
回復(fù)

使用道具 舉報(bào)

23#
ID:1109793 發(fā)表于 2024-9-18 07:26 | 只看該作者
老董 發(fā)表于 2024-9-17 23:27
想請(qǐng)教一下你的stc單片機(jī)是怎么加到軟件里的 我的軟件里沒(méi)有這個(gè)

STC的工具軟件里面有個(gè)按鍵
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表