Вы не чужие программы показывайте, а свои, и с конкретными вопросами. Учитесь писать программы сами, так как загружая кучу чужих программ и ничего в них не понимая, программирование не освоить.
И еще - читайте документацию, там можно найти ответы на 99% вопросов.
До того, как ее прочтете (внимательно, а не по диагонали), даже правильный ответ все равно не поймете и не сможете применить, а готовую программу для Вас никто писать не станет.
Кстати, если контроллера пока не знаете, про программирование USB можете забыть - как уже говорил, это новичку просто не по зубам.
Используйте микросхему USB-to-UART, например, CP2101 или FT232RL - тогда и для ПК и для микроконтроллера надо программировать последовательный порт, что намного проще.
Для того, чтобы понять, чем отличается загрузка программы через последовательный порт, и с помощью эмулятора, стоит все-таки прочитать описание микроконтроллера.
В двух словах: в микроконтроллере есть встроенный загрузчик. После включения питания микроконтроллер сначала проверяет состояние одного из выводов, и если этот вывод находится в положении соответствующем загрузке по UART, ждет передачи от ПК программы, которую записывает в флеш-память микроконтроллера.
Если этот вывод при запуске находится в другом положении, микроконтроллер пытается запустить программу из встроенной флеш-памяти. Программа Philips flash utility позволяет записать программу используя последовательный порт. Если неправильно выбран тип микроконтроллера, или в программе есть ошибки, то вполне можно ничего не увидеть. Советую начать самому писать простые программы, глядя на примеры, устанавливающиеся вместе с Keil.
Про Download из Keil можно забыть если нет отладчика.
Отладчик позволяет по шагам выполнить программу, наблюдая содержимое переменных, регистров и т.д.
Это намного облегчает отладку программы.
То, каким образом программа записана в флеш-память микроконтроллера никак не влияет на ее выполнение после подачи питания на микроконтроллер.