![]() |
發(fā)布時間: 2021-7-27 15:50
正文摘要:#include<reg52.h> #define uint unsigned int; #define uchar unsigned char; uchar tt,num,ge,shi,bai; sbit wei=P2^7; sbit zi=P2^6; uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, ... |
感謝各位,我自己已經(jīng)解決了 |
Y_G_G 發(fā)表于 2021-7-27 21:24 還是錯誤的哦 |
開心就好hhhh 發(fā)表于 2021-7-28 11:22 還是錯誤的 |
這個程序,目前可能語法上沒錯誤了,功能還是錯誤的,后面跑出來的結(jié)果應(yīng)該還是錯誤的,形參定義有問題 |
|
開心就好hhhh 發(fā)表于 2021-7-28 11:22 我覺得還是會報錯 |
你這個代碼燒進(jìn)去試了嗎,正確嗎?我怎么看著有點(diǎn)奇怪 |
Y_G_G 發(fā)表于 2021-7-27 21:24 受教了 |
不是回答了你了嗎? 又開新貼子問同一個問題? 不要用#define #define uint unsigned int; #define uchar unsigned char; 改用 typedef typedef unsigned int uint; typedef unsigned char uchar; |
51heiqwer 發(fā)表于 2021-7-27 21:33 請問是上中下哪一個呢 |
#define 是宏定義 不用加分號 typedef 是類型重定義 得加分號 你可以用 #define uint unsigned int //不要添加分號 #define uchar unsigned char //不要添加分號 改用 typedef typedef unsigned int uint; //要添加分號 typedef unsigned char uchar; //要添加分號 |
xianshi(uchar bai,shi,ge); 這個函數(shù)你還帶 uchar 干嘛 ,又不是聲明 |
我?guī)湍愀暮昧?自己找一下有什么地方不一樣的 這都是C語言的基礎(chǔ)知識,我也是才開始幾天的C語言,一般這種問題都是可以自己找到答案的 自己想盡腦子的去解決一個問題,那么你對這個問題的印象肯定是深刻的,對于自己的學(xué)習(xí)也有好處 網(wǎng)上"拿來主義"倒是快,估計下回還是會犯同樣的錯誤 我就不告訴你哪里了,你自己找找 還有,編程要養(yǎng)成一個有注釋的習(xí)慣,每個人寫程序的寫法都不一樣,你倒是看明白,別人不一定能看明白的 #include<reg52.h> #define uint unsigned int #define uchar unsigned char uchar tt,num,ge,shi,bai; sbit wei=P2^7; sbit zi=P2^6; uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void init(); void xianshi(uchar bai,shi,ge); void delay(uint z); void main() { init(); while(1) { if(tt==20) { tt=0; num++; if(num==100) { num=0; } bai=num/100; shi=num%100/10; ge=num%10; } xianshi(bai,shi,ge); } } void delay(uint z) { uint x,y; for(x=110;x>0;x--) for(y=z;y>0;y--); } void init() { num=0; TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1; ET0=1; TR0=1; } void xianshi(uchar bai,shi,ge) { zi=1; P0=table[bai]; zi=0; P0=0xff; wei=1; P0=0xfe; wei=0; delay(1); zi=1; P0=table[shi]; zi=0; P0=0xff; wei=1; P0=0xfd; wei=0; delay(1); zi=1; P0=table[ge]; zi=0; P0=0xff; wei=1; P0=0xfb; wei=0; delay(1); } void timer0() interrupt 1 { TH0=(65535-50000)/256; TL0=(65535-50000)%256; tt++; } |
TH0之類能手工計算的,先算好。 |
應(yīng)該要把編譯錯誤的信息也上圖,什么錯誤 定位在哪一行,大家如果這樣肉眼直接看,效率太低了 |
Powered by 單片機(jī)教程網(wǎng)