STM32翻頁時鐘有源程序顯示是實心字體,改成空心字體 那位師博對STM32單片機有經驗的幫看看 實心字體,改成空心字體翻頁鐘 修改后上傳謝謝
阿里旺旺圖片20190728102958.jpg (168.34 KB, 下載次數: 39)
下載附件
2019-7-28 10:31 上傳
阿里旺旺圖片20190728103046.jpg (44.57 KB, 下載次數: 40)
下載附件
2019-7-28 10:31 上傳
單片機源程序如下:
- /*******************************************/
- /* LCM128*64指針式萬年歷 */
- /* 硬件:LCM128*64 M16 DS1302 */
- /* 軟件:WinAVR 2.0.6.1 */
- /* 時鐘:內部4M */
- /* 制作:hyj */
- /*******************************************/
- #include <avr/io.h>
- #include <util/delay.h>
- #include <avr/pgmspace.h>
- #include <avr/interrupt.h>
- //#include <font2.h>
- #include <VFD.h>
- //變量定義
- unsigned char sec,min,hour,day,month,year,week,c_moon,year_moon,month_moon,day_moon; //秒.分.時.日.天.年.星期
- unsigned char mode;
- extern unsigned char disp_set,show,two_show,three_show;
- unsigned char temp_sec=70,temp_min=70,temp_hour=10,x,y,disp_old=0;
- //unsigned char disp_ram[672]; //移動顯示緩存
- volatile unsigned int yid=0;
- extern unsigned char yid_speed;
- // 移動顯示步數 移動速度
- volatile unsigned int count = 1000;
- extern unsigned char inittime[];
- extern int t;
- unsigned char temp1,temp2;
- void disp_update()
- {
- ;
- }
- /****************************************************************************
- 函 數 名: Port_init(void)
- 功 能:端口初始化
- 說 明:方向及上拉電阻設置
- 入口參數:無
- 返 回 值:無
- *****************************************************************************/
- void Port_init(void)
- {
- PORTA = 0xFF;
- DDRA = 0x20;
- PORTB = 0x9A;
- DDRB = 0xFA;
- PORTC = 0x00;
- DDRC = 0xFE;
- PORTD = 0x00;
- DDRD = 0x70;
- PORTB |= (1 << PB3);
- }
- /**********************************************************************
- 函 數 名time1_init()
- 功 能: 定時器1初始化
- 說 明:無
- 入口參數:無
- 返 回 值:無
- ***********************************************************************/
- void time1_init(void)
- {
- TCCR1B = 0x00;//停止定時器
- TIMSK |= 0x04;//中斷允許
- TCNT1H = 0xFC;
- TCNT1L = 0x2F;//初始值
- OCR1AH = 0xFB;
- OCR1AL = 0xFF;//匹配A值
- OCR1BH = 0xFB;
- OCR1BL = 0xFF;//匹配B值
- ICR1H = 0xFF;
- ICR1L = 0xFF;//輸入捕捉匹配值
- TCCR1A = 0x00;
- TCCR1B = 0x05;//啟動定時器
- }
- /**********************************************************************
- 函 數 名SIGNAL(SIG_OVERFLOW1)
- 功 能: 定時器1中斷處理
- 說 明:增加移動顯示內容,移動步數
- 入口參數:無
- 返 回 值:無
- ***********************************************************************/
- SIGNAL(SIG_OVERFLOW1)
- {
- sei();
- // if (count) {count --;}
- // else {VFD_OFF;}
- if(yid<304)
- {
- yid++;
- }
- else
- {
- yid=0;
- // t=gettemp();
- }
- TCNT1L = 64335+yid_speed*150 ;
- TCNT1H = ((64335+yid_speed*150)>>8) ;
- // gettemp();
- if (disp_set == 0) {
- VFD_disp();
- }
- }
- /**********************************************************************
- 函 數 名main()
- 功 能: 初始化及循環顯示內容
- 說 明:主函數
- 入口參數:無
- 返 回 值:無
- ***********************************************************************/
- int main(void)
- {
- unsigned char temp;
- Port_init();
- VFD_Init();
- time1_init();
- DS3231Init();
- sei();
- if (e2prom_read(0)>1)
- {
- for (temp = 0; temp < 0xff; temp++)
- {
- e2prom_write(temp,0);
- }
- }
- disp_ram_init();
- gengxinshijian();
- huamaohao();
- gettemp();
- VFD_update();
- VFD_analog_rest_data();
- while(1)
- {
- // gettemp();
- data_transition();
- // gengxinshijian();
- key();
- switch(disp_set)
- {
- case 0:
- // VFD_updata(); //移動顯示會改變的內容更新
- // analog_time(); //指針式時鐘顯示
- // VFD_disp(); //移動信息顯示
- disp_old = 0;
- gengxinshijian();
- break;
- case 3:
- set_menu(); //顯示菜單
- break;
- case 10:
- disp_old = 0;
- two_menu(); //二級菜單
- break;
- case 20:
- disp_old = 0;
- three_menu(); //三級菜單
- break;
- }
- }
- }
復制代碼
所有資料51hei提供下載:
vfd_翻頁時鐘源代碼.rar
(38.18 KB, 下載次數: 19)
2019-7-28 10:32 上傳
點擊文件名下載附件
V6原理圖.pdf
(37.51 KB, 下載次數: 14)
2019-7-28 10:32 上傳
點擊文件名下載附件
|